commit 1f629f5c50d6b33b3a02aeb15f5cb31498dfebf8 Author: bllyjulian Date: Tue Apr 14 13:48:13 2026 +0700 first commit diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9b8d514 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.react-router +build +node_modules +README.md \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ef6a52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..42c9ad9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/pandawa.iml b/.idea/pandawa.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/pandawa.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/prettier.xml b/.idea/prettier.xml new file mode 100644 index 0000000..ea0f3cf --- /dev/null +++ b/.idea/prettier.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..207bf93 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM node:20-alpine AS development-dependencies-env +COPY . /app +WORKDIR /app +RUN npm ci + +FROM node:20-alpine AS production-dependencies-env +COPY ./package.json package-lock.json /app/ +WORKDIR /app +RUN npm ci --omit=dev + +FROM node:20-alpine AS build-env +COPY . /app/ +COPY --from=development-dependencies-env /app/node_modules /app/node_modules +WORKDIR /app +RUN npm run build + +FROM node:20-alpine +COPY ./package.json package-lock.json /app/ +COPY --from=production-dependencies-env /app/node_modules /app/node_modules +COPY --from=build-env /app/build /app/build +WORKDIR /app +CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ae1951f --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +Copyright (c) 2025 PANDAWA + +PANDAWA merupakan produk resmi yang dikembangkan oleh startup Cakra Digital, dengan tujuan untuk memantau dan mengelola sumber daya alam berbasis geospasial di wilayah Bondowoso. Aplikasi ini dibangun menggunakan framework Next.js serta mengadopsi elemen antarmuka dari TailAdmin sebagai fondasi desainnya. Seluruh fitur, konten, dan sistem pemantauan yang ada merupakan karya orisinal dan sepenuhnya menjadi hak milik Cakra Digital. + +Seluruh hak cipta dilindungi. Perangkat lunak ini **BUKAN perangkat lunak bebas (non-free)** dan **tidak dapat digunakan secara gratis** dalam bentuk apa pun. Penggunaan, penyalinan, modifikasi, distribusi, maupun penjualan **hanya dapat dilakukan** setelah adanya **izin tertulis atau perjanjian kerja sama resmi** antara pengguna dan Cakra Digital. + +Dengan memperoleh salinan perangkat lunak ini, Anda menyatakan telah membaca dan menyetujui bahwa: +1. Penggunaan hanya diperbolehkan berdasarkan kesepakatan hukum yang sah dengan Cakra Digital. +2. Segala bentuk penyebaran, penggandaan, atau penjualan kembali tanpa izin tertulis adalah pelanggaran hukum. +3. Pelanggaran terhadap lisensi ini akan ditindak secara hukum sesuai peraturan perundang-undangan yang berlaku. + +Perangkat lunak ini disediakan **"SEBAGAIMANA ADANYA"**, tanpa jaminan dalam bentuk apa pun, baik tersurat maupun tersirat, termasuk namun tidak terbatas pada jaminan kelayakan jual, kesesuaian untuk tujuan tertentu, atau tidak adanya pelanggaran. + +Untuk permintaan lisensi, kerja sama, atau klarifikasi, silakan hubungi: +Email: cakradigitalcompany@gmail.com + +Bondowoso, Indonesia +Tahun 2025 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e215bc4 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/db_pandawa (3).sql b/db_pandawa (3).sql new file mode 100644 index 0000000..7542648 --- /dev/null +++ b/db_pandawa (3).sql @@ -0,0 +1,475 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.1 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1 +-- Generation Time: Jun 01, 2025 at 05:59 AM +-- Server version: 10.4.32-MariaDB +-- PHP Version: 8.2.12 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `db_pandawa` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `akun` +-- + +CREATE TABLE `akun` ( + `username` varchar(50) NOT NULL, + `email` varchar(50) NOT NULL, + `password` varchar(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `akun` +-- + +INSERT INTO `akun` (`username`, `email`, `password`) VALUES +('bian', 'bian@gmail.com', '123'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `data_kecamatan` +-- + +CREATE TABLE `data_kecamatan` ( + `id_kecamatan` int(11) NOT NULL, + `nama_kecamatan` varchar(100) DEFAULT NULL, + `gambar` varchar(255) NOT NULL, + `deskripsi` text DEFAULT NULL, + `area` varchar(15) DEFAULT NULL, + `posisi_x` float DEFAULT NULL, + `posisi_y` float DEFAULT NULL, + `id_komoditas` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `data_kecamatan` +-- + +INSERT INTO `data_kecamatan` (`id_kecamatan`, `nama_kecamatan`, `gambar`, `deskripsi`, `area`, `posisi_x`, `posisi_y`, `id_komoditas`) VALUES +(1, 'Binakal 123', '/kecamatan/binakal.jpg', 'Binakal adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 7 Km dari ibu kota Kabupaten Bondowoso ke arah barat. Pusat pemerintahannya berada di Desa Binakal.vyiiuv', '39,039', 230, 450, 1), +(2, 'Bondowoso', '/kecamatan/bondowoso.jpg', 'Bondowoso adalah ibu kota Kabupaten Bondowoso yang sekaligus menjadi pusat pemerintahan dan perekonomian dari Kabupaten Bondowoso. Bondowoso juga merupakan sebuah kecamatan yang berada di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. gg', '23,158', 327, 485, 1), +(22, 'Cermee', '/kecamatan/cermee.jpg', 'Cermee adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak 33 Km dari ibu kota Kabupaten Bondowoso dan merupakan salah satu wilayah kecamatan paling timur. Ibu kotanya berada di Desa Cermee', '129,204', 685, 375, 2), +(23, 'Botolinggo', '/kecamatan/botolinggo.jpg', 'Botolinggo adalah sebuah desa di Kecamatan Botolinggo, Kabupaten Bondowoso, Provinsi Jawa Timur.', '127.41', 640, 455, 1), +(24, 'Curahdami', '/kecamatan/curahdami.jpg', 'Curahdami adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 3 Km dari ibu kota Kabupaten Bondowoso ke arah barat. Pusat pemerintahannya berada di Kelurahan Curahdami.', '34.889', 275, 480, 1), +(25, 'Grujugan', '/kecamatan/grujugan.jpg', 'Grujugan adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 7 Km dari ibu kota Kabupaten Bondowoso ke arah barat daya. Pusat pemerintahannya berada di Desa Taman.', '74.447', 250, 555, 1), +(26, 'Jambe Sari', '/kecamatan/jambesari.jpg', 'Jambesari Darus Sholah adalah sebuah kecamatan yang berada di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 10 Km dari ibu kota Kabupaten Bondowoso ke arah selatan. Pusat pemerintahannya berada di Desa Jambesari.', '36.776', 375, 555, 1), +(27, 'Klabang', '/kecamatan/klabang.jpg', 'Klabang adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 19 Km dari ibu kota Kabupaten Bondowoso ke arah timur laut. Pusat pemerintahannya berada di Desa Klabang.', '91.204', 475, 320, 1), +(28, 'Maesan', '/kecamatan/maesan.jpg', 'Maesan merupakan sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 13 Km dari ibu kota Kabupaten Bondowoso ke arah selatan. Pusat pemerintahannya berada di Desa Maesan.', '56.083', 255, 612, 1), +(29, 'Pakem', '/kecamatan/pakem.webp', 'Pakem adalah sebuah kecamatan di Kabupaten Bondowoso, Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 18 Km dari ibu kota Kabupaten Bondowoso ke arah barat. Pusat pemerintahannya berada di desa Patemon. Pakem merupakan kecamatan paling barat di Kabupaten Bondowoso.', '62.082', 180, 448, 1), +(30, 'Prajekan', '/kecamatan/prajekan.jpg', 'Prajekan adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 24 Km dari ibu kota Kabupaten Bondowoso ke arah timur laut. Pusat pemerintahannya berada di Desa Prajekan Lor.', '56.642', 542, 285, 1), +(31, 'Pujer', '/kecamatan/pujer.jpg', 'Pujer adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 12 Km dari ibu kota Kabupaten Bondowoso ke arah tenggara. Pusat pemerintahannya berada di Desa Kejayan.', '39.889', 435, 555, 1), +(32, 'Ijen', '/kecamatan/ijen.jpg', 'Ijen adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekira 53 Km dari ibu kota Kabupaten Bondowoso melalui Tapen dan Sukosari, dan merupakan kecamatan paling timur. Kecamatan Ijen adalah perubahan nama dari Kecamatan Sempol', '207.20', 825, 638, 4), +(33, 'Sukosari', '/kecamatan/sukosari.jpg', 'Sukosari adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 22 Km dari ibu kota Kabupaten Bondowoso ke arah timur. Pusat pemerintahannya berada di Desa Sukosari Lor.', '23.172', 499, 490, 1), +(34, 'Sumber Wringin', '/kecamatan/sumberWringin.jpg', 'Sumberwringin adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 27 Km dari ibu kota Kabupaten Bondowoso ke arah tenggara. Pusat pemerintahannya berada di Desa Sumberwringin. Sumberwringin terletak di lereng Pegunungan Ijen.', '137.947', 640, 585, 1), +(35, 'Tamanan', '/kecamatan/tamanan.jpg', 'Tamanan adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kata Tamanan sendiri berawal dari sebuah kisah kuno yang konon diambil dari sebuah Taman yang ada di desa tersebut. Taman tersebut merupakan sebuah peninggalan Belanda yang pada akhir Tahun 1998 masih bisa dipakai.', '28.151', 348, 605, 1), +(36, 'Tapen', '/kecamatan/tapen.jpg', 'Tapen adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 16 Km dari ibu kota Kabupaten Bondowoso ke arah timur. Pusat pemerintahannya berada di Desa Tapen.', '157.042', 495, 410, 1), +(37, 'Tegalampel', '/kecamatan/tegalampel.jpg', 'Tegalampel adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini hanya berjarak sekitar 2 Km dari ibu kota Kabupaten Bondowoso ke arah utara. Pusat pemerintahannya berada di Desa Sekarputih.', '47.027', 335, 400, 1), +(38, 'Tenggarang', '/kecamatan/tenggarang.jpg', 'Tenggarang adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia.', '25.795', 375, 482, 1), +(39, 'Tlogosari', '/kecamatan/tlogosari.jpg', 'Tlogosari adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 17 Km dari ibu kota Kabupaten Bondowoso ke arah tenggara. Pusat pemerintahannya berada di Desa Pakisan. Wilayah bagian selatan kecamatan Tlogosari terdapat Gunung Raung.', '110.92', 540, 610, 1), +(40, 'Wonosari', '/kecamatan/Wonosari.jpg', 'Wonosari adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 10 Km dari ibu kota Kabupaten Bondowoso ke arah timur. Pusat pemerintahannya berada di Desa Wonosari.', '42.277', 450, 462, 1), +(41, 'Wringin', '/kecamatan/wringin.jpg', 'Wringin adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 16 Km dari ibu kota Kabupaten Bondowoso ke arah barat laut. Pusat pemerintahannya berada di Desa Wringin.', '58.01', 275, 342, 3), +(42, 'Taman Krocok', '/kecamatan/tamanKrocok.jpg', 'Taman Krocok adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 12 Km dari ibu kota Kabupaten Bondowoso ke arah timur laut. Pusat pemerintahannya berada di Desa Taman. Kecamatan ini memiliki jumlah penduduk terkecil di kabupaten Bondowoso.', '53.003', 410, 375, 2); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `data_penduduk` +-- + +CREATE TABLE `data_penduduk` ( + `id_penduduk` int(11) NOT NULL, + `id_kecamatan` int(11) NOT NULL, + `laju_pertumbuhan` varchar(30) NOT NULL, + `jml_penduduk` varchar(30) NOT NULL, + `tahun` year(4) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `data_penduduk` +-- + +INSERT INTO `data_penduduk` (`id_penduduk`, `id_kecamatan`, `laju_pertumbuhan`, `jml_penduduk`, `tahun`) VALUES +(1, 1, '-2.12%', '17.066', '2025'), +(2, 2, '-1.22%', '76.805', '2025'), +(3, 23, '-2.19%', '29.110', '2025'), +(4, 24, '-0.73%', '34.889', '2025'), +(5, 25, '-0.28%', '38.165', '2025'), +(6, 32, '-2.01%', '12.030', '2025'), +(7, 26, '-2.10%', '36.076', '2025'), +(8, 27, '-1.26%', '18.688', '2025'), +(9, 28, '-0.20%', '42.212', '2025'), +(10, 29, '-2.19%', '23.362', '2025'), +(11, 30, '-1.07%', '25.644', '2025'), +(12, 31, '-1.63%', '40.594', '2025'), +(13, 33, '-0.73%', '15.553', '2025'), +(14, 34, '-1.39%', '35.127', '2025'), +(15, 35, '0.31%', '39.535', '2025'), +(16, 36, '-1.32%', '34.003', '2025'), +(17, 37, '-0.81%', '26.571', '2025'), +(18, 38, '-0.76%', '43.973', '2025'), +(19, 39, '-0.80%', '47.078', '2025'), +(20, 40, '-1.28%', '40.764', '2025'), +(21, 41, '-1.04%', '40.755', '2025'), +(22, 22, '-1.49%', '46.353', '2025'), +(23, 42, '-1.19%', '16.654', '2025'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `hasil_panen` +-- + +CREATE TABLE `hasil_panen` ( + `id_panen` varchar(50) NOT NULL, + `id_kecamatan` int(11) DEFAULT NULL, + `id_komoditas` int(11) DEFAULT NULL, + `tahun_panen` year(4) DEFAULT NULL, + `produksi` float DEFAULT NULL, + `luas_panen` float DEFAULT NULL, + `produktivitas` varchar(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `hasil_panen` +-- + +INSERT INTO `hasil_panen` (`id_panen`, `id_kecamatan`, `id_komoditas`, `tahun_panen`, `produksi`, `luas_panen`, `produktivitas`) VALUES +('jagung-binakal', 1, 2, '2025', 2610, 5173, '5.05'), +('jagung-bondowoso', 2, 2, '2025', 561, 100, '5.61'), +('jagung-botolinggo', 23, 2, '2025', 14317, 2598, '5.51'), +('jagung-cermee', 22, 2, '2025', 41389, 7368, '5.62'), +('jagung-curahdami', 24, 2, '2025', 3120, 619, '5.04'), +('jagung-grujugan', 25, 2, '2025', 2211, 407, '5.43'), +('jagung-jambesari', 26, 2, '2025', 1731, 322, '5.38'), +('jagung-klabang', 27, 2, '2025', 13023, 2386, '5.46'), +('jagung-maesan', 28, 2, '2025', 8409, 1557, '5.4'), +('jagung-pakem', 29, 2, '2025', 4804, 1031, '4.66'), +('jagung-prajekan', 30, 2, '2025', 14317, 2598, '5.51'), +('jagung-pujer', 31, 2, '2025', 5390, 966, '5.58'), +('jagung-sukosari', 33, 2, '2025', 4563, 836, '5.46'), +('jagung-sumberwringin', 34, 2, '2025', 6005, 1092, '5.54'), +('jagung-tamanan', 35, 2, '2025', 1835, 330, '5.56'), +('jagung-tamankrocok', 42, 2, '2025', 14283, 2646, '5.4'), +('jagung-tapen', 36, 2, '2025', 7879, 1414, '5.57'), +('jagung-tegalampel', 37, 2, '2025', 3799, 689, '5.51'), +('jagung-tenggarang', 38, 2, '2025', 1744, 315, '5.54'), +('jagung-tlogosari', 39, 2, '2025', 3401, 616, '5.52'), +('jagung-wonosari', 40, 2, '2025', 1930, 348, '5.55'), +('jagung-wringin', 41, 2, '2025', 8849, 1915, '4.62'), +('kelapa-binakal', 1, 7, '2025', 184.8, 0, '0'), +('kelapa-bondowoso', 2, 7, '2025', 147.2, 0, '0'), +('kelapa-botolinggo', 23, 7, '2025', 33.85, 0, '0'), +('kelapa-cermee', 22, 7, '2025', 35.18, 0, '0'), +('kelapa-curahdami', 24, 7, '2025', 262.2, 0, '0'), +('kelapa-grujugan', 25, 7, '2025', 200.53, 0, '0'), +('kelapa-jambesari', 26, 7, '2025', 15.3, 0, '0'), +('kelapa-klabang', 27, 7, '2025', 3.87, 0, '0'), +('kelapa-maesan', 28, 7, '2025', 1579.5, 0, '0'), +('kelapa-pakem', 29, 7, '2025', 68.32, 0, '0'), +('kelapa-prajekan', 30, 7, '2025', 33.85, 0, '0'), +('kelapa-sukosari', 33, 7, '2025', 71, 0, '0'), +('kelapa-sumberwringin', 34, 7, '2025', 35.7, 0, '0'), +('kelapa-tamanan', 35, 7, '2025', 42.5, 0, '0'), +('kelapa-tamankrocok', 42, 7, '2025', 92.85, 0, '0'), +('kelapa-tapen', 36, 7, '2025', 273.6, 0, '0'), +('kelapa-wonosari', 40, 7, '2025', 17.33, 0, '0'), +('kopi-binakal', 1, 4, '2025', 26.38, 0, '0'), +('kopi-botolinggo', 23, 4, '2025', 372.34, 0, '0'), +('kopi-cermee', 22, 4, '2025', 119.71, 0, '0'), +('kopi-curahdami', 24, 4, '2025', 114.12, 0, '0'), +('kopi-grujugan', 25, 4, '2025', 174.91, 0, '0'), +('kopi-ijen', 32, 4, '2025', 853.4, 0, '0'), +('kopi-klabang', 27, 4, '2025', 170.44, 0, '0'), +('kopi-maesan', 28, 4, '2025', 846.43, 0, '0'), +('kopi-pakem', 29, 4, '2025', 172.37, 0, '0'), +('kopi-pujer', 31, 4, '2025', 2.25, 0, '0'), +('kopi-sukosari', 33, 4, '2025', 155, 0, '0'), +('kopi-sumberwringin', 34, 4, '2025', 4902.57, 0, '0'), +('kopi-tamanan', 35, 4, '2025', 9.89, 0, '0'), +('kopi-tamankrocok', 42, 4, '2025', 60.75, 0, '0'), +('kopi-tegalampel', 37, 4, '2025', 6.58, 0, '0'), +('kopi-tlogosari', 39, 4, '2025', 452.1, 0, '0'), +('padi-binakal', 1, 1, '2025', 11842, 2161, '5.48'), +('padi-bondowoso', 2, 1, '2025', 16156, 2577, '6.27'), +('padi-botolinggo', 23, 1, '2025', 18775, 3057, '6.18'), +('padi-cermee', 22, 1, '2025', 23466, 3696, '6.35'), +('padi-curahdami', 24, 1, '2025', 14191, 2627, '5.4'), +('padi-grujugan', 25, 1, '2025', 21452, 3414, '6.28'), +('padi-jambesari', 26, 1, '2025', 19792, 3171, '6.24'), +('padi-klabang', 27, 1, '2025', 23498, 3824, '6.14'), +('padi-maesan', 28, 1, '2025', 15558, 2468, '6.3'), +('padi-pakem', 29, 1, '2025', 13308, 2409, '5.48'), +('padi-prajekan', 30, 1, '2025', 18775, 3057, '6.18'), +('padi-pujer', 31, 1, '2025', 39051, 6098, '6.4'), +('padi-sukosari', 33, 1, '2025', 14313, 2378, '6.02'), +('padi-sumberwringin', 34, 1, '2025', 20794, 3497, '5.95'), +('padi-tamanan', 35, 1, '2025', 26097, 4145, '6.3'), +('padi-tamankrocok', 42, 1, '2025', 8619, 1455, '5.92'), +('padi-tapen', 36, 1, '2025', 40715, 6270, '6.49'), +('padi-tegalampel', 37, 1, '2025', 13700, 2265, '6.05'), +('padi-tenggarang', 38, 1, '2025', 27299, 4211, '6.48'), +('padi-tlogosari', 39, 1, '2025', 38854, 6069, '6.4'), +('padi-wonosari', 40, 1, '2025', 25229, 3914, '6.45'), +('padi-wringin', 41, 1, '2025', 13281, 2447, '5.43'), +('ubi-binakal', 1, 3, '2025', 1714, 75, '22.85'), +('ubi-bondowoso', 2, 3, '2025', 237, 6, '39.5'), +('ubi-botolinggo', 23, 3, '2025', 7312, 275, '26.59'), +('ubi-cermee', 22, 3, '2025', 12227, 524, '23.33'), +('ubi-curahdami', 24, 3, '2025', 890, 44, '20.23'), +('ubi-grujugan', 25, 3, '2025', 3459, 151, '22.91'), +('ubi-jambesari', 26, 3, '2025', 1611, 99, '16.27'), +('ubi-klabang', 27, 3, '2025', 4912, 232, '21.17'), +('ubi-maesan', 28, 3, '2025', 1108, 71, '15.61'), +('ubi-pakem', 29, 3, '2025', 1402, 57, '24.6'), +('ubi-prajekan', 30, 3, '2025', 7312, 275, '26.59'), +('ubi-pujer', 31, 3, '2025', 2566, 112, '22.91'), +('ubi-sukosari', 33, 3, '2025', 1866, 81, '23.04'), +('ubi-sumberwringin', 34, 3, '2025', 1238, 76, '16.29'), +('ubi-tamanan', 35, 3, '2025', 3115, 136, '22.9'), +('ubi-tamankrocok', 42, 3, '2025', 2958, 129, '22.93'), +('ubi-tapen', 36, 3, '2025', 1655, 72, '22.99'), +('ubi-tegalampel', 37, 3, '2025', 1903, 83, '22.93'), +('ubi-tenggarang', 38, 3, '2025', 115, 5, '23'), +('ubi-tlogosari', 39, 3, '2025', 2020, 88, '22.95'), +('ubi-wonosari', 40, 3, '2025', 69, 3, '23'), +('ubi-wringin', 41, 3, '2025', 20440, 884, '23.12'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `komoditas` +-- + +CREATE TABLE `komoditas` ( + `id_komoditas` int(11) NOT NULL, + `nama_komoditas` varchar(100) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `komoditas` +-- + +INSERT INTO `komoditas` (`id_komoditas`, `nama_komoditas`) VALUES +(1, 'Padi'), +(2, 'Jagung'), +(3, 'Ubi Kayu'), +(4, 'Kopi'), +(5, 'Tebu'), +(6, 'Tembakau'), +(7, 'Kelapa'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `prediksi_panen` +-- + +CREATE TABLE `prediksi_panen` ( + `id_prediksi` int(11) NOT NULL, + `id_kecamatan` int(11) NOT NULL, + `id_komoditas` int(11) NOT NULL, + `luas_panen` float NOT NULL, + `rata_rata_produksi` float NOT NULL, + `tahun` year(4) NOT NULL, + `hasil_prediksi` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Dumping data for table `prediksi_panen` +-- + +INSERT INTO `prediksi_panen` (`id_prediksi`, `id_kecamatan`, `id_komoditas`, `luas_panen`, `rata_rata_produksi`, `tahun`, `hasil_prediksi`) VALUES +(1, 1, 1, 2161, 5.48, '2025', 11862), +(2, 2, 1, 2577, 6.27, '2025', 15835), +(3, 22, 1, 3696, 6.35, '2025', 23147), +(4, 23, 1, 0, 0, '2025', 0), +(5, 24, 1, 2627, 5.4, '2025', 14725), +(6, 25, 1, 3414, 6.28, '2025', 21104), +(7, 26, 1, 3171, 6.24, '2025', 19581), +(8, 27, 1, 3824, 6.14, '2025', 23714), +(9, 28, 1, 2468, 6.3, '2025', 15343), +(10, 29, 1, 2409, 5.48, '2025', 13208), +(11, 30, 1, 3057, 6.18, '2025', 18760), +(12, 31, 1, 6098, 6.4, '2025', 39493), +(13, 32, 1, 3097, 6.06, '2025', 18959), +(14, 33, 1, 2378, 6.02, '2025', 14024), +(15, 34, 1, 3497, 5.95, '2025', 21090), +(16, 35, 1, 4145, 6.3, '2025', 26511), +(17, 36, 1, 6270, 6.49, '2025', 40692), +(18, 37, 1, 2265, 6.05, '2025', 13825), +(19, 38, 1, 4211, 6.48, '2025', 26975), +(20, 39, 1, 6069, 6.4, '2025', 38559), +(21, 40, 1, 3914, 6.45, '2025', 25294), +(22, 41, 1, 2447, 5.43, '2025', 13807), +(23, 42, 1, 1455, 5.92, '2025', 8695), +(24, 1, 2, 517, 5.05, '2025', 2635), +(25, 2, 2, 100, 5.61, '2025', 560), +(26, 22, 2, 7368, 5.62, '2025', 41622), +(27, 23, 2, 0, 0, '2025', 0), +(28, 24, 2, 619, 5.04, '2025', 3240), +(29, 25, 2, 407, 5.43, '2025', 2246), +(30, 26, 2, 322, 5.38, '2025', 1681), +(31, 27, 2, 2386, 5.46, '2025', 13028), +(32, 28, 2, 1557, 5.4, '2025', 8441), +(33, 29, 2, 1031, 4.66, '2025', 4929), +(34, 30, 2, 2598, 5.51, '2025', 14182), +(35, 31, 2, 966, 5.58, '2025', 5292), +(36, 32, 2, 2594, 5.45, '2025', 14010), +(37, 33, 2, 836, 5.46, '2025', 4517), +(38, 34, 2, 1092, 5.54, '2025', 6016), +(39, 35, 2, 330, 5.56, '2025', 1768), +(40, 36, 2, 1414, 5.57, '2025', 7742), +(41, 37, 2, 689, 5.51, '2025', 3701), +(42, 38, 2, 315, 5.54, '2025', 1711), +(43, 39, 2, 616, 5.52, '2025', 3408), +(44, 40, 2, 348, 5.55, '2025', 1918), +(45, 41, 2, 1915, 4.62, '2025', 9009), +(46, 42, 2, 2646, 5.4, '2025', 14066), +(47, 1, 3, 75, 22.85, '2025', 1651), +(48, 2, 3, 6, 39.5, '2025', 205), +(49, 22, 3, 524, 23.33, '2025', 12169), +(50, 23, 3, 0, 0, '2025', 0), +(51, 24, 3, 44, 20.23, '2025', 980), +(52, 25, 3, 151, 22.91, '2025', 3382), +(53, 26, 3, 99, 16.27, '2025', 1780), +(54, 27, 3, 232, 21.17, '2025', 4980), +(55, 28, 3, 71, 15.61, '2025', 1230), +(56, 29, 3, 57, 24.6, '2025', 1348), +(57, 30, 3, 275, 26.59, '2025', 6792), +(58, 31, 3, 112, 22.91, '2025', 2601), +(59, 32, 3, 324, 23.2, '2025', 7457), +(60, 33, 3, 81, 23.04, '2025', 1852), +(61, 34, 3, 76, 16.29, '2025', 1368), +(62, 35, 3, 136, 22.9, '2025', 3018), +(63, 36, 3, 72, 22.99, '2025', 1610), +(64, 37, 3, 83, 22.93, '2025', 1882), +(65, 38, 3, 5, 23, '2025', 123), +(66, 39, 3, 88, 22.95, '2025', 1976), +(67, 40, 3, 3, 23, '2025', 69), +(68, 41, 3, 884, 23.12, '2025', 19222), +(69, 42, 3, 129, 22.93, '2025', 2952); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `akun` +-- +ALTER TABLE `akun` + ADD PRIMARY KEY (`username`); + +-- +-- Indexes for table `data_kecamatan` +-- +ALTER TABLE `data_kecamatan` + ADD PRIMARY KEY (`id_kecamatan`), + ADD KEY `id_komoditas` (`id_komoditas`); + +-- +-- Indexes for table `data_penduduk` +-- +ALTER TABLE `data_penduduk` + ADD PRIMARY KEY (`id_penduduk`), + ADD KEY `id_kecamatan` (`id_kecamatan`); + +-- +-- Indexes for table `hasil_panen` +-- +ALTER TABLE `hasil_panen` + ADD PRIMARY KEY (`id_panen`), + ADD KEY `id_kecamatan` (`id_kecamatan`), + ADD KEY `id_komoditas` (`id_komoditas`); + +-- +-- Indexes for table `komoditas` +-- +ALTER TABLE `komoditas` + ADD PRIMARY KEY (`id_komoditas`); + +-- +-- Indexes for table `prediksi_panen` +-- +ALTER TABLE `prediksi_panen` + ADD PRIMARY KEY (`id_prediksi`), + ADD KEY `id_kecamatan` (`id_kecamatan`), + ADD KEY `id_komoditas` (`id_komoditas`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `data_kecamatan` +-- +ALTER TABLE `data_kecamatan` + MODIFY `id_kecamatan` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=43; + +-- +-- AUTO_INCREMENT for table `data_penduduk` +-- +ALTER TABLE `data_penduduk` + MODIFY `id_penduduk` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=24; + +-- +-- AUTO_INCREMENT for table `komoditas` +-- +ALTER TABLE `komoditas` + MODIFY `id_komoditas` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; + +-- +-- AUTO_INCREMENT for table `prediksi_panen` +-- +ALTER TABLE `prediksi_panen` + MODIFY `id_prediksi` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=70; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `data_kecamatan` +-- +ALTER TABLE `data_kecamatan` + ADD CONSTRAINT `data_kecamatan_ibfk_1` FOREIGN KEY (`id_komoditas`) REFERENCES `komoditas` (`id_komoditas`); + +-- +-- Constraints for table `data_penduduk` +-- +ALTER TABLE `data_penduduk` + ADD CONSTRAINT `data_penduduk_ibfk_1` FOREIGN KEY (`id_kecamatan`) REFERENCES `data_kecamatan` (`id_kecamatan`); + +-- +-- Constraints for table `hasil_panen` +-- +ALTER TABLE `hasil_panen` + ADD CONSTRAINT `hasil_panen_ibfk_1` FOREIGN KEY (`id_kecamatan`) REFERENCES `data_kecamatan` (`id_kecamatan`), + ADD CONSTRAINT `hasil_panen_ibfk_2` FOREIGN KEY (`id_komoditas`) REFERENCES `komoditas` (`id_komoditas`); + +-- +-- Constraints for table `prediksi_panen` +-- +ALTER TABLE `prediksi_panen` + ADD CONSTRAINT `prediksi_panen_ibfk_1` FOREIGN KEY (`id_kecamatan`) REFERENCES `data_kecamatan` (`id_kecamatan`), + ADD CONSTRAINT `prediksi_panen_ibfk_2` FOREIGN KEY (`id_komoditas`) REFERENCES `komoditas` (`id_komoditas`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..c85fb67 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,16 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends("next/core-web-vitals", "next/typescript"), +]; + +export default eslintConfig; diff --git a/jsvectormap.d.ts b/jsvectormap.d.ts new file mode 100644 index 0000000..740f3c9 --- /dev/null +++ b/jsvectormap.d.ts @@ -0,0 +1,4 @@ +declare module 'jsvectormap' { + const jsVectorMap: any; + export default jsVectorMap; +} diff --git a/lib/database.ts b/lib/database.ts new file mode 100644 index 0000000..b6a870d --- /dev/null +++ b/lib/database.ts @@ -0,0 +1,11 @@ +import { PrismaClient } from '@prisma/client'; + +declare global { + var prisma: PrismaClient | undefined; +} + +const prisma = globalThis.prisma ?? new PrismaClient(); + +if (process.env.NODE_ENV !== 'production') globalThis.prisma = prisma; + +export default prisma; diff --git a/lib/generated/prisma/client.d.ts b/lib/generated/prisma/client.d.ts new file mode 100644 index 0000000..bc20c6c --- /dev/null +++ b/lib/generated/prisma/client.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/lib/generated/prisma/client.js b/lib/generated/prisma/client.js new file mode 100644 index 0000000..fa52f0c --- /dev/null +++ b/lib/generated/prisma/client.js @@ -0,0 +1 @@ +module.exports = { ...require('.') } \ No newline at end of file diff --git a/lib/generated/prisma/default.d.ts b/lib/generated/prisma/default.d.ts new file mode 100644 index 0000000..bc20c6c --- /dev/null +++ b/lib/generated/prisma/default.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/lib/generated/prisma/default.js b/lib/generated/prisma/default.js new file mode 100644 index 0000000..fa52f0c --- /dev/null +++ b/lib/generated/prisma/default.js @@ -0,0 +1 @@ +module.exports = { ...require('.') } \ No newline at end of file diff --git a/lib/generated/prisma/edge.d.ts b/lib/generated/prisma/edge.d.ts new file mode 100644 index 0000000..274b8fa --- /dev/null +++ b/lib/generated/prisma/edge.d.ts @@ -0,0 +1 @@ +export * from "./default" \ No newline at end of file diff --git a/lib/generated/prisma/edge.js b/lib/generated/prisma/edge.js new file mode 100644 index 0000000..07cdb20 --- /dev/null +++ b/lib/generated/prisma/edge.js @@ -0,0 +1,251 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + PrismaClientKnownRequestError, + PrismaClientUnknownRequestError, + PrismaClientRustPanicError, + PrismaClientInitializationError, + PrismaClientValidationError, + getPrismaClient, + sqltag, + empty, + join, + raw, + skip, + Decimal, + Debug, + objectEnumValues, + makeStrictEnum, + Extensions, + warnOnce, + defineDmmfProperty, + Public, + getRuntime, + createParam, +} = require('./runtime/edge.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError; +Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError +Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError +Prisma.PrismaClientInitializationError = PrismaClientInitializationError +Prisma.PrismaClientValidationError = PrismaClientValidationError +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = sqltag +Prisma.empty = empty +Prisma.join = join +Prisma.raw = raw +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = Extensions.getExtensionContext +Prisma.defineExtension = Extensions.defineExtension + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + + + +/** + * Enums + */ +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; + +exports.Prisma.DetailScalarFieldEnum = { + tax_id: 'tax_id', + phone: 'phone', + bio: 'bio', + city: 'city', + county: 'county', + post_kode: 'post_kode', + photo_profile: 'photo_profile' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; +/** + * Create the Client + */ +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "C:\\Users\\KiRa\\Documents\\MUHAMMAD ILHAM\\GitHub\\AI\\pandawa\\src\\generated\\prisma", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "windows", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "C:\\Users\\KiRa\\Documents\\MUHAMMAD ILHAM\\GitHub\\AI\\pandawa\\prisma\\schema.prisma", + "isCustomOutput": true + }, + "relativeEnvPaths": { + "rootEnvPath": "../../../.env", + "schemaEnvPath": "../../../.env" + }, + "relativePath": "../../../prisma", + "clientVersion": "6.6.0", + "engineVersion": "f676762280b54cd07c770017ed3711ddde35f37a", + "datasourceNames": [ + "database" + ], + "activeProvider": "postgresql", + "inlineDatasources": { + "database": { + "url": { + "fromEnvVar": "DATABASE_URL", + "value": "postgresql://postgres:H3H3_Te-Nandayo@localhost:5432/postgres?schema=public" + } + } + }, + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource database {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id String @id @default(uuid())\n name String?\n email String? @unique\n password String\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n detail Detail?\n\n @@map(\"users\")\n}\n\nmodel Detail {\n tax_id String @id\n phone String\n bio String\n city String\n county String\n post_kode String\n photo_profile String\n\n user User @relation(fields: [tax_id], references: [id])\n\n @@map(\"detail\")\n}\n\nmodel Kecamatan {\n id_kecamatan Int @id @default(autoincrement())\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n nama_kecamatan String @database.VarChar(100)\n deskripsi String @database.Text\n gambar String @database.Text\n area Float\n posisi_x Float\n posisi_y Float\n penduduk Penduduk[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_kecamatan\")\n}\n\nmodel Penduduk {\n id_penduduk Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n data_tahun Int\n jumlah_penduduk Float\n laju_pertumbuhan String @database.VarChar(30)\n\n @@map(\"data_penduduk\")\n}\n\nmodel Komoditas {\n id_komoditas Int @id @default(autoincrement())\n nama_komoditas String @database.VarChar(100)\n posisi_x Float\n posisi_y Float\n kecamatan Kecamatan[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_komoditas\")\n}\n\nmodel HasilPanen {\n id_panen Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_panen Int\n produksi Float\n luas_panen Float\n produktivitas Float\n\n @@map(\"hasil_panen\")\n}\n\nmodel PrediksiPanen {\n id_prediksi Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_prediksi Int\n hasil_prediksi Int\n\n @@map(\"prediksi_panen\")\n}\n", + "inlineSchemaHash": "96a1ea5171d7c51776a55202d2c2398d648f7c4c751b72c7756bcb6a17610839", + "copyEngine": true +} +config.dirname = '/' + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"detail\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Detail\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Detail\":{\"dbName\":\"detail\",\"schema\":null,\"fields\":[{\"name\":\"tax_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phone\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bio\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"city\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"county\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"post_kode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"photo_profile\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[\"tax_id\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Kecamatan\":{\"dbName\":\"data_kecamatan\",\"schema\":null,\"fields\":[{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deskripsi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"gambar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"area\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"penduduk\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Penduduk\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Penduduk\":{\"dbName\":\"data_penduduk\",\"schema\":null,\"fields\":[{\"name\":\"id_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"data_tahun\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"jumlah_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"laju_pertumbuhan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"30\"]],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Komoditas\":{\"dbName\":\"data_komoditas\",\"schema\":null,\"fields\":[{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"HasilPanen\":{\"dbName\":\"hasil_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"luas_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produktivitas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"PrediksiPanen\":{\"dbName\":\"prediksi_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +defineDmmfProperty(exports.Prisma, config.runtimeDataModel) +config.engineWasm = undefined +config.compilerWasm = undefined + +config.injectableEdgeEnv = () => ({ + parsed: { + DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined + } +}) + +if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) { + Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) +} + +const PrismaClient = getPrismaClient(config) +exports.PrismaClient = PrismaClient +Object.assign(exports, Prisma) + diff --git a/lib/generated/prisma/index-browser.js b/lib/generated/prisma/index-browser.js new file mode 100644 index 0000000..0b91359 --- /dev/null +++ b/lib/generated/prisma/index-browser.js @@ -0,0 +1,238 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + Decimal, + objectEnumValues, + makeStrictEnum, + Public, + getRuntime, + skip +} = require('./runtime/index-browser.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)}; +Prisma.PrismaClientUnknownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientRustPanicError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientInitializationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientValidationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.empty = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.join = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.raw = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.defineExtension = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + +/** + * Enums + */ + +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; + +exports.Prisma.DetailScalarFieldEnum = { + tax_id: 'tax_id', + phone: 'phone', + bio: 'bio', + city: 'city', + county: 'county', + post_kode: 'post_kode', + photo_profile: 'photo_profile' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; + +/** + * This is a stub Prisma Client that will error at runtime if called. + */ +class PrismaClient { + constructor() { + return new Proxy(this, { + get(target, prop) { + let message + const runtime = getRuntime() + if (runtime.isEdge) { + message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either: +- Use Prisma Accelerate: https://pris.ly/d/accelerate +- Use Driver Adapters: https://pris.ly/d/driver-adapters +`; + } else { + message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).' + } + + message += ` +If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report` + + throw new Error(message) + } + }) + } +} + +exports.PrismaClient = PrismaClient + +Object.assign(exports, Prisma) diff --git a/lib/generated/prisma/index.d.ts b/lib/generated/prisma/index.d.ts new file mode 100644 index 0000000..290acc3 --- /dev/null +++ b/lib/generated/prisma/index.d.ts @@ -0,0 +1,12521 @@ + +/** + * Client +**/ + +import * as runtime from './runtime/library.js'; +import $Types = runtime.Types // general types +import $Public = runtime.Types.Public +import $Utils = runtime.Types.Utils +import $Extensions = runtime.Types.Extensions +import $Result = runtime.Types.Result + +export type PrismaPromise = $Public.PrismaPromise + + +/** + * Model User + * + */ +export type User = $Result.DefaultSelection +/** + * Model Detail + * + */ +export type Detail = $Result.DefaultSelection +/** + * Model Kecamatan + * + */ +export type Kecamatan = $Result.DefaultSelection +/** + * Model Penduduk + * + */ +export type Penduduk = $Result.DefaultSelection +/** + * Model Komoditas + * + */ +export type Komoditas = $Result.DefaultSelection +/** + * Model HasilPanen + * + */ +export type HasilPanen = $Result.DefaultSelection +/** + * Model PrediksiPanen + * + */ +export type PrediksiPanen = $Result.DefaultSelection + +/** + * ## Prisma Client ʲˢ + * + * Type-safe database client for TypeScript & Node.js + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ +export class PrismaClient< + ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never, + ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs +> { + [K: symbol]: { types: Prisma.TypeMap['other'] } + + /** + * ## Prisma Client ʲˢ + * + * Type-safe database client for TypeScript & Node.js + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ + + constructor(optionsArg ?: Prisma.Subset); + $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient; + + /** + * Connect with the database + */ + $connect(): $Utils.JsPromise; + + /** + * Disconnect from the database + */ + $disconnect(): $Utils.JsPromise; + + /** + * Add a middleware + * @deprecated since 4.16.0. For new code, prefer client extensions instead. + * @see https://pris.ly/d/extensions + */ + $use(cb: Prisma.Middleware): void + +/** + * Executes a prepared raw query and returns the number of affected rows. + * @example + * ``` + * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Executes a raw query and returns the number of affected rows. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a prepared raw query and returns the `SELECT` data. + * @example + * ``` + * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a raw query and returns the `SELECT` data. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + + /** + * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. + * @example + * ``` + * const [george, bob, alice] = await prisma.$transaction([ + * prisma.user.create({ data: { name: 'George' } }), + * prisma.user.create({ data: { name: 'Bob' } }), + * prisma.user.create({ data: { name: 'Alice' } }), + * ]) + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions). + */ + $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise> + + $transaction(fn: (prisma: Omit) => $Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise + + + $extends: $Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs, $Utils.Call, { + extArgs: ExtArgs + }>> + + /** + * `prisma.user`: Exposes CRUD operations for the **User** model. + * Example usage: + * ```ts + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + */ + get user(): Prisma.UserDelegate; + + /** + * `prisma.detail`: Exposes CRUD operations for the **Detail** model. + * Example usage: + * ```ts + * // Fetch zero or more Details + * const details = await prisma.detail.findMany() + * ``` + */ + get detail(): Prisma.DetailDelegate; + + /** + * `prisma.kecamatan`: Exposes CRUD operations for the **Kecamatan** model. + * Example usage: + * ```ts + * // Fetch zero or more Kecamatans + * const kecamatans = await prisma.kecamatan.findMany() + * ``` + */ + get kecamatan(): Prisma.KecamatanDelegate; + + /** + * `prisma.penduduk`: Exposes CRUD operations for the **Penduduk** model. + * Example usage: + * ```ts + * // Fetch zero or more Penduduks + * const penduduks = await prisma.penduduk.findMany() + * ``` + */ + get penduduk(): Prisma.PendudukDelegate; + + /** + * `prisma.komoditas`: Exposes CRUD operations for the **Komoditas** model. + * Example usage: + * ```ts + * // Fetch zero or more Komoditas + * const komoditas = await prisma.komoditas.findMany() + * ``` + */ + get komoditas(): Prisma.KomoditasDelegate; + + /** + * `prisma.hasilPanen`: Exposes CRUD operations for the **HasilPanen** model. + * Example usage: + * ```ts + * // Fetch zero or more HasilPanens + * const hasilPanens = await prisma.hasilPanen.findMany() + * ``` + */ + get hasilPanen(): Prisma.HasilPanenDelegate; + + /** + * `prisma.prediksiPanen`: Exposes CRUD operations for the **PrediksiPanen** model. + * Example usage: + * ```ts + * // Fetch zero or more PrediksiPanens + * const prediksiPanens = await prisma.prediksiPanen.findMany() + * ``` + */ + get prediksiPanen(): Prisma.PrediksiPanenDelegate; +} + +export namespace Prisma { + export import DMMF = runtime.DMMF + + export type PrismaPromise = $Public.PrismaPromise + + /** + * Validator + */ + export import validator = runtime.Public.validator + + /** + * Prisma Errors + */ + export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError + export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError + export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError + export import PrismaClientInitializationError = runtime.PrismaClientInitializationError + export import PrismaClientValidationError = runtime.PrismaClientValidationError + + /** + * Re-export of sql-template-tag + */ + export import sql = runtime.sqltag + export import empty = runtime.empty + export import join = runtime.join + export import raw = runtime.raw + export import Sql = runtime.Sql + + + + /** + * Decimal.js + */ + export import Decimal = runtime.Decimal + + export type DecimalJsLike = runtime.DecimalJsLike + + /** + * Metrics + */ + export type Metrics = runtime.Metrics + export type Metric = runtime.Metric + export type MetricHistogram = runtime.MetricHistogram + export type MetricHistogramBucket = runtime.MetricHistogramBucket + + /** + * Extensions + */ + export import Extension = $Extensions.UserArgs + export import getExtensionContext = runtime.Extensions.getExtensionContext + export import Args = $Public.Args + export import Payload = $Public.Payload + export import Result = $Public.Result + export import Exact = $Public.Exact + + /** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ + export type PrismaVersion = { + client: string + } + + export const prismaVersion: PrismaVersion + + /** + * Utility Types + */ + + + export import JsonObject = runtime.JsonObject + export import JsonArray = runtime.JsonArray + export import JsonValue = runtime.JsonValue + export import InputJsonObject = runtime.InputJsonObject + export import InputJsonArray = runtime.InputJsonArray + export import InputJsonValue = runtime.InputJsonValue + + /** + * Types of the values used to represent different kinds of `null` values when working with JSON fields. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + namespace NullTypes { + /** + * Type of `Prisma.DbNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.DbNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class DbNull { + private DbNull: never + private constructor() + } + + /** + * Type of `Prisma.JsonNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class JsonNull { + private JsonNull: never + private constructor() + } + + /** + * Type of `Prisma.AnyNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class AnyNull { + private AnyNull: never + private constructor() + } + } + + /** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const DbNull: NullTypes.DbNull + + /** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const JsonNull: NullTypes.JsonNull + + /** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const AnyNull: NullTypes.AnyNull + + type SelectAndInclude = { + select: any + include: any + } + + type SelectAndOmit = { + select: any + omit: any + } + + /** + * Get the type of the value, that the Promise holds. + */ + export type PromiseType> = T extends PromiseLike ? U : T; + + /** + * Get the return type of a function which returns a Promise. + */ + export type PromiseReturnType $Utils.JsPromise> = PromiseType> + + /** + * From T, pick a set of properties whose keys are in the union K + */ + type Prisma__Pick = { + [P in K]: T[P]; + }; + + + export type Enumerable = T | Array; + + export type RequiredKeys = { + [K in keyof T]-?: {} extends Prisma__Pick ? never : K + }[keyof T] + + export type TruthyKeys = keyof { + [K in keyof T as T[K] extends false | undefined | null ? never : K]: K + } + + export type TrueKeys = TruthyKeys>> + + /** + * Subset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection + */ + export type Subset = { + [key in keyof T]: key extends keyof U ? T[key] : never; + }; + + /** + * SelectSubset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection. + * Additionally, it validates, if both select and include are present. If the case, it errors. + */ + export type SelectSubset = { + [key in keyof T]: key extends keyof U ? T[key] : never + } & + (T extends SelectAndInclude + ? 'Please either choose `select` or `include`.' + : T extends SelectAndOmit + ? 'Please either choose `select` or `omit`.' + : {}) + + /** + * Subset + Intersection + * @desc From `T` pick properties that exist in `U` and intersect `K` + */ + export type SubsetIntersection = { + [key in keyof T]: key extends keyof U ? T[key] : never + } & + K + + type Without = { [P in Exclude]?: never }; + + /** + * XOR is needed to have a real mutually exclusive union type + * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types + */ + type XOR = + T extends object ? + U extends object ? + (Without & U) | (Without & T) + : U : T + + + /** + * Is T a Record? + */ + type IsObject = T extends Array + ? False + : T extends Date + ? False + : T extends Uint8Array + ? False + : T extends BigInt + ? False + : T extends object + ? True + : False + + + /** + * If it's T[], return T + */ + export type UnEnumerate = T extends Array ? U : T + + /** + * From ts-toolbelt + */ + + type __Either = Omit & + { + // Merge all but K + [P in K]: Prisma__Pick // With K possibilities + }[K] + + type EitherStrict = Strict<__Either> + + type EitherLoose = ComputeRaw<__Either> + + type _Either< + O extends object, + K extends Key, + strict extends Boolean + > = { + 1: EitherStrict + 0: EitherLoose + }[strict] + + type Either< + O extends object, + K extends Key, + strict extends Boolean = 1 + > = O extends unknown ? _Either : never + + export type Union = any + + type PatchUndefined = { + [K in keyof O]: O[K] extends undefined ? At : O[K] + } & {} + + /** Helper Types for "Merge" **/ + export type IntersectOf = ( + U extends unknown ? (k: U) => void : never + ) extends (k: infer I) => void + ? I + : never + + export type Overwrite = { + [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; + } & {}; + + type _Merge = IntersectOf; + }>>; + + type Key = string | number | symbol; + type AtBasic = K extends keyof O ? O[K] : never; + type AtStrict = O[K & keyof O]; + type AtLoose = O extends unknown ? AtStrict : never; + export type At = { + 1: AtStrict; + 0: AtLoose; + }[strict]; + + export type ComputeRaw = A extends Function ? A : { + [K in keyof A]: A[K]; + } & {}; + + export type OptionalFlat = { + [K in keyof O]?: O[K]; + } & {}; + + type _Record = { + [P in K]: T; + }; + + // cause typescript not to expand types and preserve names + type NoExpand = T extends unknown ? T : never; + + // this type assumes the passed object is entirely optional + type AtLeast = NoExpand< + O extends unknown + ? | (K extends keyof O ? { [P in K]: O[P] } & O : O) + | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O + : never>; + + type _Strict = U extends unknown ? U & OptionalFlat<_Record, keyof U>, never>> : never; + + export type Strict = ComputeRaw<_Strict>; + /** End Helper Types for "Merge" **/ + + export type Merge = ComputeRaw<_Merge>>; + + /** + A [[Boolean]] + */ + export type Boolean = True | False + + // /** + // 1 + // */ + export type True = 1 + + /** + 0 + */ + export type False = 0 + + export type Not = { + 0: 1 + 1: 0 + }[B] + + export type Extends = [A1] extends [never] + ? 0 // anything `never` is false + : A1 extends A2 + ? 1 + : 0 + + export type Has = Not< + Extends, U1> + > + + export type Or = { + 0: { + 0: 0 + 1: 1 + } + 1: { + 0: 1 + 1: 1 + } + }[B1][B2] + + export type Keys = U extends unknown ? keyof U : never + + type Cast = A extends B ? A : B; + + export const type: unique symbol; + + + + /** + * Used by group by + */ + + export type GetScalarType = O extends object ? { + [P in keyof T]: P extends keyof O + ? O[P] + : never + } : never + + type FieldPaths< + T, + U = Omit + > = IsObject extends True ? U : T + + type GetHavingFields = { + [K in keyof T]: Or< + Or, Extends<'AND', K>>, + Extends<'NOT', K> + > extends True + ? // infer is only needed to not hit TS limit + // based on the brilliant idea of Pierre-Antoine Mills + // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 + T[K] extends infer TK + ? GetHavingFields extends object ? Merge> : never> + : never + : {} extends FieldPaths + ? never + : K + }[keyof T] + + /** + * Convert tuple to union + */ + type _TupleToUnion = T extends (infer E)[] ? E : never + type TupleToUnion = _TupleToUnion + type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T + + /** + * Like `Pick`, but additionally can also accept an array of keys + */ + type PickEnumerable | keyof T> = Prisma__Pick> + + /** + * Exclude all keys with underscores + */ + type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T + + + export type FieldRef = runtime.FieldRef + + type FieldRefInputType = Model extends never ? never : FieldRef + + + export const ModelName: { + User: 'User', + Detail: 'Detail', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' + }; + + export type ModelName = (typeof ModelName)[keyof typeof ModelName] + + + export type Datasources = { + database?: Datasource + } + + interface TypeMapCb extends $Utils.Fn<{extArgs: $Extensions.InternalArgs }, $Utils.Record> { + returns: Prisma.TypeMap + } + + export type TypeMap = { + globalOmitOptions: { + omit: GlobalOmitOptions + } + meta: { + modelProps: "user" | "detail" | "kecamatan" | "penduduk" | "komoditas" | "hasilPanen" | "prediksiPanen" + txIsolationLevel: Prisma.TransactionIsolationLevel + } + model: { + User: { + payload: Prisma.$UserPayload + fields: Prisma.UserFieldRefs + operations: { + findUnique: { + args: Prisma.UserFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.UserFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.UserCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.UserCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.UserCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.UserDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.UserUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.UserUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.UserUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.UserGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.UserCountArgs + result: $Utils.Optional | number + } + } + } + Detail: { + payload: Prisma.$DetailPayload + fields: Prisma.DetailFieldRefs + operations: { + findUnique: { + args: Prisma.DetailFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.DetailFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.DetailFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.DetailFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.DetailFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.DetailCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.DetailCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.DetailCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.DetailDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.DetailUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.DetailDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.DetailUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.DetailUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.DetailUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.DetailAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.DetailGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.DetailCountArgs + result: $Utils.Optional | number + } + } + } + Kecamatan: { + payload: Prisma.$KecamatanPayload + fields: Prisma.KecamatanFieldRefs + operations: { + findUnique: { + args: Prisma.KecamatanFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.KecamatanFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.KecamatanFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.KecamatanFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.KecamatanFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.KecamatanCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.KecamatanCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.KecamatanCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.KecamatanDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.KecamatanUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.KecamatanDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.KecamatanUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.KecamatanUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.KecamatanUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.KecamatanAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.KecamatanGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.KecamatanCountArgs + result: $Utils.Optional | number + } + } + } + Penduduk: { + payload: Prisma.$PendudukPayload + fields: Prisma.PendudukFieldRefs + operations: { + findUnique: { + args: Prisma.PendudukFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.PendudukFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.PendudukFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.PendudukFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.PendudukFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.PendudukCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.PendudukCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.PendudukCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.PendudukDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.PendudukUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.PendudukDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.PendudukUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.PendudukUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.PendudukUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.PendudukAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.PendudukGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.PendudukCountArgs + result: $Utils.Optional | number + } + } + } + Komoditas: { + payload: Prisma.$KomoditasPayload + fields: Prisma.KomoditasFieldRefs + operations: { + findUnique: { + args: Prisma.KomoditasFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.KomoditasFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.KomoditasFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.KomoditasFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.KomoditasFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.KomoditasCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.KomoditasCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.KomoditasCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.KomoditasDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.KomoditasUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.KomoditasDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.KomoditasUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.KomoditasUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.KomoditasUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.KomoditasAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.KomoditasGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.KomoditasCountArgs + result: $Utils.Optional | number + } + } + } + HasilPanen: { + payload: Prisma.$HasilPanenPayload + fields: Prisma.HasilPanenFieldRefs + operations: { + findUnique: { + args: Prisma.HasilPanenFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.HasilPanenFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.HasilPanenFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.HasilPanenFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.HasilPanenFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.HasilPanenCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.HasilPanenCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.HasilPanenCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.HasilPanenDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.HasilPanenUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.HasilPanenDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.HasilPanenUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.HasilPanenUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.HasilPanenUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.HasilPanenAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.HasilPanenGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.HasilPanenCountArgs + result: $Utils.Optional | number + } + } + } + PrediksiPanen: { + payload: Prisma.$PrediksiPanenPayload + fields: Prisma.PrediksiPanenFieldRefs + operations: { + findUnique: { + args: Prisma.PrediksiPanenFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.PrediksiPanenFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.PrediksiPanenFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.PrediksiPanenFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.PrediksiPanenFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.PrediksiPanenCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.PrediksiPanenCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.PrediksiPanenCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.PrediksiPanenDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.PrediksiPanenUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.PrediksiPanenDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.PrediksiPanenUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.PrediksiPanenUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.PrediksiPanenUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.PrediksiPanenAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.PrediksiPanenGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.PrediksiPanenCountArgs + result: $Utils.Optional | number + } + } + } + } + } & { + other: { + payload: any + operations: { + $executeRaw: { + args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], + result: any + } + $executeRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + $queryRaw: { + args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], + result: any + } + $queryRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + } + } + } + export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs> + export type DefaultPrismaClient = PrismaClient + export type ErrorFormat = 'pretty' | 'colorless' | 'minimal' + export interface PrismaClientOptions { + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasourceUrl?: string + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat + /** + * @example + * ``` + * // Defaults to stdout + * log: ['query', 'info', 'warn', 'error'] + * + * // Emit as events + * log: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * { emit: 'stdout', level: 'error' } + * ] + * ``` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: (LogLevel | LogDefinition)[] + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number + timeout?: number + isolationLevel?: Prisma.TransactionIsolationLevel + } + /** + * Global configuration for omitting model fields by default. + * + * @example + * ``` + * const prisma = new PrismaClient({ + * omit: { + * user: { + * password: true + * } + * } + * }) + * ``` + */ + omit?: Prisma.GlobalOmitConfig + } + export type GlobalOmitConfig = { + user?: UserOmit + detail?: DetailOmit + kecamatan?: KecamatanOmit + penduduk?: PendudukOmit + komoditas?: KomoditasOmit + hasilPanen?: HasilPanenOmit + prediksiPanen?: PrediksiPanenOmit + } + + /* Types for Logging */ + export type LogLevel = 'info' | 'query' | 'warn' | 'error' + export type LogDefinition = { + level: LogLevel + emit: 'stdout' | 'event' + } + + export type GetLogType = T extends LogDefinition ? T['emit'] extends 'event' ? T['level'] : never : never + export type GetEvents = T extends Array ? + GetLogType | GetLogType | GetLogType | GetLogType + : never + + export type QueryEvent = { + timestamp: Date + query: string + params: string + duration: number + target: string + } + + export type LogEvent = { + timestamp: Date + message: string + target: string + } + /* End Types for Logging */ + + + export type PrismaAction = + | 'findUnique' + | 'findUniqueOrThrow' + | 'findMany' + | 'findFirst' + | 'findFirstOrThrow' + | 'create' + | 'createMany' + | 'createManyAndReturn' + | 'update' + | 'updateMany' + | 'updateManyAndReturn' + | 'upsert' + | 'delete' + | 'deleteMany' + | 'executeRaw' + | 'queryRaw' + | 'aggregate' + | 'count' + | 'runCommandRaw' + | 'findRaw' + | 'groupBy' + + /** + * These options are being passed into the middleware as "params" + */ + export type MiddlewareParams = { + model?: ModelName + action: PrismaAction + args: any + dataPath: string[] + runInTransaction: boolean + } + + /** + * The `T` type makes sure, that the `return proceed` is not forgotten in the middleware implementation + */ + export type Middleware = ( + params: MiddlewareParams, + next: (params: MiddlewareParams) => $Utils.JsPromise, + ) => $Utils.JsPromise + + // tested in getLogLevel.test.ts + export function getLogLevel(log: Array): LogLevel | undefined; + + /** + * `PrismaClient` proxy available in interactive transactions. + */ + export type TransactionClient = Omit + + export type Datasource = { + url?: string + } + + /** + * Count Types + */ + + + /** + * Count Type KecamatanCountOutputType + */ + + export type KecamatanCountOutputType = { + penduduk: number + hasil_panen: number + prediksi_panen: number + } + + export type KecamatanCountOutputTypeSelect = { + penduduk?: boolean | KecamatanCountOutputTypeCountPendudukArgs + hasil_panen?: boolean | KecamatanCountOutputTypeCountHasil_panenArgs + prediksi_panen?: boolean | KecamatanCountOutputTypeCountPrediksi_panenArgs + } + + // Custom InputTypes + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the KecamatanCountOutputType + */ + select?: KecamatanCountOutputTypeSelect | null + } + + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeCountPendudukArgs = { + where?: PendudukWhereInput + } + + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeCountHasil_panenArgs = { + where?: HasilPanenWhereInput + } + + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeCountPrediksi_panenArgs = { + where?: PrediksiPanenWhereInput + } + + + /** + * Count Type KomoditasCountOutputType + */ + + export type KomoditasCountOutputType = { + kecamatan: number + hasil_panen: number + prediksi_panen: number + } + + export type KomoditasCountOutputTypeSelect = { + kecamatan?: boolean | KomoditasCountOutputTypeCountKecamatanArgs + hasil_panen?: boolean | KomoditasCountOutputTypeCountHasil_panenArgs + prediksi_panen?: boolean | KomoditasCountOutputTypeCountPrediksi_panenArgs + } + + // Custom InputTypes + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the KomoditasCountOutputType + */ + select?: KomoditasCountOutputTypeSelect | null + } + + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeCountKecamatanArgs = { + where?: KecamatanWhereInput + } + + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeCountHasil_panenArgs = { + where?: HasilPanenWhereInput + } + + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeCountPrediksi_panenArgs = { + where?: PrediksiPanenWhereInput + } + + + /** + * Models + */ + + /** + * Model User + */ + + export type AggregateUser = { + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null + } + + export type UserMinAggregateOutputType = { + id: string | null + name: string | null + email: string | null + password: string | null + createdAt: Date | null + updatedAt: Date | null + } + + export type UserMaxAggregateOutputType = { + id: string | null + name: string | null + email: string | null + password: string | null + createdAt: Date | null + updatedAt: Date | null + } + + export type UserCountAggregateOutputType = { + id: number + name: number + email: number + password: number + createdAt: number + updatedAt: number + _all: number + } + + + export type UserMinAggregateInputType = { + id?: true + name?: true + email?: true + password?: true + createdAt?: true + updatedAt?: true + } + + export type UserMaxAggregateInputType = { + id?: true + name?: true + email?: true + password?: true + createdAt?: true + updatedAt?: true + } + + export type UserCountAggregateInputType = { + id?: true + name?: true + email?: true + password?: true + createdAt?: true + updatedAt?: true + _all?: true + } + + export type UserAggregateArgs = { + /** + * Filter which User to aggregate. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Users + **/ + _count?: true | UserCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserMaxAggregateInputType + } + + export type GetUserAggregateType = { + [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type UserGroupByArgs = { + where?: UserWhereInput + orderBy?: UserOrderByWithAggregationInput | UserOrderByWithAggregationInput[] + by: UserScalarFieldEnum[] | UserScalarFieldEnum + having?: UserScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserCountAggregateInputType | true + _min?: UserMinAggregateInputType + _max?: UserMaxAggregateInputType + } + + export type UserGroupByOutputType = { + id: string + name: string | null + email: string | null + password: string + createdAt: Date + updatedAt: Date + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null + } + + type GetUserGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type UserSelect = $Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + password?: boolean + createdAt?: boolean + updatedAt?: boolean + detail?: boolean | User$detailArgs + }, ExtArgs["result"]["user"]> + + export type UserSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + password?: boolean + createdAt?: boolean + updatedAt?: boolean + }, ExtArgs["result"]["user"]> + + export type UserSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + password?: boolean + createdAt?: boolean + updatedAt?: boolean + }, ExtArgs["result"]["user"]> + + export type UserSelectScalar = { + id?: boolean + name?: boolean + email?: boolean + password?: boolean + createdAt?: boolean + updatedAt?: boolean + } + + export type UserOmit = $Extensions.GetOmit<"id" | "name" | "email" | "password" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]> + export type UserInclude = { + detail?: boolean | User$detailArgs + } + export type UserIncludeCreateManyAndReturn = {} + export type UserIncludeUpdateManyAndReturn = {} + + export type $UserPayload = { + name: "User" + objects: { + detail: Prisma.$DetailPayload | null + } + scalars: $Extensions.GetPayloadResult<{ + id: string + name: string | null + email: string | null + password: string + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["user"]> + composites: {} + } + + type UserGetPayload = $Result.GetResult + + type UserCountArgs = + Omit & { + select?: UserCountAggregateInputType | true + } + + export interface UserDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['User'], meta: { name: 'User' } } + /** + * Find zero or one User that matches the filter. + * @param {UserFindUniqueArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one User that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Users that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Users + * const users = await prisma.user.findMany() + * + * // Get first 10 Users + * const users = await prisma.user.findMany({ take: 10 }) + * + * // Only select the `id` + * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a User. + * @param {UserCreateArgs} args - Arguments to create a User. + * @example + * // Create one User + * const User = await prisma.user.create({ + * data: { + * // ... data to create a User + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Users. + * @param {UserCreateManyArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Users and returns the data saved in the database. + * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Users and only return the `id` + * const userWithIdOnly = await prisma.user.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a User. + * @param {UserDeleteArgs} args - Arguments to delete one User. + * @example + * // Delete one User + * const User = await prisma.user.delete({ + * where: { + * // ... filter to delete one User + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one User. + * @param {UserUpdateArgs} args - Arguments to update one User. + * @example + * // Update one User + * const user = await prisma.user.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Users. + * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete. + * @example + * // Delete a few Users + * const { count } = await prisma.user.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Users + * const user = await prisma.user.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users and returns the data updated in the database. + * @param {UserUpdateManyAndReturnArgs} args - Arguments to update many Users. + * @example + * // Update many Users + * const user = await prisma.user.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Users and only return the `id` + * const userWithIdOnly = await prisma.user.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one User. + * @param {UserUpsertArgs} args - Arguments to update or create a User. + * @example + * // Update or create a User + * const user = await prisma.user.upsert({ + * create: { + * // ... data to create a User + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the User we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserCountArgs} args - Arguments to filter Users to count. + * @example + * // Count the number of Users + * const count = await prisma.user.count({ + * where: { + * // ... the filter for the Users we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends UserGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: UserGroupByArgs['orderBy'] } + : { orderBy?: UserGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the User model + */ + readonly fields: UserFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for User. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__UserClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + detail = {}>(args?: Subset>): Prisma__DetailClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the User model + */ + interface UserFieldRefs { + readonly id: FieldRef<"User", 'String'> + readonly name: FieldRef<"User", 'String'> + readonly email: FieldRef<"User", 'String'> + readonly password: FieldRef<"User", 'String'> + readonly createdAt: FieldRef<"User", 'DateTime'> + readonly updatedAt: FieldRef<"User", 'DateTime'> + } + + + // Custom InputTypes + /** + * User findUnique + */ + export type UserFindUniqueArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where: UserWhereUniqueInput + } + + /** + * User findUniqueOrThrow + */ + export type UserFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where: UserWhereUniqueInput + } + + /** + * User findFirst + */ + export type UserFindFirstArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User findFirstOrThrow + */ + export type UserFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User findMany + */ + export type UserFindManyArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which Users to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User create + */ + export type UserCreateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The data needed to create a User. + */ + data: XOR + } + + /** + * User createMany + */ + export type UserCreateManyArgs = { + /** + * The data used to create many Users. + */ + data: UserCreateManyInput | UserCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * User createManyAndReturn + */ + export type UserCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelectCreateManyAndReturn | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * The data used to create many Users. + */ + data: UserCreateManyInput | UserCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * User update + */ + export type UserUpdateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The data needed to update a User. + */ + data: XOR + /** + * Choose, which User to update. + */ + where: UserWhereUniqueInput + } + + /** + * User updateMany + */ + export type UserUpdateManyArgs = { + /** + * The data used to update Users. + */ + data: XOR + /** + * Filter which Users to update + */ + where?: UserWhereInput + /** + * Limit how many Users to update. + */ + limit?: number + } + + /** + * User updateManyAndReturn + */ + export type UserUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * The data used to update Users. + */ + data: XOR + /** + * Filter which Users to update + */ + where?: UserWhereInput + /** + * Limit how many Users to update. + */ + limit?: number + } + + /** + * User upsert + */ + export type UserUpsertArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The filter to search for the User to update in case it exists. + */ + where: UserWhereUniqueInput + /** + * In case the User found by the `where` argument doesn't exist, create a new User with this data. + */ + create: XOR + /** + * In case the User was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * User delete + */ + export type UserDeleteArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter which User to delete. + */ + where: UserWhereUniqueInput + } + + /** + * User deleteMany + */ + export type UserDeleteManyArgs = { + /** + * Filter which Users to delete + */ + where?: UserWhereInput + /** + * Limit how many Users to delete. + */ + limit?: number + } + + /** + * User.detail + */ + export type User$detailArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + where?: DetailWhereInput + } + + /** + * User without action + */ + export type UserDefaultArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + } + + + /** + * Model Detail + */ + + export type AggregateDetail = { + _count: DetailCountAggregateOutputType | null + _min: DetailMinAggregateOutputType | null + _max: DetailMaxAggregateOutputType | null + } + + export type DetailMinAggregateOutputType = { + tax_id: string | null + phone: string | null + bio: string | null + city: string | null + county: string | null + post_kode: string | null + photo_profile: string | null + } + + export type DetailMaxAggregateOutputType = { + tax_id: string | null + phone: string | null + bio: string | null + city: string | null + county: string | null + post_kode: string | null + photo_profile: string | null + } + + export type DetailCountAggregateOutputType = { + tax_id: number + phone: number + bio: number + city: number + county: number + post_kode: number + photo_profile: number + _all: number + } + + + export type DetailMinAggregateInputType = { + tax_id?: true + phone?: true + bio?: true + city?: true + county?: true + post_kode?: true + photo_profile?: true + } + + export type DetailMaxAggregateInputType = { + tax_id?: true + phone?: true + bio?: true + city?: true + county?: true + post_kode?: true + photo_profile?: true + } + + export type DetailCountAggregateInputType = { + tax_id?: true + phone?: true + bio?: true + city?: true + county?: true + post_kode?: true + photo_profile?: true + _all?: true + } + + export type DetailAggregateArgs = { + /** + * Filter which Detail to aggregate. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Details + **/ + _count?: true | DetailCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: DetailMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: DetailMaxAggregateInputType + } + + export type GetDetailAggregateType = { + [P in keyof T & keyof AggregateDetail]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type DetailGroupByArgs = { + where?: DetailWhereInput + orderBy?: DetailOrderByWithAggregationInput | DetailOrderByWithAggregationInput[] + by: DetailScalarFieldEnum[] | DetailScalarFieldEnum + having?: DetailScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: DetailCountAggregateInputType | true + _min?: DetailMinAggregateInputType + _max?: DetailMaxAggregateInputType + } + + export type DetailGroupByOutputType = { + tax_id: string + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + _count: DetailCountAggregateOutputType | null + _min: DetailMinAggregateOutputType | null + _max: DetailMaxAggregateOutputType | null + } + + type GetDetailGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof DetailGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type DetailSelect = $Extensions.GetSelect<{ + tax_id?: boolean + phone?: boolean + bio?: boolean + city?: boolean + county?: boolean + post_kode?: boolean + photo_profile?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["detail"]> + + export type DetailSelectCreateManyAndReturn = $Extensions.GetSelect<{ + tax_id?: boolean + phone?: boolean + bio?: boolean + city?: boolean + county?: boolean + post_kode?: boolean + photo_profile?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["detail"]> + + export type DetailSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + tax_id?: boolean + phone?: boolean + bio?: boolean + city?: boolean + county?: boolean + post_kode?: boolean + photo_profile?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["detail"]> + + export type DetailSelectScalar = { + tax_id?: boolean + phone?: boolean + bio?: boolean + city?: boolean + county?: boolean + post_kode?: boolean + photo_profile?: boolean + } + + export type DetailOmit = $Extensions.GetOmit<"tax_id" | "phone" | "bio" | "city" | "county" | "post_kode" | "photo_profile", ExtArgs["result"]["detail"]> + export type DetailInclude = { + user?: boolean | UserDefaultArgs + } + export type DetailIncludeCreateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + export type DetailIncludeUpdateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + + export type $DetailPayload = { + name: "Detail" + objects: { + user: Prisma.$UserPayload + } + scalars: $Extensions.GetPayloadResult<{ + tax_id: string + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + }, ExtArgs["result"]["detail"]> + composites: {} + } + + type DetailGetPayload = $Result.GetResult + + type DetailCountArgs = + Omit & { + select?: DetailCountAggregateInputType | true + } + + export interface DetailDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Detail'], meta: { name: 'Detail' } } + /** + * Find zero or one Detail that matches the filter. + * @param {DetailFindUniqueArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Detail that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {DetailFindUniqueOrThrowArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Detail that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailFindFirstArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Detail that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailFindFirstOrThrowArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Details that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Details + * const details = await prisma.detail.findMany() + * + * // Get first 10 Details + * const details = await prisma.detail.findMany({ take: 10 }) + * + * // Only select the `tax_id` + * const detailWithTax_idOnly = await prisma.detail.findMany({ select: { tax_id: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Detail. + * @param {DetailCreateArgs} args - Arguments to create a Detail. + * @example + * // Create one Detail + * const Detail = await prisma.detail.create({ + * data: { + * // ... data to create a Detail + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Details. + * @param {DetailCreateManyArgs} args - Arguments to create many Details. + * @example + * // Create many Details + * const detail = await prisma.detail.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Details and returns the data saved in the database. + * @param {DetailCreateManyAndReturnArgs} args - Arguments to create many Details. + * @example + * // Create many Details + * const detail = await prisma.detail.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Details and only return the `tax_id` + * const detailWithTax_idOnly = await prisma.detail.createManyAndReturn({ + * select: { tax_id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Detail. + * @param {DetailDeleteArgs} args - Arguments to delete one Detail. + * @example + * // Delete one Detail + * const Detail = await prisma.detail.delete({ + * where: { + * // ... filter to delete one Detail + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Detail. + * @param {DetailUpdateArgs} args - Arguments to update one Detail. + * @example + * // Update one Detail + * const detail = await prisma.detail.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Details. + * @param {DetailDeleteManyArgs} args - Arguments to filter Details to delete. + * @example + * // Delete a few Details + * const { count } = await prisma.detail.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Details. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Details + * const detail = await prisma.detail.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Details and returns the data updated in the database. + * @param {DetailUpdateManyAndReturnArgs} args - Arguments to update many Details. + * @example + * // Update many Details + * const detail = await prisma.detail.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Details and only return the `tax_id` + * const detailWithTax_idOnly = await prisma.detail.updateManyAndReturn({ + * select: { tax_id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Detail. + * @param {DetailUpsertArgs} args - Arguments to update or create a Detail. + * @example + * // Update or create a Detail + * const detail = await prisma.detail.upsert({ + * create: { + * // ... data to create a Detail + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Detail we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Details. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailCountArgs} args - Arguments to filter Details to count. + * @example + * // Count the number of Details + * const count = await prisma.detail.count({ + * where: { + * // ... the filter for the Details we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Detail. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Detail. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends DetailGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: DetailGroupByArgs['orderBy'] } + : { orderBy?: DetailGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetDetailGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Detail model + */ + readonly fields: DetailFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Detail. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__DetailClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Detail model + */ + interface DetailFieldRefs { + readonly tax_id: FieldRef<"Detail", 'String'> + readonly phone: FieldRef<"Detail", 'String'> + readonly bio: FieldRef<"Detail", 'String'> + readonly city: FieldRef<"Detail", 'String'> + readonly county: FieldRef<"Detail", 'String'> + readonly post_kode: FieldRef<"Detail", 'String'> + readonly photo_profile: FieldRef<"Detail", 'String'> + } + + + // Custom InputTypes + /** + * Detail findUnique + */ + export type DetailFindUniqueArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail findUniqueOrThrow + */ + export type DetailFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail findFirst + */ + export type DetailFindFirstArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Details. + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Details. + */ + distinct?: DetailScalarFieldEnum | DetailScalarFieldEnum[] + } + + /** + * Detail findFirstOrThrow + */ + export type DetailFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Details. + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Details. + */ + distinct?: DetailScalarFieldEnum | DetailScalarFieldEnum[] + } + + /** + * Detail findMany + */ + export type DetailFindManyArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Details to fetch. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Details. + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + distinct?: DetailScalarFieldEnum | DetailScalarFieldEnum[] + } + + /** + * Detail create + */ + export type DetailCreateArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * The data needed to create a Detail. + */ + data: XOR + } + + /** + * Detail createMany + */ + export type DetailCreateManyArgs = { + /** + * The data used to create many Details. + */ + data: DetailCreateManyInput | DetailCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Detail createManyAndReturn + */ + export type DetailCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * The data used to create many Details. + */ + data: DetailCreateManyInput | DetailCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailIncludeCreateManyAndReturn | null + } + + /** + * Detail update + */ + export type DetailUpdateArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * The data needed to update a Detail. + */ + data: XOR + /** + * Choose, which Detail to update. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail updateMany + */ + export type DetailUpdateManyArgs = { + /** + * The data used to update Details. + */ + data: XOR + /** + * Filter which Details to update + */ + where?: DetailWhereInput + /** + * Limit how many Details to update. + */ + limit?: number + } + + /** + * Detail updateManyAndReturn + */ + export type DetailUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * The data used to update Details. + */ + data: XOR + /** + * Filter which Details to update + */ + where?: DetailWhereInput + /** + * Limit how many Details to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailIncludeUpdateManyAndReturn | null + } + + /** + * Detail upsert + */ + export type DetailUpsertArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * The filter to search for the Detail to update in case it exists. + */ + where: DetailWhereUniqueInput + /** + * In case the Detail found by the `where` argument doesn't exist, create a new Detail with this data. + */ + create: XOR + /** + * In case the Detail was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Detail delete + */ + export type DetailDeleteArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter which Detail to delete. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail deleteMany + */ + export type DetailDeleteManyArgs = { + /** + * Filter which Details to delete + */ + where?: DetailWhereInput + /** + * Limit how many Details to delete. + */ + limit?: number + } + + /** + * Detail without action + */ + export type DetailDefaultArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + } + + + /** + * Model Kecamatan + */ + + export type AggregateKecamatan = { + _count: KecamatanCountAggregateOutputType | null + _avg: KecamatanAvgAggregateOutputType | null + _sum: KecamatanSumAggregateOutputType | null + _min: KecamatanMinAggregateOutputType | null + _max: KecamatanMaxAggregateOutputType | null + } + + export type KecamatanAvgAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + area: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KecamatanSumAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + area: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KecamatanMinAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + nama_kecamatan: string | null + deskripsi: string | null + gambar: string | null + area: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KecamatanMaxAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + nama_kecamatan: string | null + deskripsi: string | null + gambar: string | null + area: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KecamatanCountAggregateOutputType = { + id_kecamatan: number + id_komoditas: number + nama_kecamatan: number + deskripsi: number + gambar: number + area: number + posisi_x: number + posisi_y: number + _all: number + } + + + export type KecamatanAvgAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + area?: true + posisi_x?: true + posisi_y?: true + } + + export type KecamatanSumAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + area?: true + posisi_x?: true + posisi_y?: true + } + + export type KecamatanMinAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + nama_kecamatan?: true + deskripsi?: true + gambar?: true + area?: true + posisi_x?: true + posisi_y?: true + } + + export type KecamatanMaxAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + nama_kecamatan?: true + deskripsi?: true + gambar?: true + area?: true + posisi_x?: true + posisi_y?: true + } + + export type KecamatanCountAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + nama_kecamatan?: true + deskripsi?: true + gambar?: true + area?: true + posisi_x?: true + posisi_y?: true + _all?: true + } + + export type KecamatanAggregateArgs = { + /** + * Filter which Kecamatan to aggregate. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Kecamatans + **/ + _count?: true | KecamatanCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: KecamatanAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: KecamatanSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: KecamatanMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: KecamatanMaxAggregateInputType + } + + export type GetKecamatanAggregateType = { + [P in keyof T & keyof AggregateKecamatan]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type KecamatanGroupByArgs = { + where?: KecamatanWhereInput + orderBy?: KecamatanOrderByWithAggregationInput | KecamatanOrderByWithAggregationInput[] + by: KecamatanScalarFieldEnum[] | KecamatanScalarFieldEnum + having?: KecamatanScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: KecamatanCountAggregateInputType | true + _avg?: KecamatanAvgAggregateInputType + _sum?: KecamatanSumAggregateInputType + _min?: KecamatanMinAggregateInputType + _max?: KecamatanMaxAggregateInputType + } + + export type KecamatanGroupByOutputType = { + id_kecamatan: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + _count: KecamatanCountAggregateOutputType | null + _avg: KecamatanAvgAggregateOutputType | null + _sum: KecamatanSumAggregateOutputType | null + _min: KecamatanMinAggregateOutputType | null + _max: KecamatanMaxAggregateOutputType | null + } + + type GetKecamatanGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof KecamatanGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type KecamatanSelect = $Extensions.GetSelect<{ + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + komoditas?: boolean | KomoditasDefaultArgs + penduduk?: boolean | Kecamatan$pendudukArgs + hasil_panen?: boolean | Kecamatan$hasil_panenArgs + prediksi_panen?: boolean | Kecamatan$prediksi_panenArgs + _count?: boolean | KecamatanCountOutputTypeDefaultArgs + }, ExtArgs["result"]["kecamatan"]> + + export type KecamatanSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["kecamatan"]> + + export type KecamatanSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["kecamatan"]> + + export type KecamatanSelectScalar = { + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + } + + export type KecamatanOmit = $Extensions.GetOmit<"id_kecamatan" | "id_komoditas" | "nama_kecamatan" | "deskripsi" | "gambar" | "area" | "posisi_x" | "posisi_y", ExtArgs["result"]["kecamatan"]> + export type KecamatanInclude = { + komoditas?: boolean | KomoditasDefaultArgs + penduduk?: boolean | Kecamatan$pendudukArgs + hasil_panen?: boolean | Kecamatan$hasil_panenArgs + prediksi_panen?: boolean | Kecamatan$prediksi_panenArgs + _count?: boolean | KecamatanCountOutputTypeDefaultArgs + } + export type KecamatanIncludeCreateManyAndReturn = { + komoditas?: boolean | KomoditasDefaultArgs + } + export type KecamatanIncludeUpdateManyAndReturn = { + komoditas?: boolean | KomoditasDefaultArgs + } + + export type $KecamatanPayload = { + name: "Kecamatan" + objects: { + komoditas: Prisma.$KomoditasPayload + penduduk: Prisma.$PendudukPayload[] + hasil_panen: Prisma.$HasilPanenPayload[] + prediksi_panen: Prisma.$PrediksiPanenPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + id_kecamatan: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + }, ExtArgs["result"]["kecamatan"]> + composites: {} + } + + type KecamatanGetPayload = $Result.GetResult + + type KecamatanCountArgs = + Omit & { + select?: KecamatanCountAggregateInputType | true + } + + export interface KecamatanDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Kecamatan'], meta: { name: 'Kecamatan' } } + /** + * Find zero or one Kecamatan that matches the filter. + * @param {KecamatanFindUniqueArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Kecamatan that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {KecamatanFindUniqueOrThrowArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Kecamatan that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanFindFirstArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Kecamatan that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanFindFirstOrThrowArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Kecamatans that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Kecamatans + * const kecamatans = await prisma.kecamatan.findMany() + * + * // Get first 10 Kecamatans + * const kecamatans = await prisma.kecamatan.findMany({ take: 10 }) + * + * // Only select the `id_kecamatan` + * const kecamatanWithId_kecamatanOnly = await prisma.kecamatan.findMany({ select: { id_kecamatan: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Kecamatan. + * @param {KecamatanCreateArgs} args - Arguments to create a Kecamatan. + * @example + * // Create one Kecamatan + * const Kecamatan = await prisma.kecamatan.create({ + * data: { + * // ... data to create a Kecamatan + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Kecamatans. + * @param {KecamatanCreateManyArgs} args - Arguments to create many Kecamatans. + * @example + * // Create many Kecamatans + * const kecamatan = await prisma.kecamatan.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Kecamatans and returns the data saved in the database. + * @param {KecamatanCreateManyAndReturnArgs} args - Arguments to create many Kecamatans. + * @example + * // Create many Kecamatans + * const kecamatan = await prisma.kecamatan.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Kecamatans and only return the `id_kecamatan` + * const kecamatanWithId_kecamatanOnly = await prisma.kecamatan.createManyAndReturn({ + * select: { id_kecamatan: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Kecamatan. + * @param {KecamatanDeleteArgs} args - Arguments to delete one Kecamatan. + * @example + * // Delete one Kecamatan + * const Kecamatan = await prisma.kecamatan.delete({ + * where: { + * // ... filter to delete one Kecamatan + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Kecamatan. + * @param {KecamatanUpdateArgs} args - Arguments to update one Kecamatan. + * @example + * // Update one Kecamatan + * const kecamatan = await prisma.kecamatan.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Kecamatans. + * @param {KecamatanDeleteManyArgs} args - Arguments to filter Kecamatans to delete. + * @example + * // Delete a few Kecamatans + * const { count } = await prisma.kecamatan.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Kecamatans. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Kecamatans + * const kecamatan = await prisma.kecamatan.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Kecamatans and returns the data updated in the database. + * @param {KecamatanUpdateManyAndReturnArgs} args - Arguments to update many Kecamatans. + * @example + * // Update many Kecamatans + * const kecamatan = await prisma.kecamatan.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Kecamatans and only return the `id_kecamatan` + * const kecamatanWithId_kecamatanOnly = await prisma.kecamatan.updateManyAndReturn({ + * select: { id_kecamatan: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Kecamatan. + * @param {KecamatanUpsertArgs} args - Arguments to update or create a Kecamatan. + * @example + * // Update or create a Kecamatan + * const kecamatan = await prisma.kecamatan.upsert({ + * create: { + * // ... data to create a Kecamatan + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Kecamatan we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Kecamatans. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanCountArgs} args - Arguments to filter Kecamatans to count. + * @example + * // Count the number of Kecamatans + * const count = await prisma.kecamatan.count({ + * where: { + * // ... the filter for the Kecamatans we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Kecamatan. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Kecamatan. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends KecamatanGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: KecamatanGroupByArgs['orderBy'] } + : { orderBy?: KecamatanGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetKecamatanGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Kecamatan model + */ + readonly fields: KecamatanFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Kecamatan. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__KecamatanClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + komoditas = {}>(args?: Subset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + penduduk = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + hasil_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + prediksi_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Kecamatan model + */ + interface KecamatanFieldRefs { + readonly id_kecamatan: FieldRef<"Kecamatan", 'Int'> + readonly id_komoditas: FieldRef<"Kecamatan", 'Int'> + readonly nama_kecamatan: FieldRef<"Kecamatan", 'String'> + readonly deskripsi: FieldRef<"Kecamatan", 'String'> + readonly gambar: FieldRef<"Kecamatan", 'String'> + readonly area: FieldRef<"Kecamatan", 'Float'> + readonly posisi_x: FieldRef<"Kecamatan", 'Float'> + readonly posisi_y: FieldRef<"Kecamatan", 'Float'> + } + + + // Custom InputTypes + /** + * Kecamatan findUnique + */ + export type KecamatanFindUniqueArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan findUniqueOrThrow + */ + export type KecamatanFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan findFirst + */ + export type KecamatanFindFirstArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Kecamatans. + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Kecamatans. + */ + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Kecamatan findFirstOrThrow + */ + export type KecamatanFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Kecamatans. + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Kecamatans. + */ + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Kecamatan findMany + */ + export type KecamatanFindManyArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatans to fetch. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Kecamatans. + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Kecamatan create + */ + export type KecamatanCreateArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * The data needed to create a Kecamatan. + */ + data: XOR + } + + /** + * Kecamatan createMany + */ + export type KecamatanCreateManyArgs = { + /** + * The data used to create many Kecamatans. + */ + data: KecamatanCreateManyInput | KecamatanCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Kecamatan createManyAndReturn + */ + export type KecamatanCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * The data used to create many Kecamatans. + */ + data: KecamatanCreateManyInput | KecamatanCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanIncludeCreateManyAndReturn | null + } + + /** + * Kecamatan update + */ + export type KecamatanUpdateArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * The data needed to update a Kecamatan. + */ + data: XOR + /** + * Choose, which Kecamatan to update. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan updateMany + */ + export type KecamatanUpdateManyArgs = { + /** + * The data used to update Kecamatans. + */ + data: XOR + /** + * Filter which Kecamatans to update + */ + where?: KecamatanWhereInput + /** + * Limit how many Kecamatans to update. + */ + limit?: number + } + + /** + * Kecamatan updateManyAndReturn + */ + export type KecamatanUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * The data used to update Kecamatans. + */ + data: XOR + /** + * Filter which Kecamatans to update + */ + where?: KecamatanWhereInput + /** + * Limit how many Kecamatans to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanIncludeUpdateManyAndReturn | null + } + + /** + * Kecamatan upsert + */ + export type KecamatanUpsertArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * The filter to search for the Kecamatan to update in case it exists. + */ + where: KecamatanWhereUniqueInput + /** + * In case the Kecamatan found by the `where` argument doesn't exist, create a new Kecamatan with this data. + */ + create: XOR + /** + * In case the Kecamatan was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Kecamatan delete + */ + export type KecamatanDeleteArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter which Kecamatan to delete. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan deleteMany + */ + export type KecamatanDeleteManyArgs = { + /** + * Filter which Kecamatans to delete + */ + where?: KecamatanWhereInput + /** + * Limit how many Kecamatans to delete. + */ + limit?: number + } + + /** + * Kecamatan.penduduk + */ + export type Kecamatan$pendudukArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + where?: PendudukWhereInput + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + cursor?: PendudukWhereUniqueInput + take?: number + skip?: number + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Kecamatan.hasil_panen + */ + export type Kecamatan$hasil_panenArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + where?: HasilPanenWhereInput + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + cursor?: HasilPanenWhereUniqueInput + take?: number + skip?: number + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * Kecamatan.prediksi_panen + */ + export type Kecamatan$prediksi_panenArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + where?: PrediksiPanenWhereInput + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + cursor?: PrediksiPanenWhereUniqueInput + take?: number + skip?: number + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * Kecamatan without action + */ + export type KecamatanDefaultArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + } + + + /** + * Model Penduduk + */ + + export type AggregatePenduduk = { + _count: PendudukCountAggregateOutputType | null + _avg: PendudukAvgAggregateOutputType | null + _sum: PendudukSumAggregateOutputType | null + _min: PendudukMinAggregateOutputType | null + _max: PendudukMaxAggregateOutputType | null + } + + export type PendudukAvgAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + } + + export type PendudukSumAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + } + + export type PendudukMinAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + laju_pertumbuhan: string | null + } + + export type PendudukMaxAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + laju_pertumbuhan: string | null + } + + export type PendudukCountAggregateOutputType = { + id_penduduk: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: number + _all: number + } + + + export type PendudukAvgAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + } + + export type PendudukSumAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + } + + export type PendudukMinAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + laju_pertumbuhan?: true + } + + export type PendudukMaxAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + laju_pertumbuhan?: true + } + + export type PendudukCountAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + laju_pertumbuhan?: true + _all?: true + } + + export type PendudukAggregateArgs = { + /** + * Filter which Penduduk to aggregate. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Penduduks + **/ + _count?: true | PendudukCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: PendudukAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: PendudukSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: PendudukMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: PendudukMaxAggregateInputType + } + + export type GetPendudukAggregateType = { + [P in keyof T & keyof AggregatePenduduk]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type PendudukGroupByArgs = { + where?: PendudukWhereInput + orderBy?: PendudukOrderByWithAggregationInput | PendudukOrderByWithAggregationInput[] + by: PendudukScalarFieldEnum[] | PendudukScalarFieldEnum + having?: PendudukScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: PendudukCountAggregateInputType | true + _avg?: PendudukAvgAggregateInputType + _sum?: PendudukSumAggregateInputType + _min?: PendudukMinAggregateInputType + _max?: PendudukMaxAggregateInputType + } + + export type PendudukGroupByOutputType = { + id_penduduk: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + _count: PendudukCountAggregateOutputType | null + _avg: PendudukAvgAggregateOutputType | null + _sum: PendudukSumAggregateOutputType | null + _min: PendudukMinAggregateOutputType | null + _max: PendudukMaxAggregateOutputType | null + } + + type GetPendudukGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof PendudukGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type PendudukSelect = $Extensions.GetSelect<{ + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + }, ExtArgs["result"]["penduduk"]> + + export type PendudukSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + }, ExtArgs["result"]["penduduk"]> + + export type PendudukSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + }, ExtArgs["result"]["penduduk"]> + + export type PendudukSelectScalar = { + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + } + + export type PendudukOmit = $Extensions.GetOmit<"id_penduduk" | "id_kecamatan" | "data_tahun" | "jumlah_penduduk" | "laju_pertumbuhan", ExtArgs["result"]["penduduk"]> + export type PendudukInclude = { + kecamatan?: boolean | KecamatanDefaultArgs + } + export type PendudukIncludeCreateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + } + export type PendudukIncludeUpdateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + } + + export type $PendudukPayload = { + name: "Penduduk" + objects: { + kecamatan: Prisma.$KecamatanPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_penduduk: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + }, ExtArgs["result"]["penduduk"]> + composites: {} + } + + type PendudukGetPayload = $Result.GetResult + + type PendudukCountArgs = + Omit & { + select?: PendudukCountAggregateInputType | true + } + + export interface PendudukDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Penduduk'], meta: { name: 'Penduduk' } } + /** + * Find zero or one Penduduk that matches the filter. + * @param {PendudukFindUniqueArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Penduduk that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {PendudukFindUniqueOrThrowArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Penduduk that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukFindFirstArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Penduduk that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukFindFirstOrThrowArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Penduduks that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Penduduks + * const penduduks = await prisma.penduduk.findMany() + * + * // Get first 10 Penduduks + * const penduduks = await prisma.penduduk.findMany({ take: 10 }) + * + * // Only select the `id_penduduk` + * const pendudukWithId_pendudukOnly = await prisma.penduduk.findMany({ select: { id_penduduk: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Penduduk. + * @param {PendudukCreateArgs} args - Arguments to create a Penduduk. + * @example + * // Create one Penduduk + * const Penduduk = await prisma.penduduk.create({ + * data: { + * // ... data to create a Penduduk + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Penduduks. + * @param {PendudukCreateManyArgs} args - Arguments to create many Penduduks. + * @example + * // Create many Penduduks + * const penduduk = await prisma.penduduk.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Penduduks and returns the data saved in the database. + * @param {PendudukCreateManyAndReturnArgs} args - Arguments to create many Penduduks. + * @example + * // Create many Penduduks + * const penduduk = await prisma.penduduk.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Penduduks and only return the `id_penduduk` + * const pendudukWithId_pendudukOnly = await prisma.penduduk.createManyAndReturn({ + * select: { id_penduduk: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Penduduk. + * @param {PendudukDeleteArgs} args - Arguments to delete one Penduduk. + * @example + * // Delete one Penduduk + * const Penduduk = await prisma.penduduk.delete({ + * where: { + * // ... filter to delete one Penduduk + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Penduduk. + * @param {PendudukUpdateArgs} args - Arguments to update one Penduduk. + * @example + * // Update one Penduduk + * const penduduk = await prisma.penduduk.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Penduduks. + * @param {PendudukDeleteManyArgs} args - Arguments to filter Penduduks to delete. + * @example + * // Delete a few Penduduks + * const { count } = await prisma.penduduk.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Penduduks. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Penduduks + * const penduduk = await prisma.penduduk.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Penduduks and returns the data updated in the database. + * @param {PendudukUpdateManyAndReturnArgs} args - Arguments to update many Penduduks. + * @example + * // Update many Penduduks + * const penduduk = await prisma.penduduk.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Penduduks and only return the `id_penduduk` + * const pendudukWithId_pendudukOnly = await prisma.penduduk.updateManyAndReturn({ + * select: { id_penduduk: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Penduduk. + * @param {PendudukUpsertArgs} args - Arguments to update or create a Penduduk. + * @example + * // Update or create a Penduduk + * const penduduk = await prisma.penduduk.upsert({ + * create: { + * // ... data to create a Penduduk + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Penduduk we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Penduduks. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukCountArgs} args - Arguments to filter Penduduks to count. + * @example + * // Count the number of Penduduks + * const count = await prisma.penduduk.count({ + * where: { + * // ... the filter for the Penduduks we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Penduduk. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Penduduk. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends PendudukGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: PendudukGroupByArgs['orderBy'] } + : { orderBy?: PendudukGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetPendudukGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Penduduk model + */ + readonly fields: PendudukFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Penduduk. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__PendudukClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Penduduk model + */ + interface PendudukFieldRefs { + readonly id_penduduk: FieldRef<"Penduduk", 'Int'> + readonly id_kecamatan: FieldRef<"Penduduk", 'Int'> + readonly data_tahun: FieldRef<"Penduduk", 'Int'> + readonly jumlah_penduduk: FieldRef<"Penduduk", 'Float'> + readonly laju_pertumbuhan: FieldRef<"Penduduk", 'String'> + } + + + // Custom InputTypes + /** + * Penduduk findUnique + */ + export type PendudukFindUniqueArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk findUniqueOrThrow + */ + export type PendudukFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk findFirst + */ + export type PendudukFindFirstArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Penduduks. + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Penduduks. + */ + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Penduduk findFirstOrThrow + */ + export type PendudukFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Penduduks. + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Penduduks. + */ + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Penduduk findMany + */ + export type PendudukFindManyArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduks to fetch. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Penduduks. + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Penduduk create + */ + export type PendudukCreateArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * The data needed to create a Penduduk. + */ + data: XOR + } + + /** + * Penduduk createMany + */ + export type PendudukCreateManyArgs = { + /** + * The data used to create many Penduduks. + */ + data: PendudukCreateManyInput | PendudukCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Penduduk createManyAndReturn + */ + export type PendudukCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * The data used to create many Penduduks. + */ + data: PendudukCreateManyInput | PendudukCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukIncludeCreateManyAndReturn | null + } + + /** + * Penduduk update + */ + export type PendudukUpdateArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * The data needed to update a Penduduk. + */ + data: XOR + /** + * Choose, which Penduduk to update. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk updateMany + */ + export type PendudukUpdateManyArgs = { + /** + * The data used to update Penduduks. + */ + data: XOR + /** + * Filter which Penduduks to update + */ + where?: PendudukWhereInput + /** + * Limit how many Penduduks to update. + */ + limit?: number + } + + /** + * Penduduk updateManyAndReturn + */ + export type PendudukUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * The data used to update Penduduks. + */ + data: XOR + /** + * Filter which Penduduks to update + */ + where?: PendudukWhereInput + /** + * Limit how many Penduduks to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukIncludeUpdateManyAndReturn | null + } + + /** + * Penduduk upsert + */ + export type PendudukUpsertArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * The filter to search for the Penduduk to update in case it exists. + */ + where: PendudukWhereUniqueInput + /** + * In case the Penduduk found by the `where` argument doesn't exist, create a new Penduduk with this data. + */ + create: XOR + /** + * In case the Penduduk was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Penduduk delete + */ + export type PendudukDeleteArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter which Penduduk to delete. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk deleteMany + */ + export type PendudukDeleteManyArgs = { + /** + * Filter which Penduduks to delete + */ + where?: PendudukWhereInput + /** + * Limit how many Penduduks to delete. + */ + limit?: number + } + + /** + * Penduduk without action + */ + export type PendudukDefaultArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + } + + + /** + * Model Komoditas + */ + + export type AggregateKomoditas = { + _count: KomoditasCountAggregateOutputType | null + _avg: KomoditasAvgAggregateOutputType | null + _sum: KomoditasSumAggregateOutputType | null + _min: KomoditasMinAggregateOutputType | null + _max: KomoditasMaxAggregateOutputType | null + } + + export type KomoditasAvgAggregateOutputType = { + id_komoditas: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KomoditasSumAggregateOutputType = { + id_komoditas: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KomoditasMinAggregateOutputType = { + id_komoditas: number | null + nama_komoditas: string | null + posisi_x: number | null + posisi_y: number | null + } + + export type KomoditasMaxAggregateOutputType = { + id_komoditas: number | null + nama_komoditas: string | null + posisi_x: number | null + posisi_y: number | null + } + + export type KomoditasCountAggregateOutputType = { + id_komoditas: number + nama_komoditas: number + posisi_x: number + posisi_y: number + _all: number + } + + + export type KomoditasAvgAggregateInputType = { + id_komoditas?: true + posisi_x?: true + posisi_y?: true + } + + export type KomoditasSumAggregateInputType = { + id_komoditas?: true + posisi_x?: true + posisi_y?: true + } + + export type KomoditasMinAggregateInputType = { + id_komoditas?: true + nama_komoditas?: true + posisi_x?: true + posisi_y?: true + } + + export type KomoditasMaxAggregateInputType = { + id_komoditas?: true + nama_komoditas?: true + posisi_x?: true + posisi_y?: true + } + + export type KomoditasCountAggregateInputType = { + id_komoditas?: true + nama_komoditas?: true + posisi_x?: true + posisi_y?: true + _all?: true + } + + export type KomoditasAggregateArgs = { + /** + * Filter which Komoditas to aggregate. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Komoditas + **/ + _count?: true | KomoditasCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: KomoditasAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: KomoditasSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: KomoditasMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: KomoditasMaxAggregateInputType + } + + export type GetKomoditasAggregateType = { + [P in keyof T & keyof AggregateKomoditas]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type KomoditasGroupByArgs = { + where?: KomoditasWhereInput + orderBy?: KomoditasOrderByWithAggregationInput | KomoditasOrderByWithAggregationInput[] + by: KomoditasScalarFieldEnum[] | KomoditasScalarFieldEnum + having?: KomoditasScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: KomoditasCountAggregateInputType | true + _avg?: KomoditasAvgAggregateInputType + _sum?: KomoditasSumAggregateInputType + _min?: KomoditasMinAggregateInputType + _max?: KomoditasMaxAggregateInputType + } + + export type KomoditasGroupByOutputType = { + id_komoditas: number + nama_komoditas: string + posisi_x: number + posisi_y: number + _count: KomoditasCountAggregateOutputType | null + _avg: KomoditasAvgAggregateOutputType | null + _sum: KomoditasSumAggregateOutputType | null + _min: KomoditasMinAggregateOutputType | null + _max: KomoditasMaxAggregateOutputType | null + } + + type GetKomoditasGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof KomoditasGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type KomoditasSelect = $Extensions.GetSelect<{ + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + kecamatan?: boolean | Komoditas$kecamatanArgs + hasil_panen?: boolean | Komoditas$hasil_panenArgs + prediksi_panen?: boolean | Komoditas$prediksi_panenArgs + _count?: boolean | KomoditasCountOutputTypeDefaultArgs + }, ExtArgs["result"]["komoditas"]> + + export type KomoditasSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + }, ExtArgs["result"]["komoditas"]> + + export type KomoditasSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + }, ExtArgs["result"]["komoditas"]> + + export type KomoditasSelectScalar = { + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + } + + export type KomoditasOmit = $Extensions.GetOmit<"id_komoditas" | "nama_komoditas" | "posisi_x" | "posisi_y", ExtArgs["result"]["komoditas"]> + export type KomoditasInclude = { + kecamatan?: boolean | Komoditas$kecamatanArgs + hasil_panen?: boolean | Komoditas$hasil_panenArgs + prediksi_panen?: boolean | Komoditas$prediksi_panenArgs + _count?: boolean | KomoditasCountOutputTypeDefaultArgs + } + export type KomoditasIncludeCreateManyAndReturn = {} + export type KomoditasIncludeUpdateManyAndReturn = {} + + export type $KomoditasPayload = { + name: "Komoditas" + objects: { + kecamatan: Prisma.$KecamatanPayload[] + hasil_panen: Prisma.$HasilPanenPayload[] + prediksi_panen: Prisma.$PrediksiPanenPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + id_komoditas: number + nama_komoditas: string + posisi_x: number + posisi_y: number + }, ExtArgs["result"]["komoditas"]> + composites: {} + } + + type KomoditasGetPayload = $Result.GetResult + + type KomoditasCountArgs = + Omit & { + select?: KomoditasCountAggregateInputType | true + } + + export interface KomoditasDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Komoditas'], meta: { name: 'Komoditas' } } + /** + * Find zero or one Komoditas that matches the filter. + * @param {KomoditasFindUniqueArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Komoditas that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {KomoditasFindUniqueOrThrowArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Komoditas that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasFindFirstArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Komoditas that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasFindFirstOrThrowArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Komoditas that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Komoditas + * const komoditas = await prisma.komoditas.findMany() + * + * // Get first 10 Komoditas + * const komoditas = await prisma.komoditas.findMany({ take: 10 }) + * + * // Only select the `id_komoditas` + * const komoditasWithId_komoditasOnly = await prisma.komoditas.findMany({ select: { id_komoditas: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Komoditas. + * @param {KomoditasCreateArgs} args - Arguments to create a Komoditas. + * @example + * // Create one Komoditas + * const Komoditas = await prisma.komoditas.create({ + * data: { + * // ... data to create a Komoditas + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Komoditas. + * @param {KomoditasCreateManyArgs} args - Arguments to create many Komoditas. + * @example + * // Create many Komoditas + * const komoditas = await prisma.komoditas.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Komoditas and returns the data saved in the database. + * @param {KomoditasCreateManyAndReturnArgs} args - Arguments to create many Komoditas. + * @example + * // Create many Komoditas + * const komoditas = await prisma.komoditas.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Komoditas and only return the `id_komoditas` + * const komoditasWithId_komoditasOnly = await prisma.komoditas.createManyAndReturn({ + * select: { id_komoditas: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Komoditas. + * @param {KomoditasDeleteArgs} args - Arguments to delete one Komoditas. + * @example + * // Delete one Komoditas + * const Komoditas = await prisma.komoditas.delete({ + * where: { + * // ... filter to delete one Komoditas + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Komoditas. + * @param {KomoditasUpdateArgs} args - Arguments to update one Komoditas. + * @example + * // Update one Komoditas + * const komoditas = await prisma.komoditas.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Komoditas. + * @param {KomoditasDeleteManyArgs} args - Arguments to filter Komoditas to delete. + * @example + * // Delete a few Komoditas + * const { count } = await prisma.komoditas.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Komoditas + * const komoditas = await prisma.komoditas.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Komoditas and returns the data updated in the database. + * @param {KomoditasUpdateManyAndReturnArgs} args - Arguments to update many Komoditas. + * @example + * // Update many Komoditas + * const komoditas = await prisma.komoditas.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Komoditas and only return the `id_komoditas` + * const komoditasWithId_komoditasOnly = await prisma.komoditas.updateManyAndReturn({ + * select: { id_komoditas: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Komoditas. + * @param {KomoditasUpsertArgs} args - Arguments to update or create a Komoditas. + * @example + * // Update or create a Komoditas + * const komoditas = await prisma.komoditas.upsert({ + * create: { + * // ... data to create a Komoditas + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Komoditas we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasCountArgs} args - Arguments to filter Komoditas to count. + * @example + * // Count the number of Komoditas + * const count = await prisma.komoditas.count({ + * where: { + * // ... the filter for the Komoditas we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends KomoditasGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: KomoditasGroupByArgs['orderBy'] } + : { orderBy?: KomoditasGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetKomoditasGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Komoditas model + */ + readonly fields: KomoditasFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Komoditas. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__KomoditasClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + hasil_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + prediksi_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Komoditas model + */ + interface KomoditasFieldRefs { + readonly id_komoditas: FieldRef<"Komoditas", 'Int'> + readonly nama_komoditas: FieldRef<"Komoditas", 'String'> + readonly posisi_x: FieldRef<"Komoditas", 'Float'> + readonly posisi_y: FieldRef<"Komoditas", 'Float'> + } + + + // Custom InputTypes + /** + * Komoditas findUnique + */ + export type KomoditasFindUniqueArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas findUniqueOrThrow + */ + export type KomoditasFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas findFirst + */ + export type KomoditasFindFirstArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Komoditas. + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Komoditas. + */ + distinct?: KomoditasScalarFieldEnum | KomoditasScalarFieldEnum[] + } + + /** + * Komoditas findFirstOrThrow + */ + export type KomoditasFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Komoditas. + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Komoditas. + */ + distinct?: KomoditasScalarFieldEnum | KomoditasScalarFieldEnum[] + } + + /** + * Komoditas findMany + */ + export type KomoditasFindManyArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Komoditas. + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + distinct?: KomoditasScalarFieldEnum | KomoditasScalarFieldEnum[] + } + + /** + * Komoditas create + */ + export type KomoditasCreateArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * The data needed to create a Komoditas. + */ + data: XOR + } + + /** + * Komoditas createMany + */ + export type KomoditasCreateManyArgs = { + /** + * The data used to create many Komoditas. + */ + data: KomoditasCreateManyInput | KomoditasCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Komoditas createManyAndReturn + */ + export type KomoditasCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * The data used to create many Komoditas. + */ + data: KomoditasCreateManyInput | KomoditasCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Komoditas update + */ + export type KomoditasUpdateArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * The data needed to update a Komoditas. + */ + data: XOR + /** + * Choose, which Komoditas to update. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas updateMany + */ + export type KomoditasUpdateManyArgs = { + /** + * The data used to update Komoditas. + */ + data: XOR + /** + * Filter which Komoditas to update + */ + where?: KomoditasWhereInput + /** + * Limit how many Komoditas to update. + */ + limit?: number + } + + /** + * Komoditas updateManyAndReturn + */ + export type KomoditasUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * The data used to update Komoditas. + */ + data: XOR + /** + * Filter which Komoditas to update + */ + where?: KomoditasWhereInput + /** + * Limit how many Komoditas to update. + */ + limit?: number + } + + /** + * Komoditas upsert + */ + export type KomoditasUpsertArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * The filter to search for the Komoditas to update in case it exists. + */ + where: KomoditasWhereUniqueInput + /** + * In case the Komoditas found by the `where` argument doesn't exist, create a new Komoditas with this data. + */ + create: XOR + /** + * In case the Komoditas was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Komoditas delete + */ + export type KomoditasDeleteArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter which Komoditas to delete. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas deleteMany + */ + export type KomoditasDeleteManyArgs = { + /** + * Filter which Komoditas to delete + */ + where?: KomoditasWhereInput + /** + * Limit how many Komoditas to delete. + */ + limit?: number + } + + /** + * Komoditas.kecamatan + */ + export type Komoditas$kecamatanArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + where?: KecamatanWhereInput + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + cursor?: KecamatanWhereUniqueInput + take?: number + skip?: number + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Komoditas.hasil_panen + */ + export type Komoditas$hasil_panenArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + where?: HasilPanenWhereInput + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + cursor?: HasilPanenWhereUniqueInput + take?: number + skip?: number + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * Komoditas.prediksi_panen + */ + export type Komoditas$prediksi_panenArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + where?: PrediksiPanenWhereInput + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + cursor?: PrediksiPanenWhereUniqueInput + take?: number + skip?: number + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * Komoditas without action + */ + export type KomoditasDefaultArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + } + + + /** + * Model HasilPanen + */ + + export type AggregateHasilPanen = { + _count: HasilPanenCountAggregateOutputType | null + _avg: HasilPanenAvgAggregateOutputType | null + _sum: HasilPanenSumAggregateOutputType | null + _min: HasilPanenMinAggregateOutputType | null + _max: HasilPanenMaxAggregateOutputType | null + } + + export type HasilPanenAvgAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + } + + export type HasilPanenSumAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + } + + export type HasilPanenMinAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + } + + export type HasilPanenMaxAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + } + + export type HasilPanenCountAggregateOutputType = { + id_panen: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + _all: number + } + + + export type HasilPanenAvgAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + } + + export type HasilPanenSumAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + } + + export type HasilPanenMinAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + } + + export type HasilPanenMaxAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + } + + export type HasilPanenCountAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + _all?: true + } + + export type HasilPanenAggregateArgs = { + /** + * Filter which HasilPanen to aggregate. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned HasilPanens + **/ + _count?: true | HasilPanenCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: HasilPanenAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: HasilPanenSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: HasilPanenMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: HasilPanenMaxAggregateInputType + } + + export type GetHasilPanenAggregateType = { + [P in keyof T & keyof AggregateHasilPanen]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type HasilPanenGroupByArgs = { + where?: HasilPanenWhereInput + orderBy?: HasilPanenOrderByWithAggregationInput | HasilPanenOrderByWithAggregationInput[] + by: HasilPanenScalarFieldEnum[] | HasilPanenScalarFieldEnum + having?: HasilPanenScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: HasilPanenCountAggregateInputType | true + _avg?: HasilPanenAvgAggregateInputType + _sum?: HasilPanenSumAggregateInputType + _min?: HasilPanenMinAggregateInputType + _max?: HasilPanenMaxAggregateInputType + } + + export type HasilPanenGroupByOutputType = { + id_panen: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + _count: HasilPanenCountAggregateOutputType | null + _avg: HasilPanenAvgAggregateOutputType | null + _sum: HasilPanenSumAggregateOutputType | null + _min: HasilPanenMinAggregateOutputType | null + _max: HasilPanenMaxAggregateOutputType | null + } + + type GetHasilPanenGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof HasilPanenGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type HasilPanenSelect = $Extensions.GetSelect<{ + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["hasilPanen"]> + + export type HasilPanenSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["hasilPanen"]> + + export type HasilPanenSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["hasilPanen"]> + + export type HasilPanenSelectScalar = { + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + } + + export type HasilPanenOmit = $Extensions.GetOmit<"id_panen" | "id_kecamatan" | "id_komoditas" | "tahun_panen" | "produksi" | "luas_panen" | "produktivitas", ExtArgs["result"]["hasilPanen"]> + export type HasilPanenInclude = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type HasilPanenIncludeCreateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type HasilPanenIncludeUpdateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + + export type $HasilPanenPayload = { + name: "HasilPanen" + objects: { + kecamatan: Prisma.$KecamatanPayload + komoditas: Prisma.$KomoditasPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_panen: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + }, ExtArgs["result"]["hasilPanen"]> + composites: {} + } + + type HasilPanenGetPayload = $Result.GetResult + + type HasilPanenCountArgs = + Omit & { + select?: HasilPanenCountAggregateInputType | true + } + + export interface HasilPanenDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['HasilPanen'], meta: { name: 'HasilPanen' } } + /** + * Find zero or one HasilPanen that matches the filter. + * @param {HasilPanenFindUniqueArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one HasilPanen that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {HasilPanenFindUniqueOrThrowArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first HasilPanen that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenFindFirstArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first HasilPanen that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenFindFirstOrThrowArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more HasilPanens that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all HasilPanens + * const hasilPanens = await prisma.hasilPanen.findMany() + * + * // Get first 10 HasilPanens + * const hasilPanens = await prisma.hasilPanen.findMany({ take: 10 }) + * + * // Only select the `id_panen` + * const hasilPanenWithId_panenOnly = await prisma.hasilPanen.findMany({ select: { id_panen: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a HasilPanen. + * @param {HasilPanenCreateArgs} args - Arguments to create a HasilPanen. + * @example + * // Create one HasilPanen + * const HasilPanen = await prisma.hasilPanen.create({ + * data: { + * // ... data to create a HasilPanen + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many HasilPanens. + * @param {HasilPanenCreateManyArgs} args - Arguments to create many HasilPanens. + * @example + * // Create many HasilPanens + * const hasilPanen = await prisma.hasilPanen.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many HasilPanens and returns the data saved in the database. + * @param {HasilPanenCreateManyAndReturnArgs} args - Arguments to create many HasilPanens. + * @example + * // Create many HasilPanens + * const hasilPanen = await prisma.hasilPanen.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many HasilPanens and only return the `id_panen` + * const hasilPanenWithId_panenOnly = await prisma.hasilPanen.createManyAndReturn({ + * select: { id_panen: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a HasilPanen. + * @param {HasilPanenDeleteArgs} args - Arguments to delete one HasilPanen. + * @example + * // Delete one HasilPanen + * const HasilPanen = await prisma.hasilPanen.delete({ + * where: { + * // ... filter to delete one HasilPanen + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one HasilPanen. + * @param {HasilPanenUpdateArgs} args - Arguments to update one HasilPanen. + * @example + * // Update one HasilPanen + * const hasilPanen = await prisma.hasilPanen.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more HasilPanens. + * @param {HasilPanenDeleteManyArgs} args - Arguments to filter HasilPanens to delete. + * @example + * // Delete a few HasilPanens + * const { count } = await prisma.hasilPanen.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more HasilPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many HasilPanens + * const hasilPanen = await prisma.hasilPanen.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more HasilPanens and returns the data updated in the database. + * @param {HasilPanenUpdateManyAndReturnArgs} args - Arguments to update many HasilPanens. + * @example + * // Update many HasilPanens + * const hasilPanen = await prisma.hasilPanen.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more HasilPanens and only return the `id_panen` + * const hasilPanenWithId_panenOnly = await prisma.hasilPanen.updateManyAndReturn({ + * select: { id_panen: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one HasilPanen. + * @param {HasilPanenUpsertArgs} args - Arguments to update or create a HasilPanen. + * @example + * // Update or create a HasilPanen + * const hasilPanen = await prisma.hasilPanen.upsert({ + * create: { + * // ... data to create a HasilPanen + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the HasilPanen we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of HasilPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenCountArgs} args - Arguments to filter HasilPanens to count. + * @example + * // Count the number of HasilPanens + * const count = await prisma.hasilPanen.count({ + * where: { + * // ... the filter for the HasilPanens we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a HasilPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by HasilPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends HasilPanenGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: HasilPanenGroupByArgs['orderBy'] } + : { orderBy?: HasilPanenGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetHasilPanenGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the HasilPanen model + */ + readonly fields: HasilPanenFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for HasilPanen. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__HasilPanenClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + komoditas = {}>(args?: Subset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the HasilPanen model + */ + interface HasilPanenFieldRefs { + readonly id_panen: FieldRef<"HasilPanen", 'Int'> + readonly id_kecamatan: FieldRef<"HasilPanen", 'Int'> + readonly id_komoditas: FieldRef<"HasilPanen", 'Int'> + readonly tahun_panen: FieldRef<"HasilPanen", 'Int'> + readonly produksi: FieldRef<"HasilPanen", 'Float'> + readonly luas_panen: FieldRef<"HasilPanen", 'Float'> + readonly produktivitas: FieldRef<"HasilPanen", 'Float'> + } + + + // Custom InputTypes + /** + * HasilPanen findUnique + */ + export type HasilPanenFindUniqueArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen findUniqueOrThrow + */ + export type HasilPanenFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen findFirst + */ + export type HasilPanenFindFirstArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for HasilPanens. + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of HasilPanens. + */ + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * HasilPanen findFirstOrThrow + */ + export type HasilPanenFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for HasilPanens. + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of HasilPanens. + */ + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * HasilPanen findMany + */ + export type HasilPanenFindManyArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanens to fetch. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing HasilPanens. + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * HasilPanen create + */ + export type HasilPanenCreateArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * The data needed to create a HasilPanen. + */ + data: XOR + } + + /** + * HasilPanen createMany + */ + export type HasilPanenCreateManyArgs = { + /** + * The data used to create many HasilPanens. + */ + data: HasilPanenCreateManyInput | HasilPanenCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * HasilPanen createManyAndReturn + */ + export type HasilPanenCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelectCreateManyAndReturn | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * The data used to create many HasilPanens. + */ + data: HasilPanenCreateManyInput | HasilPanenCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenIncludeCreateManyAndReturn | null + } + + /** + * HasilPanen update + */ + export type HasilPanenUpdateArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * The data needed to update a HasilPanen. + */ + data: XOR + /** + * Choose, which HasilPanen to update. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen updateMany + */ + export type HasilPanenUpdateManyArgs = { + /** + * The data used to update HasilPanens. + */ + data: XOR + /** + * Filter which HasilPanens to update + */ + where?: HasilPanenWhereInput + /** + * Limit how many HasilPanens to update. + */ + limit?: number + } + + /** + * HasilPanen updateManyAndReturn + */ + export type HasilPanenUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * The data used to update HasilPanens. + */ + data: XOR + /** + * Filter which HasilPanens to update + */ + where?: HasilPanenWhereInput + /** + * Limit how many HasilPanens to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenIncludeUpdateManyAndReturn | null + } + + /** + * HasilPanen upsert + */ + export type HasilPanenUpsertArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * The filter to search for the HasilPanen to update in case it exists. + */ + where: HasilPanenWhereUniqueInput + /** + * In case the HasilPanen found by the `where` argument doesn't exist, create a new HasilPanen with this data. + */ + create: XOR + /** + * In case the HasilPanen was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * HasilPanen delete + */ + export type HasilPanenDeleteArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter which HasilPanen to delete. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen deleteMany + */ + export type HasilPanenDeleteManyArgs = { + /** + * Filter which HasilPanens to delete + */ + where?: HasilPanenWhereInput + /** + * Limit how many HasilPanens to delete. + */ + limit?: number + } + + /** + * HasilPanen without action + */ + export type HasilPanenDefaultArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + } + + + /** + * Model PrediksiPanen + */ + + export type AggregatePrediksiPanen = { + _count: PrediksiPanenCountAggregateOutputType | null + _avg: PrediksiPanenAvgAggregateOutputType | null + _sum: PrediksiPanenSumAggregateOutputType | null + _min: PrediksiPanenMinAggregateOutputType | null + _max: PrediksiPanenMaxAggregateOutputType | null + } + + export type PrediksiPanenAvgAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + } + + export type PrediksiPanenSumAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + } + + export type PrediksiPanenMinAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + } + + export type PrediksiPanenMaxAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + } + + export type PrediksiPanenCountAggregateOutputType = { + id_prediksi: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + _all: number + } + + + export type PrediksiPanenAvgAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + } + + export type PrediksiPanenSumAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + } + + export type PrediksiPanenMinAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + } + + export type PrediksiPanenMaxAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + } + + export type PrediksiPanenCountAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + _all?: true + } + + export type PrediksiPanenAggregateArgs = { + /** + * Filter which PrediksiPanen to aggregate. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned PrediksiPanens + **/ + _count?: true | PrediksiPanenCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: PrediksiPanenAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: PrediksiPanenSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: PrediksiPanenMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: PrediksiPanenMaxAggregateInputType + } + + export type GetPrediksiPanenAggregateType = { + [P in keyof T & keyof AggregatePrediksiPanen]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type PrediksiPanenGroupByArgs = { + where?: PrediksiPanenWhereInput + orderBy?: PrediksiPanenOrderByWithAggregationInput | PrediksiPanenOrderByWithAggregationInput[] + by: PrediksiPanenScalarFieldEnum[] | PrediksiPanenScalarFieldEnum + having?: PrediksiPanenScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: PrediksiPanenCountAggregateInputType | true + _avg?: PrediksiPanenAvgAggregateInputType + _sum?: PrediksiPanenSumAggregateInputType + _min?: PrediksiPanenMinAggregateInputType + _max?: PrediksiPanenMaxAggregateInputType + } + + export type PrediksiPanenGroupByOutputType = { + id_prediksi: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + _count: PrediksiPanenCountAggregateOutputType | null + _avg: PrediksiPanenAvgAggregateOutputType | null + _sum: PrediksiPanenSumAggregateOutputType | null + _min: PrediksiPanenMinAggregateOutputType | null + _max: PrediksiPanenMaxAggregateOutputType | null + } + + type GetPrediksiPanenGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof PrediksiPanenGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type PrediksiPanenSelect = $Extensions.GetSelect<{ + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["prediksiPanen"]> + + export type PrediksiPanenSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["prediksiPanen"]> + + export type PrediksiPanenSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["prediksiPanen"]> + + export type PrediksiPanenSelectScalar = { + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + } + + export type PrediksiPanenOmit = $Extensions.GetOmit<"id_prediksi" | "id_kecamatan" | "id_komoditas" | "tahun_prediksi" | "hasil_prediksi", ExtArgs["result"]["prediksiPanen"]> + export type PrediksiPanenInclude = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type PrediksiPanenIncludeCreateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type PrediksiPanenIncludeUpdateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + + export type $PrediksiPanenPayload = { + name: "PrediksiPanen" + objects: { + kecamatan: Prisma.$KecamatanPayload + komoditas: Prisma.$KomoditasPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_prediksi: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + }, ExtArgs["result"]["prediksiPanen"]> + composites: {} + } + + type PrediksiPanenGetPayload = $Result.GetResult + + type PrediksiPanenCountArgs = + Omit & { + select?: PrediksiPanenCountAggregateInputType | true + } + + export interface PrediksiPanenDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['PrediksiPanen'], meta: { name: 'PrediksiPanen' } } + /** + * Find zero or one PrediksiPanen that matches the filter. + * @param {PrediksiPanenFindUniqueArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one PrediksiPanen that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {PrediksiPanenFindUniqueOrThrowArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first PrediksiPanen that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenFindFirstArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first PrediksiPanen that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenFindFirstOrThrowArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more PrediksiPanens that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all PrediksiPanens + * const prediksiPanens = await prisma.prediksiPanen.findMany() + * + * // Get first 10 PrediksiPanens + * const prediksiPanens = await prisma.prediksiPanen.findMany({ take: 10 }) + * + * // Only select the `id_prediksi` + * const prediksiPanenWithId_prediksiOnly = await prisma.prediksiPanen.findMany({ select: { id_prediksi: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a PrediksiPanen. + * @param {PrediksiPanenCreateArgs} args - Arguments to create a PrediksiPanen. + * @example + * // Create one PrediksiPanen + * const PrediksiPanen = await prisma.prediksiPanen.create({ + * data: { + * // ... data to create a PrediksiPanen + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many PrediksiPanens. + * @param {PrediksiPanenCreateManyArgs} args - Arguments to create many PrediksiPanens. + * @example + * // Create many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many PrediksiPanens and returns the data saved in the database. + * @param {PrediksiPanenCreateManyAndReturnArgs} args - Arguments to create many PrediksiPanens. + * @example + * // Create many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many PrediksiPanens and only return the `id_prediksi` + * const prediksiPanenWithId_prediksiOnly = await prisma.prediksiPanen.createManyAndReturn({ + * select: { id_prediksi: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a PrediksiPanen. + * @param {PrediksiPanenDeleteArgs} args - Arguments to delete one PrediksiPanen. + * @example + * // Delete one PrediksiPanen + * const PrediksiPanen = await prisma.prediksiPanen.delete({ + * where: { + * // ... filter to delete one PrediksiPanen + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one PrediksiPanen. + * @param {PrediksiPanenUpdateArgs} args - Arguments to update one PrediksiPanen. + * @example + * // Update one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more PrediksiPanens. + * @param {PrediksiPanenDeleteManyArgs} args - Arguments to filter PrediksiPanens to delete. + * @example + * // Delete a few PrediksiPanens + * const { count } = await prisma.prediksiPanen.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more PrediksiPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more PrediksiPanens and returns the data updated in the database. + * @param {PrediksiPanenUpdateManyAndReturnArgs} args - Arguments to update many PrediksiPanens. + * @example + * // Update many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more PrediksiPanens and only return the `id_prediksi` + * const prediksiPanenWithId_prediksiOnly = await prisma.prediksiPanen.updateManyAndReturn({ + * select: { id_prediksi: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one PrediksiPanen. + * @param {PrediksiPanenUpsertArgs} args - Arguments to update or create a PrediksiPanen. + * @example + * // Update or create a PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.upsert({ + * create: { + * // ... data to create a PrediksiPanen + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the PrediksiPanen we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of PrediksiPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenCountArgs} args - Arguments to filter PrediksiPanens to count. + * @example + * // Count the number of PrediksiPanens + * const count = await prisma.prediksiPanen.count({ + * where: { + * // ... the filter for the PrediksiPanens we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a PrediksiPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by PrediksiPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends PrediksiPanenGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: PrediksiPanenGroupByArgs['orderBy'] } + : { orderBy?: PrediksiPanenGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetPrediksiPanenGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the PrediksiPanen model + */ + readonly fields: PrediksiPanenFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for PrediksiPanen. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__PrediksiPanenClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + komoditas = {}>(args?: Subset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the PrediksiPanen model + */ + interface PrediksiPanenFieldRefs { + readonly id_prediksi: FieldRef<"PrediksiPanen", 'Int'> + readonly id_kecamatan: FieldRef<"PrediksiPanen", 'Int'> + readonly id_komoditas: FieldRef<"PrediksiPanen", 'Int'> + readonly tahun_prediksi: FieldRef<"PrediksiPanen", 'Int'> + readonly hasil_prediksi: FieldRef<"PrediksiPanen", 'Int'> + } + + + // Custom InputTypes + /** + * PrediksiPanen findUnique + */ + export type PrediksiPanenFindUniqueArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen findUniqueOrThrow + */ + export type PrediksiPanenFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen findFirst + */ + export type PrediksiPanenFindFirstArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for PrediksiPanens. + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of PrediksiPanens. + */ + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * PrediksiPanen findFirstOrThrow + */ + export type PrediksiPanenFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for PrediksiPanens. + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of PrediksiPanens. + */ + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * PrediksiPanen findMany + */ + export type PrediksiPanenFindManyArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanens to fetch. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing PrediksiPanens. + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * PrediksiPanen create + */ + export type PrediksiPanenCreateArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * The data needed to create a PrediksiPanen. + */ + data: XOR + } + + /** + * PrediksiPanen createMany + */ + export type PrediksiPanenCreateManyArgs = { + /** + * The data used to create many PrediksiPanens. + */ + data: PrediksiPanenCreateManyInput | PrediksiPanenCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * PrediksiPanen createManyAndReturn + */ + export type PrediksiPanenCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelectCreateManyAndReturn | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * The data used to create many PrediksiPanens. + */ + data: PrediksiPanenCreateManyInput | PrediksiPanenCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenIncludeCreateManyAndReturn | null + } + + /** + * PrediksiPanen update + */ + export type PrediksiPanenUpdateArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * The data needed to update a PrediksiPanen. + */ + data: XOR + /** + * Choose, which PrediksiPanen to update. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen updateMany + */ + export type PrediksiPanenUpdateManyArgs = { + /** + * The data used to update PrediksiPanens. + */ + data: XOR + /** + * Filter which PrediksiPanens to update + */ + where?: PrediksiPanenWhereInput + /** + * Limit how many PrediksiPanens to update. + */ + limit?: number + } + + /** + * PrediksiPanen updateManyAndReturn + */ + export type PrediksiPanenUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * The data used to update PrediksiPanens. + */ + data: XOR + /** + * Filter which PrediksiPanens to update + */ + where?: PrediksiPanenWhereInput + /** + * Limit how many PrediksiPanens to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenIncludeUpdateManyAndReturn | null + } + + /** + * PrediksiPanen upsert + */ + export type PrediksiPanenUpsertArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * The filter to search for the PrediksiPanen to update in case it exists. + */ + where: PrediksiPanenWhereUniqueInput + /** + * In case the PrediksiPanen found by the `where` argument doesn't exist, create a new PrediksiPanen with this data. + */ + create: XOR + /** + * In case the PrediksiPanen was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * PrediksiPanen delete + */ + export type PrediksiPanenDeleteArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter which PrediksiPanen to delete. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen deleteMany + */ + export type PrediksiPanenDeleteManyArgs = { + /** + * Filter which PrediksiPanens to delete + */ + where?: PrediksiPanenWhereInput + /** + * Limit how many PrediksiPanens to delete. + */ + limit?: number + } + + /** + * PrediksiPanen without action + */ + export type PrediksiPanenDefaultArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + } + + + /** + * Enums + */ + + export const TransactionIsolationLevel: { + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' + }; + + export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + + export const UserScalarFieldEnum: { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' + }; + + export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + + export const DetailScalarFieldEnum: { + tax_id: 'tax_id', + phone: 'phone', + bio: 'bio', + city: 'city', + county: 'county', + post_kode: 'post_kode', + photo_profile: 'photo_profile' + }; + + export type DetailScalarFieldEnum = (typeof DetailScalarFieldEnum)[keyof typeof DetailScalarFieldEnum] + + + export const KecamatanScalarFieldEnum: { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' + }; + + export type KecamatanScalarFieldEnum = (typeof KecamatanScalarFieldEnum)[keyof typeof KecamatanScalarFieldEnum] + + + export const PendudukScalarFieldEnum: { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan' + }; + + export type PendudukScalarFieldEnum = (typeof PendudukScalarFieldEnum)[keyof typeof PendudukScalarFieldEnum] + + + export const KomoditasScalarFieldEnum: { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' + }; + + export type KomoditasScalarFieldEnum = (typeof KomoditasScalarFieldEnum)[keyof typeof KomoditasScalarFieldEnum] + + + export const HasilPanenScalarFieldEnum: { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas' + }; + + export type HasilPanenScalarFieldEnum = (typeof HasilPanenScalarFieldEnum)[keyof typeof HasilPanenScalarFieldEnum] + + + export const PrediksiPanenScalarFieldEnum: { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi' + }; + + export type PrediksiPanenScalarFieldEnum = (typeof PrediksiPanenScalarFieldEnum)[keyof typeof PrediksiPanenScalarFieldEnum] + + + export const SortOrder: { + asc: 'asc', + desc: 'desc' + }; + + export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + + export const QueryMode: { + default: 'default', + insensitive: 'insensitive' + }; + + export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + + export const NullsOrder: { + first: 'first', + last: 'last' + }; + + export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + + /** + * Field references + */ + + + /** + * Reference to a field of type 'String' + */ + export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> + + + + /** + * Reference to a field of type 'String[]' + */ + export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'> + + + + /** + * Reference to a field of type 'DateTime' + */ + export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'> + + + + /** + * Reference to a field of type 'DateTime[]' + */ + export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'> + + + + /** + * Reference to a field of type 'Int' + */ + export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + + /** + * Reference to a field of type 'Int[]' + */ + export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'> + + + + /** + * Reference to a field of type 'Float' + */ + export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'> + + + + /** + * Reference to a field of type 'Float[]' + */ + export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'> + + /** + * Deep Input Types + */ + + + export type UserWhereInput = { + AND?: UserWhereInput | UserWhereInput[] + OR?: UserWhereInput[] + NOT?: UserWhereInput | UserWhereInput[] + id?: StringFilter<"User"> | string + name?: StringNullableFilter<"User"> | string | null + email?: StringNullableFilter<"User"> | string | null + password?: StringFilter<"User"> | string + createdAt?: DateTimeFilter<"User"> | Date | string + updatedAt?: DateTimeFilter<"User"> | Date | string + detail?: XOR | null + } + + export type UserOrderByWithRelationInput = { + id?: SortOrder + name?: SortOrderInput | SortOrder + email?: SortOrderInput | SortOrder + password?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + detail?: DetailOrderByWithRelationInput + } + + export type UserWhereUniqueInput = Prisma.AtLeast<{ + id?: string + email?: string + AND?: UserWhereInput | UserWhereInput[] + OR?: UserWhereInput[] + NOT?: UserWhereInput | UserWhereInput[] + name?: StringNullableFilter<"User"> | string | null + password?: StringFilter<"User"> | string + createdAt?: DateTimeFilter<"User"> | Date | string + updatedAt?: DateTimeFilter<"User"> | Date | string + detail?: XOR | null + }, "id" | "email"> + + export type UserOrderByWithAggregationInput = { + id?: SortOrder + name?: SortOrderInput | SortOrder + email?: SortOrderInput | SortOrder + password?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + _count?: UserCountOrderByAggregateInput + _max?: UserMaxOrderByAggregateInput + _min?: UserMinOrderByAggregateInput + } + + export type UserScalarWhereWithAggregatesInput = { + AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] + OR?: UserScalarWhereWithAggregatesInput[] + NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] + id?: StringWithAggregatesFilter<"User"> | string + name?: StringNullableWithAggregatesFilter<"User"> | string | null + email?: StringNullableWithAggregatesFilter<"User"> | string | null + password?: StringWithAggregatesFilter<"User"> | string + createdAt?: DateTimeWithAggregatesFilter<"User"> | Date | string + updatedAt?: DateTimeWithAggregatesFilter<"User"> | Date | string + } + + export type DetailWhereInput = { + AND?: DetailWhereInput | DetailWhereInput[] + OR?: DetailWhereInput[] + NOT?: DetailWhereInput | DetailWhereInput[] + tax_id?: StringFilter<"Detail"> | string + phone?: StringFilter<"Detail"> | string + bio?: StringFilter<"Detail"> | string + city?: StringFilter<"Detail"> | string + county?: StringFilter<"Detail"> | string + post_kode?: StringFilter<"Detail"> | string + photo_profile?: StringFilter<"Detail"> | string + user?: XOR + } + + export type DetailOrderByWithRelationInput = { + tax_id?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + county?: SortOrder + post_kode?: SortOrder + photo_profile?: SortOrder + user?: UserOrderByWithRelationInput + } + + export type DetailWhereUniqueInput = Prisma.AtLeast<{ + tax_id?: string + AND?: DetailWhereInput | DetailWhereInput[] + OR?: DetailWhereInput[] + NOT?: DetailWhereInput | DetailWhereInput[] + phone?: StringFilter<"Detail"> | string + bio?: StringFilter<"Detail"> | string + city?: StringFilter<"Detail"> | string + county?: StringFilter<"Detail"> | string + post_kode?: StringFilter<"Detail"> | string + photo_profile?: StringFilter<"Detail"> | string + user?: XOR + }, "tax_id"> + + export type DetailOrderByWithAggregationInput = { + tax_id?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + county?: SortOrder + post_kode?: SortOrder + photo_profile?: SortOrder + _count?: DetailCountOrderByAggregateInput + _max?: DetailMaxOrderByAggregateInput + _min?: DetailMinOrderByAggregateInput + } + + export type DetailScalarWhereWithAggregatesInput = { + AND?: DetailScalarWhereWithAggregatesInput | DetailScalarWhereWithAggregatesInput[] + OR?: DetailScalarWhereWithAggregatesInput[] + NOT?: DetailScalarWhereWithAggregatesInput | DetailScalarWhereWithAggregatesInput[] + tax_id?: StringWithAggregatesFilter<"Detail"> | string + phone?: StringWithAggregatesFilter<"Detail"> | string + bio?: StringWithAggregatesFilter<"Detail"> | string + city?: StringWithAggregatesFilter<"Detail"> | string + county?: StringWithAggregatesFilter<"Detail"> | string + post_kode?: StringWithAggregatesFilter<"Detail"> | string + photo_profile?: StringWithAggregatesFilter<"Detail"> | string + } + + export type KecamatanWhereInput = { + AND?: KecamatanWhereInput | KecamatanWhereInput[] + OR?: KecamatanWhereInput[] + NOT?: KecamatanWhereInput | KecamatanWhereInput[] + id_kecamatan?: IntFilter<"Kecamatan"> | number + id_komoditas?: IntFilter<"Kecamatan"> | number + nama_kecamatan?: StringFilter<"Kecamatan"> | string + deskripsi?: StringFilter<"Kecamatan"> | string + gambar?: StringFilter<"Kecamatan"> | string + area?: FloatFilter<"Kecamatan"> | number + posisi_x?: FloatFilter<"Kecamatan"> | number + posisi_y?: FloatFilter<"Kecamatan"> | number + komoditas?: XOR + penduduk?: PendudukListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + } + + export type KecamatanOrderByWithRelationInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + komoditas?: KomoditasOrderByWithRelationInput + penduduk?: PendudukOrderByRelationAggregateInput + hasil_panen?: HasilPanenOrderByRelationAggregateInput + prediksi_panen?: PrediksiPanenOrderByRelationAggregateInput + } + + export type KecamatanWhereUniqueInput = Prisma.AtLeast<{ + id_kecamatan?: number + AND?: KecamatanWhereInput | KecamatanWhereInput[] + OR?: KecamatanWhereInput[] + NOT?: KecamatanWhereInput | KecamatanWhereInput[] + id_komoditas?: IntFilter<"Kecamatan"> | number + nama_kecamatan?: StringFilter<"Kecamatan"> | string + deskripsi?: StringFilter<"Kecamatan"> | string + gambar?: StringFilter<"Kecamatan"> | string + area?: FloatFilter<"Kecamatan"> | number + posisi_x?: FloatFilter<"Kecamatan"> | number + posisi_y?: FloatFilter<"Kecamatan"> | number + komoditas?: XOR + penduduk?: PendudukListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + }, "id_kecamatan"> + + export type KecamatanOrderByWithAggregationInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + _count?: KecamatanCountOrderByAggregateInput + _avg?: KecamatanAvgOrderByAggregateInput + _max?: KecamatanMaxOrderByAggregateInput + _min?: KecamatanMinOrderByAggregateInput + _sum?: KecamatanSumOrderByAggregateInput + } + + export type KecamatanScalarWhereWithAggregatesInput = { + AND?: KecamatanScalarWhereWithAggregatesInput | KecamatanScalarWhereWithAggregatesInput[] + OR?: KecamatanScalarWhereWithAggregatesInput[] + NOT?: KecamatanScalarWhereWithAggregatesInput | KecamatanScalarWhereWithAggregatesInput[] + id_kecamatan?: IntWithAggregatesFilter<"Kecamatan"> | number + id_komoditas?: IntWithAggregatesFilter<"Kecamatan"> | number + nama_kecamatan?: StringWithAggregatesFilter<"Kecamatan"> | string + deskripsi?: StringWithAggregatesFilter<"Kecamatan"> | string + gambar?: StringWithAggregatesFilter<"Kecamatan"> | string + area?: FloatWithAggregatesFilter<"Kecamatan"> | number + posisi_x?: FloatWithAggregatesFilter<"Kecamatan"> | number + posisi_y?: FloatWithAggregatesFilter<"Kecamatan"> | number + } + + export type PendudukWhereInput = { + AND?: PendudukWhereInput | PendudukWhereInput[] + OR?: PendudukWhereInput[] + NOT?: PendudukWhereInput | PendudukWhereInput[] + id_penduduk?: IntFilter<"Penduduk"> | number + id_kecamatan?: IntFilter<"Penduduk"> | number + data_tahun?: IntFilter<"Penduduk"> | number + jumlah_penduduk?: FloatFilter<"Penduduk"> | number + laju_pertumbuhan?: StringFilter<"Penduduk"> | string + kecamatan?: XOR + } + + export type PendudukOrderByWithRelationInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + kecamatan?: KecamatanOrderByWithRelationInput + } + + export type PendudukWhereUniqueInput = Prisma.AtLeast<{ + id_penduduk?: number + AND?: PendudukWhereInput | PendudukWhereInput[] + OR?: PendudukWhereInput[] + NOT?: PendudukWhereInput | PendudukWhereInput[] + id_kecamatan?: IntFilter<"Penduduk"> | number + data_tahun?: IntFilter<"Penduduk"> | number + jumlah_penduduk?: FloatFilter<"Penduduk"> | number + laju_pertumbuhan?: StringFilter<"Penduduk"> | string + kecamatan?: XOR + }, "id_penduduk"> + + export type PendudukOrderByWithAggregationInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + _count?: PendudukCountOrderByAggregateInput + _avg?: PendudukAvgOrderByAggregateInput + _max?: PendudukMaxOrderByAggregateInput + _min?: PendudukMinOrderByAggregateInput + _sum?: PendudukSumOrderByAggregateInput + } + + export type PendudukScalarWhereWithAggregatesInput = { + AND?: PendudukScalarWhereWithAggregatesInput | PendudukScalarWhereWithAggregatesInput[] + OR?: PendudukScalarWhereWithAggregatesInput[] + NOT?: PendudukScalarWhereWithAggregatesInput | PendudukScalarWhereWithAggregatesInput[] + id_penduduk?: IntWithAggregatesFilter<"Penduduk"> | number + id_kecamatan?: IntWithAggregatesFilter<"Penduduk"> | number + data_tahun?: IntWithAggregatesFilter<"Penduduk"> | number + jumlah_penduduk?: FloatWithAggregatesFilter<"Penduduk"> | number + laju_pertumbuhan?: StringWithAggregatesFilter<"Penduduk"> | string + } + + export type KomoditasWhereInput = { + AND?: KomoditasWhereInput | KomoditasWhereInput[] + OR?: KomoditasWhereInput[] + NOT?: KomoditasWhereInput | KomoditasWhereInput[] + id_komoditas?: IntFilter<"Komoditas"> | number + nama_komoditas?: StringFilter<"Komoditas"> | string + posisi_x?: FloatFilter<"Komoditas"> | number + posisi_y?: FloatFilter<"Komoditas"> | number + kecamatan?: KecamatanListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + } + + export type KomoditasOrderByWithRelationInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + kecamatan?: KecamatanOrderByRelationAggregateInput + hasil_panen?: HasilPanenOrderByRelationAggregateInput + prediksi_panen?: PrediksiPanenOrderByRelationAggregateInput + } + + export type KomoditasWhereUniqueInput = Prisma.AtLeast<{ + id_komoditas?: number + AND?: KomoditasWhereInput | KomoditasWhereInput[] + OR?: KomoditasWhereInput[] + NOT?: KomoditasWhereInput | KomoditasWhereInput[] + nama_komoditas?: StringFilter<"Komoditas"> | string + posisi_x?: FloatFilter<"Komoditas"> | number + posisi_y?: FloatFilter<"Komoditas"> | number + kecamatan?: KecamatanListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + }, "id_komoditas"> + + export type KomoditasOrderByWithAggregationInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + _count?: KomoditasCountOrderByAggregateInput + _avg?: KomoditasAvgOrderByAggregateInput + _max?: KomoditasMaxOrderByAggregateInput + _min?: KomoditasMinOrderByAggregateInput + _sum?: KomoditasSumOrderByAggregateInput + } + + export type KomoditasScalarWhereWithAggregatesInput = { + AND?: KomoditasScalarWhereWithAggregatesInput | KomoditasScalarWhereWithAggregatesInput[] + OR?: KomoditasScalarWhereWithAggregatesInput[] + NOT?: KomoditasScalarWhereWithAggregatesInput | KomoditasScalarWhereWithAggregatesInput[] + id_komoditas?: IntWithAggregatesFilter<"Komoditas"> | number + nama_komoditas?: StringWithAggregatesFilter<"Komoditas"> | string + posisi_x?: FloatWithAggregatesFilter<"Komoditas"> | number + posisi_y?: FloatWithAggregatesFilter<"Komoditas"> | number + } + + export type HasilPanenWhereInput = { + AND?: HasilPanenWhereInput | HasilPanenWhereInput[] + OR?: HasilPanenWhereInput[] + NOT?: HasilPanenWhereInput | HasilPanenWhereInput[] + id_panen?: IntFilter<"HasilPanen"> | number + id_kecamatan?: IntFilter<"HasilPanen"> | number + id_komoditas?: IntFilter<"HasilPanen"> | number + tahun_panen?: IntFilter<"HasilPanen"> | number + produksi?: FloatFilter<"HasilPanen"> | number + luas_panen?: FloatFilter<"HasilPanen"> | number + produktivitas?: FloatFilter<"HasilPanen"> | number + kecamatan?: XOR + komoditas?: XOR + } + + export type HasilPanenOrderByWithRelationInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + kecamatan?: KecamatanOrderByWithRelationInput + komoditas?: KomoditasOrderByWithRelationInput + } + + export type HasilPanenWhereUniqueInput = Prisma.AtLeast<{ + id_panen?: number + AND?: HasilPanenWhereInput | HasilPanenWhereInput[] + OR?: HasilPanenWhereInput[] + NOT?: HasilPanenWhereInput | HasilPanenWhereInput[] + id_kecamatan?: IntFilter<"HasilPanen"> | number + id_komoditas?: IntFilter<"HasilPanen"> | number + tahun_panen?: IntFilter<"HasilPanen"> | number + produksi?: FloatFilter<"HasilPanen"> | number + luas_panen?: FloatFilter<"HasilPanen"> | number + produktivitas?: FloatFilter<"HasilPanen"> | number + kecamatan?: XOR + komoditas?: XOR + }, "id_panen"> + + export type HasilPanenOrderByWithAggregationInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + _count?: HasilPanenCountOrderByAggregateInput + _avg?: HasilPanenAvgOrderByAggregateInput + _max?: HasilPanenMaxOrderByAggregateInput + _min?: HasilPanenMinOrderByAggregateInput + _sum?: HasilPanenSumOrderByAggregateInput + } + + export type HasilPanenScalarWhereWithAggregatesInput = { + AND?: HasilPanenScalarWhereWithAggregatesInput | HasilPanenScalarWhereWithAggregatesInput[] + OR?: HasilPanenScalarWhereWithAggregatesInput[] + NOT?: HasilPanenScalarWhereWithAggregatesInput | HasilPanenScalarWhereWithAggregatesInput[] + id_panen?: IntWithAggregatesFilter<"HasilPanen"> | number + id_kecamatan?: IntWithAggregatesFilter<"HasilPanen"> | number + id_komoditas?: IntWithAggregatesFilter<"HasilPanen"> | number + tahun_panen?: IntWithAggregatesFilter<"HasilPanen"> | number + produksi?: FloatWithAggregatesFilter<"HasilPanen"> | number + luas_panen?: FloatWithAggregatesFilter<"HasilPanen"> | number + produktivitas?: FloatWithAggregatesFilter<"HasilPanen"> | number + } + + export type PrediksiPanenWhereInput = { + AND?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + OR?: PrediksiPanenWhereInput[] + NOT?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + id_prediksi?: IntFilter<"PrediksiPanen"> | number + id_kecamatan?: IntFilter<"PrediksiPanen"> | number + id_komoditas?: IntFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntFilter<"PrediksiPanen"> | number + kecamatan?: XOR + komoditas?: XOR + } + + export type PrediksiPanenOrderByWithRelationInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + kecamatan?: KecamatanOrderByWithRelationInput + komoditas?: KomoditasOrderByWithRelationInput + } + + export type PrediksiPanenWhereUniqueInput = Prisma.AtLeast<{ + id_prediksi?: number + AND?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + OR?: PrediksiPanenWhereInput[] + NOT?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + id_kecamatan?: IntFilter<"PrediksiPanen"> | number + id_komoditas?: IntFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntFilter<"PrediksiPanen"> | number + kecamatan?: XOR + komoditas?: XOR + }, "id_prediksi"> + + export type PrediksiPanenOrderByWithAggregationInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + _count?: PrediksiPanenCountOrderByAggregateInput + _avg?: PrediksiPanenAvgOrderByAggregateInput + _max?: PrediksiPanenMaxOrderByAggregateInput + _min?: PrediksiPanenMinOrderByAggregateInput + _sum?: PrediksiPanenSumOrderByAggregateInput + } + + export type PrediksiPanenScalarWhereWithAggregatesInput = { + AND?: PrediksiPanenScalarWhereWithAggregatesInput | PrediksiPanenScalarWhereWithAggregatesInput[] + OR?: PrediksiPanenScalarWhereWithAggregatesInput[] + NOT?: PrediksiPanenScalarWhereWithAggregatesInput | PrediksiPanenScalarWhereWithAggregatesInput[] + id_prediksi?: IntWithAggregatesFilter<"PrediksiPanen"> | number + id_kecamatan?: IntWithAggregatesFilter<"PrediksiPanen"> | number + id_komoditas?: IntWithAggregatesFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntWithAggregatesFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntWithAggregatesFilter<"PrediksiPanen"> | number + } + + export type UserCreateInput = { + id?: string + name?: string | null + email?: string | null + password: string + createdAt?: Date | string + updatedAt?: Date | string + detail?: DetailCreateNestedOneWithoutUserInput + } + + export type UserUncheckedCreateInput = { + id?: string + name?: string | null + email?: string | null + password: string + createdAt?: Date | string + updatedAt?: Date | string + detail?: DetailUncheckedCreateNestedOneWithoutUserInput + } + + export type UserUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + password?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUpdateOneWithoutUserNestedInput + } + + export type UserUncheckedUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + password?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUncheckedUpdateOneWithoutUserNestedInput + } + + export type UserCreateManyInput = { + id?: string + name?: string | null + email?: string | null + password: string + createdAt?: Date | string + updatedAt?: Date | string + } + + export type UserUpdateManyMutationInput = { + id?: StringFieldUpdateOperationsInput | string + name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + password?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type UserUncheckedUpdateManyInput = { + id?: StringFieldUpdateOperationsInput | string + name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + password?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type DetailCreateInput = { + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + user: UserCreateNestedOneWithoutDetailInput + } + + export type DetailUncheckedCreateInput = { + tax_id: string + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + } + + export type DetailUpdateInput = { + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + county?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + photo_profile?: StringFieldUpdateOperationsInput | string + user?: UserUpdateOneRequiredWithoutDetailNestedInput + } + + export type DetailUncheckedUpdateInput = { + tax_id?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + county?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + photo_profile?: StringFieldUpdateOperationsInput | string + } + + export type DetailCreateManyInput = { + tax_id: string + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + } + + export type DetailUpdateManyMutationInput = { + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + county?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + photo_profile?: StringFieldUpdateOperationsInput | string + } + + export type DetailUncheckedUpdateManyInput = { + tax_id?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + county?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + photo_profile?: StringFieldUpdateOperationsInput | string + } + + export type KecamatanCreateInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUpdateInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanCreateManyInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + } + + export type KecamatanUpdateManyMutationInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + } + + export type KecamatanUncheckedUpdateManyInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + } + + export type PendudukCreateInput = { + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + kecamatan: KecamatanCreateNestedOneWithoutPendudukInput + } + + export type PendudukUncheckedCreateInput = { + id_penduduk?: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + } + + export type PendudukUpdateInput = { + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + kecamatan?: KecamatanUpdateOneRequiredWithoutPendudukNestedInput + } + + export type PendudukUncheckedUpdateInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + } + + export type PendudukCreateManyInput = { + id_penduduk?: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + } + + export type PendudukUpdateManyMutationInput = { + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + } + + export type PendudukUncheckedUpdateManyInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + } + + export type KomoditasCreateInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + kecamatan?: KecamatanCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + kecamatan?: KecamatanUncheckedCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUpdateInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasCreateManyInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + } + + export type KomoditasUpdateManyMutationInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + } + + export type KomoditasUncheckedUpdateManyInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + } + + export type HasilPanenCreateInput = { + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + kecamatan: KecamatanCreateNestedOneWithoutHasil_panenInput + komoditas: KomoditasCreateNestedOneWithoutHasil_panenInput + } + + export type HasilPanenUncheckedCreateInput = { + id_panen?: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + } + + export type HasilPanenUpdateInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateOneRequiredWithoutHasil_panenNestedInput + komoditas?: KomoditasUpdateOneRequiredWithoutHasil_panenNestedInput + } + + export type HasilPanenUncheckedUpdateInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type HasilPanenCreateManyInput = { + id_panen?: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + } + + export type HasilPanenUpdateManyMutationInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type HasilPanenUncheckedUpdateManyInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type PrediksiPanenCreateInput = { + tahun_prediksi: number + hasil_prediksi: number + kecamatan: KecamatanCreateNestedOneWithoutPrediksi_panenInput + komoditas: KomoditasCreateNestedOneWithoutPrediksi_panenInput + } + + export type PrediksiPanenUncheckedCreateInput = { + id_prediksi?: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + } + + export type PrediksiPanenUpdateInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateOneRequiredWithoutPrediksi_panenNestedInput + komoditas?: KomoditasUpdateOneRequiredWithoutPrediksi_panenNestedInput + } + + export type PrediksiPanenUncheckedUpdateInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + export type PrediksiPanenCreateManyInput = { + id_prediksi?: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + } + + export type PrediksiPanenUpdateManyMutationInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + export type PrediksiPanenUncheckedUpdateManyInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + export type StringFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringFilter<$PrismaModel> | string + } + + export type StringNullableFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringNullableFilter<$PrismaModel> | string | null + } + + export type DateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeFilter<$PrismaModel> | Date | string + } + + export type DetailNullableScalarRelationFilter = { + is?: DetailWhereInput | null + isNot?: DetailWhereInput | null + } + + export type SortOrderInput = { + sort: SortOrder + nulls?: NullsOrder + } + + export type UserCountOrderByAggregateInput = { + id?: SortOrder + name?: SortOrder + email?: SortOrder + password?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + } + + export type UserMaxOrderByAggregateInput = { + id?: SortOrder + name?: SortOrder + email?: SortOrder + password?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + } + + export type UserMinOrderByAggregateInput = { + id?: SortOrder + name?: SortOrder + email?: SortOrder + password?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + } + + export type StringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedStringFilter<$PrismaModel> + _max?: NestedStringFilter<$PrismaModel> + } + + export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedStringNullableFilter<$PrismaModel> + _max?: NestedStringNullableFilter<$PrismaModel> + } + + export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedDateTimeFilter<$PrismaModel> + _max?: NestedDateTimeFilter<$PrismaModel> + } + + export type UserScalarRelationFilter = { + is?: UserWhereInput + isNot?: UserWhereInput + } + + export type DetailCountOrderByAggregateInput = { + tax_id?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + county?: SortOrder + post_kode?: SortOrder + photo_profile?: SortOrder + } + + export type DetailMaxOrderByAggregateInput = { + tax_id?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + county?: SortOrder + post_kode?: SortOrder + photo_profile?: SortOrder + } + + export type DetailMinOrderByAggregateInput = { + tax_id?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + county?: SortOrder + post_kode?: SortOrder + photo_profile?: SortOrder + } + + export type IntFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntFilter<$PrismaModel> | number + } + + export type FloatFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatFilter<$PrismaModel> | number + } + + export type KomoditasScalarRelationFilter = { + is?: KomoditasWhereInput + isNot?: KomoditasWhereInput + } + + export type PendudukListRelationFilter = { + every?: PendudukWhereInput + some?: PendudukWhereInput + none?: PendudukWhereInput + } + + export type HasilPanenListRelationFilter = { + every?: HasilPanenWhereInput + some?: HasilPanenWhereInput + none?: HasilPanenWhereInput + } + + export type PrediksiPanenListRelationFilter = { + every?: PrediksiPanenWhereInput + some?: PrediksiPanenWhereInput + none?: PrediksiPanenWhereInput + } + + export type PendudukOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type HasilPanenOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type PrediksiPanenOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type KecamatanCountOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KecamatanAvgOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KecamatanMaxOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KecamatanMinOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KecamatanSumOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type IntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedIntFilter<$PrismaModel> + _min?: NestedIntFilter<$PrismaModel> + _max?: NestedIntFilter<$PrismaModel> + } + + export type FloatWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedFloatFilter<$PrismaModel> + _min?: NestedFloatFilter<$PrismaModel> + _max?: NestedFloatFilter<$PrismaModel> + } + + export type KecamatanScalarRelationFilter = { + is?: KecamatanWhereInput + isNot?: KecamatanWhereInput + } + + export type PendudukCountOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + } + + export type PendudukAvgOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + } + + export type PendudukMaxOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + } + + export type PendudukMinOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + } + + export type PendudukSumOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + } + + export type KecamatanListRelationFilter = { + every?: KecamatanWhereInput + some?: KecamatanWhereInput + none?: KecamatanWhereInput + } + + export type KecamatanOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type KomoditasCountOrderByAggregateInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KomoditasAvgOrderByAggregateInput = { + id_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KomoditasMaxOrderByAggregateInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KomoditasMinOrderByAggregateInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KomoditasSumOrderByAggregateInput = { + id_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type HasilPanenCountOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type HasilPanenAvgOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type HasilPanenMaxOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type HasilPanenMinOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type HasilPanenSumOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type PrediksiPanenCountOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type PrediksiPanenAvgOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type PrediksiPanenMaxOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type PrediksiPanenMinOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type PrediksiPanenSumOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type DetailCreateNestedOneWithoutUserInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + connect?: DetailWhereUniqueInput + } + + export type DetailUncheckedCreateNestedOneWithoutUserInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + connect?: DetailWhereUniqueInput + } + + export type StringFieldUpdateOperationsInput = { + set?: string + } + + export type NullableStringFieldUpdateOperationsInput = { + set?: string | null + } + + export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string + } + + export type DetailUpdateOneWithoutUserNestedInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + upsert?: DetailUpsertWithoutUserInput + disconnect?: DetailWhereInput | boolean + delete?: DetailWhereInput | boolean + connect?: DetailWhereUniqueInput + update?: XOR, DetailUncheckedUpdateWithoutUserInput> + } + + export type DetailUncheckedUpdateOneWithoutUserNestedInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + upsert?: DetailUpsertWithoutUserInput + disconnect?: DetailWhereInput | boolean + delete?: DetailWhereInput | boolean + connect?: DetailWhereUniqueInput + update?: XOR, DetailUncheckedUpdateWithoutUserInput> + } + + export type UserCreateNestedOneWithoutDetailInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutDetailInput + connect?: UserWhereUniqueInput + } + + export type UserUpdateOneRequiredWithoutDetailNestedInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutDetailInput + upsert?: UserUpsertWithoutDetailInput + connect?: UserWhereUniqueInput + update?: XOR, UserUncheckedUpdateWithoutDetailInput> + } + + export type KomoditasCreateNestedOneWithoutKecamatanInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutKecamatanInput + connect?: KomoditasWhereUniqueInput + } + + export type PendudukCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + } + + export type HasilPanenCreateNestedManyWithoutKecamatanInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type PendudukUncheckedCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + } + + export type HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type FloatFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number + } + + export type KomoditasUpdateOneRequiredWithoutKecamatanNestedInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutKecamatanInput + upsert?: KomoditasUpsertWithoutKecamatanInput + connect?: KomoditasWhereUniqueInput + update?: XOR, KomoditasUncheckedUpdateWithoutKecamatanInput> + } + + export type PendudukUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + upsert?: PendudukUpsertWithWhereUniqueWithoutKecamatanInput | PendudukUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + set?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + disconnect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + delete?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + update?: PendudukUpdateWithWhereUniqueWithoutKecamatanInput | PendudukUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PendudukUpdateManyWithWhereWithoutKecamatanInput | PendudukUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + } + + export type HasilPanenUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput | HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput | HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKecamatanInput | HasilPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput | PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type IntFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number + } + + export type PendudukUncheckedUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + upsert?: PendudukUpsertWithWhereUniqueWithoutKecamatanInput | PendudukUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + set?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + disconnect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + delete?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + update?: PendudukUpdateWithWhereUniqueWithoutKecamatanInput | PendudukUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PendudukUpdateManyWithWhereWithoutKecamatanInput | PendudukUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + } + + export type HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput | HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput | HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKecamatanInput | HasilPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput | PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type KecamatanCreateNestedOneWithoutPendudukInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPendudukInput + connect?: KecamatanWhereUniqueInput + } + + export type KecamatanUpdateOneRequiredWithoutPendudukNestedInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPendudukInput + upsert?: KecamatanUpsertWithoutPendudukInput + connect?: KecamatanWhereUniqueInput + update?: XOR, KecamatanUncheckedUpdateWithoutPendudukInput> + } + + export type KecamatanCreateNestedManyWithoutKomoditasInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + } + + export type HasilPanenCreateNestedManyWithoutKomoditasInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenCreateNestedManyWithoutKomoditasInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type KecamatanUncheckedCreateNestedManyWithoutKomoditasInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + } + + export type HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type KecamatanUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + upsert?: KecamatanUpsertWithWhereUniqueWithoutKomoditasInput | KecamatanUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + set?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + disconnect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + delete?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + update?: KecamatanUpdateWithWhereUniqueWithoutKomoditasInput | KecamatanUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: KecamatanUpdateManyWithWhereWithoutKomoditasInput | KecamatanUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + } + + export type HasilPanenUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput | HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput | HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKomoditasInput | HasilPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput | PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + upsert?: KecamatanUpsertWithWhereUniqueWithoutKomoditasInput | KecamatanUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + set?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + disconnect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + delete?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + update?: KecamatanUpdateWithWhereUniqueWithoutKomoditasInput | KecamatanUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: KecamatanUpdateManyWithWhereWithoutKomoditasInput | KecamatanUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + } + + export type HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput | HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput | HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKomoditasInput | HasilPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput | PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type KecamatanCreateNestedOneWithoutHasil_panenInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutHasil_panenInput + connect?: KecamatanWhereUniqueInput + } + + export type KomoditasCreateNestedOneWithoutHasil_panenInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutHasil_panenInput + connect?: KomoditasWhereUniqueInput + } + + export type KecamatanUpdateOneRequiredWithoutHasil_panenNestedInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutHasil_panenInput + upsert?: KecamatanUpsertWithoutHasil_panenInput + connect?: KecamatanWhereUniqueInput + update?: XOR, KecamatanUncheckedUpdateWithoutHasil_panenInput> + } + + export type KomoditasUpdateOneRequiredWithoutHasil_panenNestedInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutHasil_panenInput + upsert?: KomoditasUpsertWithoutHasil_panenInput + connect?: KomoditasWhereUniqueInput + update?: XOR, KomoditasUncheckedUpdateWithoutHasil_panenInput> + } + + export type KecamatanCreateNestedOneWithoutPrediksi_panenInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPrediksi_panenInput + connect?: KecamatanWhereUniqueInput + } + + export type KomoditasCreateNestedOneWithoutPrediksi_panenInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutPrediksi_panenInput + connect?: KomoditasWhereUniqueInput + } + + export type KecamatanUpdateOneRequiredWithoutPrediksi_panenNestedInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPrediksi_panenInput + upsert?: KecamatanUpsertWithoutPrediksi_panenInput + connect?: KecamatanWhereUniqueInput + update?: XOR, KecamatanUncheckedUpdateWithoutPrediksi_panenInput> + } + + export type KomoditasUpdateOneRequiredWithoutPrediksi_panenNestedInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutPrediksi_panenInput + upsert?: KomoditasUpsertWithoutPrediksi_panenInput + connect?: KomoditasWhereUniqueInput + update?: XOR, KomoditasUncheckedUpdateWithoutPrediksi_panenInput> + } + + export type NestedStringFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringFilter<$PrismaModel> | string + } + + export type NestedStringNullableFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringNullableFilter<$PrismaModel> | string | null + } + + export type NestedDateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeFilter<$PrismaModel> | Date | string + } + + export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedStringFilter<$PrismaModel> + _max?: NestedStringFilter<$PrismaModel> + } + + export type NestedIntFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntFilter<$PrismaModel> | number + } + + export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedStringNullableFilter<$PrismaModel> + _max?: NestedStringNullableFilter<$PrismaModel> + } + + export type NestedIntNullableFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> | null + in?: number[] | ListIntFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntNullableFilter<$PrismaModel> | number | null + } + + export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedDateTimeFilter<$PrismaModel> + _max?: NestedDateTimeFilter<$PrismaModel> + } + + export type NestedFloatFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatFilter<$PrismaModel> | number + } + + export type NestedIntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedIntFilter<$PrismaModel> + _min?: NestedIntFilter<$PrismaModel> + _max?: NestedIntFilter<$PrismaModel> + } + + export type NestedFloatWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedFloatFilter<$PrismaModel> + _min?: NestedFloatFilter<$PrismaModel> + _max?: NestedFloatFilter<$PrismaModel> + } + + export type DetailCreateWithoutUserInput = { + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + } + + export type DetailUncheckedCreateWithoutUserInput = { + phone: string + bio: string + city: string + county: string + post_kode: string + photo_profile: string + } + + export type DetailCreateOrConnectWithoutUserInput = { + where: DetailWhereUniqueInput + create: XOR + } + + export type DetailUpsertWithoutUserInput = { + update: XOR + create: XOR + where?: DetailWhereInput + } + + export type DetailUpdateToOneWithWhereWithoutUserInput = { + where?: DetailWhereInput + data: XOR + } + + export type DetailUpdateWithoutUserInput = { + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + county?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + photo_profile?: StringFieldUpdateOperationsInput | string + } + + export type DetailUncheckedUpdateWithoutUserInput = { + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + county?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + photo_profile?: StringFieldUpdateOperationsInput | string + } + + export type UserCreateWithoutDetailInput = { + id?: string + name?: string | null + email?: string | null + password: string + createdAt?: Date | string + updatedAt?: Date | string + } + + export type UserUncheckedCreateWithoutDetailInput = { + id?: string + name?: string | null + email?: string | null + password: string + createdAt?: Date | string + updatedAt?: Date | string + } + + export type UserCreateOrConnectWithoutDetailInput = { + where: UserWhereUniqueInput + create: XOR + } + + export type UserUpsertWithoutDetailInput = { + update: XOR + create: XOR + where?: UserWhereInput + } + + export type UserUpdateToOneWithWhereWithoutDetailInput = { + where?: UserWhereInput + data: XOR + } + + export type UserUpdateWithoutDetailInput = { + id?: StringFieldUpdateOperationsInput | string + name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + password?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type UserUncheckedUpdateWithoutDetailInput = { + id?: StringFieldUpdateOperationsInput | string + name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + password?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type KomoditasCreateWithoutKecamatanInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + hasil_panen?: HasilPanenCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateWithoutKecamatanInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasCreateOrConnectWithoutKecamatanInput = { + where: KomoditasWhereUniqueInput + create: XOR + } + + export type PendudukCreateWithoutKecamatanInput = { + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + } + + export type PendudukUncheckedCreateWithoutKecamatanInput = { + id_penduduk?: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + } + + export type PendudukCreateOrConnectWithoutKecamatanInput = { + where: PendudukWhereUniqueInput + create: XOR + } + + export type PendudukCreateManyKecamatanInputEnvelope = { + data: PendudukCreateManyKecamatanInput | PendudukCreateManyKecamatanInput[] + skipDuplicates?: boolean + } + + export type HasilPanenCreateWithoutKecamatanInput = { + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + komoditas: KomoditasCreateNestedOneWithoutHasil_panenInput + } + + export type HasilPanenUncheckedCreateWithoutKecamatanInput = { + id_panen?: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + } + + export type HasilPanenCreateOrConnectWithoutKecamatanInput = { + where: HasilPanenWhereUniqueInput + create: XOR + } + + export type HasilPanenCreateManyKecamatanInputEnvelope = { + data: HasilPanenCreateManyKecamatanInput | HasilPanenCreateManyKecamatanInput[] + skipDuplicates?: boolean + } + + export type PrediksiPanenCreateWithoutKecamatanInput = { + tahun_prediksi: number + hasil_prediksi: number + komoditas: KomoditasCreateNestedOneWithoutPrediksi_panenInput + } + + export type PrediksiPanenUncheckedCreateWithoutKecamatanInput = { + id_prediksi?: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + } + + export type PrediksiPanenCreateOrConnectWithoutKecamatanInput = { + where: PrediksiPanenWhereUniqueInput + create: XOR + } + + export type PrediksiPanenCreateManyKecamatanInputEnvelope = { + data: PrediksiPanenCreateManyKecamatanInput | PrediksiPanenCreateManyKecamatanInput[] + skipDuplicates?: boolean + } + + export type KomoditasUpsertWithoutKecamatanInput = { + update: XOR + create: XOR + where?: KomoditasWhereInput + } + + export type KomoditasUpdateToOneWithWhereWithoutKecamatanInput = { + where?: KomoditasWhereInput + data: XOR + } + + export type KomoditasUpdateWithoutKecamatanInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + hasil_panen?: HasilPanenUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateWithoutKecamatanInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type PendudukUpsertWithWhereUniqueWithoutKecamatanInput = { + where: PendudukWhereUniqueInput + update: XOR + create: XOR + } + + export type PendudukUpdateWithWhereUniqueWithoutKecamatanInput = { + where: PendudukWhereUniqueInput + data: XOR + } + + export type PendudukUpdateManyWithWhereWithoutKecamatanInput = { + where: PendudukScalarWhereInput + data: XOR + } + + export type PendudukScalarWhereInput = { + AND?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + OR?: PendudukScalarWhereInput[] + NOT?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + id_penduduk?: IntFilter<"Penduduk"> | number + id_kecamatan?: IntFilter<"Penduduk"> | number + data_tahun?: IntFilter<"Penduduk"> | number + jumlah_penduduk?: FloatFilter<"Penduduk"> | number + laju_pertumbuhan?: StringFilter<"Penduduk"> | string + } + + export type HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput = { + where: HasilPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput = { + where: HasilPanenWhereUniqueInput + data: XOR + } + + export type HasilPanenUpdateManyWithWhereWithoutKecamatanInput = { + where: HasilPanenScalarWhereInput + data: XOR + } + + export type HasilPanenScalarWhereInput = { + AND?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + OR?: HasilPanenScalarWhereInput[] + NOT?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + id_panen?: IntFilter<"HasilPanen"> | number + id_kecamatan?: IntFilter<"HasilPanen"> | number + id_komoditas?: IntFilter<"HasilPanen"> | number + tahun_panen?: IntFilter<"HasilPanen"> | number + produksi?: FloatFilter<"HasilPanen"> | number + luas_panen?: FloatFilter<"HasilPanen"> | number + produktivitas?: FloatFilter<"HasilPanen"> | number + } + + export type PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput = { + where: PrediksiPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput = { + where: PrediksiPanenWhereUniqueInput + data: XOR + } + + export type PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput = { + where: PrediksiPanenScalarWhereInput + data: XOR + } + + export type PrediksiPanenScalarWhereInput = { + AND?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + OR?: PrediksiPanenScalarWhereInput[] + NOT?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + id_prediksi?: IntFilter<"PrediksiPanen"> | number + id_kecamatan?: IntFilter<"PrediksiPanen"> | number + id_komoditas?: IntFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntFilter<"PrediksiPanen"> | number + } + + export type KecamatanCreateWithoutPendudukInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutPendudukInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutPendudukInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KecamatanUpsertWithoutPendudukInput = { + update: XOR + create: XOR + where?: KecamatanWhereInput + } + + export type KecamatanUpdateToOneWithWhereWithoutPendudukInput = { + where?: KecamatanWhereInput + data: XOR + } + + export type KecamatanUpdateWithoutPendudukInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutPendudukInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanCreateWithoutKomoditasInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutKomoditasInput = { + id_kecamatan?: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutKomoditasInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KecamatanCreateManyKomoditasInputEnvelope = { + data: KecamatanCreateManyKomoditasInput | KecamatanCreateManyKomoditasInput[] + skipDuplicates?: boolean + } + + export type HasilPanenCreateWithoutKomoditasInput = { + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + kecamatan: KecamatanCreateNestedOneWithoutHasil_panenInput + } + + export type HasilPanenUncheckedCreateWithoutKomoditasInput = { + id_panen?: number + id_kecamatan: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + } + + export type HasilPanenCreateOrConnectWithoutKomoditasInput = { + where: HasilPanenWhereUniqueInput + create: XOR + } + + export type HasilPanenCreateManyKomoditasInputEnvelope = { + data: HasilPanenCreateManyKomoditasInput | HasilPanenCreateManyKomoditasInput[] + skipDuplicates?: boolean + } + + export type PrediksiPanenCreateWithoutKomoditasInput = { + tahun_prediksi: number + hasil_prediksi: number + kecamatan: KecamatanCreateNestedOneWithoutPrediksi_panenInput + } + + export type PrediksiPanenUncheckedCreateWithoutKomoditasInput = { + id_prediksi?: number + id_kecamatan: number + tahun_prediksi: number + hasil_prediksi: number + } + + export type PrediksiPanenCreateOrConnectWithoutKomoditasInput = { + where: PrediksiPanenWhereUniqueInput + create: XOR + } + + export type PrediksiPanenCreateManyKomoditasInputEnvelope = { + data: PrediksiPanenCreateManyKomoditasInput | PrediksiPanenCreateManyKomoditasInput[] + skipDuplicates?: boolean + } + + export type KecamatanUpsertWithWhereUniqueWithoutKomoditasInput = { + where: KecamatanWhereUniqueInput + update: XOR + create: XOR + } + + export type KecamatanUpdateWithWhereUniqueWithoutKomoditasInput = { + where: KecamatanWhereUniqueInput + data: XOR + } + + export type KecamatanUpdateManyWithWhereWithoutKomoditasInput = { + where: KecamatanScalarWhereInput + data: XOR + } + + export type KecamatanScalarWhereInput = { + AND?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + OR?: KecamatanScalarWhereInput[] + NOT?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + id_kecamatan?: IntFilter<"Kecamatan"> | number + id_komoditas?: IntFilter<"Kecamatan"> | number + nama_kecamatan?: StringFilter<"Kecamatan"> | string + deskripsi?: StringFilter<"Kecamatan"> | string + gambar?: StringFilter<"Kecamatan"> | string + area?: FloatFilter<"Kecamatan"> | number + posisi_x?: FloatFilter<"Kecamatan"> | number + posisi_y?: FloatFilter<"Kecamatan"> | number + } + + export type HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput = { + where: HasilPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput = { + where: HasilPanenWhereUniqueInput + data: XOR + } + + export type HasilPanenUpdateManyWithWhereWithoutKomoditasInput = { + where: HasilPanenScalarWhereInput + data: XOR + } + + export type PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput = { + where: PrediksiPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput = { + where: PrediksiPanenWhereUniqueInput + data: XOR + } + + export type PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput = { + where: PrediksiPanenScalarWhereInput + data: XOR + } + + export type KecamatanCreateWithoutHasil_panenInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutHasil_panenInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutHasil_panenInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KomoditasCreateWithoutHasil_panenInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + kecamatan?: KecamatanCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateWithoutHasil_panenInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + kecamatan?: KecamatanUncheckedCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasCreateOrConnectWithoutHasil_panenInput = { + where: KomoditasWhereUniqueInput + create: XOR + } + + export type KecamatanUpsertWithoutHasil_panenInput = { + update: XOR + create: XOR + where?: KecamatanWhereInput + } + + export type KecamatanUpdateToOneWithWhereWithoutHasil_panenInput = { + where?: KecamatanWhereInput + data: XOR + } + + export type KecamatanUpdateWithoutHasil_panenInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutHasil_panenInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KomoditasUpsertWithoutHasil_panenInput = { + update: XOR + create: XOR + where?: KomoditasWhereInput + } + + export type KomoditasUpdateToOneWithWhereWithoutHasil_panenInput = { + where?: KomoditasWhereInput + data: XOR + } + + export type KomoditasUpdateWithoutHasil_panenInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateWithoutHasil_panenInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type KecamatanCreateWithoutPrediksi_panenInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutPrediksi_panenInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutPrediksi_panenInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KomoditasCreateWithoutPrediksi_panenInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + kecamatan?: KecamatanCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateWithoutPrediksi_panenInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + kecamatan?: KecamatanUncheckedCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasCreateOrConnectWithoutPrediksi_panenInput = { + where: KomoditasWhereUniqueInput + create: XOR + } + + export type KecamatanUpsertWithoutPrediksi_panenInput = { + update: XOR + create: XOR + where?: KecamatanWhereInput + } + + export type KecamatanUpdateToOneWithWhereWithoutPrediksi_panenInput = { + where?: KecamatanWhereInput + data: XOR + } + + export type KecamatanUpdateWithoutPrediksi_panenInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutPrediksi_panenInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KomoditasUpsertWithoutPrediksi_panenInput = { + update: XOR + create: XOR + where?: KomoditasWhereInput + } + + export type KomoditasUpdateToOneWithWhereWithoutPrediksi_panenInput = { + where?: KomoditasWhereInput + data: XOR + } + + export type KomoditasUpdateWithoutPrediksi_panenInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateWithoutPrediksi_panenInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type PendudukCreateManyKecamatanInput = { + id_penduduk?: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + } + + export type HasilPanenCreateManyKecamatanInput = { + id_panen?: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + } + + export type PrediksiPanenCreateManyKecamatanInput = { + id_prediksi?: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + } + + export type PendudukUpdateWithoutKecamatanInput = { + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + } + + export type PendudukUncheckedUpdateWithoutKecamatanInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + } + + export type PendudukUncheckedUpdateManyWithoutKecamatanInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + } + + export type HasilPanenUpdateWithoutKecamatanInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + komoditas?: KomoditasUpdateOneRequiredWithoutHasil_panenNestedInput + } + + export type HasilPanenUncheckedUpdateWithoutKecamatanInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type HasilPanenUncheckedUpdateManyWithoutKecamatanInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type PrediksiPanenUpdateWithoutKecamatanInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + komoditas?: KomoditasUpdateOneRequiredWithoutPrediksi_panenNestedInput + } + + export type PrediksiPanenUncheckedUpdateWithoutKecamatanInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKecamatanInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + export type KecamatanCreateManyKomoditasInput = { + id_kecamatan?: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + } + + export type HasilPanenCreateManyKomoditasInput = { + id_panen?: number + id_kecamatan: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + } + + export type PrediksiPanenCreateManyKomoditasInput = { + id_prediksi?: number + id_kecamatan: number + tahun_prediksi: number + hasil_prediksi: number + } + + export type KecamatanUpdateWithoutKomoditasInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutKomoditasInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateManyWithoutKomoditasInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: FloatFieldUpdateOperationsInput | number + posisi_y?: FloatFieldUpdateOperationsInput | number + } + + export type HasilPanenUpdateWithoutKomoditasInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateOneRequiredWithoutHasil_panenNestedInput + } + + export type HasilPanenUncheckedUpdateWithoutKomoditasInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type HasilPanenUncheckedUpdateManyWithoutKomoditasInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + } + + export type PrediksiPanenUpdateWithoutKomoditasInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + kecamatan?: KecamatanUpdateOneRequiredWithoutPrediksi_panenNestedInput + } + + export type PrediksiPanenUncheckedUpdateWithoutKomoditasInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKomoditasInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + } + + + + /** + * Batch Payload for updateMany & deleteMany & createMany + */ + + export type BatchPayload = { + count: number + } + + /** + * DMMF + */ + export const dmmf: runtime.BaseDMMF +} \ No newline at end of file diff --git a/lib/generated/prisma/index.js b/lib/generated/prisma/index.js new file mode 100644 index 0000000..cf6db9c --- /dev/null +++ b/lib/generated/prisma/index.js @@ -0,0 +1,272 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + PrismaClientKnownRequestError, + PrismaClientUnknownRequestError, + PrismaClientRustPanicError, + PrismaClientInitializationError, + PrismaClientValidationError, + getPrismaClient, + sqltag, + empty, + join, + raw, + skip, + Decimal, + Debug, + objectEnumValues, + makeStrictEnum, + Extensions, + warnOnce, + defineDmmfProperty, + Public, + getRuntime, + createParam, +} = require('./runtime/library.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError; +Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError +Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError +Prisma.PrismaClientInitializationError = PrismaClientInitializationError +Prisma.PrismaClientValidationError = PrismaClientValidationError +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = sqltag +Prisma.empty = empty +Prisma.join = join +Prisma.raw = raw +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = Extensions.getExtensionContext +Prisma.defineExtension = Extensions.defineExtension + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + + + const path = require('path') + +/** + * Enums + */ +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; + +exports.Prisma.DetailScalarFieldEnum = { + tax_id: 'tax_id', + phone: 'phone', + bio: 'bio', + city: 'city', + county: 'county', + post_kode: 'post_kode', + photo_profile: 'photo_profile' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; +/** + * Create the Client + */ +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "C:\\Users\\KiRa\\Documents\\MUHAMMAD ILHAM\\GitHub\\AI\\pandawa\\src\\generated\\prisma", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "windows", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "C:\\Users\\KiRa\\Documents\\MUHAMMAD ILHAM\\GitHub\\AI\\pandawa\\prisma\\schema.prisma", + "isCustomOutput": true + }, + "relativeEnvPaths": { + "rootEnvPath": "../../../.env", + "schemaEnvPath": "../../../.env" + }, + "relativePath": "../../../prisma", + "clientVersion": "6.6.0", + "engineVersion": "f676762280b54cd07c770017ed3711ddde35f37a", + "datasourceNames": [ + "database" + ], + "activeProvider": "postgresql", + "inlineDatasources": { + "database": { + "url": { + "fromEnvVar": "DATABASE_URL", + "value": "postgresql://postgres:H3H3_Te-Nandayo@localhost:5432/postgres?schema=public" + } + } + }, + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource database {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id String @id @default(uuid())\n name String?\n email String? @unique\n password String\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n detail Detail?\n\n @@map(\"users\")\n}\n\nmodel Detail {\n tax_id String @id\n phone String\n bio String\n city String\n county String\n post_kode String\n photo_profile String\n\n user User @relation(fields: [tax_id], references: [id])\n\n @@map(\"detail\")\n}\n\nmodel Kecamatan {\n id_kecamatan Int @id @default(autoincrement())\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n nama_kecamatan String @database.VarChar(100)\n deskripsi String @database.Text\n gambar String @database.Text\n area Float\n posisi_x Float\n posisi_y Float\n penduduk Penduduk[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_kecamatan\")\n}\n\nmodel Penduduk {\n id_penduduk Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n data_tahun Int\n jumlah_penduduk Float\n laju_pertumbuhan String @database.VarChar(30)\n\n @@map(\"data_penduduk\")\n}\n\nmodel Komoditas {\n id_komoditas Int @id @default(autoincrement())\n nama_komoditas String @database.VarChar(100)\n posisi_x Float\n posisi_y Float\n kecamatan Kecamatan[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_komoditas\")\n}\n\nmodel HasilPanen {\n id_panen Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_panen Int\n produksi Float\n luas_panen Float\n produktivitas Float\n\n @@map(\"hasil_panen\")\n}\n\nmodel PrediksiPanen {\n id_prediksi Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_prediksi Int\n hasil_prediksi Int\n\n @@map(\"prediksi_panen\")\n}\n", + "inlineSchemaHash": "96a1ea5171d7c51776a55202d2c2398d648f7c4c751b72c7756bcb6a17610839", + "copyEngine": true +} + +const fs = require('fs') + +config.dirname = __dirname +if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) { + const alternativePaths = [ + "src/generated/prisma", + "generated/prisma", + ] + + const alternativePath = alternativePaths.find((altPath) => { + return fs.existsSync(path.join(process.cwd(), altPath, 'schema.prisma')) + }) ?? alternativePaths[0] + + config.dirname = path.join(process.cwd(), alternativePath) + config.isBundled = true +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"detail\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Detail\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Detail\":{\"dbName\":\"detail\",\"schema\":null,\"fields\":[{\"name\":\"tax_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phone\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bio\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"city\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"county\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"post_kode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"photo_profile\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[\"tax_id\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Kecamatan\":{\"dbName\":\"data_kecamatan\",\"schema\":null,\"fields\":[{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deskripsi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"gambar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"area\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"penduduk\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Penduduk\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Penduduk\":{\"dbName\":\"data_penduduk\",\"schema\":null,\"fields\":[{\"name\":\"id_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"data_tahun\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"jumlah_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"laju_pertumbuhan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"30\"]],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Komoditas\":{\"dbName\":\"data_komoditas\",\"schema\":null,\"fields\":[{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"HasilPanen\":{\"dbName\":\"hasil_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"luas_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produktivitas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"PrediksiPanen\":{\"dbName\":\"prediksi_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +defineDmmfProperty(exports.Prisma, config.runtimeDataModel) +config.engineWasm = undefined +config.compilerWasm = undefined + + +const { warnEnvConflicts } = require('./runtime/library.js') + +warnEnvConflicts({ + rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath), + schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath) +}) + +const PrismaClient = getPrismaClient(config) +exports.PrismaClient = PrismaClient +Object.assign(exports, Prisma) + +// file annotations for bundling tools to include these files +path.join(__dirname, "query_engine-windows.dll.node"); +path.join(process.cwd(), "src/generated/prisma/query_engine-windows.dll.node") +// file annotations for bundling tools to include these files +path.join(__dirname, "schema.prisma"); +path.join(process.cwd(), "src/generated/prisma/schema.prisma") diff --git a/lib/generated/prisma/package.json b/lib/generated/prisma/package.json new file mode 100644 index 0000000..b002b75 --- /dev/null +++ b/lib/generated/prisma/package.json @@ -0,0 +1,140 @@ +{ + "name": "prisma-client-15f29d5cbb019aa2f4aef6b64484b53d8c5a7ec7a76b96d3fd27631a84d919aa", + "main": "index.js", + "types": "index.d.ts", + "browser": "index-browser.js", + "exports": { + "./client": { + "require": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "import": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "default": "./index.js" + }, + "./package.json": "./package.json", + ".": { + "require": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "import": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "default": "./index.js" + }, + "./edge": { + "types": "./edge.d.ts", + "require": "./edge.js", + "import": "./edge.js", + "default": "./edge.js" + }, + "./react-native": { + "types": "./react-native.d.ts", + "require": "./react-native.js", + "import": "./react-native.js", + "default": "./react-native.js" + }, + "./extension": { + "types": "./extension.d.ts", + "require": "./extension.js", + "import": "./extension.js", + "default": "./extension.js" + }, + "./index-browser": { + "types": "./index.d.ts", + "require": "./index-browser.js", + "import": "./index-browser.js", + "default": "./index-browser.js" + }, + "./index": { + "types": "./index.d.ts", + "require": "./index.js", + "import": "./index.js", + "default": "./index.js" + }, + "./wasm": { + "types": "./wasm.d.ts", + "require": "./wasm.js", + "import": "./wasm.mjs", + "default": "./wasm.mjs" + }, + "./runtime/client": { + "types": "./runtime/client.d.ts", + "require": "./runtime/client.js", + "import": "./runtime/client.mjs", + "default": "./runtime/client.mjs" + }, + "./runtime/library": { + "types": "./runtime/library.d.ts", + "require": "./runtime/library.js", + "import": "./runtime/library.mjs", + "default": "./runtime/library.mjs" + }, + "./runtime/binary": { + "types": "./runtime/binary.d.ts", + "require": "./runtime/binary.js", + "import": "./runtime/binary.mjs", + "default": "./runtime/binary.mjs" + }, + "./runtime/wasm": { + "types": "./runtime/wasm.d.ts", + "require": "./runtime/wasm.js", + "import": "./runtime/wasm.mjs", + "default": "./runtime/wasm.mjs" + }, + "./runtime/edge": { + "types": "./runtime/edge.d.ts", + "require": "./runtime/edge.js", + "import": "./runtime/edge-esm.js", + "default": "./runtime/edge-esm.js" + }, + "./runtime/react-native": { + "types": "./runtime/react-native.d.ts", + "require": "./runtime/react-native.js", + "import": "./runtime/react-native.js", + "default": "./runtime/react-native.js" + }, + "./generator-build": { + "require": "./generator-build/index.js", + "import": "./generator-build/index.js", + "default": "./generator-build/index.js" + }, + "./sql": { + "require": { + "types": "./sql.d.ts", + "node": "./sql.js", + "default": "./sql.js" + }, + "import": { + "types": "./sql.d.ts", + "node": "./sql.mjs", + "default": "./sql.mjs" + }, + "default": "./sql.js" + }, + "./*": "./*" + }, + "version": "6.6.0", + "sideEffects": false +} \ No newline at end of file diff --git a/lib/generated/prisma/query_engine-windows.dll.node b/lib/generated/prisma/query_engine-windows.dll.node new file mode 100644 index 0000000..97f9a43 Binary files /dev/null and b/lib/generated/prisma/query_engine-windows.dll.node differ diff --git a/lib/generated/prisma/runtime/edge-esm.js b/lib/generated/prisma/runtime/edge-esm.js new file mode 100644 index 0000000..2681fa9 --- /dev/null +++ b/lib/generated/prisma/runtime/edge-esm.js @@ -0,0 +1,31 @@ +var aa=Object.create;var en=Object.defineProperty;var la=Object.getOwnPropertyDescriptor;var ua=Object.getOwnPropertyNames;var ca=Object.getPrototypeOf,pa=Object.prototype.hasOwnProperty;var me=(e,t)=>()=>(e&&(t=e(e=0)),t);var Fe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ir=(e,t)=>{for(var r in t)en(e,r,{get:t[r],enumerable:!0})},ma=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ua(t))!pa.call(e,i)&&i!==r&&en(e,i,{get:()=>t[i],enumerable:!(n=la(t,i))||n.enumerable});return e};var Qe=(e,t,r)=>(r=e!=null?aa(ca(e)):{},ma(t||!e||!e.__esModule?en(r,"default",{value:e,enumerable:!0}):r,e));var y,u=me(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var b,c=me(()=>{"use strict";b=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,p=me(()=>{"use strict";E=()=>{};E.prototype=E});var m=me(()=>{"use strict"});var Ei=Fe(Ke=>{"use strict";d();u();c();p();m();var oi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),da=oi(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var D=A.indexOf("=");D===-1&&(D=R);var M=D===R?0:4-D%4;return[D,M]}function l(A){var R=a(A),D=R[0],M=R[1];return(D+M)*3/4-M}function f(A,R,D){return(R+D)*3/4-D}function g(A){var R,D=a(A),M=D[0],B=D[1],k=new n(f(A,M,B)),F=0,ie=B>0?M-4:M,G;for(G=0;G>16&255,k[F++]=R>>8&255,k[F++]=R&255;return B===2&&(R=r[A.charCodeAt(G)]<<2|r[A.charCodeAt(G+1)]>>4,k[F++]=R&255),B===1&&(R=r[A.charCodeAt(G)]<<10|r[A.charCodeAt(G+1)]<<4|r[A.charCodeAt(G+2)]>>2,k[F++]=R>>8&255,k[F++]=R&255),k}function h(A){return t[A>>18&63]+t[A>>12&63]+t[A>>6&63]+t[A&63]}function v(A,R,D){for(var M,B=[],k=R;kie?ie:F+k));return M===1?(R=A[D-1],B.push(t[R>>2]+t[R<<4&63]+"==")):M===2&&(R=(A[D-2]<<8)+A[D-1],B.push(t[R>>10]+t[R>>4&63]+t[R<<2&63]+"=")),B.join("")}}),fa=oi(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,f=(1<>1,h=-7,v=n?o-1:0,S=n?-1:1,A=t[r+v];for(v+=S,s=A&(1<<-h)-1,A>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=S,h-=8);if(s===0)s=1-g;else{if(s===f)return a?NaN:(A?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(A?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,f,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=i?0:s-1,R=i?1:-1,D=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(f=Math.pow(2,-a))<1&&(a--,f*=2),a+v>=1?r+=S/f:r+=S*Math.pow(2,1-v),r*f>=2&&(a++,f/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*f-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+A]=l&255,A+=R,l/=256,o-=8);for(a=a<0;t[n+A]=a&255,A+=R,a/=256,g-=8);t[n+A-R]|=D*128}}),tn=da(),We=fa(),ti=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ke.Buffer=T;Ke.SlowBuffer=ba;Ke.INSPECT_MAX_BYTES=50;var or=2147483647;Ke.kMaxLength=or;T.TYPED_ARRAY_SUPPORT=ga();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function ga(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function be(e){if(e>or)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return on(e)}return si(e,t,r)}T.poolSize=8192;function si(e,t,r){if(typeof e=="string")return ya(e,t);if(ArrayBuffer.isView(e))return wa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(de(e,ArrayBuffer)||e&&de(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(de(e,SharedArrayBuffer)||e&&de(e.buffer,SharedArrayBuffer)))return li(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=Ea(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return si(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ai(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function ha(e,t,r){return ai(e),e<=0?be(e):t!==void 0?typeof r=="string"?be(e).fill(t,r):be(e).fill(t):be(e)}T.alloc=function(e,t,r){return ha(e,t,r)};function on(e){return ai(e),be(e<0?0:sn(e)|0)}T.allocUnsafe=function(e){return on(e)};T.allocUnsafeSlow=function(e){return on(e)};function ya(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=ui(e,t)|0,n=be(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function rn(e){let t=e.length<0?0:sn(e.length)|0,r=be(t);for(let n=0;n=or)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+or.toString(16)+" bytes");return e|0}function ba(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),de(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function ui(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||de(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return nn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return wi(e).length;default:if(i)return n?-1:nn(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=ui;function xa(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Oa(this,t,r);case"utf8":case"utf-8":return pi(this,t,r);case"ascii":return ka(this,t,r);case"latin1":case"binary":return Ia(this,t,r);case"base64":return Ra(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Da(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Le(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};ti&&(T.prototype[ti]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),f=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,ln(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:ri(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):ri(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function ri(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let f;if(i){let g=-1;for(f=r;fs&&(r=s-a),f=r;f>=0;f--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return Pa(this,e,t,r);case"utf8":case"utf-8":return va(this,e,t,r);case"ascii":case"latin1":case"binary":return Ta(this,e,t,r);case"base64":return Ca(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Aa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Ra(e,t,r){return t===0&&r===e.length?tn.fromByteArray(e):tn.fromByteArray(e.slice(t,r))}function pi(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,f,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],f=e[i+2],(l&192)===128&&(f&192)===128&&(h=(o&15)<<12|(l&63)<<6|f&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],f=e[i+2],g=e[i+3],(l&192)===128&&(f&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(f&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return Sa(n)}var ni=4096;function Sa(e){let t=e.length;if(t<=ni)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Ae(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Ae(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),We.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),We.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!1,52,8)};function te(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function mi(e,t,r,n,i){yi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function di(e,t,r,n,i){yi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Ae(function(e,t=0){return mi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Ae(function(e,t=0){return di(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Ae(function(e,t=0){return mi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Ae(function(e,t=0){return di(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function fi(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function gi(e,t,r,n,i){return t=+t,r=r>>>0,i||fi(e,t,r,4,34028234663852886e22,-34028234663852886e22),We.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return gi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return gi(this,e,t,!1,r)};function hi(e,t,r,n,i){return t=+t,r=r>>>0,i||fi(e,t,r,8,17976931348623157e292,-17976931348623157e292),We.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return hi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return hi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ii(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ii(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ii(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Ma(e,t,r){He(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&bt(t,e.length-(r+1))}function yi(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Je.ERR_OUT_OF_RANGE("value",a,e)}Ma(n,i,o)}function He(e,t){if(typeof e!="number")throw new Je.ERR_INVALID_ARG_TYPE(t,"number",e)}function bt(e,t,r){throw Math.floor(e)!==e?(He(e,r),new Je.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Je.ERR_BUFFER_OUT_OF_BOUNDS:new Je.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var _a=/[^+/0-9A-Za-z-_]/g;function Na(e){if(e=e.split("=")[0],e=e.trim().replace(_a,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function nn(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Fa(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function wi(e){return tn.toByteArray(Na(e))}function sr(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function de(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function ln(e){return e!==e}var Ba=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Ae(e){return typeof BigInt>"u"?Ua:e}function Ua(){throw new Error("BigInt not supported")}});var w,d=me(()=>{"use strict";w=Qe(Ei())});function Qa(){return!1}function Bi(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function Ja(){return Bi()}function Wa(){return[]}function Ha(e){e(null,[])}function Ka(){return""}function za(){return""}function Ya(){}function Za(){}function Xa(){}function el(){}function tl(){}function rl(){}var nl,il,Ui,qi=me(()=>{"use strict";d();u();c();p();m();nl={},il={existsSync:Qa,lstatSync:Bi,statSync:Ja,readdirSync:Wa,readdir:Ha,readlinkSync:Ka,realpathSync:za,chmodSync:Ya,renameSync:Za,mkdirSync:Xa,rmdirSync:el,rmSync:tl,unlinkSync:rl,promises:nl},Ui=il});function ol(...e){return e.join("/")}function sl(...e){return e.join("/")}function al(e){let t=$i(e),r=ji(e),[n,i]=t.split(".");return{root:"/",dir:r,base:t,ext:i,name:n}}function $i(e){let t=e.split("/");return t[t.length-1]}function ji(e){return e.split("/").slice(0,-1).join("/")}var Vi,ll,ul,cr,Gi=me(()=>{"use strict";d();u();c();p();m();Vi="/",ll={sep:Vi},ul={basename:$i,dirname:ji,join:sl,parse:al,posix:ll,resolve:ol,sep:Vi},cr=ul});var Qi=Fe((sd,cl)=>{cl.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Ki=Fe((Cd,Hi)=>{"use strict";d();u();c();p();m();Hi.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var Zi=Fe((Ld,Yi)=>{"use strict";d();u();c();p();m();Yi.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var eo=Fe((Vd,Xi)=>{"use strict";d();u();c();p();m();var yl=Zi();Xi.exports=e=>typeof e=="string"?e.replace(yl(),""):e});var Pn=Fe((Dy,Eo)=>{"use strict";d();u();c();p();m();Eo.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";d();u();c();p();m()});var Co=me(()=>{"use strict";d();u();c();p();m()});var Jo=Fe((e1,ac)=>{ac.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Lr,Wo=me(()=>{"use strict";d();u();c();p();m();Lr=class{events={};on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});d();u();c();p();m();var Pi={};ir(Pi,{defineExtension:()=>bi,getExtensionContext:()=>xi});d();u();c();p();m();d();u();c();p();m();function bi(e){return typeof e=="function"?e:t=>t.$extends(e)}d();u();c();p();m();function xi(e){return e}var Ti={};ir(Ti,{validator:()=>vi});d();u();c();p();m();d();u();c();p();m();function vi(...e){return t=>t}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var un,Ci,Ai,Ri,Si=!0;typeof y<"u"&&({FORCE_COLOR:un,NODE_DISABLE_COLORS:Ci,NO_COLOR:Ai,TERM:Ri}=y.env||{},Si=y.stdout&&y.stdout.isTTY);var qa={enabled:!Ci&&Ai==null&&Ri!=="dumb"&&(un!=null&&un!=="0"||Si)};function j(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!qa.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var um=j(0,0),ar=j(1,22),lr=j(2,22),cm=j(3,23),ki=j(4,24),pm=j(7,27),mm=j(8,28),dm=j(9,29),fm=j(30,39),ze=j(31,39),Ii=j(32,39),Oi=j(33,39),Di=j(34,39),gm=j(35,39),Mi=j(36,39),hm=j(37,39),_i=j(90,39),ym=j(90,39),wm=j(40,49),Em=j(41,49),bm=j(42,49),xm=j(43,49),Pm=j(44,49),vm=j(45,49),Tm=j(46,49),Cm=j(47,49);d();u();c();p();m();var $a=100,Ni=["green","yellow","blue","magenta","cyan","red"],ur=[],Fi=Date.now(),ja=0,cn=typeof y<"u"?y.env:{};globalThis.DEBUG??=cn.DEBUG??"";globalThis.DEBUG_COLORS??=cn.DEBUG_COLORS?cn.DEBUG_COLORS==="true":!0;var xt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Va(e){let t={color:Ni[ja++%Ni.length],enabled:xt.enabled(e),namespace:e,log:xt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&ur.push([o,...n]),ur.length>$a&&ur.shift(),xt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:Ga(g)),f=`+${Date.now()-Fi}ms`;Fi=Date.now(),a(o,...l,f)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var Y=new Proxy(Va,{get:(e,t)=>xt[t],set:(e,t,r)=>xt[t]=r});function Ga(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Li(){ur.length=0}d();u();c();p();m();d();u();c();p();m();var pl=Qi(),pn=pl.version;d();u();c();p();m();var Ji="library";function Ye(e){let t=ml();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":e?.config.engineType==="client"?"client":Ji)}function ml(){let e=y.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":e==="client"?"client":void 0}d();u();c();p();m();var Wi="prisma+postgres",pr=`${Wi}:`;function mn(e){return e?.startsWith(`${pr}//`)??!1}var vt={};ir(vt,{error:()=>gl,info:()=>fl,log:()=>dl,query:()=>hl,should:()=>zi,tags:()=>Pt,warn:()=>dn});d();u();c();p();m();var Pt={error:ze("prisma:error"),warn:Oi("prisma:warn"),info:Mi("prisma:info"),query:Di("prisma:query")},zi={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function dl(...e){console.log(...e)}function dn(e,...t){zi.warn()&&console.warn(`${Pt.warn} ${e}`,...t)}function fl(e,...t){console.info(`${Pt.info} ${e}`,...t)}function gl(e,...t){console.error(`${Pt.error} ${e}`,...t)}function hl(e,...t){console.log(`${Pt.query} ${e}`,...t)}d();u();c();p();m();function xe(e,t){throw new Error(t)}d();u();c();p();m();function fn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}d();u();c();p();m();function Ze(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}d();u();c();p();m();function gn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{to.has(e)||(to.add(e),dn(t,...r))};var Q=class e extends Error{clientVersion;errorCode;retryable;constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};N(Q,"PrismaClientInitializationError");d();u();c();p();m();var oe=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};N(oe,"PrismaClientKnownRequestError");d();u();c();p();m();var Re=class extends Error{clientVersion;constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};N(Re,"PrismaClientRustPanicError");d();u();c();p();m();var se=class extends Error{clientVersion;batchRequestIdx;constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};N(se,"PrismaClientUnknownRequestError");d();u();c();p();m();var X=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(t,{clientVersion:r}){super(t),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};N(X,"PrismaClientValidationError");d();u();c();p();m();d();u();c();p();m();var Xe=9e15,Oe=1e9,hn="0123456789abcdef",gr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",hr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",yn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Xe,maxE:Xe,crypto:!1},so,Pe,_=!0,wr="[DecimalError] ",Ie=wr+"Invalid argument: ",ao=wr+"Precision limit exceeded",lo=wr+"crypto unavailable",uo="[object Decimal]",Z=Math.floor,J=Math.pow,wl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,El=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,bl=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,co=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ce=1e7,O=7,xl=9007199254740991,Pl=gr.length-1,wn=hr.length-1,C={toStringTag:uo};C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),I(e)};C.ceil=function(){return I(new this.constructor(this),this.e+1,2)};C.clampedTo=C.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ie+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,f=e.s;if(!s||!a)return!l||!f?NaN:l!==f?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-f:0;if(l!==f)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=vl(n,ho(n,r)),n.precision=e,n.rounding=t,I(Pe==2||Pe==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,l,f,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(_=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=K(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=Z((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),f=l.plus(g),n=q(f.plus(g).times(a),f.plus(l),s+2,1),K(a.d).slice(0,s)===(r=K(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(I(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(I(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return _=!0,I(n,e,h.rounding,t)};C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-Z(this.e/O))*O,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};C.dividedBy=C.div=function(e){return q(this,new this.constructor(e))};C.dividedToIntegerBy=C.divToInt=function(e){var t=this,r=t.constructor;return I(q(t,new r(e),0,1,1),r.precision,r.rounding)};C.equals=C.eq=function(e){return this.cmp(e)===0};C.floor=function(){return I(new this.constructor(this),this.e+1,3)};C.greaterThan=C.gt=function(e){return this.cmp(e)>0};C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return t==1||t===0};C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/br(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=et(s,1,o.times(t),new s(1),!0);for(var l,f=e,g=new s(8);f--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return I(o,s.precision=r,s.rounding=n,!0)};C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/br(5,e)),i=et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),f=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(f))))}return o.precision=t,o.rounding=r,I(i,t,r,!0)};C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,q(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};C.inverseCosine=C.acos=function(){var e=this,t=e.constructor,r=e.abs().cmp(1),n=t.precision,i=t.rounding;return r!==-1?r===0?e.isNeg()?fe(t,n,i):new t(0):new t(NaN):e.isZero()?fe(t,n+4,i).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=i,e.times(2))};C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,_=!1,r=r.times(r).minus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,_=!1,r=r.times(r).plus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln())};C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?I(new o(i),e,t,!0):(o.precision=r=n-i.e,i=q(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=fe(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding;if(f.isFinite()){if(f.isZero())return new g(f);if(f.abs().eq(1)&&h+4<=wn)return s=fe(g,h+4,v).times(.25),s.s=f.s,s}else{if(!f.s)return new g(NaN);if(h+4<=wn)return s=fe(g,h+4,v).times(.5),s.s=f.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/O+2|0),e=r;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/O),n=1,l=f.times(f),s=new g(f),i=f;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};C.isNaN=function(){return!this.s};C.isNegative=C.isNeg=function(){return this.s<0};C.isPositive=C.isPos=function(){return this.s>0};C.isZero=function(){return!!this.d&&this.d[0]===0};C.lessThan=C.lt=function(e){return this.cmp(e)<0};C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1};C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=f.d,f.s<0||!r||!r[0]||f.eq(1))return new g(r&&!r[0]?-1/0:f.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(_=!1,a=h+S,s=ke(f,a),n=t?yr(g,a+10):ke(e,a),l=q(s,n,a,1),Tt(l.d,i=h,v))do if(a+=10,s=ke(f,a),n=t?yr(g,a+10):ke(e,a),l=q(s,n,a,1),!o){+K(l.d).slice(i+1,i+15)+1==1e14&&(l=I(l,h+1,0));break}while(Tt(l.d,i+=10,v));return _=!0,I(l,h,v)};C.minus=C.sub=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.constructor;if(e=new A(e),!S.d||!e.d)return!S.s||!e.s?e=new A(NaN):S.d?e.s=-e.s:e=new A(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(f=S.d,v=e.d,a=A.precision,l=A.rounding,!f[0]||!v[0]){if(v[0])e.s=-e.s;else if(f[0])e=new A(S);else return new A(l===3?-0:0);return _?I(e,a,l):e}if(r=Z(e.e/O),g=Z(S.e/O),f=f.slice(),o=g-r,o){for(h=o<0,h?(t=f,o=-o,s=v.length):(t=v,r=g,s=f.length),n=Math.max(Math.ceil(a/O),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=f.length,s=v.length,h=n0;--n)f[s++]=0;for(n=v.length;n>o;){if(f[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=f.length,i=g.length,s-i<0&&(i=s,r=g,g=f,f=r),t=0;i;)t=(f[--i]=f[i]+g[i]+t)/ce|0,f[i]%=ce;for(t&&(f.unshift(t),++n),s=f.length;f[--s]==0;)f.pop();return e.d=f,e.e=Er(f,n),_?I(e,a,l):e};C.precision=C.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ie+e);return r.d?(t=po(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};C.round=function(){var e=this,t=e.constructor;return I(new t(e),e.e+1,t.rounding)};C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=Cl(n,ho(n,r)),n.precision=e,n.rounding=t,I(Pe>2?r.neg():r,e,t,!0)):new n(NaN)};C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,f=s.s,g=s.constructor;if(f!==1||!a||!a[0])return new g(!f||f<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,f=Math.sqrt(+s),f==0||f==1/0?(t=K(a),(t.length+l)%2==0&&(t+="0"),f=Math.sqrt(t),l=Z((l+1)/2)-(l<0||l%2),f==1/0?t="5e"+l:(t=f.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(f.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(q(s,o,r+2,1)).times(.5),K(o.d).slice(0,r)===(t=K(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(I(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(I(n,l+1,1),e=!n.times(n).eq(s));break}return _=!0,I(n,l,g.rounding,e)};C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=q(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,I(Pe==2||Pe==4?r.neg():r,e,t,!0)):new n(NaN)};C.times=C.mul=function(e){var t,r,n,i,o,s,a,l,f,g=this,h=g.constructor,v=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!S||!S[0])return new h(!e.s||v&&!v[0]&&!S||S&&!S[0]&&!v?NaN:!v||!S?e.s/0:e.s*0);for(r=Z(g.e/O)+Z(e.e/O),l=v.length,f=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*v[i-n-1]+t,o[i--]=a%ce|0,t=a/ce|0;o[i]=(o[i]+t)%ce|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=Er(o,r),_?I(e,h.precision,h.rounding):e};C.toBinary=function(e,t){return bn(this,2,e,t)};C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(re(e,0,Oe),t===void 0?t=n.rounding:re(t,0,8),I(r,e+r.e+1,t))};C.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,!0):(re(e,0,Oe),t===void 0?t=i.rounding:re(t,0,8),n=I(new i(n),e+1,t),r=ge(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=ge(i):(re(e,0,Oe),t===void 0?t=o.rounding:re(t,0,8),n=I(new o(i),e+i.e+1,t),r=ge(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};C.toFraction=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.d,R=S.constructor;if(!A)return new R(S);if(f=r=new R(1),n=l=new R(0),t=new R(n),o=t.e=po(A)-S.e-1,s=o%O,t.d[0]=J(10,s<0?O+s:s),e==null)e=o>0?t:f;else{if(a=new R(e),!a.isInt()||a.lt(f))throw Error(Ie+a);e=a.gt(t)?o>0?t:f:a}for(_=!1,a=new R(K(A)),g=R.precision,R.precision=o=A.length*O*2;h=q(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=f,f=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=q(e.minus(r),n,0,1,1),l=l.plus(i.times(f)),r=r.plus(i.times(n)),l.s=f.s=S.s,v=q(f,n,o,1).minus(S).abs().cmp(q(l,r,o,1).minus(S).abs())<1?[f,n]:[l,r],R.precision=g,_=!0,v};C.toHexadecimal=C.toHex=function(e,t){return bn(this,16,e,t)};C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:re(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(_=!1,r=q(r,e,0,t,1).times(e),_=!0,I(r)):(e.s=r.s,r=e),r};C.toNumber=function(){return+this};C.toOctal=function(e,t){return bn(this,8,e,t)};C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,f=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,f));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return I(a,n,o);if(t=Z(e.e/O),t>=e.d.length-1&&(r=f<0?-f:f)<=xl)return i=mo(l,a,r,n),e.s<0?new l(1).div(i):I(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(_=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=En(e.times(ke(a,n+r)),n),i.d&&(i=I(i,n+5,1),Tt(i.d,n,o)&&(t=n+10,i=I(En(e.times(ke(a,t+r)),t),t+5,1),+K(i.d).slice(n+1,n+15)+1==1e14&&(i=I(i,n+1,0)))),i.s=s,_=!0,l.rounding=o,I(i,n,o))};C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(re(e,1,Oe),t===void 0?t=i.rounding:re(t,0,8),n=I(new i(n),e,t),r=ge(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toSignificantDigits=C.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(re(e,1,Oe),t===void 0?t=n.rounding:re(t,0,8)),I(new n(r),e,t)};C.toString=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};C.truncated=C.trunc=function(){return I(new this.constructor(this),this.e+1,1)};C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function K(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(Ie+e)}function Tt(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=O,i=0):(i=Math.ceil((t+1)/O),t%=O),o=J(10,O-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function dr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function vl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/br(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var q=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var f,g,h,v,S,A,R,D,M,B,k,F,ie,G,Yr,tr,Et,Zr,ue,rr,nr=n.constructor,Xr=n.s==i.s?1:-1,z=n.d,$=i.d;if(!z||!z[0]||!$||!$[0])return new nr(!n.s||!i.s||(z?$&&z[0]==$[0]:!$)?NaN:z&&z[0]==0||!$?Xr*0:Xr/0);for(l?(S=1,g=n.e-i.e):(l=ce,S=O,g=Z(n.e/S)-Z(i.e/S)),ue=$.length,Et=z.length,M=new nr(Xr),B=M.d=[],h=0;$[h]==(z[h]||0);h++);if($[h]>(z[h]||0)&&g--,o==null?(G=o=nr.precision,s=nr.rounding):a?G=o+(n.e-i.e)+1:G=o,G<0)B.push(1),A=!0;else{if(G=G/S+2|0,h=0,ue==1){for(v=0,$=$[0],G++;(h1&&($=e($,v,l),z=e(z,v,l),ue=$.length,Et=z.length),tr=ue,k=z.slice(0,ue),F=k.length;F=l/2&&++Zr;do v=0,f=t($,k,ue,F),f<0?(ie=k[0],ue!=F&&(ie=ie*l+(k[1]||0)),v=ie/Zr|0,v>1?(v>=l&&(v=l-1),R=e($,v,l),D=R.length,F=k.length,f=t(R,k,D,F),f==1&&(v--,r(R,ue=10;v/=10)h++;M.e=h+g*S-1,I(M,a?o+M.e+1:o,s,A)}return M}}();function I(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=O,s=t,g=h[v=0],l=g/J(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/O),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=O,s=o-O+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=O,s=o-O+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%J(10,i-s-1)),f=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,f?(t-=e.e+1,h[0]=J(10,(O-t%O)%O),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=J(10,O-o),h[v]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),f)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==ce&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=ce)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return _&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Se(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Se(-i-1)+o,r&&(n=r-s)>0&&(o+=Se(n))):i>=s?(o+=Se(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Se(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Se(n))),o}function Er(e,t){var r=e[0];for(t*=O;r>=10;r/=10)t++;return t}function yr(e,t,r){if(t>Pl)throw _=!0,r&&(e.precision=r),Error(ao);return I(new e(gr),t,1,!0)}function fe(e,t,r){if(t>wn)throw Error(ao);return I(new e(hr),t,r,!0)}function po(e){var t=e.length-1,r=t*O+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Se(e){for(var t="";e--;)t+="0";return t}function mo(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/O+4);for(_=!1;;){if(r%2&&(o=o.times(t),io(o.d,s)&&(i=!0)),r=Z(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),io(t.d,s)}return _=!0,o}function no(e){return e.d[e.d.length-1]&1}function fo(e,t,r){for(var n,i,o=new e(t[0]),s=0;++s17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(_=!1,l=A):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=I(o.times(e),l,1),r=r.times(++g),a=s.plus(q(o,r,l,1)),K(a.d).slice(0,l)===K(s.d).slice(0,l)){for(i=h;i--;)s=I(s.times(s),l,1);if(t==null)if(f<3&&Tt(s.d,l-n,S,f))v.precision=l+=10,r=o=a=new v(1),g=0,f++;else return I(s,v.precision=A,S,_=!0);else return v.precision=A,s}s=a}}function ke(e,t){var r,n,i,o,s,a,l,f,g,h,v,S=1,A=10,R=e,D=R.d,M=R.constructor,B=M.rounding,k=M.precision;if(R.s<0||!D||!D[0]||!R.e&&D[0]==1&&D.length==1)return new M(D&&!D[0]?-1/0:R.s!=1?NaN:D?0:R);if(t==null?(_=!1,g=k):g=t,M.precision=g+=A,r=K(D),n=r.charAt(0),Math.abs(o=R.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)R=R.times(e),r=K(R.d),n=r.charAt(0),S++;o=R.e,n>1?(R=new M("0."+r),o++):R=new M(n+"."+r.slice(1))}else return f=yr(M,g+2,k).times(o+""),R=ke(new M(n+"."+r.slice(1)),g-A).plus(f),M.precision=k,t==null?I(R,k,B,_=!0):R;for(h=R,l=s=R=q(R.minus(1),R.plus(1),g,1),v=I(R.times(R),g,1),i=3;;){if(s=I(s.times(v),g,1),f=l.plus(q(s,new M(i),g,1)),K(f.d).slice(0,g)===K(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(yr(M,g+2,k).times(o+""))),l=q(l,new M(S),g,1),t==null)if(Tt(l.d,g-A,B,a))M.precision=g+=A,f=s=R=q(h.minus(1),h.plus(1),g,1),v=I(R.times(R),g,1),i=a=1;else return I(l,M.precision=k,B,_=!0);else return M.precision=k,l;l=f,i+=2}}function go(e){return String(e.s*e.s/0)}function fr(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%O,r<0&&(n+=O),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),co.test(t))return fr(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(El.test(t))r=16,t=t.toLowerCase();else if(wl.test(t))r=2;else if(bl.test(t))r=8;else throw Error(Ie+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=mo(n,new n(r),o,o*2)),f=dr(t,r,ce),g=f.length-1,o=g;f[o]===0;--o)f.pop();return o<0?new n(e.s*0):(e.e=Er(f,g),e.d=f,_=!1,s&&(e=q(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):Be.pow(2,l))),_=!0,e)}function Cl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/br(5,r)),t=et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function et(e,t,r,n,i){var o,s,a,l,f=1,g=e.precision,h=Math.ceil(g/O);for(_=!1,l=r.times(r),a=new e(n);;){if(s=q(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=q(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,f++}return _=!0,s.d.length=h+1,s}function br(e,t){for(var r=e;--t;)r*=e;return r}function ho(e,t){var r,n=t.s<0,i=fe(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Pe=n?4:1,t;if(r=t.divToInt(i),r.isZero())Pe=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Pe=no(r)?n?2:3:n?4:1,t;Pe=no(r)?n?1:4:n?3:2}return t.minus(i).abs()}function bn(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor,A=r!==void 0;if(A?(re(r,1,Oe),n===void 0?n=S.rounding:re(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=go(e);else{for(g=ge(e),s=g.indexOf("."),A?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new S(1),v.e=g.length-s,v.d=dr(ge(v),10,i),v.e=v.d.length),h=dr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=A?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=q(e,v,r,n,0,i),h=e.d,o=e.e,f=so),s=h[r],a=i/2,f=f||h[r+1]!==void 0,f=n<4?(s!==void 0||f)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||f||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,f)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=dr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function Al(e){return new this(e).abs()}function Rl(e){return new this(e).acos()}function Sl(e){return new this(e).acosh()}function kl(e,t){return new this(e).plus(t)}function Il(e){return new this(e).asin()}function Ol(e){return new this(e).asinh()}function Dl(e){return new this(e).atan()}function Ml(e){return new this(e).atanh()}function _l(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=fe(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?fe(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=fe(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(q(e,t,o,1)),t=fe(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(q(e,t,o,1)),r}function Nl(e){return new this(e).cbrt()}function Fl(e){return I(e=new this(e),e.e+1,2)}function Ll(e,t,r){return new this(e).clamp(t,r)}function Bl(e){if(!e||typeof e!="object")throw Error(wr+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,Oe,"rounding",0,8,"toExpNeg",-Xe,0,"toExpPos",0,Xe,"maxE",0,Xe,"minE",-Xe,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ie+r+": "+n);if(r="crypto",i&&(this[r]=yn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(lo);else this[r]=!1;else throw Error(Ie+r+": "+n);return this}function Ul(e){return new this(e).cos()}function ql(e){return new this(e).cosh()}function yo(e){var t,r,n;function i(o){var s,a,l,f=this;if(!(f instanceof i))return new i(o);if(f.constructor=i,oo(o)){f.s=o.s,_?!o.d||o.e>i.maxE?(f.e=NaN,f.d=null):o.e=10;a/=10)s++;_?s>i.maxE?(f.e=NaN,f.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(lo);else for(;o=10;i/=10)n++;nRt,datamodelEnumToSchemaEnum:()=>fu});d();u();c();p();m();d();u();c();p();m();function fu(e){return{name:e.name,values:e.values.map(t=>t.name)}}d();u();c();p();m();var Rt=(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.updateManyAndReturn="updateManyAndReturn",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw",k))(Rt||{});var gu=Qe(Ki());var hu={red:ze,gray:_i,dim:lr,bold:ar,underline:ki,highlightSource:e=>e.highlight()},yu={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function wu({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Eu({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],l=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)),t&&a.push(s.underline(bu(t))),i){a.push("");let f=[i.toString()];o&&(f.push(o),f.push(s.dim(")"))),a.push(f.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function bu(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function vr(e){let t=e.showColors?hu:yu,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=wu(e),Eu(r,t)}d();u();c();p();m();var Ro=Qe(Pn());d();u();c();p();m();function Po(e,t,r){let n=vo(e),i=xu(n),o=vu(i);o?Tr(o,t,r):t.addErrorMessage(()=>"Unknown error")}function vo(e){return e.errors.flatMap(t=>t.kind==="Union"?vo(t):[t])}function xu(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Pu(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Pu(e,t){return[...new Set(e.concat(t))]}function vu(e){return gn(e,(t,r)=>{let n=bo(t),i=bo(r);return n!==i?n-i:xo(t)-xo(r)})}function bo(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function xo(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}d();u();c();p();m();var ae=class{constructor(t,r){this.name=t;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};d();u();c();p();m();d();u();c();p();m();Co();d();u();c();p();m();var nt=class{constructor(t=0,r){this.context=r;this.currentIndent=t}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};To();d();u();c();p();m();d();u();c();p();m();var Cr=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};d();u();c();p();m();var Ar=e=>e,Rr={bold:Ar,red:Ar,green:Ar,dim:Ar,enabled:!1},Ao={bold:ar,red:ze,green:Ii,dim:lr,enabled:!0},it={write(e){e.writeLine(",")}};d();u();c();p();m();var ye=class{constructor(t){this.contents=t}isUnderlined=!1;color=t=>t;underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};d();u();c();p();m();var Me=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var ot=class extends Me{items=[];addItem(t){return this.items.push(new Cr(t)),this}getField(t){return this.items[t]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(t){if(this.items.length===0){this.writeEmpty(t);return}this.writeWithItems(t)}writeEmpty(t){let r=new ye("[]");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithItems(t){let{colors:r}=t.context;t.writeLine("[").withIndent(()=>t.writeJoined(it,this.items).newLine()).write("]"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var st=class e extends Me{fields={};suggestions=[];addField(t){this.fields[t.name]=t}addSuggestion(t){this.suggestions.push(t)}getField(t){return this.fields[t]}getDeepField(t){let[r,...n]=t,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof ot&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(t){return t.length===0?this:this.getDeepField(t)?.value}hasField(t){return!!this.getField(t)}removeAllFields(){this.fields={}}removeField(t){delete this.fields[t]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(t){return this.getField(t)?.value}getDeepSubSelectionValue(t){let r=this;for(let n of t){if(!(r instanceof e))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(t){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of t){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let t=this.getField("select")?.value.asObject();if(t)return{kind:"select",value:t};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(t){return this.getSelectionParent()?.value.fields[t].value}getPrintWidth(){let t=Object.values(this.fields);return t.length==0?2:Math.max(...t.map(n=>n.getPrintWidth()))+2}write(t){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(t);return}this.writeWithContents(t,r)}asObject(){return this}writeEmpty(t){let r=new ye("{}");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithContents(t,r){t.writeLine("{").withIndent(()=>{t.writeJoined(it,[...r,...this.suggestions]).newLine()}),t.write("}"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth())))})}};d();u();c();p();m();var H=class extends Me{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new ye(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};d();u();c();p();m();var St=class{fields=[];addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(it,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Tr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":Tu(e,t);break;case"IncludeOnScalar":Cu(e,t);break;case"EmptySelection":Au(e,t,r);break;case"UnknownSelectionField":Iu(e,t);break;case"InvalidSelectionValue":Ou(e,t);break;case"UnknownArgument":Du(e,t);break;case"UnknownInputField":Mu(e,t);break;case"RequiredArgumentMissing":_u(e,t);break;case"InvalidArgumentType":Nu(e,t);break;case"InvalidArgumentValue":Fu(e,t);break;case"ValueTooLarge":Lu(e,t);break;case"SomeFieldsMissing":Bu(e,t);break;case"TooManyFieldsGiven":Uu(e,t);break;case"Union":Po(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function Tu(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function Cu(e,t){let[r,n]=kt(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ae(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${It(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function Au(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Ru(e,t,i);return}if(n.hasField("select")){Su(e,t);return}}if(r?.[De(e.outputType.name)]){ku(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Ru(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ae(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Su(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Io(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${It(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function ku(e,t){let r=new St;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ae("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=kt(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new st;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Iu(e,t){let r=Oo(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":Io(n,e.outputType);break;case"include":qu(n,e.outputType);break;case"omit":$u(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(It(n)),i.join(" ")})}function Ou(e,t){let r=Oo(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function Du(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),ju(n,e.arguments)),t.addErrorMessage(i=>So(i,r,e.arguments.map(o=>o.name)))}function Mu(e,t){let[r,n]=kt(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Do(o,e.inputType)}t.addErrorMessage(o=>So(o,n,e.inputType.fields.map(s=>s.name)))}function So(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=Gu(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(It(e)),n.join(" ")}function _u(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=kt(e.argumentPath),s=new St,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ae(o,s).makeRequired())}else{let l=e.inputTypes.map(ko).join(" | ");a.addSuggestion(new ae(o,l).makeRequired())}}function ko(e){return e.kind==="list"?`${ko(e.elementType)}[]`:e.name}function Nu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Sr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Fu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Sr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Lu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function Bu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Do(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Sr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(It(i)),o.join(" ")})}function Uu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Sr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function Io(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ae(r.name,"true"))}function qu(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ae(r.name,"true"))}function $u(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ae(r.name,"true"))}function ju(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ae(r.name,r.typeNames.join(" | ")))}function Oo(e,t){let[r,n]=kt(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Do(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ae(r.name,r.typeNames.join(" | ")))}function kt(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function It({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Sr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Vu=3;function Gu(e,t){let r=1/0,n;for(let i of t){let o=(0,Ro.default)(e,i);o>Vu||o`}};function at(e){return e instanceof Ot}d();u();c();p();m();var kr=Symbol(),Tn=new WeakMap,Te=class{constructor(t){t===kr?Tn.set(this,`Prisma.${this._getName()}`):Tn.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Tn.get(this)}},Dt=class extends Te{_getNamespace(){return"NullTypes"}},Mt=class extends Dt{_brand_DbNull};An(Mt,"DbNull");var _t=class extends Dt{_brand_JsonNull};An(_t,"JsonNull");var Nt=class extends Dt{_brand_AnyNull};An(Nt,"AnyNull");var Cn={classes:{DbNull:Mt,JsonNull:_t,AnyNull:Nt},instances:{DbNull:new Mt(kr),JsonNull:new _t(kr),AnyNull:new Nt(kr)}};function An(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}d();u();c();p();m();var Mo=": ",Ir=class{constructor(t,r){this.name=t;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Mo.length}write(t){let r=new ye(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Mo).write(this.value)}};var Rn=class{arguments;errorMessages=[];constructor(t){this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function lt(e){return new Rn(_o(e))}function _o(e){let t=new st;for(let[r,n]of Object.entries(e)){let i=new Ir(r,No(n));t.addField(i)}return t}function No(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(rt(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=xr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Te?new H(`Prisma.${e._getName()}`):at(e)?new H(`prisma.${De(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Qu(e):typeof e=="object"?_o(e):new H(Object.prototype.toString.call(e))}function Qu(e){let t=new ot;for(let r of e)t.addItem(No(r));return t}function Or(e,t){let r=t==="pretty"?Ao:Rr,n=e.renderAllMessages(r),i=new nt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function Dr({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=lt(e);for(let h of t)Tr(h,a,s);let{message:l,args:f}=Or(a,r),g=vr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:f});throw new X(g,{clientVersion:o})}d();u();c();p();m();d();u();c();p();m();function we(e){return e.replace(/^./,t=>t.toLowerCase())}d();u();c();p();m();function Lo(e,t,r){let n=we(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Ju({...e,...Fo(t.name,e,t.result.$allModels),...Fo(t.name,e,t.result[n])})}function Ju(e){let t=new he,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ze(e,n=>({...n,needs:r(n.name,new Set)}))}function Fo(e,t,r){return r?Ze(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Wu(t,o,i)})):{}}function Wu(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Bo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function Uo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Mr=class{constructor(t,r){this.extension=t;this.previous=r}computedFieldsCache=new he;modelExtensionsCache=new he;queryCallbacksCache=new he;clientExtensions=At(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=At(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t});getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>Lo(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=we(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ut=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Mr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Mr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};d();u();c();p();m();var _r=class{constructor(t){this.name=t}};function qo(e){return e instanceof _r}function Hu(e){return new _r(e)}d();u();c();p();m();d();u();c();p();m();var $o=Symbol(),Ft=class{constructor(t){if(t!==$o)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Sn:t}},Sn=new Ft($o);function Ee(e){return e instanceof Ft}var Ku={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},jo="explicitly `undefined` values are not allowed";function In({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ut.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g}){let h=new kn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g});return{modelName:e,action:Ku[t],query:Lt(r,h)}}function Lt({select:e,include:t,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Go(r,n),selection:zu(e,t,i,n)}}function zu(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),ec(e,n)):Yu(n,t,r)}function Yu(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&Zu(n,t,e),Xu(n,r,e),n}function Zu(e,t,r){for(let[n,i]of Object.entries(t)){if(Ee(i))continue;let o=r.nestSelection(n);if(On(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Lt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Lt(i,o)}}function Xu(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=Uo(i,n);for(let[s,a]of Object.entries(o)){if(Ee(a))continue;On(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function ec(e,t){let r={},n=t.getComputedFields(),i=Bo(e,n);for(let[o,s]of Object.entries(i)){if(Ee(s))continue;let a=t.nestSelection(o);On(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Ee(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Lt({},a):r[o]=!0;continue}r[o]=Lt(s,a)}}return r}function Vo(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(tt(e)){if(xr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(qo(e))return{$type:"Param",value:e.name};if(at(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return tc(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(rc(e))return e.values;if(rt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Te){if(e!==Cn.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(nc(e))return e.toJSON();if(typeof e=="object")return Go(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Go(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);Ee(i)||(i!==void 0?r[n]=Vo(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:jo}))}return r}function tc(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[De(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:xe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};d();u();c();p();m();function Qo(e){if(!e._hasPreviewFlag("metrics"))throw new X("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var Bt=class{_client;constructor(t){this._client=t}prometheus(t){return Qo(this._client),this._client._engine.metrics({format:"prometheus",...t})}json(t){return Qo(this._client),this._client._engine.metrics({format:"json",...t})}};d();u();c();p();m();function ic(e,t){let r=At(()=>oc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function oc(e){return{datamodel:{models:Dn(e.models),enums:Dn(e.enums),types:Dn(e.types)}}}function Dn(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}d();u();c();p();m();var Mn=new WeakMap,Nr="$$PrismaTypedSql",Ut=class{constructor(t,r){Mn.set(this,{sql:t,values:r}),Object.defineProperty(this,Nr,{value:Nr})}get sql(){return Mn.get(this).sql}get values(){return Mn.get(this).values}};function sc(e){return(...t)=>new Ut(e,t)}function Fr(e){return e!=null&&e[Nr]===Nr}d();u();c();p();m();var sa=Qe(Jo());d();u();c();p();m();Wo();qi();Gi();d();u();c();p();m();var le=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}d();u();c();p();m();d();u();c();p();m();var Br={enumerable:!0,configurable:!0,writable:!0};function Ur(e){let t=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>Br,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var zo=Symbol.for("nodejs.util.inspect.custom");function pe(e,t){let r=cc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Yo(Reflect.ownKeys(o),r),a=Yo(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Br,...l?.getPropertyDescriptor(s)}:Br:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[zo]=function(){let o={...this};return delete o[zo],o},i}function cc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function Yo(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}d();u();c();p();m();function ct(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}d();u();c();p();m();function qr(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}d();u();c();p();m();function Zo(e){if(e===void 0)return"";let t=lt(e);return new nt(0,{colors:Rr}).write(t).toString()}d();u();c();p();m();var pc="P2037";function $r({error:e,user_facing_error:t},r,n){return t.error_code?new oe(mc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new se(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function mc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===pc&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var _n=class{getLocation(){return null}};function _e(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new _n}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var Xo={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function pt(e={}){let t=fc(e);return Object.entries(t).reduce((n,[i,o])=>(Xo[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function fc(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function jr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function es(e,t){let r=jr(e);return t({action:"aggregate",unpacker:r,argsMapper:pt})(e)}d();u();c();p();m();function gc(e={}){let{select:t,...r}=e;return typeof t=="object"?pt({...r,_count:t}):pt({...r,_count:{_all:!0}})}function hc(e={}){return typeof e.select=="object"?t=>jr(e)(t)._count:t=>jr(e)(t)._count._all}function ts(e,t){return t({action:"count",unpacker:hc(e),argsMapper:gc})(e)}d();u();c();p();m();function yc(e={}){let t=pt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function wc(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function rs(e,t){return t({action:"groupBy",unpacker:wc(e),argsMapper:yc})(e)}function ns(e,t,r){if(t==="aggregate")return n=>es(n,r);if(t==="count")return n=>ts(n,r);if(t==="groupBy")return n=>rs(n,r)}d();u();c();p();m();function is(e,t){let r=t.fields.filter(i=>!i.relationName),n=wo(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Ot(e,o,s.type,s.isList,s.kind==="enum")},...Ur(Object.keys(n))})}d();u();c();p();m();d();u();c();p();m();var os=e=>Array.isArray(e)?e:e.split("."),Nn=(e,t)=>os(t).reduce((r,n)=>r&&r[n],e),ss=(e,t,r)=>os(t).reduceRight((n,i,o,s)=>Object.assign({},Nn(e,s.slice(0,o)),{[i]:n}),r);function Ec(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function bc(e,t,r){return t===void 0?e??{}:ss(t,r,e||!0)}function Fn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,f)=>({...l,[f.name]:f}),{});return l=>{let f=_e(e._errorFormat),g=Ec(n,i),h=bc(l,o,g),v=r({dataPath:g,callsite:f})(h),S=xc(e,t);return new Proxy(v,{get(A,R){if(!S.includes(R))return A[R];let M=[a[R].type,r,R],B=[g,h];return Fn(e,...M,...B)},...Ur([...S,...Object.getOwnPropertyNames(v)])})}}function xc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Pc=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],vc=["aggregate","count","groupBy"];function Ln(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[Tc(e,t),Ac(e,t),qt(r),ee("name",()=>t),ee("$name",()=>t),ee("$parent",()=>e._appliedParent)];return pe({},n)}function Tc(e,t){let r=we(t),n=Object.keys(Rt).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let f=_e(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:f};return e._request({...h,...a})},{action:o,args:l,model:t})};return Pc.includes(o)?Fn(e,t,s):Cc(i)?ns(e,i,s):s({})}}}function Cc(e){return vc.includes(e)}function Ac(e,t){return Ue(ee("fields",()=>{let r=e._runtimeDataModel.models[t];return is(t,r)}))}d();u();c();p();m();function as(e){return e.replace(/^./,t=>t.toUpperCase())}var Bn=Symbol();function $t(e){let t=[Rc(e),Sc(e),ee(Bn,()=>e),ee("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(qt(r)),pe(e,t)}function Rc(e){let t=Object.getPrototypeOf(e._originalClient),r=[...new Set(Object.getOwnPropertyNames(t))];return{getKeys(){return r},getPropertyValue(n){return e[n]}}}function Sc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(we),n=[...new Set(t.concat(r))];return Ue({getKeys(){return n},getPropertyValue(i){let o=as(i);if(e._runtimeDataModel.models[o]!==void 0)return Ln(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Ln(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function ls(e){return e[Bn]?e[Bn]:e}function us(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return $t(t)}d();u();c();p();m();d();u();c();p();m();function cs({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let f=l.needs.filter(g=>n[g]);f.length>0&&a.push(ct(f))}else if(r){if(!r[l.name])continue;let f=l.needs.filter(g=>!r[g]);f.length>0&&a.push(ct(f))}kc(e,l.needs)&&s.push(Ic(l,pe(e,s)))}return s.length>0||a.length>0?pe(e,[...s,...a]):e}function kc(e,t){return t.every(r=>fn(e,r))}function Ic(e,t){return Ue(ee(e.name,()=>e.compute(t)))}d();u();c();p();m();function Vr({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let f=typeof s=="object"?s:{};t[o]=Vr({visitor:i,result:t[o],args:f,modelName:l.type,runtimeDataModel:n})}}function ms({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Vr({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,f)=>{let g=we(l);return cs({result:a,modelName:g,select:f.select,omit:f.select?void 0:{...o?.[g],...f.omit},extensions:n})}})}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var Oc=["$connect","$disconnect","$on","$transaction","$use","$extends"],ds=Oc;function fs(e){if(e instanceof le)return Dc(e);if(Fr(e))return Mc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:fs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=bs(o,l),a.args=s,hs(e,a,r,n+1)}})})}function ys(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return hs(e,t,s)}function ws(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?Es(r,n,0,e):e(r)}}function Es(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=bs(i,l),Es(a,t,r+1,n)}})}var gs=e=>e;function bs(e=gs,t=gs){return r=>e(t(r))}d();u();c();p();m();var xs=Y("prisma:client"),Ps={Vercel:"vercel","Netlify CI":"netlify"};function vs({postinstall:e,ciName:t,clientVersion:r}){if(xs("checkPlatformCaching:postinstall",e),xs("checkPlatformCaching:ciName",t),e===!0&&t&&t in Ps){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${Ps[t]}-build`;throw console.error(n),new Q(n,r)}}d();u();c();p();m();function Ts(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}d();u();c();p();m();d();u();c();p();m();var _c=()=>globalThis.process?.release?.name==="node",Nc=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,Fc=()=>!!globalThis.Deno,Lc=()=>typeof globalThis.Netlify=="object",Bc=()=>typeof globalThis.EdgeRuntime=="object",Uc=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function qc(){return[[Lc,"netlify"],[Bc,"edge-light"],[Uc,"workerd"],[Fc,"deno"],[Nc,"bun"],[_c,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var $c={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Un(){let e=qc();return{id:e,prettyName:$c[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();function mt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Un().id==="workerd"?new Q(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new Q(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new Q("error: Missing URL environment variable, value, or override.",n);return i}d();u();c();p();m();d();u();c();p();m();var Gr=class extends Error{clientVersion;cause;constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var ne=class extends Gr{isRetryable;constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};d();u();c();p();m();d();u();c();p();m();function L(e,t){return{...e,isRetryable:t}}var dt=class extends ne{name="ForcedRetryError";code="P5001";constructor(t){super("This request must be retried",L(t,!0))}};N(dt,"ForcedRetryError");d();u();c();p();m();var qe=class extends ne{name="InvalidDatasourceError";code="P6001";constructor(t,r){super(t,L(r,!1))}};N(qe,"InvalidDatasourceError");d();u();c();p();m();var $e=class extends ne{name="NotImplementedYetError";code="P5004";constructor(t,r){super(t,L(r,!1))}};N($e,"NotImplementedYetError");d();u();c();p();m();d();u();c();p();m();var V=class extends ne{response;constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var je=class extends V{name="SchemaMissingError";code="P5005";constructor(t){super("Schema needs to be uploaded",L(t,!0))}};N(je,"SchemaMissingError");d();u();c();p();m();d();u();c();p();m();var qn="This request could not be understood by the server",Vt=class extends V{name="BadRequestError";code="P5000";constructor(t,r,n){super(r||qn,L(t,!1)),n&&(this.code=n)}};N(Vt,"BadRequestError");d();u();c();p();m();var Gt=class extends V{name="HealthcheckTimeoutError";code="P5013";logs;constructor(t,r){super("Engine not started: healthcheck timeout",L(t,!0)),this.logs=r}};N(Gt,"HealthcheckTimeoutError");d();u();c();p();m();var Qt=class extends V{name="EngineStartupError";code="P5014";logs;constructor(t,r,n){super(r,L(t,!0)),this.logs=n}};N(Qt,"EngineStartupError");d();u();c();p();m();var Jt=class extends V{name="EngineVersionNotSupportedError";code="P5012";constructor(t){super("Engine version is not supported",L(t,!1))}};N(Jt,"EngineVersionNotSupportedError");d();u();c();p();m();var $n="Request timed out",Wt=class extends V{name="GatewayTimeoutError";code="P5009";constructor(t,r=$n){super(r,L(t,!1))}};N(Wt,"GatewayTimeoutError");d();u();c();p();m();var jc="Interactive transaction error",Ht=class extends V{name="InteractiveTransactionError";code="P5015";constructor(t,r=jc){super(r,L(t,!1))}};N(Ht,"InteractiveTransactionError");d();u();c();p();m();var Vc="Request parameters are invalid",Kt=class extends V{name="InvalidRequestError";code="P5011";constructor(t,r=Vc){super(r,L(t,!1))}};N(Kt,"InvalidRequestError");d();u();c();p();m();var jn="Requested resource does not exist",zt=class extends V{name="NotFoundError";code="P5003";constructor(t,r=jn){super(r,L(t,!1))}};N(zt,"NotFoundError");d();u();c();p();m();var Vn="Unknown server error",ft=class extends V{name="ServerError";code="P5006";logs;constructor(t,r,n){super(r||Vn,L(t,!0)),this.logs=n}};N(ft,"ServerError");d();u();c();p();m();var Gn="Unauthorized, check your connection string",Yt=class extends V{name="UnauthorizedError";code="P5007";constructor(t,r=Gn){super(r,L(t,!1))}};N(Yt,"UnauthorizedError");d();u();c();p();m();var Qn="Usage exceeded, retry again later",Zt=class extends V{name="UsageExceededError";code="P5008";constructor(t,r=Qn){super(r,L(t,!0))}};N(Zt,"UsageExceededError");async function Gc(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function Xt(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await Gc(e);if(n.type==="QueryEngineError")throw new oe(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new ft(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new je(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Jt(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Qt(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new Q(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Gt(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Ht(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Kt(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Yt(r,gt(Gn,n));if(e.status===404)return new zt(r,gt(jn,n));if(e.status===429)throw new Zt(r,gt(Qn,n));if(e.status===504)throw new Wt(r,gt($n,n));if(e.status>=500)throw new ft(r,gt(Vn,n));if(e.status>=400)throw new Vt(r,gt(qn,n))}function gt(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}d();u();c();p();m();function Cs(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}d();u();c();p();m();var Ce="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function As(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,f,g;for(let h=0;h>18,a=(g&258048)>>12,l=(g&4032)>>6,f=g&63,r+=Ce[s]+Ce[a]+Ce[l]+Ce[f];return i==1?(g=t[o],s=(g&252)>>2,a=(g&3)<<4,r+=Ce[s]+Ce[a]+"=="):i==2&&(g=t[o]<<8|t[o+1],s=(g&64512)>>10,a=(g&1008)>>4,l=(g&15)<<2,r+=Ce[s]+Ce[a]+Ce[l]+"="),r}d();u();c();p();m();function Rs(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new Q("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}d();u();c();p();m();function Qc(e){return e[0]*1e3+e[1]/1e6}function Jn(e){return new Date(Qc(e))}d();u();c();p();m();var Ss={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};d();u();c();p();m();d();u();c();p();m();var er=class extends ne{name="RequestError";code="P5010";constructor(t,r){super(`Cannot fetch data from service: +${t}`,L(r,!0))}};N(er,"RequestError");async function Ve(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new er(a,{clientVersion:n,cause:s})}}var Wc=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,ks=Y("prisma:client:dataproxyEngine");async function Hc(e,t){let r=Ss["@prisma/engines-version"],n=t.clientVersion??"unknown";if(y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&Wc.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,f]=s.split("."),g=Kc(`<=${a}.${l}.${f}`),h=await Ve(g,{clientVersion:n});if(!h.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${h.status} ${h.statusText}, response body: ${await h.text()||""}`);let v=await h.text();ks("length of body fetched from unpkg.com",v.length);let S;try{S=JSON.parse(v)}catch(A){throw console.error("JSON.parse error: body fetched from unpkg.com: ",v),A}return S.version}throw new $e("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Is(e,t){let r=await Hc(e,t);return ks("version",r),r}function Kc(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var Os=3,Qr=Y("prisma:client:dataproxyEngine"),Wn=class{apiKey;tracingHelper;logLevel;logQueries;engineHash;constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},ht=class{name="DataProxyEngine";inlineSchema;inlineSchemaHash;inlineDatasources;config;logEmitter;env;clientVersion;engineHash;tracingHelper;remoteClientVersion;host;headerBuilder;startPromise;constructor(t){Rs(t),this.config=t,this.env={...t.env,...typeof y<"u"?y.env:{}},this.inlineSchema=As(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new Wn({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Is(t,this.config),Qr("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":Qr(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:Jn(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:Jn(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await Ve(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||Qr("schema response status",r.status);let n=await Xt(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=qr(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||Qr("graphql response status",a.status),await this.handleError(await Xt(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await Ve(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Xt(l,this.clientVersion));let f=await l.json(),{extensions:g}=f;g&&this.propagateResponseExtensions(g);let h=f.id,v=f["data-proxy"].endpoint;return{id:h,payload:{endpoint:v}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Xt(a,this.clientVersion));let l=await a.json(),{extensions:f}=l;f&&this.propagateResponseExtensions(f);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=mt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!==pr)throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new qe(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new $e("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof ne)||!i.isRetryable)throw i;if(r>=Os)throw i instanceof dt?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${Os} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Cs(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof je)throw await this.uploadSchema(),new dt({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?$r(t[0],this.config.clientVersion,this.config.activeProvider):new se(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function Ds({copyEngine:e=!0},t){let r;try{r=mt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||mn(r));e&&n&&mr("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ye(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary",f=i==="client";if(o&&s||s){let g;throw g=["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.","Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."],new X(g.join(` +`),{clientVersion:t.clientVersion})}return o?new ht(t):new ht(t)}d();u();c();p();m();function Jr({generator:e}){return e?.previewFeatures??[]}d();u();c();p();m();var Ms=e=>({command:e});d();u();c();p();m();d();u();c();p();m();var _s=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);d();u();c();p();m();function yt(e){try{return Ns(e,"fast")}catch{return Ns(e,"slow")}}function Ns(e,t){return JSON.stringify(e.map(r=>Ls(r,t)))}function Ls(e,t){if(Array.isArray(e))return e.map(r=>Ls(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(tt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ve.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(zc(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Bs(e):e}function zc(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Bs(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Fs);let t={};for(let r of Object.keys(e))t[r]=Fs(e[r]);return t}function Fs(e){return typeof e=="bigint"?e.toString():Bs(e)}var Yc=/^(\s*alter\s)/i,Us=Y("prisma:client");function Hn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Yc.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Kn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Fr(r))n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:yt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=_s(r),i={values:yt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Us(`prisma.${e}(${n}, ${i.values})`):Us(`prisma.${e}(${n})`),{query:n,parameters:i}},qs={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new le(t,r)}},$s={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};d();u();c();p();m();function zn(e){return function(r,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=js(r(s)):js(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function js(e){return typeof e.then=="function"?e:Promise.resolve(e)}d();u();c();p();m();var Zc=pn.split(".")[0],Xc={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Yn=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){let t=globalThis[`V${Zc}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return t?.helper??r?.helper??Xc}};function Vs(){return new Yn}d();u();c();p();m();function Gs(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}d();u();c();p();m();function Qs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}d();u();c();p();m();var Wr=class{_middlewares=[];use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};d();u();c();p();m();var Ws=Qe(eo());d();u();c();p();m();function Hr(e){return typeof e.batchRequestIdx=="number"}d();u();c();p();m();function Js(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(Zn(e.query.arguments)),t.push(Zn(e.query.selection)),t.join("")}function Zn(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${Zn(n)})`:r}).join(" ")})`}d();u();c();p();m();var ep={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function Xn(e){return ep[e]}d();u();c();p();m();var Kr=class{constructor(t){this.options=t;this.batches={}}batches;tickActive=!1;request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iGe("bigint",r));case"bytes-array":return t.map(r=>Ge("bytes",r));case"decimal-array":return t.map(r=>Ge("decimal",r));case"datetime-array":return t.map(r=>Ge("datetime",r));case"date-array":return t.map(r=>Ge("date",r));case"time-array":return t.map(r=>Ge("time",r));default:return t}}function ei(e){let t=[],r=tp(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),f=n.some(h=>Xn(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:np(o),containsWrite:f,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Hs(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Xn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Js(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(rp(t),ip(t,i))throw t;if(t instanceof oe&&op(t)){let f=Ks(t.meta);Dr({args:o,errors:[f],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=vr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let f=s?{modelName:s,...t.meta}:t.meta;throw new oe(l,{code:t.code,clientVersion:this.client._clientVersion,meta:f,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new Re(l,this.client._clientVersion);if(t instanceof se)throw new se(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof Q)throw new Q(l,this.client._clientVersion);if(t instanceof Re)throw new Re(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Ws.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(f=>f!=="select"&&f!=="include"),a=Nn(o,s),l=i==="queryRaw"?ei(a):Ct(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function np(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Hs(e)};xe(e,"Unknown transaction kind")}}function Hs(e){return{id:e.id,payload:e.payload}}function ip(e,t){return Hr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function op(e){return e.code==="P2009"||e.code==="P2012"}function Ks(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Ks)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}d();u();c();p();m();var zs="6.6.0";var Ys=zs;d();u();c();p();m();var ra=Qe(Pn());d();u();c();p();m();var U=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};N(U,"PrismaClientConstructorValidationError");var Zs=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Xs=["pretty","colorless","minimal"],ea=["info","query","warn","error"],ap={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=wt(r,t)||` Available datasources: ${t.join(", ")}`;throw new U(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new U(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(!e&&Ye(t.generator)==="client")throw new U('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new U('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Jr(t).includes("driverAdapters"))throw new U('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ye(t.generator)==="binary")throw new U('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!Xs.includes(e)){let t=wt(e,Xs);throw new U(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!ea.includes(r)){let n=wt(r,ea);throw new U(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=wt(i,o);throw new U(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new U(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new U(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new U(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new U('"omit" option is expected to be an object.');if(e===null)throw new U('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=up(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(f=>f.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new U(cp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new U(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=wt(r,t);throw new U(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function na(e,t){for(let[r,n]of Object.entries(e)){if(!Zs.includes(r)){let i=wt(r,Zs);throw new U(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}ap[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new U('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function wt(e,t){if(t.length===0||typeof e!="string")return"";let r=lp(e,t);return r?` Did you mean "${r}"?`:""}function lp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,ra.default)(e,i)}));r.sort((i,o)=>i.distanceDe(n)===t);if(r)return e[r]}function cp(e,t){let r=lt(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Or(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}d();u();c();p();m();function ia(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=f=>{o||(o=!0,r(f))};for(let f=0;f{n[f]=g,a()},g=>{if(!Hr(g)){l(g);return}g.batchRequestIdx===f?l(g):(i||(i=g),a())})})}var Ne=Y("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var pp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},mp=Symbol.for("prisma.client.transaction.id"),dp={id:0,nextId(){return++this.id}};function fp(e){class t{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Wr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=zn();constructor(n){e=n?.__internal?.configOverride?.(e)??e,vs(e),n&&na(n,e);let i=new Lr().on("error",()=>{});this._extensions=ut.empty(),this._previewFeatures=Jr(e),this._clientVersion=e.clientVersion??Ys,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Vs();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&cr.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&cr.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new Q(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new Q("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},f=l.__internal??{},g=f.debug===!0;g&&Y.enable("prisma:client");let h=cr.resolve(e.dirname,e.relativePath);Ui.existsSync(h)||(h=e.dirname),Ne("dirname",e.dirname),Ne("relativePath",e.relativePath),Ne("cwd",h);let v=f.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Qs(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ts(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:mt,getBatchRequestPayload:qr,prismaGraphQLToJSError:$r,PrismaClientUnknownRequestError:se,PrismaClientInitializationError:Q,PrismaClientKnownRequestError:oe,debug:Y("prisma:client:accelerateEngine"),engineVersion:sa.version,clientVersion:e.clientVersion}},Ne("clientVersion",e.clientVersion),this._engine=Ds(e,this._engineConfig),this._requestHandler=new zr(this,i),l.log)for(let S of l.log){let A=typeof S=="string"?S:S.emit==="stdout"?S.level:null;A&&this.$on(A,R=>{vt.log(`${vt.tags[A]??""}`,R.message||R.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=$t(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Li()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Kn({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=oa(n,i);return Hn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new X("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Hn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new X(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:Ms,callsite:_e(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Kn({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...oa(n,i));throw new X("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new X("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=dp.nextId(),s=Gs(n.length),a=n.map((l,f)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:f,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return ia(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let f={kind:"itx",...a};l=await n(this._createItxClient(f)),await this._engine.transaction("commit",o,a)}catch(f){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),f}return l}_createItxClient(n){return pe($t(pe(ls(this),[ee("_appliedParent",()=>this._appliedParent._createItxClient(n)),ee("_createPrismaPromise",()=>zn(n)),ee(mp,()=>n.id)])),[ct(ds)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??pp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async f=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,D=>g(f,M=>(D?.end(),l(M))));let{runInTransaction:h,args:v,...S}=f,A={...n,...S};v&&(A.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete A.transaction;let R=await ys(this,A);return A.model?ms({result:R,modelName:A.model,args:A.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):R};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:f,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:S}){try{n=f?f(n):n;let A={name:"serialize"},R=this._tracingHelper.runInChildSpan(A,()=>In({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return Y.enabled("prisma:client")&&(Ne("Prisma Client call:"),Ne(`prisma.${i}(${Zo(n)})`),Ne("Generated request:"),Ne(JSON.stringify(R,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:R,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(A){throw A.clientVersion=this._clientVersion,A}}$metrics=new Bt(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=us}return t}function oa(e,t){return gp(e)?[new le(e,t),qs]:[e,$s]}function gp(e){return Array.isArray(e)&&Array.isArray(e.raw)}d();u();c();p();m();var hp=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function yp(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!hp.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}d();u();c();p();m();var export_warnEnvConflicts=void 0;export{Pr as DMMF,Y as Debug,ve as Decimal,Pi as Extensions,Bt as MetricsClient,Q as PrismaClientInitializationError,oe as PrismaClientKnownRequestError,Re as PrismaClientRustPanicError,se as PrismaClientUnknownRequestError,X as PrismaClientValidationError,Ti as Public,le as Sql,Hu as createParam,ic as defineDmmfProperty,Ct as deserializeJsonResponse,ei as deserializeRawResult,du as dmmfToRuntimeDataModel,uc as empty,fp as getPrismaClient,Un as getRuntime,lc as join,yp as makeStrictEnum,sc as makeTypedQueryFactory,Cn as objectEnumValues,Ho as raw,In as serializeJsonQuery,Sn as skip,Ko as sqltag,export_warnEnvConflicts as warnEnvConflicts,mr as warnOnce}; +//# sourceMappingURL=edge-esm.js.map diff --git a/lib/generated/prisma/runtime/edge.js b/lib/generated/prisma/runtime/edge.js new file mode 100644 index 0000000..441111f --- /dev/null +++ b/lib/generated/prisma/runtime/edge.js @@ -0,0 +1,31 @@ +"use strict";var ya=Object.create;var ar=Object.defineProperty;var wa=Object.getOwnPropertyDescriptor;var Ea=Object.getOwnPropertyNames;var ba=Object.getPrototypeOf,xa=Object.prototype.hasOwnProperty;var me=(e,t)=>()=>(e&&(t=e(e=0)),t);var Fe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Pt=(e,t)=>{for(var r in t)ar(e,r,{get:t[r],enumerable:!0})},oi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ea(t))!xa.call(e,i)&&i!==r&&ar(e,i,{get:()=>t[i],enumerable:!(n=wa(t,i))||n.enumerable});return e};var Qe=(e,t,r)=>(r=e!=null?ya(ba(e)):{},oi(t||!e||!e.__esModule?ar(r,"default",{value:e,enumerable:!0}):r,e)),Pa=e=>oi(ar({},"__esModule",{value:!0}),e);var y,u=me(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var b,c=me(()=>{"use strict";b=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,p=me(()=>{"use strict";E=()=>{};E.prototype=E});var m=me(()=>{"use strict"});var Ti=Fe(Ke=>{"use strict";d();u();c();p();m();var ci=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),va=ci(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var D=A.indexOf("=");D===-1&&(D=R);var M=D===R?0:4-D%4;return[D,M]}function l(A){var R=a(A),D=R[0],M=R[1];return(D+M)*3/4-M}function f(A,R,D){return(R+D)*3/4-D}function g(A){var R,D=a(A),M=D[0],B=D[1],k=new n(f(A,M,B)),F=0,ae=B>0?M-4:M,G;for(G=0;G>16&255,k[F++]=R>>8&255,k[F++]=R&255;return B===2&&(R=r[A.charCodeAt(G)]<<2|r[A.charCodeAt(G+1)]>>4,k[F++]=R&255),B===1&&(R=r[A.charCodeAt(G)]<<10|r[A.charCodeAt(G+1)]<<4|r[A.charCodeAt(G+2)]>>2,k[F++]=R>>8&255,k[F++]=R&255),k}function h(A){return t[A>>18&63]+t[A>>12&63]+t[A>>6&63]+t[A&63]}function v(A,R,D){for(var M,B=[],k=R;kae?ae:F+k));return M===1?(R=A[D-1],B.push(t[R>>2]+t[R<<4&63]+"==")):M===2&&(R=(A[D-2]<<8)+A[D-1],B.push(t[R>>10]+t[R>>4&63]+t[R<<2&63]+"=")),B.join("")}}),Ta=ci(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,f=(1<>1,h=-7,v=n?o-1:0,S=n?-1:1,A=t[r+v];for(v+=S,s=A&(1<<-h)-1,A>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=S,h-=8);if(s===0)s=1-g;else{if(s===f)return a?NaN:(A?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(A?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,f,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=i?0:s-1,R=i?1:-1,D=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(f=Math.pow(2,-a))<1&&(a--,f*=2),a+v>=1?r+=S/f:r+=S*Math.pow(2,1-v),r*f>=2&&(a++,f/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*f-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+A]=l&255,A+=R,l/=256,o-=8);for(a=a<0;t[n+A]=a&255,A+=R,a/=256,g-=8);t[n+A-R]|=D*128}}),an=va(),We=Ta(),si=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ke.Buffer=T;Ke.SlowBuffer=Ia;Ke.INSPECT_MAX_BYTES=50;var lr=2147483647;Ke.kMaxLength=lr;T.TYPED_ARRAY_SUPPORT=Ca();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function Ca(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function xe(e){if(e>lr)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return cn(e)}return pi(e,t,r)}T.poolSize=8192;function pi(e,t,r){if(typeof e=="string")return Ra(e,t);if(ArrayBuffer.isView(e))return Sa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(de(e,ArrayBuffer)||e&&de(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(de(e,SharedArrayBuffer)||e&&de(e.buffer,SharedArrayBuffer)))return di(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=ka(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return pi(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function mi(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function Aa(e,t,r){return mi(e),e<=0?xe(e):t!==void 0?typeof r=="string"?xe(e).fill(t,r):xe(e).fill(t):xe(e)}T.alloc=function(e,t,r){return Aa(e,t,r)};function cn(e){return mi(e),xe(e<0?0:pn(e)|0)}T.allocUnsafe=function(e){return cn(e)};T.allocUnsafeSlow=function(e){return cn(e)};function Ra(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=fi(e,t)|0,n=xe(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function ln(e){let t=e.length<0?0:pn(e.length)|0,r=xe(t);for(let n=0;n=lr)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+lr.toString(16)+" bytes");return e|0}function Ia(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),de(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function fi(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||de(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return un(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return vi(e).length;default:if(i)return n?-1:un(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=fi;function Oa(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return $a(this,t,r);case"utf8":case"utf-8":return hi(this,t,r);case"ascii":return Ua(this,t,r);case"latin1":case"binary":return qa(this,t,r);case"base64":return La(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ja(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Le(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};si&&(T.prototype[si]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),f=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,dn(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:ai(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):ai(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function ai(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let f;if(i){let g=-1;for(f=r;fs&&(r=s-a),f=r;f>=0;f--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return Da(this,e,t,r);case"utf8":case"utf-8":return Ma(this,e,t,r);case"ascii":case"latin1":case"binary":return _a(this,e,t,r);case"base64":return Na(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Fa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function La(e,t,r){return t===0&&r===e.length?an.fromByteArray(e):an.fromByteArray(e.slice(t,r))}function hi(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,f,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],f=e[i+2],(l&192)===128&&(f&192)===128&&(h=(o&15)<<12|(l&63)<<6|f&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],f=e[i+2],g=e[i+3],(l&192)===128&&(f&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(f&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return Ba(n)}var li=4096;function Ba(e){let t=e.length;if(t<=li)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Re(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Re(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),We.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),We.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!1,52,8)};function te(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function yi(e,t,r,n,i){Pi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function wi(e,t,r,n,i){Pi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Re(function(e,t=0){return yi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Re(function(e,t=0){return wi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Re(function(e,t=0){return yi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Re(function(e,t=0){return wi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ei(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function bi(e,t,r,n,i){return t=+t,r=r>>>0,i||Ei(e,t,r,4,34028234663852886e22,-34028234663852886e22),We.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return bi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return bi(this,e,t,!1,r)};function xi(e,t,r,n,i){return t=+t,r=r>>>0,i||Ei(e,t,r,8,17976931348623157e292,-17976931348623157e292),We.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return xi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return xi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ui(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ui(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ui(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Va(e,t,r){He(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&vt(t,e.length-(r+1))}function Pi(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Je.ERR_OUT_OF_RANGE("value",a,e)}Va(n,i,o)}function He(e,t){if(typeof e!="number")throw new Je.ERR_INVALID_ARG_TYPE(t,"number",e)}function vt(e,t,r){throw Math.floor(e)!==e?(He(e,r),new Je.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Je.ERR_BUFFER_OUT_OF_BOUNDS:new Je.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Ga=/[^+/0-9A-Za-z-_]/g;function Qa(e){if(e=e.split("=")[0],e=e.trim().replace(Ga,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function un(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Ja(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function vi(e){return an.toByteArray(Qa(e))}function ur(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function de(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function dn(e){return e!==e}var Ha=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Re(e){return typeof BigInt>"u"?Ka:e}function Ka(){throw new Error("BigInt not supported")}});var w,d=me(()=>{"use strict";w=Qe(Ti())});function tl(){return!1}function $i(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function rl(){return $i()}function nl(){return[]}function il(e){e(null,[])}function ol(){return""}function sl(){return""}function al(){}function ll(){}function ul(){}function cl(){}function pl(){}function ml(){}var dl,fl,ji,Vi=me(()=>{"use strict";d();u();c();p();m();dl={},fl={existsSync:tl,lstatSync:$i,statSync:rl,readdirSync:nl,readdir:il,readlinkSync:ol,realpathSync:sl,chmodSync:al,renameSync:ll,mkdirSync:ul,rmdirSync:cl,rmSync:pl,unlinkSync:ml,promises:dl},ji=fl});function gl(...e){return e.join("/")}function hl(...e){return e.join("/")}function yl(e){let t=Gi(e),r=Qi(e),[n,i]=t.split(".");return{root:"/",dir:r,base:t,ext:i,name:n}}function Gi(e){let t=e.split("/");return t[t.length-1]}function Qi(e){return e.split("/").slice(0,-1).join("/")}var Ji,wl,El,dr,Wi=me(()=>{"use strict";d();u();c();p();m();Ji="/",wl={sep:Ji},El={basename:Gi,dirname:Qi,join:hl,parse:yl,posix:wl,resolve:gl,sep:Ji},dr=El});var Hi=Fe((ld,bl)=>{bl.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Zi=Fe((Rd,Yi)=>{"use strict";d();u();c();p();m();Yi.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var to=Fe((Ud,eo)=>{"use strict";d();u();c();p();m();eo.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var no=Fe((Qd,ro)=>{"use strict";d();u();c();p();m();var Rl=to();ro.exports=e=>typeof e=="string"?e.replace(Rl(),""):e});var kn=Fe((_y,vo)=>{"use strict";d();u();c();p();m();vo.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";d();u();c();p();m()});var ko=me(()=>{"use strict";d();u();c();p();m()});var Xo=Fe((r1,dc)=>{dc.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var $r,es=me(()=>{"use strict";d();u();c();p();m();$r=class{events={};on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var bp={};Pt(bp,{DMMF:()=>Ot,Debug:()=>K,Decimal:()=>he,Extensions:()=>fn,MetricsClient:()=>pt,PrismaClientInitializationError:()=>Q,PrismaClientKnownRequestError:()=>re,PrismaClientRustPanicError:()=>ve,PrismaClientUnknownRequestError:()=>ne,PrismaClientValidationError:()=>Z,Public:()=>gn,Sql:()=>oe,createParam:()=>Qo,defineDmmfProperty:()=>Yo,deserializeJsonResponse:()=>tt,deserializeRawResult:()=>tn,dmmfToRuntimeDataModel:()=>Po,empty:()=>rs,getPrismaClient:()=>fa,getRuntime:()=>Hr,join:()=>ts,makeStrictEnum:()=>ga,makeTypedQueryFactory:()=>Zo,objectEnumValues:()=>Or,raw:()=>Bn,serializeJsonQuery:()=>Br,skip:()=>Lr,sqltag:()=>Un,warnEnvConflicts:()=>void 0,warnOnce:()=>Rt});module.exports=Pa(bp);d();u();c();p();m();var fn={};Pt(fn,{defineExtension:()=>Ci,getExtensionContext:()=>Ai});d();u();c();p();m();d();u();c();p();m();function Ci(e){return typeof e=="function"?e:t=>t.$extends(e)}d();u();c();p();m();function Ai(e){return e}var gn={};Pt(gn,{validator:()=>Ri});d();u();c();p();m();d();u();c();p();m();function Ri(...e){return t=>t}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var hn,Si,ki,Ii,Oi=!0;typeof y<"u"&&({FORCE_COLOR:hn,NODE_DISABLE_COLORS:Si,NO_COLOR:ki,TERM:Ii}=y.env||{},Oi=y.stdout&&y.stdout.isTTY);var za={enabled:!Si&&ki==null&&Ii!=="dumb"&&(hn!=null&&hn!=="0"||Oi)};function j(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!za.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var pm=j(0,0),cr=j(1,22),pr=j(2,22),mm=j(3,23),Di=j(4,24),dm=j(7,27),fm=j(8,28),gm=j(9,29),hm=j(30,39),ze=j(31,39),Mi=j(32,39),_i=j(33,39),Ni=j(34,39),ym=j(35,39),Fi=j(36,39),wm=j(37,39),Li=j(90,39),Em=j(90,39),bm=j(40,49),xm=j(41,49),Pm=j(42,49),vm=j(43,49),Tm=j(44,49),Cm=j(45,49),Am=j(46,49),Rm=j(47,49);d();u();c();p();m();var Ya=100,Bi=["green","yellow","blue","magenta","cyan","red"],mr=[],Ui=Date.now(),Za=0,yn=typeof y<"u"?y.env:{};globalThis.DEBUG??=yn.DEBUG??"";globalThis.DEBUG_COLORS??=yn.DEBUG_COLORS?yn.DEBUG_COLORS==="true":!0;var Tt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Xa(e){let t={color:Bi[Za++%Bi.length],enabled:Tt.enabled(e),namespace:e,log:Tt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&mr.push([o,...n]),mr.length>Ya&&mr.shift(),Tt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:el(g)),f=`+${Date.now()-Ui}ms`;Ui=Date.now(),a(o,...l,f)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var K=new Proxy(Xa,{get:(e,t)=>Tt[t],set:(e,t,r)=>Tt[t]=r});function el(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function qi(){mr.length=0}d();u();c();p();m();d();u();c();p();m();var xl=Hi(),wn=xl.version;d();u();c();p();m();var Ki="library";function Ye(e){let t=Pl();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":e?.config.engineType==="client"?"client":Ki)}function Pl(){let e=y.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":e==="client"?"client":void 0}d();u();c();p();m();var zi="prisma+postgres",fr=`${zi}:`;function En(e){return e?.startsWith(`${fr}//`)??!1}var At={};Pt(At,{error:()=>Cl,info:()=>Tl,log:()=>vl,query:()=>Al,should:()=>Xi,tags:()=>Ct,warn:()=>bn});d();u();c();p();m();var Ct={error:ze("prisma:error"),warn:_i("prisma:warn"),info:Fi("prisma:info"),query:Ni("prisma:query")},Xi={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function vl(...e){console.log(...e)}function bn(e,...t){Xi.warn()&&console.warn(`${Ct.warn} ${e}`,...t)}function Tl(e,...t){console.info(`${Ct.info} ${e}`,...t)}function Cl(e,...t){console.error(`${Ct.error} ${e}`,...t)}function Al(e,...t){console.log(`${Ct.query} ${e}`,...t)}d();u();c();p();m();function Pe(e,t){throw new Error(t)}d();u();c();p();m();function xn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}d();u();c();p();m();function Ze(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}d();u();c();p();m();function Pn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{io.has(e)||(io.add(e),bn(t,...r))};var Q=class e extends Error{clientVersion;errorCode;retryable;constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};N(Q,"PrismaClientInitializationError");d();u();c();p();m();var re=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};N(re,"PrismaClientKnownRequestError");d();u();c();p();m();var ve=class extends Error{clientVersion;constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};N(ve,"PrismaClientRustPanicError");d();u();c();p();m();var ne=class extends Error{clientVersion;batchRequestIdx;constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};N(ne,"PrismaClientUnknownRequestError");d();u();c();p();m();var Z=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(t,{clientVersion:r}){super(t),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};N(Z,"PrismaClientValidationError");d();u();c();p();m();d();u();c();p();m();var Xe=9e15,Oe=1e9,vn="0123456789abcdef",yr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",wr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Tn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Xe,maxE:Xe,crypto:!1},uo,Te,_=!0,br="[DecimalError] ",Ie=br+"Invalid argument: ",co=br+"Precision limit exceeded",po=br+"crypto unavailable",mo="[object Decimal]",X=Math.floor,J=Math.pow,Sl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,kl=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Il=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,fo=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ce=1e7,O=7,Ol=9007199254740991,Dl=yr.length-1,Cn=wr.length-1,C={toStringTag:mo};C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),I(e)};C.ceil=function(){return I(new this.constructor(this),this.e+1,2)};C.clampedTo=C.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ie+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,f=e.s;if(!s||!a)return!l||!f?NaN:l!==f?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-f:0;if(l!==f)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=Ml(n,Eo(n,r)),n.precision=e,n.rounding=t,I(Te==2||Te==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,l,f,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(_=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=z(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=X((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),f=l.plus(g),n=q(f.plus(g).times(a),f.plus(l),s+2,1),z(a.d).slice(0,s)===(r=z(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(I(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(I(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return _=!0,I(n,e,h.rounding,t)};C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-X(this.e/O))*O,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};C.dividedBy=C.div=function(e){return q(this,new this.constructor(e))};C.dividedToIntegerBy=C.divToInt=function(e){var t=this,r=t.constructor;return I(q(t,new r(e),0,1,1),r.precision,r.rounding)};C.equals=C.eq=function(e){return this.cmp(e)===0};C.floor=function(){return I(new this.constructor(this),this.e+1,3)};C.greaterThan=C.gt=function(e){return this.cmp(e)>0};C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return t==1||t===0};C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/Pr(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=et(s,1,o.times(t),new s(1),!0);for(var l,f=e,g=new s(8);f--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return I(o,s.precision=r,s.rounding=n,!0)};C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/Pr(5,e)),i=et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),f=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(f))))}return o.precision=t,o.rounding=r,I(i,t,r,!0)};C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,q(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};C.inverseCosine=C.acos=function(){var e=this,t=e.constructor,r=e.abs().cmp(1),n=t.precision,i=t.rounding;return r!==-1?r===0?e.isNeg()?fe(t,n,i):new t(0):new t(NaN):e.isZero()?fe(t,n+4,i).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=i,e.times(2))};C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,_=!1,r=r.times(r).minus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,_=!1,r=r.times(r).plus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln())};C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?I(new o(i),e,t,!0):(o.precision=r=n-i.e,i=q(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=fe(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding;if(f.isFinite()){if(f.isZero())return new g(f);if(f.abs().eq(1)&&h+4<=Cn)return s=fe(g,h+4,v).times(.25),s.s=f.s,s}else{if(!f.s)return new g(NaN);if(h+4<=Cn)return s=fe(g,h+4,v).times(.5),s.s=f.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/O+2|0),e=r;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/O),n=1,l=f.times(f),s=new g(f),i=f;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};C.isNaN=function(){return!this.s};C.isNegative=C.isNeg=function(){return this.s<0};C.isPositive=C.isPos=function(){return this.s>0};C.isZero=function(){return!!this.d&&this.d[0]===0};C.lessThan=C.lt=function(e){return this.cmp(e)<0};C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1};C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=f.d,f.s<0||!r||!r[0]||f.eq(1))return new g(r&&!r[0]?-1/0:f.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(_=!1,a=h+S,s=ke(f,a),n=t?Er(g,a+10):ke(e,a),l=q(s,n,a,1),St(l.d,i=h,v))do if(a+=10,s=ke(f,a),n=t?Er(g,a+10):ke(e,a),l=q(s,n,a,1),!o){+z(l.d).slice(i+1,i+15)+1==1e14&&(l=I(l,h+1,0));break}while(St(l.d,i+=10,v));return _=!0,I(l,h,v)};C.minus=C.sub=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.constructor;if(e=new A(e),!S.d||!e.d)return!S.s||!e.s?e=new A(NaN):S.d?e.s=-e.s:e=new A(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(f=S.d,v=e.d,a=A.precision,l=A.rounding,!f[0]||!v[0]){if(v[0])e.s=-e.s;else if(f[0])e=new A(S);else return new A(l===3?-0:0);return _?I(e,a,l):e}if(r=X(e.e/O),g=X(S.e/O),f=f.slice(),o=g-r,o){for(h=o<0,h?(t=f,o=-o,s=v.length):(t=v,r=g,s=f.length),n=Math.max(Math.ceil(a/O),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=f.length,s=v.length,h=n0;--n)f[s++]=0;for(n=v.length;n>o;){if(f[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=f.length,i=g.length,s-i<0&&(i=s,r=g,g=f,f=r),t=0;i;)t=(f[--i]=f[i]+g[i]+t)/ce|0,f[i]%=ce;for(t&&(f.unshift(t),++n),s=f.length;f[--s]==0;)f.pop();return e.d=f,e.e=xr(f,n),_?I(e,a,l):e};C.precision=C.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ie+e);return r.d?(t=go(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};C.round=function(){var e=this,t=e.constructor;return I(new t(e),e.e+1,t.rounding)};C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=Nl(n,Eo(n,r)),n.precision=e,n.rounding=t,I(Te>2?r.neg():r,e,t,!0)):new n(NaN)};C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,f=s.s,g=s.constructor;if(f!==1||!a||!a[0])return new g(!f||f<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,f=Math.sqrt(+s),f==0||f==1/0?(t=z(a),(t.length+l)%2==0&&(t+="0"),f=Math.sqrt(t),l=X((l+1)/2)-(l<0||l%2),f==1/0?t="5e"+l:(t=f.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(f.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(q(s,o,r+2,1)).times(.5),z(o.d).slice(0,r)===(t=z(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(I(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(I(n,l+1,1),e=!n.times(n).eq(s));break}return _=!0,I(n,l,g.rounding,e)};C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=q(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,I(Te==2||Te==4?r.neg():r,e,t,!0)):new n(NaN)};C.times=C.mul=function(e){var t,r,n,i,o,s,a,l,f,g=this,h=g.constructor,v=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!S||!S[0])return new h(!e.s||v&&!v[0]&&!S||S&&!S[0]&&!v?NaN:!v||!S?e.s/0:e.s*0);for(r=X(g.e/O)+X(e.e/O),l=v.length,f=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*v[i-n-1]+t,o[i--]=a%ce|0,t=a/ce|0;o[i]=(o[i]+t)%ce|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=xr(o,r),_?I(e,h.precision,h.rounding):e};C.toBinary=function(e,t){return Rn(this,2,e,t)};C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ie(e,0,Oe),t===void 0?t=n.rounding:ie(t,0,8),I(r,e+r.e+1,t))};C.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,!0):(ie(e,0,Oe),t===void 0?t=i.rounding:ie(t,0,8),n=I(new i(n),e+1,t),r=ge(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=ge(i):(ie(e,0,Oe),t===void 0?t=o.rounding:ie(t,0,8),n=I(new o(i),e+i.e+1,t),r=ge(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};C.toFraction=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.d,R=S.constructor;if(!A)return new R(S);if(f=r=new R(1),n=l=new R(0),t=new R(n),o=t.e=go(A)-S.e-1,s=o%O,t.d[0]=J(10,s<0?O+s:s),e==null)e=o>0?t:f;else{if(a=new R(e),!a.isInt()||a.lt(f))throw Error(Ie+a);e=a.gt(t)?o>0?t:f:a}for(_=!1,a=new R(z(A)),g=R.precision,R.precision=o=A.length*O*2;h=q(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=f,f=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=q(e.minus(r),n,0,1,1),l=l.plus(i.times(f)),r=r.plus(i.times(n)),l.s=f.s=S.s,v=q(f,n,o,1).minus(S).abs().cmp(q(l,r,o,1).minus(S).abs())<1?[f,n]:[l,r],R.precision=g,_=!0,v};C.toHexadecimal=C.toHex=function(e,t){return Rn(this,16,e,t)};C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:ie(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(_=!1,r=q(r,e,0,t,1).times(e),_=!0,I(r)):(e.s=r.s,r=e),r};C.toNumber=function(){return+this};C.toOctal=function(e,t){return Rn(this,8,e,t)};C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,f=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,f));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return I(a,n,o);if(t=X(e.e/O),t>=e.d.length-1&&(r=f<0?-f:f)<=Ol)return i=ho(l,a,r,n),e.s<0?new l(1).div(i):I(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(_=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=An(e.times(ke(a,n+r)),n),i.d&&(i=I(i,n+5,1),St(i.d,n,o)&&(t=n+10,i=I(An(e.times(ke(a,t+r)),t),t+5,1),+z(i.d).slice(n+1,n+15)+1==1e14&&(i=I(i,n+1,0)))),i.s=s,_=!0,l.rounding=o,I(i,n,o))};C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,Oe),t===void 0?t=i.rounding:ie(t,0,8),n=I(new i(n),e,t),r=ge(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toSignificantDigits=C.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ie(e,1,Oe),t===void 0?t=n.rounding:ie(t,0,8)),I(new n(r),e,t)};C.toString=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};C.truncated=C.trunc=function(){return I(new this.constructor(this),this.e+1,1)};C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function z(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(Ie+e)}function St(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=O,i=0):(i=Math.ceil((t+1)/O),t%=O),o=J(10,O-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function gr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function Ml(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/Pr(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var q=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var f,g,h,v,S,A,R,D,M,B,k,F,ae,G,nn,ir,xt,on,ue,or,sr=n.constructor,sn=n.s==i.s?1:-1,Y=n.d,$=i.d;if(!Y||!Y[0]||!$||!$[0])return new sr(!n.s||!i.s||(Y?$&&Y[0]==$[0]:!$)?NaN:Y&&Y[0]==0||!$?sn*0:sn/0);for(l?(S=1,g=n.e-i.e):(l=ce,S=O,g=X(n.e/S)-X(i.e/S)),ue=$.length,xt=Y.length,M=new sr(sn),B=M.d=[],h=0;$[h]==(Y[h]||0);h++);if($[h]>(Y[h]||0)&&g--,o==null?(G=o=sr.precision,s=sr.rounding):a?G=o+(n.e-i.e)+1:G=o,G<0)B.push(1),A=!0;else{if(G=G/S+2|0,h=0,ue==1){for(v=0,$=$[0],G++;(h1&&($=e($,v,l),Y=e(Y,v,l),ue=$.length,xt=Y.length),ir=ue,k=Y.slice(0,ue),F=k.length;F=l/2&&++on;do v=0,f=t($,k,ue,F),f<0?(ae=k[0],ue!=F&&(ae=ae*l+(k[1]||0)),v=ae/on|0,v>1?(v>=l&&(v=l-1),R=e($,v,l),D=R.length,F=k.length,f=t(R,k,D,F),f==1&&(v--,r(R,ue=10;v/=10)h++;M.e=h+g*S-1,I(M,a?o+M.e+1:o,s,A)}return M}}();function I(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=O,s=t,g=h[v=0],l=g/J(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/O),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=O,s=o-O+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=O,s=o-O+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%J(10,i-s-1)),f=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,f?(t-=e.e+1,h[0]=J(10,(O-t%O)%O),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=J(10,O-o),h[v]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),f)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==ce&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=ce)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return _&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Se(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Se(-i-1)+o,r&&(n=r-s)>0&&(o+=Se(n))):i>=s?(o+=Se(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Se(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Se(n))),o}function xr(e,t){var r=e[0];for(t*=O;r>=10;r/=10)t++;return t}function Er(e,t,r){if(t>Dl)throw _=!0,r&&(e.precision=r),Error(co);return I(new e(yr),t,1,!0)}function fe(e,t,r){if(t>Cn)throw Error(co);return I(new e(wr),t,r,!0)}function go(e){var t=e.length-1,r=t*O+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Se(e){for(var t="";e--;)t+="0";return t}function ho(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/O+4);for(_=!1;;){if(r%2&&(o=o.times(t),ao(o.d,s)&&(i=!0)),r=X(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),ao(t.d,s)}return _=!0,o}function so(e){return e.d[e.d.length-1]&1}function yo(e,t,r){for(var n,i,o=new e(t[0]),s=0;++s17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(_=!1,l=A):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=I(o.times(e),l,1),r=r.times(++g),a=s.plus(q(o,r,l,1)),z(a.d).slice(0,l)===z(s.d).slice(0,l)){for(i=h;i--;)s=I(s.times(s),l,1);if(t==null)if(f<3&&St(s.d,l-n,S,f))v.precision=l+=10,r=o=a=new v(1),g=0,f++;else return I(s,v.precision=A,S,_=!0);else return v.precision=A,s}s=a}}function ke(e,t){var r,n,i,o,s,a,l,f,g,h,v,S=1,A=10,R=e,D=R.d,M=R.constructor,B=M.rounding,k=M.precision;if(R.s<0||!D||!D[0]||!R.e&&D[0]==1&&D.length==1)return new M(D&&!D[0]?-1/0:R.s!=1?NaN:D?0:R);if(t==null?(_=!1,g=k):g=t,M.precision=g+=A,r=z(D),n=r.charAt(0),Math.abs(o=R.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)R=R.times(e),r=z(R.d),n=r.charAt(0),S++;o=R.e,n>1?(R=new M("0."+r),o++):R=new M(n+"."+r.slice(1))}else return f=Er(M,g+2,k).times(o+""),R=ke(new M(n+"."+r.slice(1)),g-A).plus(f),M.precision=k,t==null?I(R,k,B,_=!0):R;for(h=R,l=s=R=q(R.minus(1),R.plus(1),g,1),v=I(R.times(R),g,1),i=3;;){if(s=I(s.times(v),g,1),f=l.plus(q(s,new M(i),g,1)),z(f.d).slice(0,g)===z(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(Er(M,g+2,k).times(o+""))),l=q(l,new M(S),g,1),t==null)if(St(l.d,g-A,B,a))M.precision=g+=A,f=s=R=q(h.minus(1),h.plus(1),g,1),v=I(R.times(R),g,1),i=a=1;else return I(l,M.precision=k,B,_=!0);else return M.precision=k,l;l=f,i+=2}}function wo(e){return String(e.s*e.s/0)}function hr(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%O,r<0&&(n+=O),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),fo.test(t))return hr(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(kl.test(t))r=16,t=t.toLowerCase();else if(Sl.test(t))r=2;else if(Il.test(t))r=8;else throw Error(Ie+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=ho(n,new n(r),o,o*2)),f=gr(t,r,ce),g=f.length-1,o=g;f[o]===0;--o)f.pop();return o<0?new n(e.s*0):(e.e=xr(f,g),e.d=f,_=!1,s&&(e=q(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):Be.pow(2,l))),_=!0,e)}function Nl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/Pr(5,r)),t=et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function et(e,t,r,n,i){var o,s,a,l,f=1,g=e.precision,h=Math.ceil(g/O);for(_=!1,l=r.times(r),a=new e(n);;){if(s=q(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=q(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,f++}return _=!0,s.d.length=h+1,s}function Pr(e,t){for(var r=e;--t;)r*=e;return r}function Eo(e,t){var r,n=t.s<0,i=fe(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Te=n?4:1,t;if(r=t.divToInt(i),r.isZero())Te=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Te=so(r)?n?2:3:n?4:1,t;Te=so(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Rn(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor,A=r!==void 0;if(A?(ie(r,1,Oe),n===void 0?n=S.rounding:ie(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=wo(e);else{for(g=ge(e),s=g.indexOf("."),A?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new S(1),v.e=g.length-s,v.d=gr(ge(v),10,i),v.e=v.d.length),h=gr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=A?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=q(e,v,r,n,0,i),h=e.d,o=e.e,f=uo),s=h[r],a=i/2,f=f||h[r+1]!==void 0,f=n<4?(s!==void 0||f)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||f||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,f)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=gr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function Fl(e){return new this(e).abs()}function Ll(e){return new this(e).acos()}function Bl(e){return new this(e).acosh()}function Ul(e,t){return new this(e).plus(t)}function ql(e){return new this(e).asin()}function $l(e){return new this(e).asinh()}function jl(e){return new this(e).atan()}function Vl(e){return new this(e).atanh()}function Gl(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=fe(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?fe(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=fe(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(q(e,t,o,1)),t=fe(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(q(e,t,o,1)),r}function Ql(e){return new this(e).cbrt()}function Jl(e){return I(e=new this(e),e.e+1,2)}function Wl(e,t,r){return new this(e).clamp(t,r)}function Hl(e){if(!e||typeof e!="object")throw Error(br+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,Oe,"rounding",0,8,"toExpNeg",-Xe,0,"toExpPos",0,Xe,"maxE",0,Xe,"minE",-Xe,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ie+r+": "+n);if(r="crypto",i&&(this[r]=Tn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(po);else this[r]=!1;else throw Error(Ie+r+": "+n);return this}function Kl(e){return new this(e).cos()}function zl(e){return new this(e).cosh()}function bo(e){var t,r,n;function i(o){var s,a,l,f=this;if(!(f instanceof i))return new i(o);if(f.constructor=i,lo(o)){f.s=o.s,_?!o.d||o.e>i.maxE?(f.e=NaN,f.d=null):o.e=10;a/=10)s++;_?s>i.maxE?(f.e=NaN,f.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(po);else for(;o=10;i/=10)n++;nIt,datamodelEnumToSchemaEnum:()=>vu});d();u();c();p();m();d();u();c();p();m();function vu(e){return{name:e.name,values:e.values.map(t=>t.name)}}d();u();c();p();m();var It=(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.updateManyAndReturn="updateManyAndReturn",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw",k))(It||{});var Tu=Qe(Zi());var Cu={red:ze,gray:Li,dim:pr,bold:cr,underline:Di,highlightSource:e=>e.highlight()},Au={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ru({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Su({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],l=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)),t&&a.push(s.underline(ku(t))),i){a.push("");let f=[i.toString()];o&&(f.push(o),f.push(s.dim(")"))),a.push(f.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function ku(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function Tr(e){let t=e.showColors?Cu:Au,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=Ru(e),Su(r,t)}d();u();c();p();m();var Oo=Qe(kn());d();u();c();p();m();function Ao(e,t,r){let n=Ro(e),i=Iu(n),o=Du(i);o?Cr(o,t,r):t.addErrorMessage(()=>"Unknown error")}function Ro(e){return e.errors.flatMap(t=>t.kind==="Union"?Ro(t):[t])}function Iu(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Ou(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Ou(e,t){return[...new Set(e.concat(t))]}function Du(e){return Pn(e,(t,r)=>{let n=To(t),i=To(r);return n!==i?n-i:Co(t)-Co(r)})}function To(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function Co(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}d();u();c();p();m();var le=class{constructor(t,r){this.name=t;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};d();u();c();p();m();d();u();c();p();m();ko();d();u();c();p();m();var it=class{constructor(t=0,r){this.context=r;this.currentIndent=t}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};So();d();u();c();p();m();d();u();c();p();m();var Ar=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};d();u();c();p();m();var Rr=e=>e,Sr={bold:Rr,red:Rr,green:Rr,dim:Rr,enabled:!1},Io={bold:cr,red:ze,green:Mi,dim:pr,enabled:!0},ot={write(e){e.writeLine(",")}};d();u();c();p();m();var we=class{constructor(t){this.contents=t}isUnderlined=!1;color=t=>t;underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};d();u();c();p();m();var Me=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var st=class extends Me{items=[];addItem(t){return this.items.push(new Ar(t)),this}getField(t){return this.items[t]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(t){if(this.items.length===0){this.writeEmpty(t);return}this.writeWithItems(t)}writeEmpty(t){let r=new we("[]");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithItems(t){let{colors:r}=t.context;t.writeLine("[").withIndent(()=>t.writeJoined(ot,this.items).newLine()).write("]"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var at=class e extends Me{fields={};suggestions=[];addField(t){this.fields[t.name]=t}addSuggestion(t){this.suggestions.push(t)}getField(t){return this.fields[t]}getDeepField(t){let[r,...n]=t,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof st&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(t){return t.length===0?this:this.getDeepField(t)?.value}hasField(t){return!!this.getField(t)}removeAllFields(){this.fields={}}removeField(t){delete this.fields[t]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(t){return this.getField(t)?.value}getDeepSubSelectionValue(t){let r=this;for(let n of t){if(!(r instanceof e))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(t){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of t){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let t=this.getField("select")?.value.asObject();if(t)return{kind:"select",value:t};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(t){return this.getSelectionParent()?.value.fields[t].value}getPrintWidth(){let t=Object.values(this.fields);return t.length==0?2:Math.max(...t.map(n=>n.getPrintWidth()))+2}write(t){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(t);return}this.writeWithContents(t,r)}asObject(){return this}writeEmpty(t){let r=new we("{}");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithContents(t,r){t.writeLine("{").withIndent(()=>{t.writeJoined(ot,[...r,...this.suggestions]).newLine()}),t.write("}"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth())))})}};d();u();c();p();m();var H=class extends Me{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new we(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};d();u();c();p();m();var Dt=class{fields=[];addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(ot,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Cr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":Mu(e,t);break;case"IncludeOnScalar":_u(e,t);break;case"EmptySelection":Nu(e,t,r);break;case"UnknownSelectionField":Uu(e,t);break;case"InvalidSelectionValue":qu(e,t);break;case"UnknownArgument":$u(e,t);break;case"UnknownInputField":ju(e,t);break;case"RequiredArgumentMissing":Vu(e,t);break;case"InvalidArgumentType":Gu(e,t);break;case"InvalidArgumentValue":Qu(e,t);break;case"ValueTooLarge":Ju(e,t);break;case"SomeFieldsMissing":Wu(e,t);break;case"TooManyFieldsGiven":Hu(e,t);break;case"Union":Ao(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function Mu(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function _u(e,t){let[r,n]=Mt(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new le(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${_t(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function Nu(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Fu(e,t,i);return}if(n.hasField("select")){Lu(e,t);return}}if(r?.[De(e.outputType.name)]){Bu(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Fu(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new le(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Lu(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),_o(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${_t(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function Bu(e,t){let r=new Dt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new le("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=Mt(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new at;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Uu(e,t){let r=No(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":_o(n,e.outputType);break;case"include":Ku(n,e.outputType);break;case"omit":zu(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(_t(n)),i.join(" ")})}function qu(e,t){let r=No(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function $u(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Yu(n,e.arguments)),t.addErrorMessage(i=>Do(i,r,e.arguments.map(o=>o.name)))}function ju(e,t){let[r,n]=Mt(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Fo(o,e.inputType)}t.addErrorMessage(o=>Do(o,n,e.inputType.fields.map(s=>s.name)))}function Do(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=Xu(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(_t(e)),n.join(" ")}function Vu(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=Mt(e.argumentPath),s=new Dt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new le(o,s).makeRequired())}else{let l=e.inputTypes.map(Mo).join(" | ");a.addSuggestion(new le(o,l).makeRequired())}}function Mo(e){return e.kind==="list"?`${Mo(e.elementType)}[]`:e.name}function Gu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=kr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Qu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=kr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Ju(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function Wu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Fo(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${kr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(_t(i)),o.join(" ")})}function Hu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${kr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function _o(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new le(r.name,"true"))}function Ku(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new le(r.name,"true"))}function zu(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new le(r.name,"true"))}function Yu(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new le(r.name,r.typeNames.join(" | ")))}function No(e,t){let[r,n]=Mt(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Fo(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new le(r.name,r.typeNames.join(" | ")))}function Mt(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function _t({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function kr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Zu=3;function Xu(e,t){let r=1/0,n;for(let i of t){let o=(0,Oo.default)(e,i);o>Zu||o`}};function lt(e){return e instanceof Nt}d();u();c();p();m();var Ir=Symbol(),On=new WeakMap,Ce=class{constructor(t){t===Ir?On.set(this,`Prisma.${this._getName()}`):On.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return On.get(this)}},Ft=class extends Ce{_getNamespace(){return"NullTypes"}},Lt=class extends Ft{_brand_DbNull};Dn(Lt,"DbNull");var Bt=class extends Ft{_brand_JsonNull};Dn(Bt,"JsonNull");var Ut=class extends Ft{_brand_AnyNull};Dn(Ut,"AnyNull");var Or={classes:{DbNull:Lt,JsonNull:Bt,AnyNull:Ut},instances:{DbNull:new Lt(Ir),JsonNull:new Bt(Ir),AnyNull:new Ut(Ir)}};function Dn(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}d();u();c();p();m();var Lo=": ",Dr=class{constructor(t,r){this.name=t;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Lo.length}write(t){let r=new we(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Lo).write(this.value)}};var Mn=class{arguments;errorMessages=[];constructor(t){this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function ut(e){return new Mn(Bo(e))}function Bo(e){let t=new at;for(let[r,n]of Object.entries(e)){let i=new Dr(r,Uo(n));t.addField(i)}return t}function Uo(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(nt(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=vr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Ce?new H(`Prisma.${e._getName()}`):lt(e)?new H(`prisma.${De(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?ec(e):typeof e=="object"?Bo(e):new H(Object.prototype.toString.call(e))}function ec(e){let t=new st;for(let r of e)t.addItem(Uo(r));return t}function Mr(e,t){let r=t==="pretty"?Io:Sr,n=e.renderAllMessages(r),i=new it(0,{colors:r}).write(e).toString();return{message:n,args:i}}function _r({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=ut(e);for(let h of t)Cr(h,a,s);let{message:l,args:f}=Mr(a,r),g=Tr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:f});throw new Z(g,{clientVersion:o})}d();u();c();p();m();d();u();c();p();m();function Ee(e){return e.replace(/^./,t=>t.toLowerCase())}d();u();c();p();m();function $o(e,t,r){let n=Ee(r);return!t.result||!(t.result.$allModels||t.result[n])?e:tc({...e,...qo(t.name,e,t.result.$allModels),...qo(t.name,e,t.result[n])})}function tc(e){let t=new ye,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ze(e,n=>({...n,needs:r(n.name,new Set)}))}function qo(e,t,r){return r?Ze(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:rc(t,o,i)})):{}}function rc(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function jo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function Vo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Nr=class{constructor(t,r){this.extension=t;this.previous=r}computedFieldsCache=new ye;modelExtensionsCache=new ye;queryCallbacksCache=new ye;clientExtensions=kt(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=kt(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t});getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>$o(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Ee(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ct=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Nr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Nr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};d();u();c();p();m();var Fr=class{constructor(t){this.name=t}};function Go(e){return e instanceof Fr}function Qo(e){return new Fr(e)}d();u();c();p();m();d();u();c();p();m();var Jo=Symbol(),qt=class{constructor(t){if(t!==Jo)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Lr:t}},Lr=new qt(Jo);function be(e){return e instanceof qt}var nc={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Wo="explicitly `undefined` values are not allowed";function Br({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ct.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g}){let h=new _n({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g});return{modelName:e,action:nc[t],query:$t(r,h)}}function $t({select:e,include:t,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Ko(r,n),selection:ic(e,t,i,n)}}function ic(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),lc(e,n)):oc(n,t,r)}function oc(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&sc(n,t,e),ac(n,r,e),n}function sc(e,t,r){for(let[n,i]of Object.entries(t)){if(be(i))continue;let o=r.nestSelection(n);if(Nn(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=$t(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=$t(i,o)}}function ac(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=Vo(i,n);for(let[s,a]of Object.entries(o)){if(be(a))continue;Nn(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function lc(e,t){let r={},n=t.getComputedFields(),i=jo(e,n);for(let[o,s]of Object.entries(i)){if(be(s))continue;let a=t.nestSelection(o);Nn(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||be(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=$t({},a):r[o]=!0;continue}r[o]=$t(s,a)}}return r}function Ho(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(rt(e)){if(vr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Go(e))return{$type:"Param",value:e.name};if(lt(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return uc(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(cc(e))return e.values;if(nt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ce){if(e!==Or.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(pc(e))return e.toJSON();if(typeof e=="object")return Ko(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Ko(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);be(i)||(i!==void 0?r[n]=Ho(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:Wo}))}return r}function uc(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[De(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Pe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};d();u();c();p();m();function zo(e){if(!e._hasPreviewFlag("metrics"))throw new Z("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var pt=class{_client;constructor(t){this._client=t}prometheus(t){return zo(this._client),this._client._engine.metrics({format:"prometheus",...t})}json(t){return zo(this._client),this._client._engine.metrics({format:"json",...t})}};d();u();c();p();m();function Yo(e,t){let r=kt(()=>mc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function mc(e){return{datamodel:{models:Fn(e.models),enums:Fn(e.enums),types:Fn(e.types)}}}function Fn(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}d();u();c();p();m();var Ln=new WeakMap,Ur="$$PrismaTypedSql",jt=class{constructor(t,r){Ln.set(this,{sql:t,values:r}),Object.defineProperty(this,Ur,{value:Ur})}get sql(){return Ln.get(this).sql}get values(){return Ln.get(this).values}};function Zo(e){return(...t)=>new jt(e,t)}function qr(e){return e!=null&&e[Ur]===Ur}d();u();c();p();m();var da=Qe(Xo());d();u();c();p();m();es();Vi();Wi();d();u();c();p();m();var oe=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}d();u();c();p();m();d();u();c();p();m();var jr={enumerable:!0,configurable:!0,writable:!0};function Vr(e){let t=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>jr,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var ns=Symbol.for("nodejs.util.inspect.custom");function pe(e,t){let r=fc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=is(Reflect.ownKeys(o),r),a=is(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...jr,...l?.getPropertyDescriptor(s)}:jr:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[ns]=function(){let o={...this};return delete o[ns],o},i}function fc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function is(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}d();u();c();p();m();function mt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}d();u();c();p();m();function Gr(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}d();u();c();p();m();function os(e){if(e===void 0)return"";let t=ut(e);return new it(0,{colors:Sr}).write(t).toString()}d();u();c();p();m();var gc="P2037";function Qr({error:e,user_facing_error:t},r,n){return t.error_code?new re(hc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new ne(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function hc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===gc&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var qn=class{getLocation(){return null}};function _e(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new qn}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var ss={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function dt(e={}){let t=wc(e);return Object.entries(t).reduce((n,[i,o])=>(ss[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function wc(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Jr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function as(e,t){let r=Jr(e);return t({action:"aggregate",unpacker:r,argsMapper:dt})(e)}d();u();c();p();m();function Ec(e={}){let{select:t,...r}=e;return typeof t=="object"?dt({...r,_count:t}):dt({...r,_count:{_all:!0}})}function bc(e={}){return typeof e.select=="object"?t=>Jr(e)(t)._count:t=>Jr(e)(t)._count._all}function ls(e,t){return t({action:"count",unpacker:bc(e),argsMapper:Ec})(e)}d();u();c();p();m();function xc(e={}){let t=dt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function Pc(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function us(e,t){return t({action:"groupBy",unpacker:Pc(e),argsMapper:xc})(e)}function cs(e,t,r){if(t==="aggregate")return n=>as(n,r);if(t==="count")return n=>ls(n,r);if(t==="groupBy")return n=>us(n,r)}d();u();c();p();m();function ps(e,t){let r=t.fields.filter(i=>!i.relationName),n=xo(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Nt(e,o,s.type,s.isList,s.kind==="enum")},...Vr(Object.keys(n))})}d();u();c();p();m();d();u();c();p();m();var ms=e=>Array.isArray(e)?e:e.split("."),$n=(e,t)=>ms(t).reduce((r,n)=>r&&r[n],e),ds=(e,t,r)=>ms(t).reduceRight((n,i,o,s)=>Object.assign({},$n(e,s.slice(0,o)),{[i]:n}),r);function vc(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function Tc(e,t,r){return t===void 0?e??{}:ds(t,r,e||!0)}function jn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,f)=>({...l,[f.name]:f}),{});return l=>{let f=_e(e._errorFormat),g=vc(n,i),h=Tc(l,o,g),v=r({dataPath:g,callsite:f})(h),S=Cc(e,t);return new Proxy(v,{get(A,R){if(!S.includes(R))return A[R];let M=[a[R].type,r,R],B=[g,h];return jn(e,...M,...B)},...Vr([...S,...Object.getOwnPropertyNames(v)])})}}function Cc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Ac=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Rc=["aggregate","count","groupBy"];function Vn(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[Sc(e,t),Ic(e,t),Vt(r),ee("name",()=>t),ee("$name",()=>t),ee("$parent",()=>e._appliedParent)];return pe({},n)}function Sc(e,t){let r=Ee(t),n=Object.keys(It).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let f=_e(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:f};return e._request({...h,...a})},{action:o,args:l,model:t})};return Ac.includes(o)?jn(e,t,s):kc(i)?cs(e,i,s):s({})}}}function kc(e){return Rc.includes(e)}function Ic(e,t){return Ue(ee("fields",()=>{let r=e._runtimeDataModel.models[t];return ps(t,r)}))}d();u();c();p();m();function fs(e){return e.replace(/^./,t=>t.toUpperCase())}var Gn=Symbol();function Gt(e){let t=[Oc(e),Dc(e),ee(Gn,()=>e),ee("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(Vt(r)),pe(e,t)}function Oc(e){let t=Object.getPrototypeOf(e._originalClient),r=[...new Set(Object.getOwnPropertyNames(t))];return{getKeys(){return r},getPropertyValue(n){return e[n]}}}function Dc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Ee),n=[...new Set(t.concat(r))];return Ue({getKeys(){return n},getPropertyValue(i){let o=fs(i);if(e._runtimeDataModel.models[o]!==void 0)return Vn(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Vn(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function gs(e){return e[Gn]?e[Gn]:e}function hs(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Gt(t)}d();u();c();p();m();d();u();c();p();m();function ys({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let f=l.needs.filter(g=>n[g]);f.length>0&&a.push(mt(f))}else if(r){if(!r[l.name])continue;let f=l.needs.filter(g=>!r[g]);f.length>0&&a.push(mt(f))}Mc(e,l.needs)&&s.push(_c(l,pe(e,s)))}return s.length>0||a.length>0?pe(e,[...s,...a]):e}function Mc(e,t){return t.every(r=>xn(e,r))}function _c(e,t){return Ue(ee(e.name,()=>e.compute(t)))}d();u();c();p();m();function Wr({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let f=typeof s=="object"?s:{};t[o]=Wr({visitor:i,result:t[o],args:f,modelName:l.type,runtimeDataModel:n})}}function Es({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Wr({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,f)=>{let g=Ee(l);return ys({result:a,modelName:g,select:f.select,omit:f.select?void 0:{...o?.[g],...f.omit},extensions:n})}})}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var Nc=["$connect","$disconnect","$on","$transaction","$use","$extends"],bs=Nc;function xs(e){if(e instanceof oe)return Fc(e);if(qr(e))return Lc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:xs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=Rs(o,l),a.args=s,vs(e,a,r,n+1)}})})}function Ts(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return vs(e,t,s)}function Cs(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?As(r,n,0,e):e(r)}}function As(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=Rs(i,l),As(a,t,r+1,n)}})}var Ps=e=>e;function Rs(e=Ps,t=Ps){return r=>e(t(r))}d();u();c();p();m();var Ss=K("prisma:client"),ks={Vercel:"vercel","Netlify CI":"netlify"};function Is({postinstall:e,ciName:t,clientVersion:r}){if(Ss("checkPlatformCaching:postinstall",e),Ss("checkPlatformCaching:ciName",t),e===!0&&t&&t in ks){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ks[t]}-build`;throw console.error(n),new Q(n,r)}}d();u();c();p();m();function Os(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}d();u();c();p();m();d();u();c();p();m();var Bc=()=>globalThis.process?.release?.name==="node",Uc=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,qc=()=>!!globalThis.Deno,$c=()=>typeof globalThis.Netlify=="object",jc=()=>typeof globalThis.EdgeRuntime=="object",Vc=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function Gc(){return[[$c,"netlify"],[jc,"edge-light"],[Vc,"workerd"],[qc,"deno"],[Uc,"bun"],[Bc,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var Qc={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Hr(){let e=Gc();return{id:e,prettyName:Qc[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();function ft({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Hr().id==="workerd"?new Q(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new Q(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new Q("error: Missing URL environment variable, value, or override.",n);return i}d();u();c();p();m();d();u();c();p();m();var Kr=class extends Error{clientVersion;cause;constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends Kr{isRetryable;constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};d();u();c();p();m();d();u();c();p();m();function L(e,t){return{...e,isRetryable:t}}var gt=class extends se{name="ForcedRetryError";code="P5001";constructor(t){super("This request must be retried",L(t,!0))}};N(gt,"ForcedRetryError");d();u();c();p();m();var qe=class extends se{name="InvalidDatasourceError";code="P6001";constructor(t,r){super(t,L(r,!1))}};N(qe,"InvalidDatasourceError");d();u();c();p();m();var $e=class extends se{name="NotImplementedYetError";code="P5004";constructor(t,r){super(t,L(r,!1))}};N($e,"NotImplementedYetError");d();u();c();p();m();d();u();c();p();m();var V=class extends se{response;constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var je=class extends V{name="SchemaMissingError";code="P5005";constructor(t){super("Schema needs to be uploaded",L(t,!0))}};N(je,"SchemaMissingError");d();u();c();p();m();d();u();c();p();m();var Qn="This request could not be understood by the server",Jt=class extends V{name="BadRequestError";code="P5000";constructor(t,r,n){super(r||Qn,L(t,!1)),n&&(this.code=n)}};N(Jt,"BadRequestError");d();u();c();p();m();var Wt=class extends V{name="HealthcheckTimeoutError";code="P5013";logs;constructor(t,r){super("Engine not started: healthcheck timeout",L(t,!0)),this.logs=r}};N(Wt,"HealthcheckTimeoutError");d();u();c();p();m();var Ht=class extends V{name="EngineStartupError";code="P5014";logs;constructor(t,r,n){super(r,L(t,!0)),this.logs=n}};N(Ht,"EngineStartupError");d();u();c();p();m();var Kt=class extends V{name="EngineVersionNotSupportedError";code="P5012";constructor(t){super("Engine version is not supported",L(t,!1))}};N(Kt,"EngineVersionNotSupportedError");d();u();c();p();m();var Jn="Request timed out",zt=class extends V{name="GatewayTimeoutError";code="P5009";constructor(t,r=Jn){super(r,L(t,!1))}};N(zt,"GatewayTimeoutError");d();u();c();p();m();var Jc="Interactive transaction error",Yt=class extends V{name="InteractiveTransactionError";code="P5015";constructor(t,r=Jc){super(r,L(t,!1))}};N(Yt,"InteractiveTransactionError");d();u();c();p();m();var Wc="Request parameters are invalid",Zt=class extends V{name="InvalidRequestError";code="P5011";constructor(t,r=Wc){super(r,L(t,!1))}};N(Zt,"InvalidRequestError");d();u();c();p();m();var Wn="Requested resource does not exist",Xt=class extends V{name="NotFoundError";code="P5003";constructor(t,r=Wn){super(r,L(t,!1))}};N(Xt,"NotFoundError");d();u();c();p();m();var Hn="Unknown server error",ht=class extends V{name="ServerError";code="P5006";logs;constructor(t,r,n){super(r||Hn,L(t,!0)),this.logs=n}};N(ht,"ServerError");d();u();c();p();m();var Kn="Unauthorized, check your connection string",er=class extends V{name="UnauthorizedError";code="P5007";constructor(t,r=Kn){super(r,L(t,!1))}};N(er,"UnauthorizedError");d();u();c();p();m();var zn="Usage exceeded, retry again later",tr=class extends V{name="UsageExceededError";code="P5008";constructor(t,r=zn){super(r,L(t,!0))}};N(tr,"UsageExceededError");async function Hc(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function rr(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await Hc(e);if(n.type==="QueryEngineError")throw new re(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new ht(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new je(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Kt(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Ht(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new Q(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Wt(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Yt(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Zt(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new er(r,yt(Kn,n));if(e.status===404)return new Xt(r,yt(Wn,n));if(e.status===429)throw new tr(r,yt(zn,n));if(e.status===504)throw new zt(r,yt(Jn,n));if(e.status>=500)throw new ht(r,yt(Hn,n));if(e.status>=400)throw new Jt(r,yt(Qn,n))}function yt(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}d();u();c();p();m();function Ds(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}d();u();c();p();m();var Ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ms(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,f,g;for(let h=0;h>18,a=(g&258048)>>12,l=(g&4032)>>6,f=g&63,r+=Ae[s]+Ae[a]+Ae[l]+Ae[f];return i==1?(g=t[o],s=(g&252)>>2,a=(g&3)<<4,r+=Ae[s]+Ae[a]+"=="):i==2&&(g=t[o]<<8|t[o+1],s=(g&64512)>>10,a=(g&1008)>>4,l=(g&15)<<2,r+=Ae[s]+Ae[a]+Ae[l]+"="),r}d();u();c();p();m();function _s(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new Q("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}d();u();c();p();m();function Kc(e){return e[0]*1e3+e[1]/1e6}function Yn(e){return new Date(Kc(e))}d();u();c();p();m();var Ns={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};d();u();c();p();m();d();u();c();p();m();var nr=class extends se{name="RequestError";code="P5010";constructor(t,r){super(`Cannot fetch data from service: +${t}`,L(r,!0))}};N(nr,"RequestError");async function Ve(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new nr(a,{clientVersion:n,cause:s})}}var Yc=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,Fs=K("prisma:client:dataproxyEngine");async function Zc(e,t){let r=Ns["@prisma/engines-version"],n=t.clientVersion??"unknown";if(y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&Yc.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,f]=s.split("."),g=Xc(`<=${a}.${l}.${f}`),h=await Ve(g,{clientVersion:n});if(!h.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${h.status} ${h.statusText}, response body: ${await h.text()||""}`);let v=await h.text();Fs("length of body fetched from unpkg.com",v.length);let S;try{S=JSON.parse(v)}catch(A){throw console.error("JSON.parse error: body fetched from unpkg.com: ",v),A}return S.version}throw new $e("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Ls(e,t){let r=await Zc(e,t);return Fs("version",r),r}function Xc(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var Bs=3,zr=K("prisma:client:dataproxyEngine"),Zn=class{apiKey;tracingHelper;logLevel;logQueries;engineHash;constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},wt=class{name="DataProxyEngine";inlineSchema;inlineSchemaHash;inlineDatasources;config;logEmitter;env;clientVersion;engineHash;tracingHelper;remoteClientVersion;host;headerBuilder;startPromise;constructor(t){_s(t),this.config=t,this.env={...t.env,...typeof y<"u"?y.env:{}},this.inlineSchema=Ms(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new Zn({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Ls(t,this.config),zr("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":zr(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:Yn(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:Yn(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await Ve(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||zr("schema response status",r.status);let n=await rr(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=Gr(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||zr("graphql response status",a.status),await this.handleError(await rr(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await Ve(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await rr(l,this.clientVersion));let f=await l.json(),{extensions:g}=f;g&&this.propagateResponseExtensions(g);let h=f.id,v=f["data-proxy"].endpoint;return{id:h,payload:{endpoint:v}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await rr(a,this.clientVersion));let l=await a.json(),{extensions:f}=l;f&&this.propagateResponseExtensions(f);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=ft({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!==fr)throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new qe(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new $e("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(r>=Bs)throw i instanceof gt?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${Bs} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Ds(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof je)throw await this.uploadSchema(),new gt({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?Qr(t[0],this.config.clientVersion,this.config.activeProvider):new ne(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function Us({copyEngine:e=!0},t){let r;try{r=ft({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||En(r));e&&n&&Rt("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ye(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary",f=i==="client";if(o&&s||s){let g;throw g=["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.","Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."],new Z(g.join(` +`),{clientVersion:t.clientVersion})}return o?new wt(t):new wt(t)}d();u();c();p();m();function Yr({generator:e}){return e?.previewFeatures??[]}d();u();c();p();m();var qs=e=>({command:e});d();u();c();p();m();d();u();c();p();m();var $s=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);d();u();c();p();m();function Et(e){try{return js(e,"fast")}catch{return js(e,"slow")}}function js(e,t){return JSON.stringify(e.map(r=>Gs(r,t)))}function Gs(e,t){if(Array.isArray(e))return e.map(r=>Gs(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(rt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(he.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(ep(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Qs(e):e}function ep(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Qs(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Vs);let t={};for(let r of Object.keys(e))t[r]=Vs(e[r]);return t}function Vs(e){return typeof e=="bigint"?e.toString():Qs(e)}var tp=/^(\s*alter\s)/i,Js=K("prisma:client");function Xn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&tp.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var ei=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(qr(r))n=r.sql,i={values:Et(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:Et(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:Et(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:Et(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=$s(r),i={values:Et(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Js(`prisma.${e}(${n}, ${i.values})`):Js(`prisma.${e}(${n})`),{query:n,parameters:i}},Ws={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new oe(t,r)}},Hs={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};d();u();c();p();m();function ti(e){return function(r,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=Ks(r(s)):Ks(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function Ks(e){return typeof e.then=="function"?e:Promise.resolve(e)}d();u();c();p();m();var rp=wn.split(".")[0],np={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},ri=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){let t=globalThis[`V${rp}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return t?.helper??r?.helper??np}};function zs(){return new ri}d();u();c();p();m();function Ys(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}d();u();c();p();m();function Zs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}d();u();c();p();m();var Zr=class{_middlewares=[];use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};d();u();c();p();m();var ea=Qe(no());d();u();c();p();m();function Xr(e){return typeof e.batchRequestIdx=="number"}d();u();c();p();m();function Xs(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(ni(e.query.arguments)),t.push(ni(e.query.selection)),t.join("")}function ni(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${ni(n)})`:r}).join(" ")})`}d();u();c();p();m();var ip={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function ii(e){return ip[e]}d();u();c();p();m();var en=class{constructor(t){this.options=t;this.batches={}}batches;tickActive=!1;request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iGe("bigint",r));case"bytes-array":return t.map(r=>Ge("bytes",r));case"decimal-array":return t.map(r=>Ge("decimal",r));case"datetime-array":return t.map(r=>Ge("datetime",r));case"date-array":return t.map(r=>Ge("date",r));case"time-array":return t.map(r=>Ge("time",r));default:return t}}function tn(e){let t=[],r=op(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),f=n.some(h=>ii(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:ap(o),containsWrite:f,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?ta(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:ii(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Xs(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(sp(t),lp(t,i))throw t;if(t instanceof re&&up(t)){let f=ra(t.meta);_r({args:o,errors:[f],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=Tr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let f=s?{modelName:s,...t.meta}:t.meta;throw new re(l,{code:t.code,clientVersion:this.client._clientVersion,meta:f,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ve(l,this.client._clientVersion);if(t instanceof ne)throw new ne(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof Q)throw new Q(l,this.client._clientVersion);if(t instanceof ve)throw new ve(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,ea.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(f=>f!=="select"&&f!=="include"),a=$n(o,s),l=i==="queryRaw"?tn(a):tt(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function ap(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:ta(e)};Pe(e,"Unknown transaction kind")}}function ta(e){return{id:e.id,payload:e.payload}}function lp(e,t){return Xr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function up(e){return e.code==="P2009"||e.code==="P2012"}function ra(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(ra)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}d();u();c();p();m();var na="6.6.0";var ia=na;d();u();c();p();m();var ua=Qe(kn());d();u();c();p();m();var U=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};N(U,"PrismaClientConstructorValidationError");var oa=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],sa=["pretty","colorless","minimal"],aa=["info","query","warn","error"],pp={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=bt(r,t)||` Available datasources: ${t.join(", ")}`;throw new U(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new U(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(!e&&Ye(t.generator)==="client")throw new U('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new U('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Yr(t).includes("driverAdapters"))throw new U('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ye(t.generator)==="binary")throw new U('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!sa.includes(e)){let t=bt(e,sa);throw new U(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!aa.includes(r)){let n=bt(r,aa);throw new U(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=bt(i,o);throw new U(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new U(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new U(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new U(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new U('"omit" option is expected to be an object.');if(e===null)throw new U('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=dp(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(f=>f.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new U(fp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new U(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=bt(r,t);throw new U(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function ca(e,t){for(let[r,n]of Object.entries(e)){if(!oa.includes(r)){let i=bt(r,oa);throw new U(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}pp[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new U('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function bt(e,t){if(t.length===0||typeof e!="string")return"";let r=mp(e,t);return r?` Did you mean "${r}"?`:""}function mp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,ua.default)(e,i)}));r.sort((i,o)=>i.distanceDe(n)===t);if(r)return e[r]}function fp(e,t){let r=ut(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Mr(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}d();u();c();p();m();function pa(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=f=>{o||(o=!0,r(f))};for(let f=0;f{n[f]=g,a()},g=>{if(!Xr(g)){l(g);return}g.batchRequestIdx===f?l(g):(i||(i=g),a())})})}var Ne=K("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var gp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},hp=Symbol.for("prisma.client.transaction.id"),yp={id:0,nextId(){return++this.id}};function fa(e){class t{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Zr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=ti();constructor(n){e=n?.__internal?.configOverride?.(e)??e,Is(e),n&&ca(n,e);let i=new $r().on("error",()=>{});this._extensions=ct.empty(),this._previewFeatures=Yr(e),this._clientVersion=e.clientVersion??ia,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=zs();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&dr.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&dr.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new Q(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new Q("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},f=l.__internal??{},g=f.debug===!0;g&&K.enable("prisma:client");let h=dr.resolve(e.dirname,e.relativePath);ji.existsSync(h)||(h=e.dirname),Ne("dirname",e.dirname),Ne("relativePath",e.relativePath),Ne("cwd",h);let v=f.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Zs(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Os(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:ft,getBatchRequestPayload:Gr,prismaGraphQLToJSError:Qr,PrismaClientUnknownRequestError:ne,PrismaClientInitializationError:Q,PrismaClientKnownRequestError:re,debug:K("prisma:client:accelerateEngine"),engineVersion:da.version,clientVersion:e.clientVersion}},Ne("clientVersion",e.clientVersion),this._engine=Us(e,this._engineConfig),this._requestHandler=new rn(this,i),l.log)for(let S of l.log){let A=typeof S=="string"?S:S.emit==="stdout"?S.level:null;A&&this.$on(A,R=>{At.log(`${At.tags[A]??""}`,R.message||R.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=Gt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{qi()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:ei({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ma(n,i);return Xn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new Z("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Xn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new Z(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:qs,callsite:_e(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:ei({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ma(n,i));throw new Z("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new Z("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=yp.nextId(),s=Ys(n.length),a=n.map((l,f)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:f,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return pa(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let f={kind:"itx",...a};l=await n(this._createItxClient(f)),await this._engine.transaction("commit",o,a)}catch(f){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),f}return l}_createItxClient(n){return pe(Gt(pe(gs(this),[ee("_appliedParent",()=>this._appliedParent._createItxClient(n)),ee("_createPrismaPromise",()=>ti(n)),ee(hp,()=>n.id)])),[mt(bs)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??gp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async f=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,D=>g(f,M=>(D?.end(),l(M))));let{runInTransaction:h,args:v,...S}=f,A={...n,...S};v&&(A.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete A.transaction;let R=await Ts(this,A);return A.model?Es({result:R,modelName:A.model,args:A.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):R};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:f,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:S}){try{n=f?f(n):n;let A={name:"serialize"},R=this._tracingHelper.runInChildSpan(A,()=>Br({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return K.enabled("prisma:client")&&(Ne("Prisma Client call:"),Ne(`prisma.${i}(${os(n)})`),Ne("Generated request:"),Ne(JSON.stringify(R,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:R,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(A){throw A.clientVersion=this._clientVersion,A}}$metrics=new pt(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=hs}return t}function ma(e,t){return wp(e)?[new oe(e,t),Ws]:[e,Hs]}function wp(e){return Array.isArray(e)&&Array.isArray(e.raw)}d();u();c();p();m();var Ep=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function ga(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!Ep.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}d();u();c();p();m();0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=edge.js.map diff --git a/lib/generated/prisma/runtime/index-browser.d.ts b/lib/generated/prisma/runtime/index-browser.d.ts new file mode 100644 index 0000000..5563c2c --- /dev/null +++ b/lib/generated/prisma/runtime/index-browser.d.ts @@ -0,0 +1,370 @@ +declare class AnyNull extends NullTypesEnumValue { + private readonly _brand_AnyNull; +} + +declare type Args = T extends { + [K: symbol]: { + types: { + operations: { + [K in F]: { + args: any; + }; + }; + }; + }; +} ? T[symbol]['types']['operations'][F]['args'] : any; + +declare class DbNull extends NullTypesEnumValue { + private readonly _brand_DbNull; +} + +export declare function Decimal(n: Decimal.Value): Decimal; + +export declare namespace Decimal { + export type Constructor = typeof Decimal; + export type Instance = Decimal; + export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + export type Modulo = Rounding | 9; + export type Value = string | number | Decimal; + + // http://mikemcl.github.io/decimal.js/#constructor-properties + export interface Config { + precision?: number; + rounding?: Rounding; + toExpNeg?: number; + toExpPos?: number; + minE?: number; + maxE?: number; + crypto?: boolean; + modulo?: Modulo; + defaults?: boolean; + } +} + +export declare class Decimal { + readonly d: number[]; + readonly e: number; + readonly s: number; + + constructor(n: Decimal.Value); + + absoluteValue(): Decimal; + abs(): Decimal; + + ceil(): Decimal; + + clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; + clamp(min: Decimal.Value, max: Decimal.Value): Decimal; + + comparedTo(n: Decimal.Value): number; + cmp(n: Decimal.Value): number; + + cosine(): Decimal; + cos(): Decimal; + + cubeRoot(): Decimal; + cbrt(): Decimal; + + decimalPlaces(): number; + dp(): number; + + dividedBy(n: Decimal.Value): Decimal; + div(n: Decimal.Value): Decimal; + + dividedToIntegerBy(n: Decimal.Value): Decimal; + divToInt(n: Decimal.Value): Decimal; + + equals(n: Decimal.Value): boolean; + eq(n: Decimal.Value): boolean; + + floor(): Decimal; + + greaterThan(n: Decimal.Value): boolean; + gt(n: Decimal.Value): boolean; + + greaterThanOrEqualTo(n: Decimal.Value): boolean; + gte(n: Decimal.Value): boolean; + + hyperbolicCosine(): Decimal; + cosh(): Decimal; + + hyperbolicSine(): Decimal; + sinh(): Decimal; + + hyperbolicTangent(): Decimal; + tanh(): Decimal; + + inverseCosine(): Decimal; + acos(): Decimal; + + inverseHyperbolicCosine(): Decimal; + acosh(): Decimal; + + inverseHyperbolicSine(): Decimal; + asinh(): Decimal; + + inverseHyperbolicTangent(): Decimal; + atanh(): Decimal; + + inverseSine(): Decimal; + asin(): Decimal; + + inverseTangent(): Decimal; + atan(): Decimal; + + isFinite(): boolean; + + isInteger(): boolean; + isInt(): boolean; + + isNaN(): boolean; + + isNegative(): boolean; + isNeg(): boolean; + + isPositive(): boolean; + isPos(): boolean; + + isZero(): boolean; + + lessThan(n: Decimal.Value): boolean; + lt(n: Decimal.Value): boolean; + + lessThanOrEqualTo(n: Decimal.Value): boolean; + lte(n: Decimal.Value): boolean; + + logarithm(n?: Decimal.Value): Decimal; + log(n?: Decimal.Value): Decimal; + + minus(n: Decimal.Value): Decimal; + sub(n: Decimal.Value): Decimal; + + modulo(n: Decimal.Value): Decimal; + mod(n: Decimal.Value): Decimal; + + naturalExponential(): Decimal; + exp(): Decimal; + + naturalLogarithm(): Decimal; + ln(): Decimal; + + negated(): Decimal; + neg(): Decimal; + + plus(n: Decimal.Value): Decimal; + add(n: Decimal.Value): Decimal; + + precision(includeZeros?: boolean): number; + sd(includeZeros?: boolean): number; + + round(): Decimal; + + sine() : Decimal; + sin() : Decimal; + + squareRoot(): Decimal; + sqrt(): Decimal; + + tangent() : Decimal; + tan() : Decimal; + + times(n: Decimal.Value): Decimal; + mul(n: Decimal.Value) : Decimal; + + toBinary(significantDigits?: number): string; + toBinary(significantDigits: number, rounding: Decimal.Rounding): string; + + toDecimalPlaces(decimalPlaces?: number): Decimal; + toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + toDP(decimalPlaces?: number): Decimal; + toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + + toExponential(decimalPlaces?: number): string; + toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFixed(decimalPlaces?: number): string; + toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFraction(max_denominator?: Decimal.Value): Decimal[]; + + toHexadecimal(significantDigits?: number): string; + toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; + toHex(significantDigits?: number): string; + toHex(significantDigits: number, rounding?: Decimal.Rounding): string; + + toJSON(): string; + + toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; + + toNumber(): number; + + toOctal(significantDigits?: number): string; + toOctal(significantDigits: number, rounding: Decimal.Rounding): string; + + toPower(n: Decimal.Value): Decimal; + pow(n: Decimal.Value): Decimal; + + toPrecision(significantDigits?: number): string; + toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; + + toSignificantDigits(significantDigits?: number): Decimal; + toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; + toSD(significantDigits?: number): Decimal; + toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; + + toString(): string; + + truncated(): Decimal; + trunc(): Decimal; + + valueOf(): string; + + static abs(n: Decimal.Value): Decimal; + static acos(n: Decimal.Value): Decimal; + static acosh(n: Decimal.Value): Decimal; + static add(x: Decimal.Value, y: Decimal.Value): Decimal; + static asin(n: Decimal.Value): Decimal; + static asinh(n: Decimal.Value): Decimal; + static atan(n: Decimal.Value): Decimal; + static atanh(n: Decimal.Value): Decimal; + static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; + static cbrt(n: Decimal.Value): Decimal; + static ceil(n: Decimal.Value): Decimal; + static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; + static clone(object?: Decimal.Config): Decimal.Constructor; + static config(object: Decimal.Config): Decimal.Constructor; + static cos(n: Decimal.Value): Decimal; + static cosh(n: Decimal.Value): Decimal; + static div(x: Decimal.Value, y: Decimal.Value): Decimal; + static exp(n: Decimal.Value): Decimal; + static floor(n: Decimal.Value): Decimal; + static hypot(...n: Decimal.Value[]): Decimal; + static isDecimal(object: any): object is Decimal; + static ln(n: Decimal.Value): Decimal; + static log(n: Decimal.Value, base?: Decimal.Value): Decimal; + static log2(n: Decimal.Value): Decimal; + static log10(n: Decimal.Value): Decimal; + static max(...n: Decimal.Value[]): Decimal; + static min(...n: Decimal.Value[]): Decimal; + static mod(x: Decimal.Value, y: Decimal.Value): Decimal; + static mul(x: Decimal.Value, y: Decimal.Value): Decimal; + static noConflict(): Decimal.Constructor; // Browser only + static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; + static random(significantDigits?: number): Decimal; + static round(n: Decimal.Value): Decimal; + static set(object: Decimal.Config): Decimal.Constructor; + static sign(n: Decimal.Value): number; + static sin(n: Decimal.Value): Decimal; + static sinh(n: Decimal.Value): Decimal; + static sqrt(n: Decimal.Value): Decimal; + static sub(x: Decimal.Value, y: Decimal.Value): Decimal; + static sum(...n: Decimal.Value[]): Decimal; + static tan(n: Decimal.Value): Decimal; + static tanh(n: Decimal.Value): Decimal; + static trunc(n: Decimal.Value): Decimal; + + static readonly default?: Decimal.Constructor; + static readonly Decimal?: Decimal.Constructor; + + static readonly precision: number; + static readonly rounding: Decimal.Rounding; + static readonly toExpNeg: number; + static readonly toExpPos: number; + static readonly minE: number; + static readonly maxE: number; + static readonly crypto: boolean; + static readonly modulo: Decimal.Modulo; + + static readonly ROUND_UP: 0; + static readonly ROUND_DOWN: 1; + static readonly ROUND_CEIL: 2; + static readonly ROUND_FLOOR: 3; + static readonly ROUND_HALF_UP: 4; + static readonly ROUND_HALF_DOWN: 5; + static readonly ROUND_HALF_EVEN: 6; + static readonly ROUND_HALF_CEIL: 7; + static readonly ROUND_HALF_FLOOR: 8; + static readonly EUCLID: 9; +} + +declare type Exact = (A extends unknown ? (W extends A ? { + [K in keyof A]: Exact; +} : W) : never) | (A extends Narrowable ? A : never); + +export declare function getRuntime(): GetRuntimeOutput; + +declare type GetRuntimeOutput = { + id: RuntimeName; + prettyName: string; + isEdge: boolean; +}; + +declare class JsonNull extends NullTypesEnumValue { + private readonly _brand_JsonNull; +} + +/** + * Generates more strict variant of an enum which, unlike regular enum, + * throws on non-existing property access. This can be useful in following situations: + * - we have an API, that accepts both `undefined` and `SomeEnumType` as an input + * - enum values are generated dynamically from DMMF. + * + * In that case, if using normal enums and no compile-time typechecking, using non-existing property + * will result in `undefined` value being used, which will be accepted. Using strict enum + * in this case will help to have a runtime exception, telling you that you are probably doing something wrong. + * + * Note: if you need to check for existence of a value in the enum you can still use either + * `in` operator or `hasOwnProperty` function. + * + * @param definition + * @returns + */ +export declare function makeStrictEnum>(definition: T): T; + +declare type Narrowable = string | number | bigint | boolean | []; + +declare class NullTypesEnumValue extends ObjectEnumValue { + _getNamespace(): string; +} + +/** + * Base class for unique values of object-valued enums. + */ +declare abstract class ObjectEnumValue { + constructor(arg?: symbol); + abstract _getNamespace(): string; + _getName(): string; + toString(): string; +} + +export declare const objectEnumValues: { + classes: { + DbNull: typeof DbNull; + JsonNull: typeof JsonNull; + AnyNull: typeof AnyNull; + }; + instances: { + DbNull: DbNull; + JsonNull: JsonNull; + AnyNull: AnyNull; + }; +}; + +declare type Operation = 'findFirst' | 'findFirstOrThrow' | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'updateManyAndReturn' | 'upsert' | 'delete' | 'deleteMany' | 'aggregate' | 'count' | 'groupBy' | '$queryRaw' | '$executeRaw' | '$queryRawUnsafe' | '$executeRawUnsafe' | 'findRaw' | 'aggregateRaw' | '$runCommandRaw'; + +declare namespace Public { + export { + validator + } +} +export { Public } + +declare type RuntimeName = 'workerd' | 'deno' | 'netlify' | 'node' | 'bun' | 'edge-light' | ''; + +declare function validator(): (select: Exact) => S; + +declare function validator, O extends keyof C[M] & Operation>(client: C, model: M, operation: O): (select: Exact>) => S; + +declare function validator, O extends keyof C[M] & Operation, P extends keyof Args>(client: C, model: M, operation: O, prop: P): (select: Exact[P]>) => S; + +export { } diff --git a/lib/generated/prisma/runtime/index-browser.js b/lib/generated/prisma/runtime/index-browser.js new file mode 100644 index 0000000..59b567d --- /dev/null +++ b/lib/generated/prisma/runtime/index-browser.js @@ -0,0 +1,13 @@ +"use strict";var ne=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Je=Object.prototype.hasOwnProperty;var Xe=(e,n,i)=>n in e?ne(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i;var Ce=(e,n)=>{for(var i in n)ne(e,i,{get:n[i],enumerable:!0})},Ke=(e,n,i,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Ge(n))!Je.call(e,r)&&r!==i&&ne(e,r,{get:()=>n[r],enumerable:!(t=We(n,r))||t.enumerable});return e};var Qe=e=>Ke(ne({},"__esModule",{value:!0}),e);var ie=(e,n,i)=>Xe(e,typeof n!="symbol"?n+"":n,i);var yn={};Ce(yn,{Decimal:()=>je,Public:()=>ge,getRuntime:()=>Re,makeStrictEnum:()=>Oe,objectEnumValues:()=>Pe});module.exports=Qe(yn);var ge={};Ce(ge,{validator:()=>be});function be(...e){return n=>n}var te=Symbol(),me=new WeakMap,we=class{constructor(n){n===te?me.set(this,"Prisma.".concat(this._getName())):me.set(this,"new Prisma.".concat(this._getNamespace(),".").concat(this._getName(),"()"))}_getName(){return this.constructor.name}toString(){return me.get(this)}},G=class extends we{_getNamespace(){return"NullTypes"}},J=class extends G{constructor(){super(...arguments);ie(this,"_brand_DbNull")}};Ne(J,"DbNull");var X=class extends G{constructor(){super(...arguments);ie(this,"_brand_JsonNull")}};Ne(X,"JsonNull");var K=class extends G{constructor(){super(...arguments);ie(this,"_brand_AnyNull")}};Ne(K,"AnyNull");var Pe={classes:{DbNull:J,JsonNull:X,AnyNull:K},instances:{DbNull:new J(te),JsonNull:new X(te),AnyNull:new K(te)}};function Ne(e,n){Object.defineProperty(e,"name",{value:n,configurable:!0})}var Ye=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Oe(e){return new Proxy(e,{get(n,i){if(i in n)return n[i];if(!Ye.has(i))throw new TypeError("Invalid enum value: ".concat(String(i)))}})}var xe=()=>{var e,n;return((n=(e=globalThis.process)==null?void 0:e.release)==null?void 0:n.name)==="node"},ze=()=>{var e,n;return!!globalThis.Bun||!!((n=(e=globalThis.process)==null?void 0:e.versions)!=null&&n.bun)},ye=()=>!!globalThis.Deno,en=()=>typeof globalThis.Netlify=="object",nn=()=>typeof globalThis.EdgeRuntime=="object",tn=()=>{var e;return((e=globalThis.navigator)==null?void 0:e.userAgent)==="Cloudflare-Workers"};function rn(){var i;return(i=[[en,"netlify"],[nn,"edge-light"],[tn,"workerd"],[ye,"deno"],[ze,"bun"],[xe,"node"]].flatMap(t=>t[0]()?[t[1]]:[]).at(0))!=null?i:""}var sn={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Re(){let e=rn();return{id:e,prettyName:sn[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}var V=9e15,H=1e9,ve="0123456789abcdef",oe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ue="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Ee={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-V,maxE:V,crypto:!1},Te,Z,w=!0,ce="[DecimalError] ",$=ce+"Invalid argument: ",De=ce+"Precision limit exceeded",Fe=ce+"crypto unavailable",Le="[object Decimal]",R=Math.floor,C=Math.pow,on=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,un=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,fn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ie=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,D=1e7,m=7,cn=9007199254740991,ln=oe.length-1,ke=ue.length-1,h={toStringTag:Le};h.absoluteValue=h.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),p(e)};h.ceil=function(){return p(new this.constructor(this),this.e+1,2)};h.clampedTo=h.clamp=function(e,n){var i,t=this,r=t.constructor;if(e=new r(e),n=new r(n),!e.s||!n.s)return new r(NaN);if(e.gt(n))throw Error($+n);return i=t.cmp(e),i<0?e:t.cmp(n)>0?n:new r(t)};h.comparedTo=h.cmp=function(e){var n,i,t,r,s=this,o=s.d,u=(e=new s.constructor(e)).d,c=s.s,f=e.s;if(!o||!u)return!c||!f?NaN:c!==f?c:o===u?0:!o^c<0?1:-1;if(!o[0]||!u[0])return o[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==e.e)return s.e>e.e^c<0?1:-1;for(t=o.length,r=u.length,n=0,i=tu[n]^c<0?1:-1;return t===r?0:t>r^c<0?1:-1};h.cosine=h.cos=function(){var e,n,i=this,t=i.constructor;return i.d?i.d[0]?(e=t.precision,n=t.rounding,t.precision=e+Math.max(i.e,i.sd())+m,t.rounding=1,i=an(t,He(t,i)),t.precision=e,t.rounding=n,p(Z==2||Z==3?i.neg():i,e,n,!0)):new t(1):new t(NaN)};h.cubeRoot=h.cbrt=function(){var e,n,i,t,r,s,o,u,c,f,l=this,a=l.constructor;if(!l.isFinite()||l.isZero())return new a(l);for(w=!1,s=l.s*C(l.s*l,1/3),!s||Math.abs(s)==1/0?(i=b(l.d),e=l.e,(s=(e-i.length+1)%3)&&(i+=s==1||s==-2?"0":"00"),s=C(i,1/3),e=R((e+1)/3)-(e%3==(e<0?-1:2)),s==1/0?i="5e"+e:(i=s.toExponential(),i=i.slice(0,i.indexOf("e")+1)+e),t=new a(i),t.s=l.s):t=new a(s.toString()),o=(e=a.precision)+3;;)if(u=t,c=u.times(u).times(u),f=c.plus(l),t=k(f.plus(l).times(u),f.plus(c),o+2,1),b(u.d).slice(0,o)===(i=b(t.d)).slice(0,o))if(i=i.slice(o-3,o+1),i=="9999"||!r&&i=="4999"){if(!r&&(p(u,e+1,0),u.times(u).times(u).eq(l))){t=u;break}o+=4,r=1}else{(!+i||!+i.slice(1)&&i.charAt(0)=="5")&&(p(t,e+1,1),n=!t.times(t).times(t).eq(l));break}return w=!0,p(t,e,a.rounding,n)};h.decimalPlaces=h.dp=function(){var e,n=this.d,i=NaN;if(n){if(e=n.length-1,i=(e-R(this.e/m))*m,e=n[e],e)for(;e%10==0;e/=10)i--;i<0&&(i=0)}return i};h.dividedBy=h.div=function(e){return k(this,new this.constructor(e))};h.dividedToIntegerBy=h.divToInt=function(e){var n=this,i=n.constructor;return p(k(n,new i(e),0,1,1),i.precision,i.rounding)};h.equals=h.eq=function(e){return this.cmp(e)===0};h.floor=function(){return p(new this.constructor(this),this.e+1,3)};h.greaterThan=h.gt=function(e){return this.cmp(e)>0};h.greaterThanOrEqualTo=h.gte=function(e){var n=this.cmp(e);return n==1||n===0};h.hyperbolicCosine=h.cosh=function(){var e,n,i,t,r,s=this,o=s.constructor,u=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return u;i=o.precision,t=o.rounding,o.precision=i+Math.max(s.e,s.sd())+4,o.rounding=1,r=s.d.length,r<32?(e=Math.ceil(r/3),n=(1/ae(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),s=j(o,1,s.times(n),new o(1),!0);for(var c,f=e,l=new o(8);f--;)c=s.times(s),s=u.minus(c.times(l.minus(c.times(l))));return p(s,o.precision=i,o.rounding=t,!0)};h.hyperbolicSine=h.sinh=function(){var e,n,i,t,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(n=s.precision,i=s.rounding,s.precision=n+Math.max(r.e,r.sd())+4,s.rounding=1,t=r.d.length,t<3)r=j(s,2,r,r,!0);else{e=1.4*Math.sqrt(t),e=e>16?16:e|0,r=r.times(1/ae(5,e)),r=j(s,2,r,r,!0);for(var o,u=new s(5),c=new s(16),f=new s(20);e--;)o=r.times(r),r=r.times(u.plus(o.times(c.times(o).plus(f))))}return s.precision=n,s.rounding=i,p(r,n,i,!0)};h.hyperbolicTangent=h.tanh=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+7,t.rounding=1,k(i.sinh(),i.cosh(),t.precision=e,t.rounding=n)):new t(i.s)};h.inverseCosine=h.acos=function(){var e=this,n=e.constructor,i=e.abs().cmp(1),t=n.precision,r=n.rounding;return i!==-1?i===0?e.isNeg()?F(n,t,r):new n(0):new n(NaN):e.isZero()?F(n,t+4,r).times(.5):(n.precision=t+6,n.rounding=1,e=new n(1).minus(e).div(e.plus(1)).sqrt().atan(),n.precision=t,n.rounding=r,e.times(2))};h.inverseHyperbolicCosine=h.acosh=function(){var e,n,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(e=t.precision,n=t.rounding,t.precision=e+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,w=!1,i=i.times(i).minus(1).sqrt().plus(i),w=!0,t.precision=e,t.rounding=n,i.ln()):new t(i)};h.inverseHyperbolicSine=h.asinh=function(){var e,n,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,w=!1,i=i.times(i).plus(1).sqrt().plus(i),w=!0,t.precision=e,t.rounding=n,i.ln())};h.inverseHyperbolicTangent=h.atanh=function(){var e,n,i,t,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,n=s.rounding,t=r.sd(),Math.max(t,e)<2*-r.e-1?p(new s(r),e,n,!0):(s.precision=i=t-r.e,r=k(r.plus(1),new s(1).minus(r),i+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=n,r.times(.5))):new s(NaN)};h.inverseSine=h.asin=function(){var e,n,i,t,r=this,s=r.constructor;return r.isZero()?new s(r):(n=r.abs().cmp(1),i=s.precision,t=s.rounding,n!==-1?n===0?(e=F(s,i+4,t).times(.5),e.s=r.s,e):new s(NaN):(s.precision=i+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=i,s.rounding=t,r.times(2)))};h.inverseTangent=h.atan=function(){var e,n,i,t,r,s,o,u,c,f=this,l=f.constructor,a=l.precision,d=l.rounding;if(f.isFinite()){if(f.isZero())return new l(f);if(f.abs().eq(1)&&a+4<=ke)return o=F(l,a+4,d).times(.25),o.s=f.s,o}else{if(!f.s)return new l(NaN);if(a+4<=ke)return o=F(l,a+4,d).times(.5),o.s=f.s,o}for(l.precision=u=a+10,l.rounding=1,i=Math.min(28,u/m+2|0),e=i;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(w=!1,n=Math.ceil(u/m),t=1,c=f.times(f),o=new l(f),r=f;e!==-1;)if(r=r.times(c),s=o.minus(r.div(t+=2)),r=r.times(c),o=s.plus(r.div(t+=2)),o.d[n]!==void 0)for(e=n;o.d[e]===s.d[e]&&e--;);return i&&(o=o.times(2<this.d.length-2};h.isNaN=function(){return!this.s};h.isNegative=h.isNeg=function(){return this.s<0};h.isPositive=h.isPos=function(){return this.s>0};h.isZero=function(){return!!this.d&&this.d[0]===0};h.lessThan=h.lt=function(e){return this.cmp(e)<0};h.lessThanOrEqualTo=h.lte=function(e){return this.cmp(e)<1};h.logarithm=h.log=function(e){var n,i,t,r,s,o,u,c,f=this,l=f.constructor,a=l.precision,d=l.rounding,g=5;if(e==null)e=new l(10),n=!0;else{if(e=new l(e),i=e.d,e.s<0||!i||!i[0]||e.eq(1))return new l(NaN);n=e.eq(10)}if(i=f.d,f.s<0||!i||!i[0]||f.eq(1))return new l(i&&!i[0]?-1/0:f.s!=1?NaN:i?0:1/0);if(n)if(i.length>1)s=!0;else{for(r=i[0];r%10===0;)r/=10;s=r!==1}if(w=!1,u=a+g,o=B(f,u),t=n?fe(l,u+10):B(e,u),c=k(o,t,u,1),Q(c.d,r=a,d))do if(u+=10,o=B(f,u),t=n?fe(l,u+10):B(e,u),c=k(o,t,u,1),!s){+b(c.d).slice(r+1,r+15)+1==1e14&&(c=p(c,a+1,0));break}while(Q(c.d,r+=10,d));return w=!0,p(c,a,d)};h.minus=h.sub=function(e){var n,i,t,r,s,o,u,c,f,l,a,d,g=this,v=g.constructor;if(e=new v(e),!g.d||!e.d)return!g.s||!e.s?e=new v(NaN):g.d?e.s=-e.s:e=new v(e.d||g.s!==e.s?g:NaN),e;if(g.s!=e.s)return e.s=-e.s,g.plus(e);if(f=g.d,d=e.d,u=v.precision,c=v.rounding,!f[0]||!d[0]){if(d[0])e.s=-e.s;else if(f[0])e=new v(g);else return new v(c===3?-0:0);return w?p(e,u,c):e}if(i=R(e.e/m),l=R(g.e/m),f=f.slice(),s=l-i,s){for(a=s<0,a?(n=f,s=-s,o=d.length):(n=d,i=l,o=f.length),t=Math.max(Math.ceil(u/m),o)+2,s>t&&(s=t,n.length=1),n.reverse(),t=s;t--;)n.push(0);n.reverse()}else{for(t=f.length,o=d.length,a=t0;--t)f[o++]=0;for(t=d.length;t>s;){if(f[--t]o?s+1:o+1,r>o&&(r=o,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for(o=f.length,r=l.length,o-r<0&&(r=o,i=l,l=f,f=i),n=0;r;)n=(f[--r]=f[r]+l[r]+n)/D|0,f[r]%=D;for(n&&(f.unshift(n),++t),o=f.length;f[--o]==0;)f.pop();return e.d=f,e.e=le(f,t),w?p(e,u,c):e};h.precision=h.sd=function(e){var n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error($+e);return i.d?(n=Ze(i.d),e&&i.e+1>n&&(n=i.e+1)):n=NaN,n};h.round=function(){var e=this,n=e.constructor;return p(new n(e),e.e+1,n.rounding)};h.sine=h.sin=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+Math.max(i.e,i.sd())+m,t.rounding=1,i=hn(t,He(t,i)),t.precision=e,t.rounding=n,p(Z>2?i.neg():i,e,n,!0)):new t(NaN)};h.squareRoot=h.sqrt=function(){var e,n,i,t,r,s,o=this,u=o.d,c=o.e,f=o.s,l=o.constructor;if(f!==1||!u||!u[0])return new l(!f||f<0&&(!u||u[0])?NaN:u?o:1/0);for(w=!1,f=Math.sqrt(+o),f==0||f==1/0?(n=b(u),(n.length+c)%2==0&&(n+="0"),f=Math.sqrt(n),c=R((c+1)/2)-(c<0||c%2),f==1/0?n="5e"+c:(n=f.toExponential(),n=n.slice(0,n.indexOf("e")+1)+c),t=new l(n)):t=new l(f.toString()),i=(c=l.precision)+3;;)if(s=t,t=s.plus(k(o,s,i+2,1)).times(.5),b(s.d).slice(0,i)===(n=b(t.d)).slice(0,i))if(n=n.slice(i-3,i+1),n=="9999"||!r&&n=="4999"){if(!r&&(p(s,c+1,0),s.times(s).eq(o))){t=s;break}i+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(p(t,c+1,1),e=!t.times(t).eq(o));break}return w=!0,p(t,c,l.rounding,e)};h.tangent=h.tan=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+10,t.rounding=1,i=i.sin(),i.s=1,i=k(i,new t(1).minus(i.times(i)).sqrt(),e+10,0),t.precision=e,t.rounding=n,p(Z==2||Z==4?i.neg():i,e,n,!0)):new t(NaN)};h.times=h.mul=function(e){var n,i,t,r,s,o,u,c,f,l=this,a=l.constructor,d=l.d,g=(e=new a(e)).d;if(e.s*=l.s,!d||!d[0]||!g||!g[0])return new a(!e.s||d&&!d[0]&&!g||g&&!g[0]&&!d?NaN:!d||!g?e.s/0:e.s*0);for(i=R(l.e/m)+R(e.e/m),c=d.length,f=g.length,c=0;){for(n=0,r=c+t;r>t;)u=s[r]+g[t]*d[r-t-1]+n,s[r--]=u%D|0,n=u/D|0;s[r]=(s[r]+n)%D|0}for(;!s[--o];)s.pop();return n?++i:s.shift(),e.d=s,e.e=le(s,i),w?p(e,a.precision,a.rounding):e};h.toBinary=function(e,n){return Me(this,2,e,n)};h.toDecimalPlaces=h.toDP=function(e,n){var i=this,t=i.constructor;return i=new t(i),e===void 0?i:(q(e,0,H),n===void 0?n=t.rounding:q(n,0,8),p(i,e+i.e+1,n))};h.toExponential=function(e,n){var i,t=this,r=t.constructor;return e===void 0?i=L(t,!0):(q(e,0,H),n===void 0?n=r.rounding:q(n,0,8),t=p(new r(t),e+1,n),i=L(t,!0,e+1)),t.isNeg()&&!t.isZero()?"-"+i:i};h.toFixed=function(e,n){var i,t,r=this,s=r.constructor;return e===void 0?i=L(r):(q(e,0,H),n===void 0?n=s.rounding:q(n,0,8),t=p(new s(r),e+r.e+1,n),i=L(t,!1,e+t.e+1)),r.isNeg()&&!r.isZero()?"-"+i:i};h.toFraction=function(e){var n,i,t,r,s,o,u,c,f,l,a,d,g=this,v=g.d,N=g.constructor;if(!v)return new N(g);if(f=i=new N(1),t=c=new N(0),n=new N(t),s=n.e=Ze(v)-g.e-1,o=s%m,n.d[0]=C(10,o<0?m+o:o),e==null)e=s>0?n:f;else{if(u=new N(e),!u.isInt()||u.lt(f))throw Error($+u);e=u.gt(n)?s>0?n:f:u}for(w=!1,u=new N(b(v)),l=N.precision,N.precision=s=v.length*m*2;a=k(u,n,0,1,1),r=i.plus(a.times(t)),r.cmp(e)!=1;)i=t,t=r,r=f,f=c.plus(a.times(r)),c=r,r=n,n=u.minus(a.times(r)),u=r;return r=k(e.minus(i),t,0,1,1),c=c.plus(r.times(f)),i=i.plus(r.times(t)),c.s=f.s=g.s,d=k(f,t,s,1).minus(g).abs().cmp(k(c,i,s,1).minus(g).abs())<1?[f,t]:[c,i],N.precision=l,w=!0,d};h.toHexadecimal=h.toHex=function(e,n){return Me(this,16,e,n)};h.toNearest=function(e,n){var i=this,t=i.constructor;if(i=new t(i),e==null){if(!i.d)return i;e=new t(1),n=t.rounding}else{if(e=new t(e),n===void 0?n=t.rounding:q(n,0,8),!i.d)return e.s?i:e;if(!e.d)return e.s&&(e.s=i.s),e}return e.d[0]?(w=!1,i=k(i,e,0,n,1).times(e),w=!0,p(i)):(e.s=i.s,i=e),i};h.toNumber=function(){return+this};h.toOctal=function(e,n){return Me(this,8,e,n)};h.toPower=h.pow=function(e){var n,i,t,r,s,o,u=this,c=u.constructor,f=+(e=new c(e));if(!u.d||!e.d||!u.d[0]||!e.d[0])return new c(C(+u,f));if(u=new c(u),u.eq(1))return u;if(t=c.precision,s=c.rounding,e.eq(1))return p(u,t,s);if(n=R(e.e/m),n>=e.d.length-1&&(i=f<0?-f:f)<=cn)return r=Ue(c,u,i,t),e.s<0?new c(1).div(r):p(r,t,s);if(o=u.s,o<0){if(nc.maxE+1||n0?o/0:0):(w=!1,c.rounding=u.s=1,i=Math.min(12,(n+"").length),r=Se(e.times(B(u,t+i)),t),r.d&&(r=p(r,t+5,1),Q(r.d,t,s)&&(n=t+10,r=p(Se(e.times(B(u,n+i)),n),n+5,1),+b(r.d).slice(t+1,t+15)+1==1e14&&(r=p(r,t+1,0)))),r.s=o,w=!0,c.rounding=s,p(r,t,s))};h.toPrecision=function(e,n){var i,t=this,r=t.constructor;return e===void 0?i=L(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(q(e,1,H),n===void 0?n=r.rounding:q(n,0,8),t=p(new r(t),e,n),i=L(t,e<=t.e||t.e<=r.toExpNeg,e)),t.isNeg()&&!t.isZero()?"-"+i:i};h.toSignificantDigits=h.toSD=function(e,n){var i=this,t=i.constructor;return e===void 0?(e=t.precision,n=t.rounding):(q(e,1,H),n===void 0?n=t.rounding:q(n,0,8)),p(new t(i),e,n)};h.toString=function(){var e=this,n=e.constructor,i=L(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()&&!e.isZero()?"-"+i:i};h.truncated=h.trunc=function(){return p(new this.constructor(this),this.e+1,1)};h.valueOf=h.toJSON=function(){var e=this,n=e.constructor,i=L(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()?"-"+i:i};function b(e){var n,i,t,r=e.length-1,s="",o=e[0];if(r>0){for(s+=o,n=1;ni)throw Error($+e)}function Q(e,n,i,t){var r,s,o,u;for(s=e[0];s>=10;s/=10)--n;return--n<0?(n+=m,r=0):(r=Math.ceil((n+1)/m),n%=m),s=C(10,m-n),u=e[r]%s|0,t==null?n<3?(n==0?u=u/100|0:n==1&&(u=u/10|0),o=i<4&&u==99999||i>3&&u==49999||u==5e4||u==0):o=(i<4&&u+1==s||i>3&&u+1==s/2)&&(e[r+1]/s/100|0)==C(10,n-2)-1||(u==s/2||u==0)&&(e[r+1]/s/100|0)==0:n<4?(n==0?u=u/1e3|0:n==1?u=u/100|0:n==2&&(u=u/10|0),o=(t||i<4)&&u==9999||!t&&i>3&&u==4999):o=((t||i<4)&&u+1==s||!t&&i>3&&u+1==s/2)&&(e[r+1]/s/1e3|0)==C(10,n-3)-1,o}function re(e,n,i){for(var t,r=[0],s,o=0,u=e.length;oi-1&&(r[t+1]===void 0&&(r[t+1]=0),r[t+1]+=r[t]/i|0,r[t]%=i)}return r.reverse()}function an(e,n){var i,t,r;if(n.isZero())return n;t=n.d.length,t<32?(i=Math.ceil(t/3),r=(1/ae(4,i)).toString()):(i=16,r="2.3283064365386962890625e-10"),e.precision+=i,n=j(e,1,n.times(r),new e(1));for(var s=i;s--;){var o=n.times(n);n=o.times(o).minus(o).times(8).plus(1)}return e.precision-=i,n}var k=function(){function e(t,r,s){var o,u=0,c=t.length;for(t=t.slice();c--;)o=t[c]*r+u,t[c]=o%s|0,u=o/s|0;return u&&t.unshift(u),t}function n(t,r,s,o){var u,c;if(s!=o)c=s>o?1:-1;else for(u=c=0;ur[u]?1:-1;break}return c}function i(t,r,s,o){for(var u=0;s--;)t[s]-=u,u=t[s]1;)t.shift()}return function(t,r,s,o,u,c){var f,l,a,d,g,v,N,A,M,_,E,P,x,I,de,z,W,he,T,y,ee=t.constructor,pe=t.s==r.s?1:-1,O=t.d,S=r.d;if(!O||!O[0]||!S||!S[0])return new ee(!t.s||!r.s||(O?S&&O[0]==S[0]:!S)?NaN:O&&O[0]==0||!S?pe*0:pe/0);for(c?(g=1,l=t.e-r.e):(c=D,g=m,l=R(t.e/g)-R(r.e/g)),T=S.length,W=O.length,M=new ee(pe),_=M.d=[],a=0;S[a]==(O[a]||0);a++);if(S[a]>(O[a]||0)&&l--,s==null?(I=s=ee.precision,o=ee.rounding):u?I=s+(t.e-r.e)+1:I=s,I<0)_.push(1),v=!0;else{if(I=I/g+2|0,a=0,T==1){for(d=0,S=S[0],I++;(a1&&(S=e(S,d,c),O=e(O,d,c),T=S.length,W=O.length),z=T,E=O.slice(0,T),P=E.length;P=c/2&&++he;do d=0,f=n(S,E,T,P),f<0?(x=E[0],T!=P&&(x=x*c+(E[1]||0)),d=x/he|0,d>1?(d>=c&&(d=c-1),N=e(S,d,c),A=N.length,P=E.length,f=n(N,E,A,P),f==1&&(d--,i(N,T=10;d/=10)a++;M.e=a+l*g-1,p(M,u?s+M.e+1:s,o,v)}return M}}();function p(e,n,i,t){var r,s,o,u,c,f,l,a,d,g=e.constructor;e:if(n!=null){if(a=e.d,!a)return e;for(r=1,u=a[0];u>=10;u/=10)r++;if(s=n-r,s<0)s+=m,o=n,l=a[d=0],c=l/C(10,r-o-1)%10|0;else if(d=Math.ceil((s+1)/m),u=a.length,d>=u)if(t){for(;u++<=d;)a.push(0);l=c=0,r=1,s%=m,o=s-m+1}else break e;else{for(l=u=a[d],r=1;u>=10;u/=10)r++;s%=m,o=s-m+r,c=o<0?0:l/C(10,r-o-1)%10|0}if(t=t||n<0||a[d+1]!==void 0||(o<0?l:l%C(10,r-o-1)),f=i<4?(c||t)&&(i==0||i==(e.s<0?3:2)):c>5||c==5&&(i==4||t||i==6&&(s>0?o>0?l/C(10,r-o):0:a[d-1])%10&1||i==(e.s<0?8:7)),n<1||!a[0])return a.length=0,f?(n-=e.e+1,a[0]=C(10,(m-n%m)%m),e.e=-n||0):a[0]=e.e=0,e;if(s==0?(a.length=d,u=1,d--):(a.length=d+1,u=C(10,m-s),a[d]=o>0?(l/C(10,r-o)%C(10,o)|0)*u:0),f)for(;;)if(d==0){for(s=1,o=a[0];o>=10;o/=10)s++;for(o=a[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(e.e++,a[0]==D&&(a[0]=1));break}else{if(a[d]+=u,a[d]!=D)break;a[d--]=0,u=1}for(s=a.length;a[--s]===0;)a.pop()}return w&&(e.e>g.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+U(t):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):r<0?(s="0."+U(-r-1)+s,i&&(t=i-o)>0&&(s+=U(t))):r>=o?(s+=U(r+1-o),i&&(t=i-r-1)>0&&(s=s+"."+U(t))):((t=r+1)0&&(r+1===o&&(s+="."),s+=U(t))),s}function le(e,n){var i=e[0];for(n*=m;i>=10;i/=10)n++;return n}function fe(e,n,i){if(n>ln)throw w=!0,i&&(e.precision=i),Error(De);return p(new e(oe),n,1,!0)}function F(e,n,i){if(n>ke)throw Error(De);return p(new e(ue),n,i,!0)}function Ze(e){var n=e.length-1,i=n*m+1;if(n=e[n],n){for(;n%10==0;n/=10)i--;for(n=e[0];n>=10;n/=10)i++}return i}function U(e){for(var n="";e--;)n+="0";return n}function Ue(e,n,i,t){var r,s=new e(1),o=Math.ceil(t/m+4);for(w=!1;;){if(i%2&&(s=s.times(n),qe(s.d,o)&&(r=!0)),i=R(i/2),i===0){i=s.d.length-1,r&&s.d[i]===0&&++s.d[i];break}n=n.times(n),qe(n.d,o)}return w=!0,s}function Ae(e){return e.d[e.d.length-1]&1}function Be(e,n,i){for(var t,r,s=new e(n[0]),o=0;++o17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(n==null?(w=!1,c=v):c=n,u=new d(.03125);e.e>-2;)e=e.times(u),a+=5;for(t=Math.log(C(2,a))/Math.LN10*2+5|0,c+=t,i=s=o=new d(1),d.precision=c;;){if(s=p(s.times(e),c,1),i=i.times(++l),u=o.plus(k(s,i,c,1)),b(u.d).slice(0,c)===b(o.d).slice(0,c)){for(r=a;r--;)o=p(o.times(o),c,1);if(n==null)if(f<3&&Q(o.d,c-t,g,f))d.precision=c+=10,i=s=u=new d(1),l=0,f++;else return p(o,d.precision=v,g,w=!0);else return d.precision=v,o}o=u}}function B(e,n){var i,t,r,s,o,u,c,f,l,a,d,g=1,v=10,N=e,A=N.d,M=N.constructor,_=M.rounding,E=M.precision;if(N.s<0||!A||!A[0]||!N.e&&A[0]==1&&A.length==1)return new M(A&&!A[0]?-1/0:N.s!=1?NaN:A?0:N);if(n==null?(w=!1,l=E):l=n,M.precision=l+=v,i=b(A),t=i.charAt(0),Math.abs(s=N.e)<15e14){for(;t<7&&t!=1||t==1&&i.charAt(1)>3;)N=N.times(e),i=b(N.d),t=i.charAt(0),g++;s=N.e,t>1?(N=new M("0."+i),s++):N=new M(t+"."+i.slice(1))}else return f=fe(M,l+2,E).times(s+""),N=B(new M(t+"."+i.slice(1)),l-v).plus(f),M.precision=E,n==null?p(N,E,_,w=!0):N;for(a=N,c=o=N=k(N.minus(1),N.plus(1),l,1),d=p(N.times(N),l,1),r=3;;){if(o=p(o.times(d),l,1),f=c.plus(k(o,new M(r),l,1)),b(f.d).slice(0,l)===b(c.d).slice(0,l))if(c=c.times(2),s!==0&&(c=c.plus(fe(M,l+2,E).times(s+""))),c=k(c,new M(g),l,1),n==null)if(Q(c.d,l-v,_,u))M.precision=l+=v,f=o=N=k(a.minus(1),a.plus(1),l,1),d=p(N.times(N),l,1),r=u=1;else return p(c,M.precision=E,_,w=!0);else return M.precision=E,c;c=f,r+=2}}function $e(e){return String(e.s*e.s/0)}function se(e,n){var i,t,r;for((i=n.indexOf("."))>-1&&(n=n.replace(".","")),(t=n.search(/e/i))>0?(i<0&&(i=t),i+=+n.slice(t+1),n=n.substring(0,t)):i<0&&(i=n.length),t=0;n.charCodeAt(t)===48;t++);for(r=n.length;n.charCodeAt(r-1)===48;--r);if(n=n.slice(t,r),n){if(r-=t,e.e=i=i-t-1,e.d=[],t=(i+1)%m,i<0&&(t+=m),te.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),Ie.test(n))return se(e,n)}else if(n==="Infinity"||n==="NaN")return+n||(e.s=NaN),e.e=NaN,e.d=null,e;if(un.test(n))i=16,n=n.toLowerCase();else if(on.test(n))i=2;else if(fn.test(n))i=8;else throw Error($+n);for(s=n.search(/p/i),s>0?(c=+n.slice(s+1),n=n.substring(2,s)):n=n.slice(2),s=n.indexOf("."),o=s>=0,t=e.constructor,o&&(n=n.replace(".",""),u=n.length,s=u-s,r=Ue(t,new t(i),s,s*2)),f=re(n,i,D),l=f.length-1,s=l;f[s]===0;--s)f.pop();return s<0?new t(e.s*0):(e.e=le(f,l),e.d=f,w=!1,o&&(e=k(e,r,u*4)),c&&(e=e.times(Math.abs(c)<54?C(2,c):Y.pow(2,c))),w=!0,e)}function hn(e,n){var i,t=n.d.length;if(t<3)return n.isZero()?n:j(e,2,n,n);i=1.4*Math.sqrt(t),i=i>16?16:i|0,n=n.times(1/ae(5,i)),n=j(e,2,n,n);for(var r,s=new e(5),o=new e(16),u=new e(20);i--;)r=n.times(n),n=n.times(s.plus(r.times(o.times(r).minus(u))));return n}function j(e,n,i,t,r){var s,o,u,c,f=1,l=e.precision,a=Math.ceil(l/m);for(w=!1,c=i.times(i),u=new e(t);;){if(o=k(u.times(c),new e(n++*n++),l,1),u=r?t.plus(o):t.minus(o),t=k(o.times(c),new e(n++*n++),l,1),o=u.plus(t),o.d[a]!==void 0){for(s=a;o.d[s]===u.d[s]&&s--;);if(s==-1)break}s=u,u=t,t=o,o=s,f++}return w=!0,o.d.length=a+1,o}function ae(e,n){for(var i=e;--n;)i*=e;return i}function He(e,n){var i,t=n.s<0,r=F(e,e.precision,1),s=r.times(.5);if(n=n.abs(),n.lte(s))return Z=t?4:1,n;if(i=n.divToInt(r),i.isZero())Z=t?3:2;else{if(n=n.minus(i.times(r)),n.lte(s))return Z=Ae(i)?t?2:3:t?4:1,n;Z=Ae(i)?t?1:4:t?3:2}return n.minus(r).abs()}function Me(e,n,i,t){var r,s,o,u,c,f,l,a,d,g=e.constructor,v=i!==void 0;if(v?(q(i,1,H),t===void 0?t=g.rounding:q(t,0,8)):(i=g.precision,t=g.rounding),!e.isFinite())l=$e(e);else{for(l=L(e),o=l.indexOf("."),v?(r=2,n==16?i=i*4-3:n==8&&(i=i*3-2)):r=n,o>=0&&(l=l.replace(".",""),d=new g(1),d.e=l.length-o,d.d=re(L(d),10,r),d.e=d.d.length),a=re(l,10,r),s=c=a.length;a[--c]==0;)a.pop();if(!a[0])l=v?"0p+0":"0";else{if(o<0?s--:(e=new g(e),e.d=a,e.e=s,e=k(e,d,i,t,0,r),a=e.d,s=e.e,f=Te),o=a[i],u=r/2,f=f||a[i+1]!==void 0,f=t<4?(o!==void 0||f)&&(t===0||t===(e.s<0?3:2)):o>u||o===u&&(t===4||f||t===6&&a[i-1]&1||t===(e.s<0?8:7)),a.length=i,f)for(;++a[--i]>r-1;)a[i]=0,i||(++s,a.unshift(1));for(c=a.length;!a[c-1];--c);for(o=0,l="";o1)if(n==16||n==8){for(o=n==16?4:3,--c;c%o;c++)l+="0";for(a=re(l,r,n),c=a.length;!a[c-1];--c);for(o=1,l="1.";oc)for(s-=c;s--;)l+="0";else sn)return e.length=n,!0}function pn(e){return new this(e).abs()}function gn(e){return new this(e).acos()}function mn(e){return new this(e).acosh()}function wn(e,n){return new this(e).plus(n)}function Nn(e){return new this(e).asin()}function vn(e){return new this(e).asinh()}function En(e){return new this(e).atan()}function kn(e){return new this(e).atanh()}function Sn(e,n){e=new this(e),n=new this(n);var i,t=this.precision,r=this.rounding,s=t+4;return!e.s||!n.s?i=new this(NaN):!e.d&&!n.d?(i=F(this,s,1).times(n.s>0?.25:.75),i.s=e.s):!n.d||e.isZero()?(i=n.s<0?F(this,t,r):new this(0),i.s=e.s):!e.d||n.isZero()?(i=F(this,s,1).times(.5),i.s=e.s):n.s<0?(this.precision=s,this.rounding=1,i=this.atan(k(e,n,s,1)),n=F(this,s,1),this.precision=t,this.rounding=r,i=e.s<0?i.minus(n):i.plus(n)):i=this.atan(k(e,n,s,1)),i}function Mn(e){return new this(e).cbrt()}function Cn(e){return p(e=new this(e),e.e+1,2)}function bn(e,n,i){return new this(e).clamp(n,i)}function Pn(e){if(!e||typeof e!="object")throw Error(ce+"Object expected");var n,i,t,r=e.defaults===!0,s=["precision",1,H,"rounding",0,8,"toExpNeg",-V,0,"toExpPos",0,V,"maxE",0,V,"minE",-V,0,"modulo",0,9];for(n=0;n=s[n+1]&&t<=s[n+2])this[i]=t;else throw Error($+i+": "+t);if(i="crypto",r&&(this[i]=Ee[i]),(t=e[i])!==void 0)if(t===!0||t===!1||t===0||t===1)if(t)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[i]=!0;else throw Error(Fe);else this[i]=!1;else throw Error($+i+": "+t);return this}function On(e){return new this(e).cos()}function Rn(e){return new this(e).cosh()}function Ve(e){var n,i,t;function r(s){var o,u,c,f=this;if(!(f instanceof r))return new r(s);if(f.constructor=r,_e(s)){f.s=s.s,w?!s.d||s.e>r.maxE?(f.e=NaN,f.d=null):s.e=10;u/=10)o++;w?o>r.maxE?(f.e=NaN,f.d=null):o=429e7?n[s]=crypto.getRandomValues(new Uint32Array(1))[0]:u[s++]=r%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(t*=4);s=214e7?crypto.randomBytes(4).copy(n,s):(u.push(r%1e7),s+=4);s=t/4}else throw Error(Fe);else for(;s=10;r/=10)t++;t + * MIT Licence + *) +*/ +//# sourceMappingURL=index-browser.js.map diff --git a/lib/generated/prisma/runtime/library.d.ts b/lib/generated/prisma/runtime/library.d.ts new file mode 100644 index 0000000..6185f1f --- /dev/null +++ b/lib/generated/prisma/runtime/library.d.ts @@ -0,0 +1,3604 @@ +/** + * @param this + */ +declare function $extends(this: Client, extension: ExtensionArgs | ((client: Client) => Client)): Client; + +declare type AccelerateEngineConfig = { + inlineSchema: EngineConfig['inlineSchema']; + inlineSchemaHash: EngineConfig['inlineSchemaHash']; + env: EngineConfig['env']; + generator?: { + previewFeatures: string[]; + }; + inlineDatasources: EngineConfig['inlineDatasources']; + overrideDatasources: EngineConfig['overrideDatasources']; + clientVersion: EngineConfig['clientVersion']; + engineVersion: EngineConfig['engineVersion']; + logEmitter: EngineConfig['logEmitter']; + logQueries?: EngineConfig['logQueries']; + logLevel?: EngineConfig['logLevel']; + tracingHelper: EngineConfig['tracingHelper']; + accelerateUtils?: AccelerateUtils; +}; + +declare type AccelerateUtils = EngineConfig['accelerateUtils']; + +export declare type Action = keyof typeof DMMF_2.ModelAction | 'executeRaw' | 'queryRaw' | 'runCommandRaw'; + +declare type ActiveConnectorType = Exclude; + +/** + * An interface that exposes some basic information about the + * adapter like its name and provider type. + */ +declare interface AdapterInfo { + readonly provider: Provider; + readonly adapterName: (typeof officialPrismaAdapters)[number] | (string & {}); +} + +export declare type Aggregate = '_count' | '_max' | '_min' | '_avg' | '_sum'; + +export declare type AllModelsToStringIndex, K extends PropertyKey> = Args extends { + [P in K]: { + $allModels: infer AllModels; + }; +} ? { + [P in K]: Record; +} : {}; + +declare class AnyNull extends NullTypesEnumValue { + private readonly _brand_AnyNull; +} + +export declare type ApplyOmit = Compute<{ + [K in keyof T as OmitValue extends true ? never : K]: T[K]; +}>; + +export declare type Args = T extends { + [K: symbol]: { + types: { + operations: { + [K in F]: { + args: any; + }; + }; + }; + }; +} ? T[symbol]['types']['operations'][F]['args'] : any; + +export declare type Args_3 = Args; + +/** + * Original `quaint::ValueType` enum tag from Prisma's `quaint`. + * Query arguments marked with this type are sanitized before being sent to the database. + * Notice while a query argument may be `null`, `ArgType` is guaranteed to be defined. + */ +declare type ArgType = 'Int32' | 'Int64' | 'Float' | 'Double' | 'Text' | 'Enum' | 'EnumArray' | 'Bytes' | 'Boolean' | 'Char' | 'Array' | 'Numeric' | 'Json' | 'Xml' | 'Uuid' | 'DateTime' | 'Date' | 'Time'; + +/** + * Attributes is a map from string to attribute values. + * + * Note: only the own enumerable keys are counted as valid attribute keys. + */ +declare interface Attributes { + [attributeKey: string]: AttributeValue | undefined; +} + +/** + * Attribute values may be any non-nullish primitive value except an object. + * + * null or undefined attribute values are invalid and will result in undefined behavior. + */ +declare type AttributeValue = string | number | boolean | Array | Array | Array; + +export declare type BaseDMMF = { + readonly datamodel: Omit; +}; + +declare type BatchArgs = { + queries: BatchQuery[]; + transaction?: { + isolationLevel?: IsolationLevel; + }; +}; + +declare type BatchInternalParams = { + requests: RequestParams[]; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type BatchQuery = { + model: string | undefined; + operation: string; + args: JsArgs | RawQueryArgs; +}; + +declare type BatchQueryEngineResult = QueryEngineResultData | Error; + +declare type BatchQueryOptionsCb = (args: BatchQueryOptionsCbArgs) => Promise; + +declare type BatchQueryOptionsCbArgs = { + args: BatchArgs; + query: (args: BatchArgs, __internalParams?: BatchInternalParams) => Promise; + __internalParams: BatchInternalParams; +}; + +declare type BatchResponse = MultiBatchResponse | CompactedBatchResponse; + +declare type BatchTransactionOptions = { + isolationLevel?: IsolationLevel; +}; + +declare interface BinaryTargetsEnvValue { + fromEnvVar: string | null; + value: string; + native?: boolean; +} + +export declare type Call = (F & { + params: P; +})['returns']; + +declare interface CallSite { + getLocation(): LocationInFile | null; +} + +export declare type Cast = A extends W ? A : W; + +declare type Client = ReturnType extends new () => infer T ? T : never; + +export declare type ClientArg = { + [MethodName in string]: unknown; +}; + +export declare type ClientArgs = { + client: ClientArg; +}; + +export declare type ClientBuiltInProp = keyof DynamicClientExtensionThisBuiltin; + +export declare type ClientOptionDef = undefined | { + [K in string]: any; +}; + +export declare type ClientOtherOps = { + $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise; + $queryRawTyped(query: TypedSql): PrismaPromise; + $queryRawUnsafe(query: string, ...values: any[]): PrismaPromise; + $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise; + $executeRawUnsafe(query: string, ...values: any[]): PrismaPromise; + $runCommandRaw(command: InputJsonObject): PrismaPromise; +}; + +declare type ColumnType = (typeof ColumnTypeEnum)[keyof typeof ColumnTypeEnum]; + +declare const ColumnTypeEnum: { + readonly Int32: 0; + readonly Int64: 1; + readonly Float: 2; + readonly Double: 3; + readonly Numeric: 4; + readonly Boolean: 5; + readonly Character: 6; + readonly Text: 7; + readonly Date: 8; + readonly Time: 9; + readonly DateTime: 10; + readonly Json: 11; + readonly Enum: 12; + readonly Bytes: 13; + readonly Set: 14; + readonly Uuid: 15; + readonly Int32Array: 64; + readonly Int64Array: 65; + readonly FloatArray: 66; + readonly DoubleArray: 67; + readonly NumericArray: 68; + readonly BooleanArray: 69; + readonly CharacterArray: 70; + readonly TextArray: 71; + readonly DateArray: 72; + readonly TimeArray: 73; + readonly DateTimeArray: 74; + readonly JsonArray: 75; + readonly EnumArray: 76; + readonly BytesArray: 77; + readonly UuidArray: 78; + readonly UnknownNumber: 128; +}; + +declare type CompactedBatchResponse = { + type: 'compacted'; + plan: object; + arguments: Map[]; + nestedSelection: string[]; + keys: string[]; + expectNonEmpty: boolean; +}; + +declare type CompilerWasmLoadingConfig = { + /** + * WASM-bindgen runtime for corresponding module + */ + getRuntime: () => Promise<{ + __wbg_set_wasm(exports: unknown): void; + QueryCompiler: QueryCompilerConstructor; + }>; + /** + * Loads the raw wasm module for the wasm compiler engine. This configuration is + * generated specifically for each type of client, eg. Node.js client and Edge + * clients will have different implementations. + * @remarks this is a callback on purpose, we only load the wasm if needed. + * @remarks only used by ClientEngine + */ + getQueryCompilerWasmModule: () => Promise; +}; + +export declare type Compute = T extends Function ? T : { + [K in keyof T]: T[K]; +} & unknown; + +export declare type ComputeDeep = T extends Function ? T : { + [K in keyof T]: ComputeDeep; +} & unknown; + +declare type ComputedField = { + name: string; + needs: string[]; + compute: ResultArgsFieldCompute; +}; + +declare type ComputedFieldsMap = { + [fieldName: string]: ComputedField; +}; + +declare type ConnectionInfo = { + schemaName?: string; + maxBindValues?: number; +}; + +declare type ConnectorType = 'mysql' | 'mongodb' | 'sqlite' | 'postgresql' | 'postgres' | 'prisma+postgres' | 'sqlserver' | 'cockroachdb'; + +declare interface Context { + /** + * Get a value from the context. + * + * @param key key which identifies a context value + */ + getValue(key: symbol): unknown; + /** + * Create a new context which inherits from this context and has + * the given key set to the given value. + * + * @param key context key for which to set the value + * @param value value to set for the given key + */ + setValue(key: symbol, value: unknown): Context; + /** + * Return a new context which inherits from this context but does + * not contain a value for the given key. + * + * @param key context key for which to clear a value + */ + deleteValue(key: symbol): Context; +} + +declare type Context_2 = T extends { + [K: symbol]: { + ctx: infer C; + }; +} ? C & T & { + /** + * @deprecated Use `$name` instead. + */ + name?: string; + $name?: string; + $parent?: unknown; +} : T & { + /** + * @deprecated Use `$name` instead. + */ + name?: string; + $name?: string; + $parent?: unknown; +}; + +export declare type Count = { + [K in keyof O]: Count; +} & {}; + +export declare function createParam(name: string): Param; + +/** + * Custom fetch function for `DataProxyEngine`. + * + * We can't use the actual type of `globalThis.fetch` because this will result + * in API Extractor referencing Node.js type definitions in the `.d.ts` bundle + * for the client runtime. We can only use such types in internal types that + * don't end up exported anywhere. + + * It's also not possible to write a definition of `fetch` that would accept the + * actual `fetch` function from different environments such as Node.js and + * Cloudflare Workers (with their extensions to `RequestInit` and `Response`). + * `fetch` is used in both covariant and contravariant positions in + * `CustomDataProxyFetch`, making it invariant, so we need the exact same type. + * Even if we removed the argument and left `fetch` in covariant position only, + * then for an extension-supplied function to be assignable to `customDataProxyFetch`, + * the platform-specific (or custom) `fetch` function needs to be assignable + * to our `fetch` definition. This, in turn, requires the third-party `Response` + * to be a subtype of our `Response` (which is not a problem, we could declare + * a minimal `Response` type that only includes what we use) *and* requires the + * third-party `RequestInit` to be a supertype of our `RequestInit` (i.e. we + * have to declare all properties any `RequestInit` implementation in existence + * could possibly have), which is not possible. + * + * Since `@prisma/extension-accelerate` redefines the type of + * `__internalParams.customDataProxyFetch` to its own type anyway (probably for + * exactly this reason), our definition is never actually used and is completely + * ignored, so it doesn't matter, and we can just use `unknown` as the type of + * `fetch` here. + */ +declare type CustomDataProxyFetch = (fetch: unknown) => unknown; + +declare class DataLoader { + private options; + batches: { + [key: string]: Job[]; + }; + private tickActive; + constructor(options: DataLoaderOptions); + request(request: T): Promise; + private dispatchBatches; + get [Symbol.toStringTag](): string; +} + +declare type DataLoaderOptions = { + singleLoader: (request: T) => Promise; + batchLoader: (request: T[]) => Promise; + batchBy: (request: T) => string | undefined; + batchOrder: (requestA: T, requestB: T) => number; +}; + +declare type Datamodel = ReadonlyDeep_2<{ + models: Model[]; + enums: DatamodelEnum[]; + types: Model[]; + indexes: Index[]; +}>; + +declare type DatamodelEnum = ReadonlyDeep_2<{ + name: string; + values: EnumValue[]; + dbName?: string | null; + documentation?: string; +}>; + +declare function datamodelEnumToSchemaEnum(datamodelEnum: DatamodelEnum): SchemaEnum; + +declare type Datasource = { + url?: string; +}; + +declare type Datasources = { + [name in string]: Datasource; +}; + +declare class DbNull extends NullTypesEnumValue { + private readonly _brand_DbNull; +} + +export declare const Debug: typeof debugCreate & { + enable(namespace: any): void; + disable(): any; + enabled(namespace: string): boolean; + log: (...args: string[]) => void; + formatters: {}; +}; + +/** + * Create a new debug instance with the given namespace. + * + * @example + * ```ts + * import Debug from '@prisma/debug' + * const debug = Debug('prisma:client') + * debug('Hello World') + * ``` + */ +declare function debugCreate(namespace: string): ((...args: any[]) => void) & { + color: string; + enabled: boolean; + namespace: string; + log: (...args: string[]) => void; + extend: () => void; +}; + +export declare function Decimal(n: Decimal.Value): Decimal; + +export declare namespace Decimal { + export type Constructor = typeof Decimal; + export type Instance = Decimal; + export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + export type Modulo = Rounding | 9; + export type Value = string | number | Decimal; + + // http://mikemcl.github.io/decimal.js/#constructor-properties + export interface Config { + precision?: number; + rounding?: Rounding; + toExpNeg?: number; + toExpPos?: number; + minE?: number; + maxE?: number; + crypto?: boolean; + modulo?: Modulo; + defaults?: boolean; + } +} + +export declare class Decimal { + readonly d: number[]; + readonly e: number; + readonly s: number; + + constructor(n: Decimal.Value); + + absoluteValue(): Decimal; + abs(): Decimal; + + ceil(): Decimal; + + clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; + clamp(min: Decimal.Value, max: Decimal.Value): Decimal; + + comparedTo(n: Decimal.Value): number; + cmp(n: Decimal.Value): number; + + cosine(): Decimal; + cos(): Decimal; + + cubeRoot(): Decimal; + cbrt(): Decimal; + + decimalPlaces(): number; + dp(): number; + + dividedBy(n: Decimal.Value): Decimal; + div(n: Decimal.Value): Decimal; + + dividedToIntegerBy(n: Decimal.Value): Decimal; + divToInt(n: Decimal.Value): Decimal; + + equals(n: Decimal.Value): boolean; + eq(n: Decimal.Value): boolean; + + floor(): Decimal; + + greaterThan(n: Decimal.Value): boolean; + gt(n: Decimal.Value): boolean; + + greaterThanOrEqualTo(n: Decimal.Value): boolean; + gte(n: Decimal.Value): boolean; + + hyperbolicCosine(): Decimal; + cosh(): Decimal; + + hyperbolicSine(): Decimal; + sinh(): Decimal; + + hyperbolicTangent(): Decimal; + tanh(): Decimal; + + inverseCosine(): Decimal; + acos(): Decimal; + + inverseHyperbolicCosine(): Decimal; + acosh(): Decimal; + + inverseHyperbolicSine(): Decimal; + asinh(): Decimal; + + inverseHyperbolicTangent(): Decimal; + atanh(): Decimal; + + inverseSine(): Decimal; + asin(): Decimal; + + inverseTangent(): Decimal; + atan(): Decimal; + + isFinite(): boolean; + + isInteger(): boolean; + isInt(): boolean; + + isNaN(): boolean; + + isNegative(): boolean; + isNeg(): boolean; + + isPositive(): boolean; + isPos(): boolean; + + isZero(): boolean; + + lessThan(n: Decimal.Value): boolean; + lt(n: Decimal.Value): boolean; + + lessThanOrEqualTo(n: Decimal.Value): boolean; + lte(n: Decimal.Value): boolean; + + logarithm(n?: Decimal.Value): Decimal; + log(n?: Decimal.Value): Decimal; + + minus(n: Decimal.Value): Decimal; + sub(n: Decimal.Value): Decimal; + + modulo(n: Decimal.Value): Decimal; + mod(n: Decimal.Value): Decimal; + + naturalExponential(): Decimal; + exp(): Decimal; + + naturalLogarithm(): Decimal; + ln(): Decimal; + + negated(): Decimal; + neg(): Decimal; + + plus(n: Decimal.Value): Decimal; + add(n: Decimal.Value): Decimal; + + precision(includeZeros?: boolean): number; + sd(includeZeros?: boolean): number; + + round(): Decimal; + + sine() : Decimal; + sin() : Decimal; + + squareRoot(): Decimal; + sqrt(): Decimal; + + tangent() : Decimal; + tan() : Decimal; + + times(n: Decimal.Value): Decimal; + mul(n: Decimal.Value) : Decimal; + + toBinary(significantDigits?: number): string; + toBinary(significantDigits: number, rounding: Decimal.Rounding): string; + + toDecimalPlaces(decimalPlaces?: number): Decimal; + toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + toDP(decimalPlaces?: number): Decimal; + toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + + toExponential(decimalPlaces?: number): string; + toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFixed(decimalPlaces?: number): string; + toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFraction(max_denominator?: Decimal.Value): Decimal[]; + + toHexadecimal(significantDigits?: number): string; + toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; + toHex(significantDigits?: number): string; + toHex(significantDigits: number, rounding?: Decimal.Rounding): string; + + toJSON(): string; + + toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; + + toNumber(): number; + + toOctal(significantDigits?: number): string; + toOctal(significantDigits: number, rounding: Decimal.Rounding): string; + + toPower(n: Decimal.Value): Decimal; + pow(n: Decimal.Value): Decimal; + + toPrecision(significantDigits?: number): string; + toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; + + toSignificantDigits(significantDigits?: number): Decimal; + toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; + toSD(significantDigits?: number): Decimal; + toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; + + toString(): string; + + truncated(): Decimal; + trunc(): Decimal; + + valueOf(): string; + + static abs(n: Decimal.Value): Decimal; + static acos(n: Decimal.Value): Decimal; + static acosh(n: Decimal.Value): Decimal; + static add(x: Decimal.Value, y: Decimal.Value): Decimal; + static asin(n: Decimal.Value): Decimal; + static asinh(n: Decimal.Value): Decimal; + static atan(n: Decimal.Value): Decimal; + static atanh(n: Decimal.Value): Decimal; + static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; + static cbrt(n: Decimal.Value): Decimal; + static ceil(n: Decimal.Value): Decimal; + static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; + static clone(object?: Decimal.Config): Decimal.Constructor; + static config(object: Decimal.Config): Decimal.Constructor; + static cos(n: Decimal.Value): Decimal; + static cosh(n: Decimal.Value): Decimal; + static div(x: Decimal.Value, y: Decimal.Value): Decimal; + static exp(n: Decimal.Value): Decimal; + static floor(n: Decimal.Value): Decimal; + static hypot(...n: Decimal.Value[]): Decimal; + static isDecimal(object: any): object is Decimal; + static ln(n: Decimal.Value): Decimal; + static log(n: Decimal.Value, base?: Decimal.Value): Decimal; + static log2(n: Decimal.Value): Decimal; + static log10(n: Decimal.Value): Decimal; + static max(...n: Decimal.Value[]): Decimal; + static min(...n: Decimal.Value[]): Decimal; + static mod(x: Decimal.Value, y: Decimal.Value): Decimal; + static mul(x: Decimal.Value, y: Decimal.Value): Decimal; + static noConflict(): Decimal.Constructor; // Browser only + static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; + static random(significantDigits?: number): Decimal; + static round(n: Decimal.Value): Decimal; + static set(object: Decimal.Config): Decimal.Constructor; + static sign(n: Decimal.Value): number; + static sin(n: Decimal.Value): Decimal; + static sinh(n: Decimal.Value): Decimal; + static sqrt(n: Decimal.Value): Decimal; + static sub(x: Decimal.Value, y: Decimal.Value): Decimal; + static sum(...n: Decimal.Value[]): Decimal; + static tan(n: Decimal.Value): Decimal; + static tanh(n: Decimal.Value): Decimal; + static trunc(n: Decimal.Value): Decimal; + + static readonly default?: Decimal.Constructor; + static readonly Decimal?: Decimal.Constructor; + + static readonly precision: number; + static readonly rounding: Decimal.Rounding; + static readonly toExpNeg: number; + static readonly toExpPos: number; + static readonly minE: number; + static readonly maxE: number; + static readonly crypto: boolean; + static readonly modulo: Decimal.Modulo; + + static readonly ROUND_UP: 0; + static readonly ROUND_DOWN: 1; + static readonly ROUND_CEIL: 2; + static readonly ROUND_FLOOR: 3; + static readonly ROUND_HALF_UP: 4; + static readonly ROUND_HALF_DOWN: 5; + static readonly ROUND_HALF_EVEN: 6; + static readonly ROUND_HALF_CEIL: 7; + static readonly ROUND_HALF_FLOOR: 8; + static readonly EUCLID: 9; +} + +/** + * Interface for any Decimal.js-like library + * Allows us to accept Decimal.js from different + * versions and some compatible alternatives + */ +export declare interface DecimalJsLike { + d: number[]; + e: number; + s: number; + toFixed(): string; +} + +export declare type DefaultArgs = InternalArgs<{}, {}, {}, {}>; + +export declare type DefaultSelection = Args extends { + omit: infer LocalOmit; +} ? ApplyOmit['default'], PatchFlat>>> : ApplyOmit['default'], ExtractGlobalOmit>>; + +export declare function defineDmmfProperty(target: object, runtimeDataModel: RuntimeDataModel): void; + +declare function defineExtension(ext: ExtensionArgs | ((client: Client) => Client)): (client: Client) => Client; + +declare const denylist: readonly ["$connect", "$disconnect", "$on", "$transaction", "$use", "$extends"]; + +declare type Deprecation = ReadonlyDeep_2<{ + sinceVersion: string; + reason: string; + plannedRemovalVersion?: string; +}>; + +declare type DeserializedResponse = Array>; + +export declare function deserializeJsonResponse(result: unknown): unknown; + +export declare function deserializeRawResult(response: RawResponse): DeserializedResponse; + +export declare type DevTypeMapDef = { + meta: { + modelProps: string; + }; + model: { + [Model in PropertyKey]: { + [Operation in PropertyKey]: DevTypeMapFnDef; + }; + }; + other: { + [Operation in PropertyKey]: DevTypeMapFnDef; + }; +}; + +export declare type DevTypeMapFnDef = { + args: any; + result: any; + payload: OperationPayload; +}; + +export declare namespace DMMF { + export { + datamodelEnumToSchemaEnum, + Document_2 as Document, + Mappings, + OtherOperationMappings, + DatamodelEnum, + SchemaEnum, + EnumValue, + Datamodel, + uniqueIndex, + PrimaryKey, + Model, + FieldKind, + FieldNamespace, + FieldLocation, + Field, + FieldDefault, + FieldDefaultScalar, + Index, + IndexType, + IndexField, + SortOrder, + Schema, + Query, + QueryOutput, + TypeRef, + InputTypeRef, + SchemaArg, + OutputType, + SchemaField, + OutputTypeRef, + Deprecation, + InputType, + FieldRefType, + FieldRefAllowType, + ModelMapping, + ModelAction + } +} + +declare namespace DMMF_2 { + export { + datamodelEnumToSchemaEnum, + Document_2 as Document, + Mappings, + OtherOperationMappings, + DatamodelEnum, + SchemaEnum, + EnumValue, + Datamodel, + uniqueIndex, + PrimaryKey, + Model, + FieldKind, + FieldNamespace, + FieldLocation, + Field, + FieldDefault, + FieldDefaultScalar, + Index, + IndexType, + IndexField, + SortOrder, + Schema, + Query, + QueryOutput, + TypeRef, + InputTypeRef, + SchemaArg, + OutputType, + SchemaField, + OutputTypeRef, + Deprecation, + InputType, + FieldRefType, + FieldRefAllowType, + ModelMapping, + ModelAction + } +} + +export declare function dmmfToRuntimeDataModel(dmmfDataModel: DMMF_2.Datamodel): RuntimeDataModel; + +declare type Document_2 = ReadonlyDeep_2<{ + datamodel: Datamodel; + schema: Schema; + mappings: Mappings; +}>; + +/** + * A generic driver adapter factory that allows the user to instantiate a + * driver adapter. The query and result types are specific to the adapter. + */ +declare interface DriverAdapterFactory extends AdapterInfo { + /** + * Instantiate a driver adapter. + */ + connect(): Promise>; +} + +/** Client */ +export declare type DynamicClientExtensionArgs> = { + [P in keyof C_]: unknown; +} & { + [K: symbol]: { + ctx: Optional, ITXClientDenyList> & { + $parent: Optional, ITXClientDenyList>; + }; + }; +}; + +export declare type DynamicClientExtensionThis> = { + [P in keyof ExtArgs['client']]: Return; +} & { + [P in Exclude]: DynamicModelExtensionThis, ExtArgs>; +} & { + [P in Exclude]: P extends keyof ClientOtherOps ? ClientOtherOps[P] : never; +} & { + [P in Exclude]: DynamicClientExtensionThisBuiltin[P]; +} & { + [K: symbol]: { + types: TypeMap['other']; + }; +}; + +export declare type DynamicClientExtensionThisBuiltin> = { + $extends: ExtendsHook<'extends', TypeMapCb, ExtArgs, Call>; + $transaction

[]>(arg: [...P], options?: { + isolationLevel?: TypeMap['meta']['txIsolationLevel']; + }): Promise>; + $transaction(fn: (client: Omit, ITXClientDenyList>) => Promise, options?: { + maxWait?: number; + timeout?: number; + isolationLevel?: TypeMap['meta']['txIsolationLevel']; + }): Promise; + $disconnect(): Promise; + $connect(): Promise; +}; + +/** Model */ +export declare type DynamicModelExtensionArgs> = { + [K in keyof M_]: K extends '$allModels' ? { + [P in keyof M_[K]]?: unknown; + } & { + [K: symbol]: {}; + } : K extends TypeMap['meta']['modelProps'] ? { + [P in keyof M_[K]]?: unknown; + } & { + [K: symbol]: { + ctx: DynamicModelExtensionThis, ExtArgs> & { + $parent: DynamicClientExtensionThis; + } & { + $name: ModelKey; + } & { + /** + * @deprecated Use `$name` instead. + */ + name: ModelKey; + }; + }; + } : never; +}; + +export declare type DynamicModelExtensionFluentApi = { + [K in keyof TypeMap['model'][M]['payload']['objects']]: (args?: Exact>) => PrismaPromise, [K]> | Null> & DynamicModelExtensionFluentApi>; +}; + +export declare type DynamicModelExtensionFnResult = P extends FluentOperation ? DynamicModelExtensionFluentApi & PrismaPromise | Null> : PrismaPromise>; + +export declare type DynamicModelExtensionFnResultBase = GetResult; + +export declare type DynamicModelExtensionFnResultNull

= P extends 'findUnique' | 'findFirst' ? null : never; + +export declare type DynamicModelExtensionOperationFn = {} extends TypeMap['model'][M]['operations'][P]['args'] ? (args?: Exact) => DynamicModelExtensionFnResult> : (args: Exact) => DynamicModelExtensionFnResult>; + +export declare type DynamicModelExtensionThis> = { + [P in keyof ExtArgs['model'][Uncapitalize]]: Return][P]>; +} & { + [P in Exclude]>]: DynamicModelExtensionOperationFn; +} & { + [P in Exclude<'fields', keyof ExtArgs['model'][Uncapitalize]>]: TypeMap['model'][M]['fields']; +} & { + [K: symbol]: { + types: TypeMap['model'][M]; + }; +}; + +/** Query */ +export declare type DynamicQueryExtensionArgs = { + [K in keyof Q_]: K extends '$allOperations' ? (args: { + model?: string; + operation: string; + args: any; + query: (args: any) => PrismaPromise; + }) => Promise : K extends '$allModels' ? { + [P in keyof Q_[K] | keyof TypeMap['model'][keyof TypeMap['model']]['operations'] | '$allOperations']?: P extends '$allOperations' ? DynamicQueryExtensionCb : P extends keyof TypeMap['model'][keyof TypeMap['model']]['operations'] ? DynamicQueryExtensionCb : never; + } : K extends TypeMap['meta']['modelProps'] ? { + [P in keyof Q_[K] | keyof TypeMap['model'][ModelKey]['operations'] | '$allOperations']?: P extends '$allOperations' ? DynamicQueryExtensionCb, keyof TypeMap['model'][ModelKey]['operations']> : P extends keyof TypeMap['model'][ModelKey]['operations'] ? DynamicQueryExtensionCb, P> : never; + } : K extends keyof TypeMap['other']['operations'] ? DynamicQueryExtensionCb<[TypeMap], 0, 'other', K> : never; +}; + +export declare type DynamicQueryExtensionCb = >(args: A) => Promise; + +export declare type DynamicQueryExtensionCbArgs = (_1 extends unknown ? _2 extends unknown ? { + args: DynamicQueryExtensionCbArgsArgs; + model: _0 extends 0 ? undefined : _1; + operation: _2; + query: >(args: A) => PrismaPromise; +} : never : never) & { + query: (args: DynamicQueryExtensionCbArgsArgs) => PrismaPromise; +}; + +export declare type DynamicQueryExtensionCbArgsArgs = _2 extends '$queryRaw' | '$executeRaw' ? Sql : TypeMap[_0][_1]['operations'][_2]['args']; + +/** Result */ +export declare type DynamicResultExtensionArgs = { + [K in keyof R_]: { + [P in keyof R_[K]]?: { + needs?: DynamicResultExtensionNeeds, R_[K][P]>; + compute(data: DynamicResultExtensionData, R_[K][P]>): any; + }; + }; +}; + +export declare type DynamicResultExtensionData = GetFindResult; + +export declare type DynamicResultExtensionNeeds = { + [K in keyof S]: K extends keyof TypeMap['model'][M]['payload']['scalars'] ? S[K] : never; +} & { + [N in keyof TypeMap['model'][M]['payload']['scalars']]?: boolean; +}; + +/** + * Placeholder value for "no text". + */ +export declare const empty: Sql; + +export declare type EmptyToUnknown = T; + +declare interface Engine { + /** The name of the engine. This is meant to be consumed externally */ + readonly name: string; + onBeforeExit(callback: () => Promise): void; + start(): Promise; + stop(): Promise; + version(forceRun?: boolean): Promise | string; + request(query: JsonQuery, options: RequestOptions): Promise>; + requestBatch(queries: JsonQuery[], options: RequestBatchOptions): Promise[]>; + transaction(action: 'start', headers: Transaction_2.TransactionHeaders, options: Transaction_2.Options): Promise>; + transaction(action: 'commit', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo): Promise; + transaction(action: 'rollback', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo): Promise; + metrics(options: MetricsOptionsJson): Promise; + metrics(options: MetricsOptionsPrometheus): Promise; + applyPendingMigrations(): Promise; +} + +declare interface EngineConfig { + cwd: string; + dirname: string; + enableDebugLogs?: boolean; + allowTriggerPanic?: boolean; + prismaPath?: string; + generator?: GeneratorConfig; + /** + * @remarks this field is used internally by Policy, do not rename or remove + */ + overrideDatasources: Datasources; + showColors?: boolean; + logQueries?: boolean; + logLevel?: 'info' | 'warn'; + env: Record; + flags?: string[]; + clientVersion: string; + engineVersion: string; + previewFeatures?: string[]; + engineEndpoint?: string; + activeProvider?: string; + logEmitter: LogEmitter; + transactionOptions: Transaction_2.Options; + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale`. + * If set, this is only used in the library engine, and all queries would be performed through it, + * rather than Prisma's Rust drivers. + * @remarks only used by LibraryEngine.ts + */ + adapter?: SqlDriverAdapterFactory; + /** + * The contents of the schema encoded into a string + */ + inlineSchema: string; + /** + * The contents of the datasource url saved in a string + * @remarks only used by DataProxyEngine.ts + * @remarks this field is used internally by Policy, do not rename or remove + */ + inlineDatasources: GetPrismaClientConfig['inlineDatasources']; + /** + * The string hash that was produced for a given schema + * @remarks only used by DataProxyEngine.ts + */ + inlineSchemaHash: string; + /** + * The helper for interaction with OTEL tracing + * @remarks enabling is determined by the client and @prisma/instrumentation package + */ + tracingHelper: TracingHelper; + /** + * Information about whether we have not found a schema.prisma file in the + * default location, and that we fell back to finding the schema.prisma file + * in the current working directory. This usually means it has been bundled. + */ + isBundled?: boolean; + /** + * Web Assembly module loading configuration + */ + engineWasm?: EngineWasmLoadingConfig; + compilerWasm?: CompilerWasmLoadingConfig; + /** + * Allows Accelerate to use runtime utilities from the client. These are + * necessary for the AccelerateEngine to function correctly. + */ + accelerateUtils?: { + resolveDatasourceUrl: typeof resolveDatasourceUrl; + getBatchRequestPayload: typeof getBatchRequestPayload; + prismaGraphQLToJSError: typeof prismaGraphQLToJSError; + PrismaClientUnknownRequestError: typeof PrismaClientUnknownRequestError; + PrismaClientInitializationError: typeof PrismaClientInitializationError; + PrismaClientKnownRequestError: typeof PrismaClientKnownRequestError; + debug: (...args: any[]) => void; + engineVersion: string; + clientVersion: string; + }; +} + +declare type EngineEvent = E extends QueryEventType ? QueryEvent : LogEvent; + +declare type EngineEventType = QueryEventType | LogEventType; + +declare type EngineSpan = { + id: EngineSpanId; + parentId: string | null; + name: string; + startTime: HrTime; + endTime: HrTime; + kind: EngineSpanKind; + attributes?: Record; + links?: EngineSpanId[]; +}; + +declare type EngineSpanId = string; + +declare type EngineSpanKind = 'client' | 'internal'; + +declare type EngineWasmLoadingConfig = { + /** + * WASM-bindgen runtime for corresponding module + */ + getRuntime: () => Promise<{ + __wbg_set_wasm(exports: unknown): void; + QueryEngine: QueryEngineConstructor; + }>; + /** + * Loads the raw wasm module for the wasm query engine. This configuration is + * generated specifically for each type of client, eg. Node.js client and Edge + * clients will have different implementations. + * @remarks this is a callback on purpose, we only load the wasm if needed. + * @remarks only used by LibraryEngine + */ + getQueryEngineWasmModule: () => Promise; +}; + +declare type EnumValue = ReadonlyDeep_2<{ + name: string; + dbName: string | null; +}>; + +declare type EnvPaths = { + rootEnvPath: string | null; + schemaEnvPath: string | undefined; +}; + +declare interface EnvValue { + fromEnvVar: null | string; + value: null | string; +} + +export declare type Equals = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? 1 : 0; + +declare type Error_2 = { + kind: 'GenericJs'; + id: number; +} | { + kind: 'UnsupportedNativeDataType'; + type: string; +} | { + kind: 'InvalidIsolationLevel'; + level: string; +} | { + kind: 'postgres'; + code: string; + severity: string; + message: string; + detail: string | undefined; + column: string | undefined; + hint: string | undefined; +} | { + kind: 'mysql'; + code: number; + message: string; + state: string; +} | { + kind: 'sqlite'; + /** + * Sqlite extended error code: https://www.sqlite.org/rescode.html + */ + extendedCode: number; + message: string; +}; + +declare type ErrorCapturingFunction = T extends (...args: infer A) => Promise ? (...args: A) => Promise>> : T extends (...args: infer A) => infer R ? (...args: A) => Result_4> : T; + +declare type ErrorCapturingInterface = { + [K in keyof T]: ErrorCapturingFunction; +}; + +declare interface ErrorCapturingSqlDriverAdapter extends ErrorCapturingInterface { + readonly errorRegistry: ErrorRegistry; +} + +declare type ErrorFormat = 'pretty' | 'colorless' | 'minimal'; + +declare type ErrorRecord = { + error: unknown; +}; + +declare interface ErrorRegistry { + consumeError(id: number): ErrorRecord | undefined; +} + +declare interface ErrorWithBatchIndex { + batchRequestIdx?: number; +} + +declare type EventCallback = [E] extends ['beforeExit'] ? () => Promise : [E] extends [LogLevel] ? (event: EngineEvent) => void : never; + +export declare type Exact = (A extends unknown ? (W extends A ? { + [K in keyof A]: Exact; +} : W) : never) | (A extends Narrowable ? A : never); + +/** + * Defines Exception. + * + * string or an object with one of (message or name or code) and optional stack + */ +declare type Exception = ExceptionWithCode | ExceptionWithMessage | ExceptionWithName | string; + +declare interface ExceptionWithCode { + code: string | number; + name?: string; + message?: string; + stack?: string; +} + +declare interface ExceptionWithMessage { + code?: string | number; + message: string; + name?: string; + stack?: string; +} + +declare interface ExceptionWithName { + code?: string | number; + message?: string; + name: string; + stack?: string; +} + +declare type ExtendedEventType = LogLevel | 'beforeExit'; + +declare type ExtendedSpanOptions = SpanOptions & { + /** The name of the span */ + name: string; + internal?: boolean; + middleware?: boolean; + /** Whether it propagates context (?=true) */ + active?: boolean; + /** The context to append the span to */ + context?: Context; +}; + +/** $extends, defineExtension */ +export declare interface ExtendsHook, TypeMap extends TypeMapDef = Call> { + extArgs: ExtArgs; + , MergedArgs extends InternalArgs = MergeExtArgs>(extension: ((client: DynamicClientExtensionThis) => { + $extends: { + extArgs: Args; + }; + }) | { + name?: string; + query?: DynamicQueryExtensionArgs; + result?: DynamicResultExtensionArgs & R; + model?: DynamicModelExtensionArgs & M; + client?: DynamicClientExtensionArgs & C; + }): { + extends: DynamicClientExtensionThis, TypeMapCb, MergedArgs>; + define: (client: any) => { + $extends: { + extArgs: Args; + }; + }; + }[Variant]; +} + +export declare type ExtensionArgs = Optional; + +declare namespace Extensions { + export { + defineExtension, + getExtensionContext + } +} +export { Extensions } + +declare namespace Extensions_2 { + export { + InternalArgs, + DefaultArgs, + GetPayloadResultExtensionKeys, + GetPayloadResultExtensionObject, + GetPayloadResult, + GetSelect, + GetOmit, + DynamicQueryExtensionArgs, + DynamicQueryExtensionCb, + DynamicQueryExtensionCbArgs, + DynamicQueryExtensionCbArgsArgs, + DynamicResultExtensionArgs, + DynamicResultExtensionNeeds, + DynamicResultExtensionData, + DynamicModelExtensionArgs, + DynamicModelExtensionThis, + DynamicModelExtensionOperationFn, + DynamicModelExtensionFnResult, + DynamicModelExtensionFnResultBase, + DynamicModelExtensionFluentApi, + DynamicModelExtensionFnResultNull, + DynamicClientExtensionArgs, + DynamicClientExtensionThis, + ClientBuiltInProp, + DynamicClientExtensionThisBuiltin, + ExtendsHook, + MergeExtArgs, + AllModelsToStringIndex, + TypeMapDef, + DevTypeMapDef, + DevTypeMapFnDef, + ClientOptionDef, + ClientOtherOps, + TypeMapCbDef, + ModelKey, + RequiredExtensionArgs as UserArgs + } +} + +export declare type ExtractGlobalOmit = Options extends { + omit: { + [K in ModelName]: infer GlobalOmit; + }; +} ? GlobalOmit : {}; + +declare type Field = ReadonlyDeep_2<{ + kind: FieldKind; + name: string; + isRequired: boolean; + isList: boolean; + isUnique: boolean; + isId: boolean; + isReadOnly: boolean; + isGenerated?: boolean; + isUpdatedAt?: boolean; + /** + * Describes the data type in the same the way it is defined in the Prisma schema: + * BigInt, Boolean, Bytes, DateTime, Decimal, Float, Int, JSON, String, $ModelName + */ + type: string; + /** + * Native database type, if specified. + * For example, `@db.VarChar(191)` is encoded as `['VarChar', ['191']]`, + * `@db.Text` is encoded as `['Text', []]`. + */ + nativeType?: [string, string[]] | null; + dbName?: string | null; + hasDefaultValue: boolean; + default?: FieldDefault | FieldDefaultScalar | FieldDefaultScalar[]; + relationFromFields?: string[]; + relationToFields?: string[]; + relationOnDelete?: string; + relationOnUpdate?: string; + relationName?: string; + documentation?: string; +}>; + +declare type FieldDefault = ReadonlyDeep_2<{ + name: string; + args: Array; +}>; + +declare type FieldDefaultScalar = string | boolean | number; + +declare type FieldKind = 'scalar' | 'object' | 'enum' | 'unsupported'; + +declare type FieldLocation = 'scalar' | 'inputObjectTypes' | 'outputObjectTypes' | 'enumTypes' | 'fieldRefTypes'; + +declare type FieldNamespace = 'model' | 'prisma'; + +/** + * A reference to a specific field of a specific model + */ +export declare interface FieldRef { + readonly modelName: Model; + readonly name: string; + readonly typeName: FieldType; + readonly isList: boolean; +} + +declare type FieldRefAllowType = TypeRef<'scalar' | 'enumTypes'>; + +declare type FieldRefType = ReadonlyDeep_2<{ + name: string; + allowTypes: FieldRefAllowType[]; + fields: SchemaArg[]; +}>; + +declare type FluentOperation = 'findUnique' | 'findUniqueOrThrow' | 'findFirst' | 'findFirstOrThrow' | 'create' | 'update' | 'upsert' | 'delete'; + +export declare interface Fn { + params: Params; + returns: Returns; +} + +declare interface GeneratorConfig { + name: string; + output: EnvValue | null; + isCustomOutput?: boolean; + provider: EnvValue; + config: { + /** `output` is a reserved name and will only be available directly at `generator.output` */ + output?: never; + /** `provider` is a reserved name and will only be available directly at `generator.provider` */ + provider?: never; + /** `binaryTargets` is a reserved name and will only be available directly at `generator.binaryTargets` */ + binaryTargets?: never; + /** `previewFeatures` is a reserved name and will only be available directly at `generator.previewFeatures` */ + previewFeatures?: never; + } & { + [key: string]: string | string[] | undefined; + }; + binaryTargets: BinaryTargetsEnvValue[]; + previewFeatures: string[]; + envPaths?: EnvPaths; + sourceFilePath: string; +} + +export declare type GetAggregateResult

= { + [K in keyof A as K extends Aggregate ? K : never]: K extends '_count' ? A[K] extends true ? number : Count : { + [J in keyof A[K] & string]: P['scalars'][J] | null; + }; +}; + +declare function getBatchRequestPayload(batch: JsonQuery[], transaction?: TransactionOptions_3): QueryEngineBatchRequest; + +export declare type GetBatchResult = { + count: number; +}; + +export declare type GetCountResult = A extends { + select: infer S; +} ? (S extends true ? number : Count) : number; + +declare function getExtensionContext(that: T): Context_2; + +export declare type GetFindResult

= Equals extends 1 ? DefaultSelection : A extends { + select: infer S extends object; +} & Record | { + include: infer I extends object; +} & Record ? { + [K in keyof S | keyof I as (S & I)[K] extends false | undefined | Skip | null ? never : K]: (S & I)[K] extends object ? P extends SelectablePayloadFields ? O extends OperationPayload ? GetFindResult[] : never : P extends SelectablePayloadFields ? O extends OperationPayload ? GetFindResult | SelectField & null : never : K extends '_count' ? Count> : never : P extends SelectablePayloadFields ? O extends OperationPayload ? DefaultSelection[] : never : P extends SelectablePayloadFields ? O extends OperationPayload ? DefaultSelection | SelectField & null : never : P extends { + scalars: { + [k in K]: infer O; + }; + } ? O : K extends '_count' ? Count : never; +} & (A extends { + include: any; +} & Record ? DefaultSelection : unknown) : DefaultSelection; + +export declare type GetGroupByResult

= A extends { + by: string[]; +} ? Array & { + [K in A['by'][number]]: P['scalars'][K]; +}> : A extends { + by: string; +} ? Array & { + [K in A['by']]: P['scalars'][K]; +}> : {}[]; + +export declare type GetOmit = { + [K in (string extends keyof R ? never : keyof R) | BaseKeys]?: boolean | ExtraType; +}; + +export declare type GetPayloadResult, R extends InternalArgs['result'][string]> = Omit> & GetPayloadResultExtensionObject; + +export declare type GetPayloadResultExtensionKeys = KR; + +export declare type GetPayloadResultExtensionObject = { + [K in GetPayloadResultExtensionKeys]: R[K] extends () => { + compute: (...args: any) => infer C; + } ? C : never; +}; + +export declare function getPrismaClient(config: GetPrismaClientConfig): { + new (optionsArg?: PrismaClientOptions): { + _originalClient: any; + _runtimeDataModel: RuntimeDataModel; + _requestHandler: RequestHandler; + _connectionPromise?: Promise | undefined; + _disconnectionPromise?: Promise | undefined; + _engineConfig: EngineConfig; + _accelerateEngineConfig: AccelerateEngineConfig; + _clientVersion: string; + _errorFormat: ErrorFormat; + _tracingHelper: TracingHelper; + _middlewares: MiddlewareHandler; + _previewFeatures: string[]; + _activeProvider: string; + _globalOmit?: GlobalOmitOptions | undefined; + _extensions: MergedExtensionsList; + /** + * @remarks This is used internally by Policy, do not rename or remove + */ + _engine: Engine; + /** + * A fully constructed/applied Client that references the parent + * PrismaClient. This is used for Client extensions only. + */ + _appliedParent: any; + _createPrismaPromise: PrismaPromiseFactory; + /** + * Hook a middleware into the client + * @param middleware to hook + */ + $use(middleware: QueryMiddleware): void; + $on(eventType: E, callback: EventCallback): any; + $connect(): Promise; + /** + * Disconnect from the database + */ + $disconnect(): Promise; + /** + * Executes a raw query and always returns a number + */ + $executeRawInternal(transaction: PrismaPromiseTransaction | undefined, clientMethod: string, args: RawQueryArgs, middlewareArgsMapper?: MiddlewareArgsMapper): Promise; + /** + * Executes a raw query provided through a safe tag function + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise_2; + /** + * Unsafe counterpart of `$executeRaw` that is susceptible to SQL injections + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $executeRawUnsafe(query: string, ...values: RawValue[]): PrismaPromise_2; + /** + * Executes a raw command only for MongoDB + * + * @param command + * @returns + */ + $runCommandRaw(command: Record): PrismaPromise_2; + /** + * Executes a raw query and returns selected data + */ + $queryRawInternal(transaction: PrismaPromiseTransaction | undefined, clientMethod: string, args: RawQueryArgs, middlewareArgsMapper?: MiddlewareArgsMapper): Promise; + /** + * Executes a raw query provided through a safe tag function + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise_2; + /** + * Counterpart to $queryRaw, that returns strongly typed results + * @param typedSql + */ + $queryRawTyped(typedSql: UnknownTypedSql): PrismaPromise_2; + /** + * Unsafe counterpart of `$queryRaw` that is susceptible to SQL injections + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $queryRawUnsafe(query: string, ...values: RawValue[]): PrismaPromise_2; + /** + * Execute a batch of requests in a transaction + * @param requests + * @param options + */ + _transactionWithArray({ promises, options, }: { + promises: Array>; + options?: BatchTransactionOptions; + }): Promise; + /** + * Perform a long-running transaction + * @param callback + * @param options + * @returns + */ + _transactionWithCallback({ callback, options, }: { + callback: (client: Client) => Promise; + options?: TransactionOptions_2; + }): Promise; + _createItxClient(transaction: PrismaPromiseInteractiveTransaction): Client; + /** + * Execute queries within a transaction + * @param input a callback or a query list + * @param options to set timeouts (callback) + * @returns + */ + $transaction(input: any, options?: any): Promise; + /** + * Runs the middlewares over params before executing a request + * @param internalParams + * @returns + */ + _request(internalParams: InternalRequestParams): Promise; + _executeRequest({ args, clientMethod, dataPath, callsite, action, model, argsMapper, transaction, unpacker, otelParentCtx, customDataProxyFetch, }: InternalRequestParams): Promise; + $metrics: MetricsClient; + /** + * Shortcut for checking a preview flag + * @param feature preview flag + * @returns + */ + _hasPreviewFlag(feature: string): boolean; + $applyPendingMigrations(): Promise; + $extends: typeof $extends; + readonly [Symbol.toStringTag]: string; + }; +}; + +/** + * Config that is stored into the generated client. When the generated client is + * loaded, this same config is passed to {@link getPrismaClient} which creates a + * closure with that config around a non-instantiated [[PrismaClient]]. + */ +export declare type GetPrismaClientConfig = { + runtimeDataModel: RuntimeDataModel; + generator?: GeneratorConfig; + relativeEnvPaths?: { + rootEnvPath?: string | null; + schemaEnvPath?: string | null; + }; + relativePath: string; + dirname: string; + clientVersion: string; + engineVersion: string; + datasourceNames: string[]; + activeProvider: ActiveConnectorType; + /** + * The contents of the schema encoded into a string + * @remarks only used for the purpose of data proxy + */ + inlineSchema: string; + /** + * A special env object just for the data proxy edge runtime. + * Allows bundlers to inject their own env variables (Vercel). + * Allows platforms to declare global variables as env (Workers). + * @remarks only used for the purpose of data proxy + */ + injectableEdgeEnv?: () => LoadedEnv; + /** + * The contents of the datasource url saved in a string. + * This can either be an env var name or connection string. + * It is needed by the client to connect to the Data Proxy. + * @remarks only used for the purpose of data proxy + */ + inlineDatasources: { + [name in string]: { + url: EnvValue; + }; + }; + /** + * The string hash that was produced for a given schema + * @remarks only used for the purpose of data proxy + */ + inlineSchemaHash: string; + /** + * A marker to indicate that the client was not generated via `prisma + * generate` but was generated via `generate --postinstall` script instead. + * @remarks used to error for Vercel/Netlify for schema caching issues + */ + postinstall?: boolean; + /** + * Information about the CI where the Prisma Client has been generated. The + * name of the CI environment is stored at generation time because CI + * information is not always available at runtime. Moreover, the edge client + * has no notion of environment variables, so this works around that. + * @remarks used to error for Vercel/Netlify for schema caching issues + */ + ciName?: string; + /** + * Information about whether we have not found a schema.prisma file in the + * default location, and that we fell back to finding the schema.prisma file + * in the current working directory. This usually means it has been bundled. + */ + isBundled?: boolean; + /** + * A boolean that is `false` when the client was generated with --no-engine. At + * runtime, this means the client will be bound to be using the Data Proxy. + */ + copyEngine?: boolean; + /** + * Optional wasm loading configuration + */ + engineWasm?: EngineWasmLoadingConfig; + compilerWasm?: CompilerWasmLoadingConfig; +}; + +export declare type GetResult = { + findUnique: GetFindResult | null; + findUniqueOrThrow: GetFindResult; + findFirst: GetFindResult | null; + findFirstOrThrow: GetFindResult; + findMany: GetFindResult[]; + create: GetFindResult; + createMany: GetBatchResult; + createManyAndReturn: GetFindResult[]; + update: GetFindResult; + updateMany: GetBatchResult; + updateManyAndReturn: GetFindResult[]; + upsert: GetFindResult; + delete: GetFindResult; + deleteMany: GetBatchResult; + aggregate: GetAggregateResult; + count: GetCountResult; + groupBy: GetGroupByResult; + $queryRaw: unknown; + $queryRawTyped: unknown; + $executeRaw: number; + $queryRawUnsafe: unknown; + $executeRawUnsafe: number; + $runCommandRaw: JsonObject; + findRaw: JsonObject; + aggregateRaw: JsonObject; +}[OperationName]; + +export declare function getRuntime(): GetRuntimeOutput; + +declare type GetRuntimeOutput = { + id: RuntimeName; + prettyName: string; + isEdge: boolean; +}; + +export declare type GetSelect, R extends InternalArgs['result'][string], KR extends keyof R = string extends keyof R ? never : keyof R> = { + [K in KR | keyof Base]?: K extends KR ? boolean : Base[K]; +}; + +declare type GlobalOmitOptions = { + [modelName: string]: { + [fieldName: string]: boolean; + }; +}; + +declare type HandleErrorParams = { + args: JsArgs; + error: any; + clientMethod: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + modelName?: string; + globalOmit?: GlobalOmitOptions; +}; + +declare type HrTime = [number, number]; + +/** + * Defines High-Resolution Time. + * + * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970. + * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds. + * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150. + * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds: + * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210. + * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds: + * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000. + * This is represented in HrTime format as [1609504210, 150000000]. + */ +declare type HrTime_2 = [number, number]; + +declare type Index = ReadonlyDeep_2<{ + model: string; + type: IndexType; + isDefinedOnField: boolean; + name?: string; + dbName?: string; + algorithm?: string; + clustered?: boolean; + fields: IndexField[]; +}>; + +declare type IndexField = ReadonlyDeep_2<{ + name: string; + sortOrder?: SortOrder; + length?: number; + operatorClass?: string; +}>; + +declare type IndexType = 'id' | 'normal' | 'unique' | 'fulltext'; + +/** + * Matches a JSON array. + * Unlike \`JsonArray\`, readonly arrays are assignable to this type. + */ +export declare interface InputJsonArray extends ReadonlyArray { +} + +/** + * Matches a JSON object. + * Unlike \`JsonObject\`, this type allows undefined and read-only properties. + */ +export declare type InputJsonObject = { + readonly [Key in string]?: InputJsonValue | null; +}; + +/** + * Matches any valid value that can be used as an input for operations like + * create and update as the value of a JSON field. Unlike \`JsonValue\`, this + * type allows read-only arrays and read-only object properties and disallows + * \`null\` at the top level. + * + * \`null\` cannot be used as the value of a JSON field because its meaning + * would be ambiguous. Use \`Prisma.JsonNull\` to store the JSON null value or + * \`Prisma.DbNull\` to clear the JSON value and set the field to the database + * NULL value instead. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-by-null-values + */ +export declare type InputJsonValue = string | number | boolean | InputJsonObject | InputJsonArray | { + toJSON(): unknown; +}; + +declare type InputType = ReadonlyDeep_2<{ + name: string; + constraints: { + maxNumFields: number | null; + minNumFields: number | null; + fields?: string[]; + }; + meta?: { + source?: string; + grouping?: string; + }; + fields: SchemaArg[]; +}>; + +declare type InputTypeRef = TypeRef<'scalar' | 'inputObjectTypes' | 'enumTypes' | 'fieldRefTypes'>; + +declare type InteractiveTransactionInfo = { + /** + * Transaction ID returned by the query engine. + */ + id: string; + /** + * Arbitrary payload the meaning of which depends on the `Engine` implementation. + * For example, `DataProxyEngine` needs to associate different API endpoints with transactions. + * In `LibraryEngine` and `BinaryEngine` it is currently not used. + */ + payload: Payload; +}; + +declare type InteractiveTransactionOptions = Transaction_2.InteractiveTransactionInfo; + +export declare type InternalArgs = { + result: { + [K in keyof R]: { + [P in keyof R[K]]: () => R[K][P]; + }; + }; + model: { + [K in keyof M]: { + [P in keyof M[K]]: () => M[K][P]; + }; + }; + query: { + [K in keyof Q]: { + [P in keyof Q[K]]: () => Q[K][P]; + }; + }; + client: { + [K in keyof C]: () => C[K]; + }; +}; + +declare type InternalRequestParams = { + /** + * The original client method being called. + * Even though the rootField / operation can be changed, + * this method stays as it is, as it's what the user's + * code looks like + */ + clientMethod: string; + /** + * Name of js model that triggered the request. Might be used + * for warnings or error messages + */ + jsModelName?: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + unpacker?: Unpacker; + otelParentCtx?: Context; + /** Used to "desugar" a user input into an "expanded" one */ + argsMapper?: (args?: UserArgs_2) => UserArgs_2; + /** Used to convert args for middleware and back */ + middlewareArgsMapper?: MiddlewareArgsMapper; + /** Used for Accelerate client extension via Data Proxy */ + customDataProxyFetch?: CustomDataProxyFetch; +} & Omit; + +declare type IsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SNAPSHOT' | 'SERIALIZABLE'; + +declare function isSkip(value: unknown): value is Skip; + +export declare function isTypedSql(value: unknown): value is UnknownTypedSql; + +export declare type ITXClientDenyList = (typeof denylist)[number]; + +export declare const itxClientDenyList: readonly (string | symbol)[]; + +declare interface Job { + resolve: (data: any) => void; + reject: (data: any) => void; + request: any; +} + +/** + * Create a SQL query for a list of values. + */ +export declare function join(values: readonly RawValue[], separator?: string, prefix?: string, suffix?: string): Sql; + +export declare type JsArgs = { + select?: Selection_2; + include?: Selection_2; + omit?: Omission; + [argName: string]: JsInputValue; +}; + +export declare type JsInputValue = null | undefined | string | number | boolean | bigint | Uint8Array | Date | DecimalJsLike | ObjectEnumValue | RawParameters | JsonConvertible | FieldRef | JsInputValue[] | Skip | { + [key: string]: JsInputValue; +}; + +declare type JsonArgumentValue = number | string | boolean | null | RawTaggedValue | JsonArgumentValue[] | { + [key: string]: JsonArgumentValue; +}; + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches a JSON array. + */ +export declare interface JsonArray extends Array { +} + +export declare type JsonBatchQuery = { + batch: JsonQuery[]; + transaction?: { + isolationLevel?: IsolationLevel; + }; +}; + +export declare interface JsonConvertible { + toJSON(): unknown; +} + +declare type JsonFieldSelection = { + arguments?: Record | RawTaggedValue; + selection: JsonSelectionSet; +}; + +declare class JsonNull extends NullTypesEnumValue { + private readonly _brand_JsonNull; +} + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches a JSON object. + * This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from. + */ +export declare type JsonObject = { + [Key in string]?: JsonValue; +}; + +export declare type JsonQuery = { + modelName?: string; + action: JsonQueryAction; + query: JsonFieldSelection; +}; + +declare type JsonQueryAction = 'findUnique' | 'findUniqueOrThrow' | 'findFirst' | 'findFirstOrThrow' | 'findMany' | 'createOne' | 'createMany' | 'createManyAndReturn' | 'updateOne' | 'updateMany' | 'updateManyAndReturn' | 'deleteOne' | 'deleteMany' | 'upsertOne' | 'aggregate' | 'groupBy' | 'executeRaw' | 'queryRaw' | 'runCommandRaw' | 'findRaw' | 'aggregateRaw'; + +declare type JsonSelectionSet = { + $scalars?: boolean; + $composites?: boolean; +} & { + [fieldName: string]: boolean | JsonFieldSelection; +}; + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches any valid JSON value. + */ +export declare type JsonValue = string | number | boolean | JsonObject | JsonArray | null; + +export declare type JsOutputValue = null | string | number | boolean | bigint | Uint8Array | Date | Decimal | JsOutputValue[] | { + [key: string]: JsOutputValue; +}; + +export declare type JsPromise = Promise & {}; + +declare type KnownErrorParams = { + code: string; + clientVersion: string; + meta?: Record; + batchRequestIdx?: number; +}; + +/** + * A pointer from the current {@link Span} to another span in the same trace or + * in a different trace. + * Few examples of Link usage. + * 1. Batch Processing: A batch of elements may contain elements associated + * with one or more traces/spans. Since there can only be one parent + * SpanContext, Link is used to keep reference to SpanContext of all + * elements in the batch. + * 2. Public Endpoint: A SpanContext in incoming client request on a public + * endpoint is untrusted from service provider perspective. In such case it + * is advisable to start a new trace with appropriate sampling decision. + * However, it is desirable to associate incoming SpanContext to new trace + * initiated on service provider side so two traces (from Client and from + * Service Provider) can be correlated. + */ +declare interface Link { + /** The {@link SpanContext} of a linked span. */ + context: SpanContext; + /** A set of {@link SpanAttributes} on the link. */ + attributes?: SpanAttributes; + /** Count of attributes of the link that were dropped due to collection limits */ + droppedAttributesCount?: number; +} + +declare type LoadedEnv = { + message?: string; + parsed: { + [x: string]: string; + }; +} | undefined; + +declare type LocationInFile = { + fileName: string; + lineNumber: number | null; + columnNumber: number | null; +}; + +declare type LogDefinition = { + level: LogLevel; + emit: 'stdout' | 'event'; +}; + +/** + * Typings for the events we emit. + * + * @remarks + * If this is updated, our edge runtime shim needs to be updated as well. + */ +declare type LogEmitter = { + on(event: E, listener: (event: EngineEvent) => void): LogEmitter; + emit(event: QueryEventType, payload: QueryEvent): boolean; + emit(event: LogEventType, payload: LogEvent): boolean; +}; + +declare type LogEvent = { + timestamp: Date; + message: string; + target: string; +}; + +declare type LogEventType = 'info' | 'warn' | 'error'; + +declare type LogLevel = 'info' | 'query' | 'warn' | 'error'; + +/** + * Generates more strict variant of an enum which, unlike regular enum, + * throws on non-existing property access. This can be useful in following situations: + * - we have an API, that accepts both `undefined` and `SomeEnumType` as an input + * - enum values are generated dynamically from DMMF. + * + * In that case, if using normal enums and no compile-time typechecking, using non-existing property + * will result in `undefined` value being used, which will be accepted. Using strict enum + * in this case will help to have a runtime exception, telling you that you are probably doing something wrong. + * + * Note: if you need to check for existence of a value in the enum you can still use either + * `in` operator or `hasOwnProperty` function. + * + * @param definition + * @returns + */ +export declare function makeStrictEnum>(definition: T): T; + +export declare function makeTypedQueryFactory(sql: string): (...values: any[]) => TypedSql; + +declare type Mappings = ReadonlyDeep_2<{ + modelOperations: ModelMapping[]; + otherOperations: { + read: string[]; + write: string[]; + }; +}>; + +/** + * Class that holds the list of all extensions, applied to particular instance, + * as well as resolved versions of the components that need to apply on + * different levels. Main idea of this class: avoid re-resolving as much of the + * stuff as possible when new extensions are added while also delaying the + * resolve until the point it is actually needed. For example, computed fields + * of the model won't be resolved unless the model is actually queried. Neither + * adding extensions with `client` component only cause other components to + * recompute. + */ +declare class MergedExtensionsList { + private head?; + private constructor(); + static empty(): MergedExtensionsList; + static single(extension: ExtensionArgs): MergedExtensionsList; + isEmpty(): boolean; + append(extension: ExtensionArgs): MergedExtensionsList; + getAllComputedFields(dmmfModelName: string): ComputedFieldsMap | undefined; + getAllClientExtensions(): ClientArg | undefined; + getAllModelExtensions(dmmfModelName: string): ModelArg | undefined; + getAllQueryCallbacks(jsModelName: string, operation: string): any; + getAllBatchQueryCallbacks(): BatchQueryOptionsCb[]; +} + +export declare type MergeExtArgs, Args extends Record> = ComputeDeep & AllModelsToStringIndex>; + +export declare type Metric = { + key: string; + value: T; + labels: Record; + description: string; +}; + +export declare type MetricHistogram = { + buckets: MetricHistogramBucket[]; + sum: number; + count: number; +}; + +export declare type MetricHistogramBucket = [maxValue: number, count: number]; + +export declare type Metrics = { + counters: Metric[]; + gauges: Metric[]; + histograms: Metric[]; +}; + +export declare class MetricsClient { + private _client; + constructor(client: Client); + /** + * Returns all metrics gathered up to this point in prometheus format. + * Result of this call can be exposed directly to prometheus scraping endpoint + * + * @param options + * @returns + */ + prometheus(options?: MetricsOptions): Promise; + /** + * Returns all metrics gathered up to this point in prometheus format. + * + * @param options + * @returns + */ + json(options?: MetricsOptions): Promise; +} + +declare type MetricsOptions = { + /** + * Labels to add to every metrics in key-value format + */ + globalLabels?: Record; +}; + +declare type MetricsOptionsCommon = { + globalLabels?: Record; +}; + +declare type MetricsOptionsJson = { + format: 'json'; +} & MetricsOptionsCommon; + +declare type MetricsOptionsPrometheus = { + format: 'prometheus'; +} & MetricsOptionsCommon; + +declare type MiddlewareArgsMapper = { + requestArgsToMiddlewareArgs(requestArgs: RequestArgs): MiddlewareArgs; + middlewareArgsToRequestArgs(middlewareArgs: MiddlewareArgs): RequestArgs; +}; + +declare class MiddlewareHandler { + private _middlewares; + use(middleware: M): void; + get(id: number): M | undefined; + has(id: number): boolean; + length(): number; +} + +declare type Model = ReadonlyDeep_2<{ + name: string; + dbName: string | null; + schema: string | null; + fields: Field[]; + uniqueFields: string[][]; + uniqueIndexes: uniqueIndex[]; + documentation?: string; + primaryKey: PrimaryKey | null; + isGenerated?: boolean; +}>; + +declare enum ModelAction { + findUnique = "findUnique", + findUniqueOrThrow = "findUniqueOrThrow", + findFirst = "findFirst", + findFirstOrThrow = "findFirstOrThrow", + findMany = "findMany", + create = "create", + createMany = "createMany", + createManyAndReturn = "createManyAndReturn", + update = "update", + updateMany = "updateMany", + updateManyAndReturn = "updateManyAndReturn", + upsert = "upsert", + delete = "delete", + deleteMany = "deleteMany", + groupBy = "groupBy", + count = "count",// TODO: count does not actually exist in DMMF + aggregate = "aggregate", + findRaw = "findRaw", + aggregateRaw = "aggregateRaw" +} + +export declare type ModelArg = { + [MethodName in string]: unknown; +}; + +export declare type ModelArgs = { + model: { + [ModelName in string]: ModelArg; + }; +}; + +export declare type ModelKey = M extends keyof TypeMap['model'] ? M : Capitalize; + +declare type ModelMapping = ReadonlyDeep_2<{ + model: string; + plural: string; + findUnique?: string | null; + findUniqueOrThrow?: string | null; + findFirst?: string | null; + findFirstOrThrow?: string | null; + findMany?: string | null; + create?: string | null; + createMany?: string | null; + createManyAndReturn?: string | null; + update?: string | null; + updateMany?: string | null; + updateManyAndReturn?: string | null; + upsert?: string | null; + delete?: string | null; + deleteMany?: string | null; + aggregate?: string | null; + groupBy?: string | null; + count?: string | null; + findRaw?: string | null; + aggregateRaw?: string | null; +}>; + +export declare type ModelQueryOptionsCb = (args: ModelQueryOptionsCbArgs) => Promise; + +export declare type ModelQueryOptionsCbArgs = { + model: string; + operation: string; + args: JsArgs; + query: (args: JsArgs) => Promise; +}; + +declare type MultiBatchResponse = { + type: 'multi'; + plans: object[]; +}; + +export declare type NameArgs = { + name?: string; +}; + +export declare type Narrow = { + [K in keyof A]: A[K] extends Function ? A[K] : Narrow; +} | (A extends Narrowable ? A : never); + +export declare type Narrowable = string | number | bigint | boolean | []; + +export declare type NeverToUnknown = [T] extends [never] ? unknown : T; + +declare class NullTypesEnumValue extends ObjectEnumValue { + _getNamespace(): string; +} + +/** + * Base class for unique values of object-valued enums. + */ +export declare abstract class ObjectEnumValue { + constructor(arg?: symbol); + abstract _getNamespace(): string; + _getName(): string; + toString(): string; +} + +export declare const objectEnumValues: { + classes: { + DbNull: typeof DbNull; + JsonNull: typeof JsonNull; + AnyNull: typeof AnyNull; + }; + instances: { + DbNull: DbNull; + JsonNull: JsonNull; + AnyNull: AnyNull; + }; +}; + +declare const officialPrismaAdapters: readonly ["@prisma/adapter-planetscale", "@prisma/adapter-neon", "@prisma/adapter-libsql", "@prisma/adapter-d1", "@prisma/adapter-pg", "@prisma/adapter-pg-worker"]; + +export declare type Omission = Record; + +declare type Omit_2 = { + [P in keyof T as P extends K ? never : P]: T[P]; +}; +export { Omit_2 as Omit } + +export declare type OmitValue = Key extends keyof Omit ? Omit[Key] : false; + +export declare type Operation = 'findFirst' | 'findFirstOrThrow' | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'updateManyAndReturn' | 'upsert' | 'delete' | 'deleteMany' | 'aggregate' | 'count' | 'groupBy' | '$queryRaw' | '$executeRaw' | '$queryRawUnsafe' | '$executeRawUnsafe' | 'findRaw' | 'aggregateRaw' | '$runCommandRaw'; + +export declare type OperationPayload = { + name: string; + scalars: { + [ScalarName in string]: unknown; + }; + objects: { + [ObjectName in string]: unknown; + }; + composites: { + [CompositeName in string]: unknown; + }; +}; + +export declare type Optional = { + [P in K & keyof O]?: O[P]; +} & { + [P in Exclude]: O[P]; +}; + +export declare type OptionalFlat = { + [K in keyof T]?: T[K]; +}; + +export declare type OptionalKeys = { + [K in keyof O]-?: {} extends Pick_2 ? K : never; +}[keyof O]; + +declare type Options = { + clientVersion: string; +}; + +export declare type Or = { + 0: { + 0: 0; + 1: 1; + }; + 1: { + 0: 1; + 1: 1; + }; +}[A][B]; + +declare type OtherOperationMappings = ReadonlyDeep_2<{ + read: string[]; + write: string[]; +}>; + +declare type OutputType = ReadonlyDeep_2<{ + name: string; + fields: SchemaField[]; +}>; + +declare type OutputTypeRef = TypeRef<'scalar' | 'outputObjectTypes' | 'enumTypes'>; + +export declare function Param<$Type, $Value extends string>(name: $Value): Param<$Type, $Value>; + +export declare type Param = { + readonly name: $Value; +}; + +export declare type PatchFlat = O1 & Omit_2; + +export declare type Path = O extends unknown ? P extends [infer K, ...infer R] ? K extends keyof O ? Path : Default : O : never; + +export declare type Payload = T extends { + [K: symbol]: { + types: { + payload: any; + }; + }; +} ? T[symbol]['types']['payload'] : any; + +export declare type PayloadToResult = RenameAndNestPayloadKeys

> = { + [K in keyof O]?: O[K][K] extends any[] ? PayloadToResult[] : O[K][K] extends object ? PayloadToResult : O[K][K]; +}; + +declare type Pick_2 = { + [P in keyof T as P extends K ? P : never]: T[P]; +}; +export { Pick_2 as Pick } + +declare type PrimaryKey = ReadonlyDeep_2<{ + name: string | null; + fields: string[]; +}>; + +export declare class PrismaClientInitializationError extends Error { + clientVersion: string; + errorCode?: string; + retryable?: boolean; + constructor(message: string, clientVersion: string, errorCode?: string); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientKnownRequestError extends Error implements ErrorWithBatchIndex { + code: string; + meta?: Record; + clientVersion: string; + batchRequestIdx?: number; + constructor(message: string, { code, clientVersion, meta, batchRequestIdx }: KnownErrorParams); + get [Symbol.toStringTag](): string; +} + +export declare type PrismaClientOptions = { + /** + * Overwrites the primary datasource url from your schema.prisma file + */ + datasourceUrl?: string; + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale. + */ + adapter?: SqlDriverAdapterFactory | null; + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources; + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat; + /** + * The default values for Transaction options + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: Transaction_2.Options; + /** + * @example + * \`\`\` + * // Defaults to stdout + * log: ['query', 'info', 'warn'] + * + * // Emit as events + * log: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * ] + * \`\`\` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: Array; + omit?: GlobalOmitOptions; + /** + * @internal + * You probably don't want to use this. \`__internal\` is used by internal tooling. + */ + __internal?: { + debug?: boolean; + engine?: { + cwd?: string; + binaryPath?: string; + endpoint?: string; + allowTriggerPanic?: boolean; + }; + /** This can be used for testing purposes */ + configOverride?: (config: GetPrismaClientConfig) => GetPrismaClientConfig; + }; +}; + +export declare class PrismaClientRustPanicError extends Error { + clientVersion: string; + constructor(message: string, clientVersion: string); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientUnknownRequestError extends Error implements ErrorWithBatchIndex { + clientVersion: string; + batchRequestIdx?: number; + constructor(message: string, { clientVersion, batchRequestIdx }: UnknownErrorParams); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientValidationError extends Error { + name: string; + clientVersion: string; + constructor(message: string, { clientVersion }: Options); + get [Symbol.toStringTag](): string; +} + +declare function prismaGraphQLToJSError({ error, user_facing_error }: RequestError, clientVersion: string, activeProvider: string): PrismaClientKnownRequestError | PrismaClientUnknownRequestError; + +declare type PrismaOperationSpec = { + args: TArgs; + action: TAction; + model: string; +}; + +export declare interface PrismaPromise extends Promise { + [Symbol.toStringTag]: 'PrismaPromise'; +} + +/** + * Prisma's `Promise` that is backwards-compatible. All additions on top of the + * original `Promise` are optional so that it can be backwards-compatible. + * @see [[createPrismaPromise]] + */ +declare interface PrismaPromise_2 = any> extends Promise { + get spec(): TSpec; + /** + * Extension of the original `.then` function + * @param onfulfilled same as regular promises + * @param onrejected same as regular promises + * @param transaction transaction options + */ + then(onfulfilled?: (value: TResult) => R1 | PromiseLike, onrejected?: (error: unknown) => R2 | PromiseLike, transaction?: PrismaPromiseTransaction): Promise; + /** + * Extension of the original `.catch` function + * @param onrejected same as regular promises + * @param transaction transaction options + */ + catch(onrejected?: ((reason: any) => R | PromiseLike) | undefined | null, transaction?: PrismaPromiseTransaction): Promise; + /** + * Extension of the original `.finally` function + * @param onfinally same as regular promises + * @param transaction transaction options + */ + finally(onfinally?: (() => void) | undefined | null, transaction?: PrismaPromiseTransaction): Promise; + /** + * Called when executing a batch of regular tx + * @param transaction transaction options for batch tx + */ + requestTransaction?(transaction: PrismaPromiseBatchTransaction): PromiseLike; +} + +declare type PrismaPromiseBatchTransaction = { + kind: 'batch'; + id: number; + isolationLevel?: IsolationLevel; + index: number; + lock: PromiseLike; +}; + +declare type PrismaPromiseCallback = (transaction?: PrismaPromiseTransaction) => Promise; + +/** + * Creates a [[PrismaPromise]]. It is Prisma's implementation of `Promise` which + * is essentially a proxy for `Promise`. All the transaction-compatible client + * methods return one, this allows for pre-preparing queries without executing + * them until `.then` is called. It's the foundation of Prisma's query batching. + * @param callback that will be wrapped within our promise implementation + * @see [[PrismaPromise]] + * @returns + */ +declare type PrismaPromiseFactory = >(callback: PrismaPromiseCallback, op?: T) => PrismaPromise_2; + +declare type PrismaPromiseInteractiveTransaction = { + kind: 'itx'; + id: string; + payload: PayloadType; +}; + +declare type PrismaPromiseTransaction = PrismaPromiseBatchTransaction | PrismaPromiseInteractiveTransaction; + +export declare const PrivateResultType: unique symbol; + +declare type Provider = 'mysql' | 'postgres' | 'sqlite'; + +declare namespace Public { + export { + validator + } +} +export { Public } + +declare namespace Public_2 { + export { + Args, + Result, + Payload, + PrismaPromise, + Operation, + Exact + } +} + +declare type Query = ReadonlyDeep_2<{ + name: string; + args: SchemaArg[]; + output: QueryOutput; +}>; + +declare interface Queryable extends AdapterInfo { + /** + * Execute a query and return its result. + */ + queryRaw(params: Query): Promise; + /** + * Execute a query and return the number of affected rows. + */ + executeRaw(params: Query): Promise; +} + +declare type QueryCompiler = { + compile(request: string): Promise; + compileBatch(batchRequest: string): Promise; +}; + +declare interface QueryCompilerConstructor { + new (options: QueryCompilerOptions): QueryCompiler; +} + +declare type QueryCompilerOptions = { + datamodel: string; + provider: Provider; + connectionInfo: ConnectionInfo; +}; + +declare type QueryEngineBatchGraphQLRequest = { + batch: QueryEngineRequest[]; + transaction?: boolean; + isolationLevel?: IsolationLevel; +}; + +declare type QueryEngineBatchRequest = QueryEngineBatchGraphQLRequest | JsonBatchQuery; + +declare type QueryEngineConfig = { + datamodel: string; + configDir: string; + logQueries: boolean; + ignoreEnvVarErrors: boolean; + datasourceOverrides: Record; + env: Record; + logLevel: QueryEngineLogLevel; + engineProtocol: QueryEngineProtocol; + enableTracing: boolean; +}; + +declare interface QueryEngineConstructor { + new (config: QueryEngineConfig, logger: (log: string) => void, adapter?: ErrorCapturingSqlDriverAdapter): QueryEngineInstance; +} + +declare type QueryEngineInstance = { + connect(headers: string, requestId: string): Promise; + disconnect(headers: string, requestId: string): Promise; + /** + * @param requestStr JSON.stringified `QueryEngineRequest | QueryEngineBatchRequest` + * @param headersStr JSON.stringified `QueryEngineRequestHeaders` + */ + query(requestStr: string, headersStr: string, transactionId: string | undefined, requestId: string): Promise; + sdlSchema?(): Promise; + startTransaction(options: string, traceHeaders: string, requestId: string): Promise; + commitTransaction(id: string, traceHeaders: string, requestId: string): Promise; + rollbackTransaction(id: string, traceHeaders: string, requestId: string): Promise; + metrics?(options: string): Promise; + applyPendingMigrations?(): Promise; + trace(requestId: string): Promise; +}; + +declare type QueryEngineLogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'off'; + +declare type QueryEngineProtocol = 'graphql' | 'json'; + +declare type QueryEngineRequest = { + query: string; + variables: Object; +}; + +declare type QueryEngineResultData = { + data: T; +}; + +declare type QueryEvent = { + timestamp: Date; + query: string; + params: string; + duration: number; + target: string; +}; + +declare type QueryEventType = 'query'; + +declare type QueryIntrospectionBuiltinType = 'int' | 'bigint' | 'float' | 'double' | 'string' | 'enum' | 'bytes' | 'bool' | 'char' | 'decimal' | 'json' | 'xml' | 'uuid' | 'datetime' | 'date' | 'time' | 'int-array' | 'bigint-array' | 'float-array' | 'double-array' | 'string-array' | 'char-array' | 'bytes-array' | 'bool-array' | 'decimal-array' | 'json-array' | 'xml-array' | 'uuid-array' | 'datetime-array' | 'date-array' | 'time-array' | 'null' | 'unknown'; + +declare type QueryMiddleware = (params: QueryMiddlewareParams, next: (params: QueryMiddlewareParams) => Promise) => Promise; + +declare type QueryMiddlewareParams = { + /** The model this is executed on */ + model?: string; + /** The action that is being handled */ + action: Action; + /** TODO what is this */ + dataPath: string[]; + /** TODO what is this */ + runInTransaction: boolean; + args?: UserArgs_2; +}; + +export declare type QueryOptions = { + query: { + [ModelName in string]: { + [ModelAction in string]: ModelQueryOptionsCb; + } | QueryOptionsCb; + }; +}; + +export declare type QueryOptionsCb = (args: QueryOptionsCbArgs) => Promise; + +export declare type QueryOptionsCbArgs = { + model?: string; + operation: string; + args: JsArgs | RawQueryArgs; + query: (args: JsArgs | RawQueryArgs) => Promise; +}; + +declare type QueryOutput = ReadonlyDeep_2<{ + name: string; + isRequired: boolean; + isList: boolean; +}>; + +/** + * Create raw SQL statement. + */ +export declare function raw(value: string): Sql; + +export declare type RawParameters = { + __prismaRawParameters__: true; + values: string; +}; + +export declare type RawQueryArgs = Sql | UnknownTypedSql | [query: string, ...values: RawValue[]]; + +declare type RawResponse = { + columns: string[]; + types: QueryIntrospectionBuiltinType[]; + rows: unknown[][]; +}; + +declare type RawTaggedValue = { + $type: 'Raw'; + value: unknown; +}; + +/** + * Supported value or SQL instance. + */ +export declare type RawValue = Value | Sql; + +export declare type ReadonlyDeep = { + readonly [K in keyof T]: ReadonlyDeep; +}; + +declare type ReadonlyDeep_2 = { + +readonly [K in keyof O]: ReadonlyDeep_2; +}; + +declare type Record_2 = { + [P in T]: U; +}; +export { Record_2 as Record } + +export declare type RenameAndNestPayloadKeys

= { + [K in keyof P as K extends 'scalars' | 'objects' | 'composites' ? keyof P[K] : never]: P[K]; +}; + +declare type RequestBatchOptions = { + transaction?: TransactionOptions_3; + traceparent?: string; + numTry?: number; + containsWrite: boolean; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare interface RequestError { + error: string; + user_facing_error: { + is_panic: boolean; + message: string; + meta?: Record; + error_code?: string; + batch_request_idx?: number; + }; +} + +declare class RequestHandler { + client: Client; + dataloader: DataLoader; + private logEmitter?; + constructor(client: Client, logEmitter?: LogEmitter); + request(params: RequestParams): Promise; + mapQueryEngineResult({ dataPath, unpacker }: RequestParams, response: QueryEngineResultData): any; + /** + * Handles the error and logs it, logging the error is done synchronously waiting for the event + * handlers to finish. + */ + handleAndLogRequestError(params: HandleErrorParams): never; + handleRequestError({ error, clientMethod, callsite, transaction, args, modelName, globalOmit, }: HandleErrorParams): never; + sanitizeMessage(message: any): any; + unpack(data: unknown, dataPath: string[], unpacker?: Unpacker): any; + get [Symbol.toStringTag](): string; +} + +declare type RequestOptions = { + traceparent?: string; + numTry?: number; + interactiveTransaction?: InteractiveTransactionOptions; + isWrite: boolean; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type RequestParams = { + modelName?: string; + action: Action; + protocolQuery: JsonQuery; + dataPath: string[]; + clientMethod: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + extensions: MergedExtensionsList; + args?: any; + headers?: Record; + unpacker?: Unpacker; + otelParentCtx?: Context; + otelChildCtx?: Context; + globalOmit?: GlobalOmitOptions; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type RequiredExtensionArgs = NameArgs & ResultArgs & ModelArgs & ClientArgs & QueryOptions; +export { RequiredExtensionArgs } +export { RequiredExtensionArgs as UserArgs } + +export declare type RequiredKeys = { + [K in keyof O]-?: {} extends Pick_2 ? never : K; +}[keyof O]; + +declare function resolveDatasourceUrl({ inlineDatasources, overrideDatasources, env, clientVersion, }: { + inlineDatasources: GetPrismaClientConfig['inlineDatasources']; + overrideDatasources: Datasources; + env: Record; + clientVersion: string; +}): string; + +export declare type Result = T extends { + [K: symbol]: { + types: { + payload: any; + }; + }; +} ? GetResult : GetResult<{ + composites: {}; + objects: {}; + scalars: {}; + name: ''; +}, {}, F>; + +export declare type Result_2 = Result; + +declare namespace Result_3 { + export { + Count, + GetFindResult, + SelectablePayloadFields, + SelectField, + DefaultSelection, + UnwrapPayload, + ApplyOmit, + OmitValue, + GetCountResult, + Aggregate, + GetAggregateResult, + GetBatchResult, + GetGroupByResult, + GetResult, + ExtractGlobalOmit + } +} + +declare type Result_4 = { + map(fn: (value: T) => U): Result_4; + flatMap(fn: (value: T) => Result_4): Result_4; +} & ({ + readonly ok: true; + readonly value: T; +} | { + readonly ok: false; + readonly error: Error_2; +}); + +export declare type ResultArg = { + [FieldName in string]: ResultFieldDefinition; +}; + +export declare type ResultArgs = { + result: { + [ModelName in string]: ResultArg; + }; +}; + +export declare type ResultArgsFieldCompute = (model: any) => unknown; + +export declare type ResultFieldDefinition = { + needs?: { + [FieldName in string]: boolean; + }; + compute: ResultArgsFieldCompute; +}; + +export declare type Return = T extends (...args: any[]) => infer R ? R : T; + +export declare type RuntimeDataModel = { + readonly models: Record; + readonly enums: Record; + readonly types: Record; +}; + +declare type RuntimeEnum = Omit; + +declare type RuntimeModel = Omit; + +declare type RuntimeName = 'workerd' | 'deno' | 'netlify' | 'node' | 'bun' | 'edge-light' | ''; + +declare type Schema = ReadonlyDeep_2<{ + rootQueryType?: string; + rootMutationType?: string; + inputObjectTypes: { + model?: InputType[]; + prisma: InputType[]; + }; + outputObjectTypes: { + model: OutputType[]; + prisma: OutputType[]; + }; + enumTypes: { + model?: SchemaEnum[]; + prisma: SchemaEnum[]; + }; + fieldRefTypes: { + prisma?: FieldRefType[]; + }; +}>; + +declare type SchemaArg = ReadonlyDeep_2<{ + name: string; + comment?: string; + isNullable: boolean; + isRequired: boolean; + inputTypes: InputTypeRef[]; + deprecation?: Deprecation; +}>; + +declare type SchemaEnum = ReadonlyDeep_2<{ + name: string; + values: string[]; +}>; + +declare type SchemaField = ReadonlyDeep_2<{ + name: string; + isNullable?: boolean; + outputType: OutputTypeRef; + args: SchemaArg[]; + deprecation?: Deprecation; + documentation?: string; +}>; + +export declare type Select = T extends U ? T : never; + +export declare type SelectablePayloadFields = { + objects: { + [k in K]: O; + }; +} | { + composites: { + [k in K]: O; + }; +}; + +export declare type SelectField

, K extends PropertyKey> = P extends { + objects: Record; +} ? P['objects'][K] : P extends { + composites: Record; +} ? P['composites'][K] : never; + +declare type Selection_2 = Record; +export { Selection_2 as Selection } + +export declare function serializeJsonQuery({ modelName, action, args, runtimeDataModel, extensions, callsite, clientMethod, errorFormat, clientVersion, previewFeatures, globalOmit, }: SerializeParams): JsonQuery; + +declare type SerializeParams = { + runtimeDataModel: RuntimeDataModel; + modelName?: string; + action: Action; + args?: JsArgs; + extensions?: MergedExtensionsList; + callsite?: CallSite; + clientMethod: string; + clientVersion: string; + errorFormat: ErrorFormat; + previewFeatures: string[]; + globalOmit?: GlobalOmitOptions; +}; + +declare class Skip { + constructor(param?: symbol); + ifUndefined(value: T | undefined): T | Skip; +} + +export declare const skip: Skip; + +declare type SortOrder = 'asc' | 'desc'; + +/** + * An interface that represents a span. A span represents a single operation + * within a trace. Examples of span might include remote procedure calls or a + * in-process function calls to sub-components. A Trace has a single, top-level + * "root" Span that in turn may have zero or more child Spans, which in turn + * may have children. + * + * Spans are created by the {@link Tracer.startSpan} method. + */ +declare interface Span { + /** + * Returns the {@link SpanContext} object associated with this Span. + * + * Get an immutable, serializable identifier for this span that can be used + * to create new child spans. Returned SpanContext is usable even after the + * span ends. + * + * @returns the SpanContext object associated with this Span. + */ + spanContext(): SpanContext; + /** + * Sets an attribute to the span. + * + * Sets a single Attribute with the key and value passed as arguments. + * + * @param key the key for this attribute. + * @param value the value for this attribute. Setting a value null or + * undefined is invalid and will result in undefined behavior. + */ + setAttribute(key: string, value: SpanAttributeValue): this; + /** + * Sets attributes to the span. + * + * @param attributes the attributes that will be added. + * null or undefined attribute values + * are invalid and will result in undefined behavior. + */ + setAttributes(attributes: SpanAttributes): this; + /** + * Adds an event to the Span. + * + * @param name the name of the event. + * @param [attributesOrStartTime] the attributes that will be added; these are + * associated with this event. Can be also a start time + * if type is {@type TimeInput} and 3rd param is undefined + * @param [startTime] start time of the event. + */ + addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this; + /** + * Adds a single link to the span. + * + * Links added after the creation will not affect the sampling decision. + * It is preferred span links be added at span creation. + * + * @param link the link to add. + */ + addLink(link: Link): this; + /** + * Adds multiple links to the span. + * + * Links added after the creation will not affect the sampling decision. + * It is preferred span links be added at span creation. + * + * @param links the links to add. + */ + addLinks(links: Link[]): this; + /** + * Sets a status to the span. If used, this will override the default Span + * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value + * of previous calls to SetStatus on the Span. + * + * @param status the SpanStatus to set. + */ + setStatus(status: SpanStatus): this; + /** + * Updates the Span name. + * + * This will override the name provided via {@link Tracer.startSpan}. + * + * Upon this update, any sampling behavior based on Span name will depend on + * the implementation. + * + * @param name the Span name. + */ + updateName(name: string): this; + /** + * Marks the end of Span execution. + * + * Call to End of a Span MUST not have any effects on child spans. Those may + * still be running and can be ended later. + * + * Do not return `this`. The Span generally should not be used after it + * is ended so chaining is not desired in this context. + * + * @param [endTime] the time to set as Span's end time. If not provided, + * use the current time as the span's end time. + */ + end(endTime?: TimeInput): void; + /** + * Returns the flag whether this span will be recorded. + * + * @returns true if this Span is active and recording information like events + * with the `AddEvent` operation and attributes using `setAttributes`. + */ + isRecording(): boolean; + /** + * Sets exception as a span event + * @param exception the exception the only accepted values are string or Error + * @param [time] the time to set as Span's event time. If not provided, + * use the current time. + */ + recordException(exception: Exception, time?: TimeInput): void; +} + +/** + * @deprecated please use {@link Attributes} + */ +declare type SpanAttributes = Attributes; + +/** + * @deprecated please use {@link AttributeValue} + */ +declare type SpanAttributeValue = AttributeValue; + +declare type SpanCallback = (span?: Span, context?: Context) => R; + +/** + * A SpanContext represents the portion of a {@link Span} which must be + * serialized and propagated along side of a {@link Baggage}. + */ +declare interface SpanContext { + /** + * The ID of the trace that this span belongs to. It is worldwide unique + * with practically sufficient probability by being made as 16 randomly + * generated bytes, encoded as a 32 lowercase hex characters corresponding to + * 128 bits. + */ + traceId: string; + /** + * The ID of the Span. It is globally unique with practically sufficient + * probability by being made as 8 randomly generated bytes, encoded as a 16 + * lowercase hex characters corresponding to 64 bits. + */ + spanId: string; + /** + * Only true if the SpanContext was propagated from a remote parent. + */ + isRemote?: boolean; + /** + * Trace flags to propagate. + * + * It is represented as 1 byte (bitmap). Bit to represent whether trace is + * sampled or not. When set, the least significant bit documents that the + * caller may have recorded trace data. A caller who does not record trace + * data out-of-band leaves this flag unset. + * + * see {@link TraceFlags} for valid flag values. + */ + traceFlags: number; + /** + * Tracing-system-specific info to propagate. + * + * The tracestate field value is a `list` as defined below. The `list` is a + * series of `list-members` separated by commas `,`, and a list-member is a + * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs + * surrounding `list-members` are ignored. There can be a maximum of 32 + * `list-members` in a `list`. + * More Info: https://www.w3.org/TR/trace-context/#tracestate-field + * + * Examples: + * Single tracing system (generic format): + * tracestate: rojo=00f067aa0ba902b7 + * Multiple tracing systems (with different formatting): + * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE + */ + traceState?: TraceState; +} + +declare enum SpanKind { + /** Default value. Indicates that the span is used internally. */ + INTERNAL = 0, + /** + * Indicates that the span covers server-side handling of an RPC or other + * remote request. + */ + SERVER = 1, + /** + * Indicates that the span covers the client-side wrapper around an RPC or + * other remote request. + */ + CLIENT = 2, + /** + * Indicates that the span describes producer sending a message to a + * broker. Unlike client and server, there is no direct critical path latency + * relationship between producer and consumer spans. + */ + PRODUCER = 3, + /** + * Indicates that the span describes consumer receiving a message from a + * broker. Unlike client and server, there is no direct critical path latency + * relationship between producer and consumer spans. + */ + CONSUMER = 4 +} + +/** + * Options needed for span creation + */ +declare interface SpanOptions { + /** + * The SpanKind of a span + * @default {@link SpanKind.INTERNAL} + */ + kind?: SpanKind; + /** A span's attributes */ + attributes?: SpanAttributes; + /** {@link Link}s span to other spans */ + links?: Link[]; + /** A manually specified start time for the created `Span` object. */ + startTime?: TimeInput; + /** The new span should be a root span. (Ignore parent from context). */ + root?: boolean; +} + +declare interface SpanStatus { + /** The status code of this message. */ + code: SpanStatusCode; + /** A developer-facing error message. */ + message?: string; +} + +/** + * An enumeration of status codes. + */ +declare enum SpanStatusCode { + /** + * The default status. + */ + UNSET = 0, + /** + * The operation has been validated by an Application developer or + * Operator to have completed successfully. + */ + OK = 1, + /** + * The operation contains an error. + */ + ERROR = 2 +} + +/** + * A SQL instance can be nested within each other to build SQL strings. + */ +export declare class Sql { + readonly values: Value[]; + readonly strings: string[]; + constructor(rawStrings: readonly string[], rawValues: readonly RawValue[]); + get sql(): string; + get statement(): string; + get text(): string; + inspect(): { + sql: string; + statement: string; + text: string; + values: unknown[]; + }; +} + +declare interface SqlDriverAdapter extends SqlQueryable { + /** + * Execute multiple SQL statements separated by semicolon. + */ + executeScript(script: string): Promise; + /** + * Start new transaction. + */ + startTransaction(isolationLevel?: IsolationLevel): Promise; + /** + * Optional method that returns extra connection info + */ + getConnectionInfo?(): ConnectionInfo; + /** + * Dispose of the connection and release any resources. + */ + dispose(): Promise; +} + +export declare interface SqlDriverAdapterFactory extends DriverAdapterFactory { + connect(): Promise; +} + +declare type SqlQuery = { + sql: string; + args: Array; + argTypes: Array; +}; + +declare interface SqlQueryable extends Queryable { +} + +declare interface SqlResultSet { + /** + * List of column types appearing in a database query, in the same order as `columnNames`. + * They are used within the Query Engine to convert values from JS to Quaint values. + */ + columnTypes: Array; + /** + * List of column names appearing in a database query, in the same order as `columnTypes`. + */ + columnNames: Array; + /** + * List of rows retrieved from a database query. + * Each row is a list of values, whose length matches `columnNames` and `columnTypes`. + */ + rows: Array>; + /** + * The last ID of an `INSERT` statement, if any. + * This is required for `AUTO_INCREMENT` columns in databases based on MySQL and SQLite. + */ + lastInsertId?: string; +} + +/** + * Create a SQL object from a template string. + */ +export declare function sqltag(strings: readonly string[], ...values: readonly RawValue[]): Sql; + +/** + * Defines TimeInput. + * + * hrtime, epoch milliseconds, performance.now() or Date + */ +declare type TimeInput = HrTime_2 | number | Date; + +export declare type ToTuple = T extends any[] ? T : [T]; + +declare interface TraceState { + /** + * Create a new TraceState which inherits from this TraceState and has the + * given key set. + * The new entry will always be added in the front of the list of states. + * + * @param key key of the TraceState entry. + * @param value value of the TraceState entry. + */ + set(key: string, value: string): TraceState; + /** + * Return a new TraceState which inherits from this TraceState but does not + * contain the given key. + * + * @param key the key for the TraceState entry to be removed. + */ + unset(key: string): TraceState; + /** + * Returns the value to which the specified key is mapped, or `undefined` if + * this map contains no mapping for the key. + * + * @param key with which the specified value is to be associated. + * @returns the value to which the specified key is mapped, or `undefined` if + * this map contains no mapping for the key. + */ + get(key: string): string | undefined; + /** + * Serializes the TraceState to a `list` as defined below. The `list` is a + * series of `list-members` separated by commas `,`, and a list-member is a + * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs + * surrounding `list-members` are ignored. There can be a maximum of 32 + * `list-members` in a `list`. + * + * @returns the serialized string. + */ + serialize(): string; +} + +declare interface TracingHelper { + isEnabled(): boolean; + getTraceParent(context?: Context): string; + dispatchEngineSpans(spans: EngineSpan[]): void; + getActiveContext(): Context | undefined; + runInChildSpan(nameOrOptions: string | ExtendedSpanOptions, callback: SpanCallback): R; +} + +declare interface Transaction extends AdapterInfo, SqlQueryable { + /** + * Transaction options. + */ + readonly options: TransactionOptions; + /** + * Commit the transaction. + */ + commit(): Promise; + /** + * Roll back the transaction. + */ + rollback(): Promise; +} + +declare namespace Transaction_2 { + export { + TransactionOptions_2 as Options, + InteractiveTransactionInfo, + TransactionHeaders + } +} + +declare type TransactionHeaders = { + traceparent?: string; +}; + +declare type TransactionOptions = { + usePhantomQuery: boolean; +}; + +declare type TransactionOptions_2 = { + maxWait?: number; + timeout?: number; + isolationLevel?: IsolationLevel; +}; + +declare type TransactionOptions_3 = { + kind: 'itx'; + options: InteractiveTransactionOptions; +} | { + kind: 'batch'; + options: BatchTransactionOptions; +}; + +export declare class TypedSql { + [PrivateResultType]: Result; + constructor(sql: string, values: Values); + get sql(): string; + get values(): Values; +} + +export declare type TypeMapCbDef = Fn<{ + extArgs: InternalArgs; +}, TypeMapDef>; + +/** Shared */ +export declare type TypeMapDef = Record; + +declare type TypeRef = { + isList: boolean; + type: string; + location: AllowedLocations; + namespace?: FieldNamespace; +}; + +declare namespace Types { + export { + Result_3 as Result, + Extensions_2 as Extensions, + Utils, + Public_2 as Public, + isSkip, + Skip, + skip, + UnknownTypedSql, + OperationPayload as Payload + } +} +export { Types } + +declare type uniqueIndex = ReadonlyDeep_2<{ + name: string; + fields: string[]; +}>; + +declare type UnknownErrorParams = { + clientVersion: string; + batchRequestIdx?: number; +}; + +export declare type UnknownTypedSql = TypedSql; + +declare type Unpacker = (data: any) => any; + +export declare type UnwrapPayload

= {} extends P ? unknown : { + [K in keyof P]: P[K] extends { + scalars: infer S; + composites: infer C; + }[] ? Array> : P[K] extends { + scalars: infer S; + composites: infer C; + } | null ? S & UnwrapPayload | Select : never; +}; + +export declare type UnwrapPromise

= P extends Promise ? R : P; + +export declare type UnwrapTuple = { + [K in keyof Tuple]: K extends `${number}` ? Tuple[K] extends PrismaPromise ? X : UnwrapPromise : UnwrapPromise; +}; + +/** + * Input that flows from the user into the Client. + */ +declare type UserArgs_2 = any; + +declare namespace Utils { + export { + EmptyToUnknown, + NeverToUnknown, + PatchFlat, + Omit_2 as Omit, + Pick_2 as Pick, + ComputeDeep, + Compute, + OptionalFlat, + ReadonlyDeep, + Narrowable, + Narrow, + Exact, + Cast, + Record_2 as Record, + UnwrapPromise, + UnwrapTuple, + Path, + Fn, + Call, + RequiredKeys, + OptionalKeys, + Optional, + Return, + ToTuple, + RenameAndNestPayloadKeys, + PayloadToResult, + Select, + Equals, + Or, + JsPromise + } +} + +declare function validator(): (select: Exact) => S; + +declare function validator, O extends keyof C[M] & Operation>(client: C, model: M, operation: O): (select: Exact>) => S; + +declare function validator, O extends keyof C[M] & Operation, P extends keyof Args>(client: C, model: M, operation: O, prop: P): (select: Exact[P]>) => S; + +/** + * Values supported by SQL engine. + */ +export declare type Value = unknown; + +export declare function warnEnvConflicts(envPaths: any): void; + +export declare const warnOnce: (key: string, message: string, ...args: unknown[]) => void; + +export { } diff --git a/lib/generated/prisma/runtime/library.js b/lib/generated/prisma/runtime/library.js new file mode 100644 index 0000000..6d574e4 --- /dev/null +++ b/lib/generated/prisma/runtime/library.js @@ -0,0 +1,143 @@ +"use strict";var bu=Object.create;var qt=Object.defineProperty;var Eu=Object.getOwnPropertyDescriptor;var wu=Object.getOwnPropertyNames;var xu=Object.getPrototypeOf,vu=Object.prototype.hasOwnProperty;var Do=(e,r)=>()=>(e&&(r=e(e=0)),r);var ne=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),tr=(e,r)=>{for(var t in r)qt(e,t,{get:r[t],enumerable:!0})},_o=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of wu(r))!vu.call(e,i)&&i!==t&&qt(e,i,{get:()=>r[i],enumerable:!(n=Eu(r,i))||n.enumerable});return e};var k=(e,r,t)=>(t=e!=null?bu(xu(e)):{},_o(r||!e||!e.__esModule?qt(t,"default",{value:e,enumerable:!0}):t,e)),Pu=e=>_o(qt({},"__esModule",{value:!0}),e);var mi=ne((_g,ss)=>{"use strict";ss.exports=(e,r=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",n=r.indexOf(t+e),i=r.indexOf("--");return n!==-1&&(i===-1||n{"use strict";var Mc=require("node:os"),as=require("node:tty"),de=mi(),{env:G}=process,Qe;de("no-color")||de("no-colors")||de("color=false")||de("color=never")?Qe=0:(de("color")||de("colors")||de("color=true")||de("color=always"))&&(Qe=1);"FORCE_COLOR"in G&&(G.FORCE_COLOR==="true"?Qe=1:G.FORCE_COLOR==="false"?Qe=0:Qe=G.FORCE_COLOR.length===0?1:Math.min(parseInt(G.FORCE_COLOR,10),3));function fi(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function gi(e,r){if(Qe===0)return 0;if(de("color=16m")||de("color=full")||de("color=truecolor"))return 3;if(de("color=256"))return 2;if(e&&!r&&Qe===void 0)return 0;let t=Qe||0;if(G.TERM==="dumb")return t;if(process.platform==="win32"){let n=Mc.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in G)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in G)||G.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in G)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(G.TEAMCITY_VERSION)?1:0;if(G.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in G){let n=parseInt((G.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(G.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(G.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(G.TERM)||"COLORTERM"in G?1:t}function $c(e){let r=gi(e,e&&e.isTTY);return fi(r)}ls.exports={supportsColor:$c,stdout:fi(gi(!0,as.isatty(1))),stderr:fi(gi(!0,as.isatty(2)))}});var ds=ne((Lg,ps)=>{"use strict";var qc=us(),br=mi();function cs(e){if(/^\d{3,4}$/.test(e)){let t=/(\d{1,2})(\d{2})/.exec(e)||[];return{major:0,minor:parseInt(t[1],10),patch:parseInt(t[2],10)}}let r=(e||"").split(".").map(t=>parseInt(t,10));return{major:r[0],minor:r[1],patch:r[2]}}function hi(e){let{CI:r,FORCE_HYPERLINK:t,NETLIFY:n,TEAMCITY_VERSION:i,TERM_PROGRAM:o,TERM_PROGRAM_VERSION:s,VTE_VERSION:a,TERM:l}=process.env;if(t)return!(t.length>0&&parseInt(t,10)===0);if(br("no-hyperlink")||br("no-hyperlinks")||br("hyperlink=false")||br("hyperlink=never"))return!1;if(br("hyperlink=true")||br("hyperlink=always")||n)return!0;if(!qc.supportsColor(e)||e&&!e.isTTY)return!1;if("WT_SESSION"in process.env)return!0;if(process.platform==="win32"||r||i)return!1;if(o){let u=cs(s||"");switch(o){case"iTerm.app":return u.major===3?u.minor>=1:u.major>3;case"WezTerm":return u.major>=20200620;case"vscode":return u.major>1||u.major===1&&u.minor>=72;case"ghostty":return!0}}if(a){if(a==="0.50.0")return!1;let u=cs(a);return u.major>0||u.minor>=50}switch(l){case"alacritty":return!0}return!1}ps.exports={supportsHyperlink:hi,stdout:hi(process.stdout),stderr:hi(process.stderr)}});var ms=ne((Hg,jc)=>{jc.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Ei=ne((zg,Uc)=>{Uc.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var wi=ne(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.enginesVersion=void 0;Xt.enginesVersion=Ei().prisma.enginesVersion});var bs=ne((hh,ys)=>{"use strict";ys.exports=e=>{let r=e.match(/^[ \t]*(?=\S)/gm);return r?r.reduce((t,n)=>Math.min(t,n.length),1/0):0}});var Ri=ne((Eh,xs)=>{"use strict";xs.exports=(e,r=1,t)=>{if(t={indent:" ",includeEmptyLines:!1,...t},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof r!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof r}\``);if(typeof t.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof t.indent}\``);if(r===0)return e;let n=t.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,t.indent.repeat(r))}});var Ss=ne((vh,Ts)=>{"use strict";Ts.exports=({onlyFirst:e=!1}={})=>{let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}});var ki=ne((Ph,Rs)=>{"use strict";var Xc=Ss();Rs.exports=e=>typeof e=="string"?e.replace(Xc(),""):e});var Cs=ne((Ch,ep)=>{ep.exports={name:"dotenv",version:"16.4.7",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var Os=ne((Ah,Ne)=>{"use strict";var Di=require("node:fs"),_i=require("node:path"),rp=require("node:os"),tp=require("node:crypto"),np=Cs(),Ni=np.version,ip=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function op(e){let r={},t=e.toString();t=t.replace(/\r\n?/mg,` +`);let n;for(;(n=ip.exec(t))!=null;){let i=n[1],o=n[2]||"";o=o.trim();let s=o[0];o=o.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),s==='"'&&(o=o.replace(/\\n/g,` +`),o=o.replace(/\\r/g,"\r")),r[i]=o}return r}function sp(e){let r=ks(e),t=B.configDotenv({path:r});if(!t.parsed){let s=new Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`);throw s.code="MISSING_DATA",s}let n=Is(e).split(","),i=n.length,o;for(let s=0;s=i)throw a}return B.parse(o)}function ap(e){console.log(`[dotenv@${Ni}][INFO] ${e}`)}function lp(e){console.log(`[dotenv@${Ni}][WARN] ${e}`)}function tn(e){console.log(`[dotenv@${Ni}][DEBUG] ${e}`)}function Is(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function up(e,r){let t;try{t=new URL(r)}catch(a){if(a.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw a}let n=t.password;if(!n){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let i=t.searchParams.get("environment");if(!i){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let o=`DOTENV_VAULT_${i.toUpperCase()}`,s=e.parsed[o];if(!s){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:s,key:n}}function ks(e){let r=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let t of e.path)Di.existsSync(t)&&(r=t.endsWith(".vault")?t:`${t}.vault`);else r=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else r=_i.resolve(process.cwd(),".env.vault");return Di.existsSync(r)?r:null}function As(e){return e[0]==="~"?_i.join(rp.homedir(),e.slice(1)):e}function cp(e){ap("Loading env from encrypted .env.vault");let r=B._parseVault(e),t=process.env;return e&&e.processEnv!=null&&(t=e.processEnv),B.populate(t,r,e),{parsed:r}}function pp(e){let r=_i.resolve(process.cwd(),".env"),t="utf8",n=!!(e&&e.debug);e&&e.encoding?t=e.encoding:n&&tn("No encoding is specified. UTF-8 is used by default");let i=[r];if(e&&e.path)if(!Array.isArray(e.path))i=[As(e.path)];else{i=[];for(let l of e.path)i.push(As(l))}let o,s={};for(let l of i)try{let u=B.parse(Di.readFileSync(l,{encoding:t}));B.populate(s,u,e)}catch(u){n&&tn(`Failed to load ${l} ${u.message}`),o=u}let a=process.env;return e&&e.processEnv!=null&&(a=e.processEnv),B.populate(a,s,e),o?{parsed:s,error:o}:{parsed:s}}function dp(e){if(Is(e).length===0)return B.configDotenv(e);let r=ks(e);return r?B._configVault(e):(lp(`You set DOTENV_KEY but you are missing a .env.vault file at ${r}. Did you forget to build it?`),B.configDotenv(e))}function mp(e,r){let t=Buffer.from(r.slice(-64),"hex"),n=Buffer.from(e,"base64"),i=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let s=tp.createDecipheriv("aes-256-gcm",t,i);return s.setAuthTag(o),`${s.update(n)}${s.final()}`}catch(s){let a=s instanceof RangeError,l=s.message==="Invalid key length",u=s.message==="Unsupported state or unable to authenticate data";if(a||l){let c=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw c.code="INVALID_DOTENV_KEY",c}else if(u){let c=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw c.code="DECRYPTION_FAILED",c}else throw s}}function fp(e,r,t={}){let n=!!(t&&t.debug),i=!!(t&&t.override);if(typeof r!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(r))Object.prototype.hasOwnProperty.call(e,o)?(i===!0&&(e[o]=r[o]),n&&tn(i===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=r[o]}var B={configDotenv:pp,_configVault:cp,_parseVault:sp,config:dp,decrypt:mp,parse:op,populate:fp};Ne.exports.configDotenv=B.configDotenv;Ne.exports._configVault=B._configVault;Ne.exports._parseVault=B._parseVault;Ne.exports.config=B.config;Ne.exports.decrypt=B.decrypt;Ne.exports.parse=B.parse;Ne.exports.populate=B.populate;Ne.exports=B});var Ls=ne((Nh,on)=>{"use strict";on.exports=(e={})=>{let r;if(e.repoUrl)r=e.repoUrl;else if(e.user&&e.repo)r=`https://github.com/${e.user}/${e.repo}`;else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options");let t=new URL(`${r}/issues/new`),n=["body","title","labels","template","milestone","assignee","projects"];for(let i of n){let o=e[i];if(o!==void 0){if(i==="labels"||i==="projects"){if(!Array.isArray(o))throw new TypeError(`The \`${i}\` option should be an array`);o=o.join(",")}t.searchParams.set(i,o)}}return t.toString()};on.exports.default=on.exports});var Qi=ne((pb,ia)=>{"use strict";ia.exports=function(){function e(r,t,n,i,o){return rn?n+1:r+1:i===o?t:t+1}return function(r,t){if(r===t)return 0;if(r.length>t.length){var n=r;r=t,t=n}for(var i=r.length,o=t.length;i>0&&r.charCodeAt(i-1)===t.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict"});var ca=Do(()=>{"use strict"});var Vf={};tr(Vf,{DMMF:()=>lt,Debug:()=>N,Decimal:()=>ve,Extensions:()=>ei,MetricsClient:()=>Lr,PrismaClientInitializationError:()=>T,PrismaClientKnownRequestError:()=>z,PrismaClientRustPanicError:()=>le,PrismaClientUnknownRequestError:()=>j,PrismaClientValidationError:()=>Z,Public:()=>ri,Sql:()=>oe,createParam:()=>Ra,defineDmmfProperty:()=>Da,deserializeJsonResponse:()=>Tr,deserializeRawResult:()=>Yn,dmmfToRuntimeDataModel:()=>Zs,empty:()=>La,getPrismaClient:()=>gu,getRuntime:()=>qn,join:()=>Na,makeStrictEnum:()=>hu,makeTypedQueryFactory:()=>_a,objectEnumValues:()=>Sn,raw:()=>eo,serializeJsonQuery:()=>Dn,skip:()=>On,sqltag:()=>ro,warnEnvConflicts:()=>yu,warnOnce:()=>ot});module.exports=Pu(Vf);var ei={};tr(ei,{defineExtension:()=>No,getExtensionContext:()=>Lo});function No(e){return typeof e=="function"?e:r=>r.$extends(e)}function Lo(e){return e}var ri={};tr(ri,{validator:()=>Fo});function Fo(...e){return r=>r}var jt={};tr(jt,{$:()=>Vo,bgBlack:()=>_u,bgBlue:()=>Mu,bgCyan:()=>qu,bgGreen:()=>Lu,bgMagenta:()=>$u,bgRed:()=>Nu,bgWhite:()=>ju,bgYellow:()=>Fu,black:()=>Iu,blue:()=>nr,bold:()=>W,cyan:()=>Oe,dim:()=>Ie,gray:()=>Hr,green:()=>qe,grey:()=>Du,hidden:()=>Cu,inverse:()=>Ru,italic:()=>Su,magenta:()=>ku,red:()=>ce,reset:()=>Tu,strikethrough:()=>Au,underline:()=>Y,white:()=>Ou,yellow:()=>ke});var ti,Mo,$o,qo,jo=!0;typeof process<"u"&&({FORCE_COLOR:ti,NODE_DISABLE_COLORS:Mo,NO_COLOR:$o,TERM:qo}=process.env||{},jo=process.stdout&&process.stdout.isTTY);var Vo={enabled:!Mo&&$o==null&&qo!=="dumb"&&(ti!=null&&ti!=="0"||jo)};function F(e,r){let t=new RegExp(`\\x1b\\[${r}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${r}m`;return function(o){return!Vo.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(t,i+n):o)+i}}var Tu=F(0,0),W=F(1,22),Ie=F(2,22),Su=F(3,23),Y=F(4,24),Ru=F(7,27),Cu=F(8,28),Au=F(9,29),Iu=F(30,39),ce=F(31,39),qe=F(32,39),ke=F(33,39),nr=F(34,39),ku=F(35,39),Oe=F(36,39),Ou=F(37,39),Hr=F(90,39),Du=F(90,39),_u=F(40,49),Nu=F(41,49),Lu=F(42,49),Fu=F(43,49),Mu=F(44,49),$u=F(45,49),qu=F(46,49),ju=F(47,49);var Vu=100,Bo=["green","yellow","blue","magenta","cyan","red"],Kr=[],Uo=Date.now(),Bu=0,ni=typeof process<"u"?process.env:{};globalThis.DEBUG??=ni.DEBUG??"";globalThis.DEBUG_COLORS??=ni.DEBUG_COLORS?ni.DEBUG_COLORS==="true":!0;var Yr={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let r=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),t=r.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=r.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return t&&!n},log:(...e)=>{let[r,t,...n]=e;(console.warn??console.log)(`${r} ${t}`,...n)},formatters:{}};function Uu(e){let r={color:Bo[Bu++%Bo.length],enabled:Yr.enabled(e),namespace:e,log:Yr.log,extend:()=>{}},t=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=r;if(n.length!==0&&Kr.push([o,...n]),Kr.length>Vu&&Kr.shift(),Yr.enabled(o)||i){let l=n.map(c=>typeof c=="string"?c:Gu(c)),u=`+${Date.now()-Uo}ms`;Uo=Date.now(),globalThis.DEBUG_COLORS?a(jt[s](W(o)),...l,jt[s](u)):a(o,...l,u)}};return new Proxy(t,{get:(n,i)=>r[i],set:(n,i,o)=>r[i]=o})}var N=new Proxy(Uu,{get:(e,r)=>Yr[r],set:(e,r,t)=>Yr[r]=t});function Gu(e,r=2){let t=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(t.has(i))return"[Circular *]";t.add(i)}else if(typeof i=="bigint")return i.toString();return i},r)}function Go(e=7500){let r=Kr.map(([t,...n])=>`${t} ${n.map(i=>typeof i=="string"?i:JSON.stringify(i)).join(" ")}`).join(` +`);return r.length!!(e&&typeof e=="object"),Ut=e=>e&&!!e[De],Ee=(e,r,t)=>{if(Ut(e)){let n=e[De](),{matched:i,selections:o}=n.match(r);return i&&o&&Object.keys(o).forEach(s=>t(s,o[s])),i}if(si(e)){if(!si(r))return!1;if(Array.isArray(e)){if(!Array.isArray(r))return!1;let n=[],i=[],o=[];for(let s of e.keys()){let a=e[s];Ut(a)&&a[Qu]?o.push(a):o.length?i.push(a):n.push(a)}if(o.length){if(o.length>1)throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");if(r.lengthEe(u,s[c],t))&&i.every((u,c)=>Ee(u,a[c],t))&&(o.length===0||Ee(o[0],l,t))}return e.length===r.length&&e.every((s,a)=>Ee(s,r[a],t))}return Reflect.ownKeys(e).every(n=>{let i=e[n];return(n in r||Ut(o=i)&&o[De]().matcherType==="optional")&&Ee(i,r[n],t);var o})}return Object.is(r,e)},Ge=e=>{var r,t,n;return si(e)?Ut(e)?(r=(t=(n=e[De]()).getSelectionKeys)==null?void 0:t.call(n))!=null?r:[]:Array.isArray(e)?zr(e,Ge):zr(Object.values(e),Ge):[]},zr=(e,r)=>e.reduce((t,n)=>t.concat(r(n)),[]);function pe(e){return Object.assign(e,{optional:()=>Wu(e),and:r=>q(e,r),or:r=>Ju(e,r),select:r=>r===void 0?Jo(e):Jo(r,e)})}function Wu(e){return pe({[De]:()=>({match:r=>{let t={},n=(i,o)=>{t[i]=o};return r===void 0?(Ge(e).forEach(i=>n(i,void 0)),{matched:!0,selections:t}):{matched:Ee(e,r,n),selections:t}},getSelectionKeys:()=>Ge(e),matcherType:"optional"})})}function q(...e){return pe({[De]:()=>({match:r=>{let t={},n=(i,o)=>{t[i]=o};return{matched:e.every(i=>Ee(i,r,n)),selections:t}},getSelectionKeys:()=>zr(e,Ge),matcherType:"and"})})}function Ju(...e){return pe({[De]:()=>({match:r=>{let t={},n=(i,o)=>{t[i]=o};return zr(e,Ge).forEach(i=>n(i,void 0)),{matched:e.some(i=>Ee(i,r,n)),selections:t}},getSelectionKeys:()=>zr(e,Ge),matcherType:"or"})})}function C(e){return{[De]:()=>({match:r=>({matched:!!e(r)})})}}function Jo(...e){let r=typeof e[0]=="string"?e[0]:void 0,t=e.length===2?e[1]:typeof e[0]=="string"?void 0:e[0];return pe({[De]:()=>({match:n=>{let i={[r??Gt]:n};return{matched:t===void 0||Ee(t,n,(o,s)=>{i[o]=s}),selections:i}},getSelectionKeys:()=>[r??Gt].concat(t===void 0?[]:Ge(t))})})}function ye(e){return typeof e=="number"}function je(e){return typeof e=="string"}function Ve(e){return typeof e=="bigint"}var eg=pe(C(function(e){return!0}));var Be=e=>Object.assign(pe(e),{startsWith:r=>{return Be(q(e,(t=r,C(n=>je(n)&&n.startsWith(t)))));var t},endsWith:r=>{return Be(q(e,(t=r,C(n=>je(n)&&n.endsWith(t)))));var t},minLength:r=>Be(q(e,(t=>C(n=>je(n)&&n.length>=t))(r))),length:r=>Be(q(e,(t=>C(n=>je(n)&&n.length===t))(r))),maxLength:r=>Be(q(e,(t=>C(n=>je(n)&&n.length<=t))(r))),includes:r=>{return Be(q(e,(t=r,C(n=>je(n)&&n.includes(t)))));var t},regex:r=>{return Be(q(e,(t=r,C(n=>je(n)&&!!n.match(t)))));var t}}),rg=Be(C(je)),be=e=>Object.assign(pe(e),{between:(r,t)=>be(q(e,((n,i)=>C(o=>ye(o)&&n<=o&&i>=o))(r,t))),lt:r=>be(q(e,(t=>C(n=>ye(n)&&nbe(q(e,(t=>C(n=>ye(n)&&n>t))(r))),lte:r=>be(q(e,(t=>C(n=>ye(n)&&n<=t))(r))),gte:r=>be(q(e,(t=>C(n=>ye(n)&&n>=t))(r))),int:()=>be(q(e,C(r=>ye(r)&&Number.isInteger(r)))),finite:()=>be(q(e,C(r=>ye(r)&&Number.isFinite(r)))),positive:()=>be(q(e,C(r=>ye(r)&&r>0))),negative:()=>be(q(e,C(r=>ye(r)&&r<0)))}),tg=be(C(ye)),Ue=e=>Object.assign(pe(e),{between:(r,t)=>Ue(q(e,((n,i)=>C(o=>Ve(o)&&n<=o&&i>=o))(r,t))),lt:r=>Ue(q(e,(t=>C(n=>Ve(n)&&nUe(q(e,(t=>C(n=>Ve(n)&&n>t))(r))),lte:r=>Ue(q(e,(t=>C(n=>Ve(n)&&n<=t))(r))),gte:r=>Ue(q(e,(t=>C(n=>Ve(n)&&n>=t))(r))),positive:()=>Ue(q(e,C(r=>Ve(r)&&r>0))),negative:()=>Ue(q(e,C(r=>Ve(r)&&r<0)))}),ng=Ue(C(Ve)),ig=pe(C(function(e){return typeof e=="boolean"})),og=pe(C(function(e){return typeof e=="symbol"})),sg=pe(C(function(e){return e==null})),ag=pe(C(function(e){return e!=null}));var ai=class extends Error{constructor(r){let t;try{t=JSON.stringify(r)}catch{t=r}super(`Pattern matching error: no pattern matches value ${t}`),this.input=void 0,this.input=r}},li={matched:!1,value:void 0};function hr(e){return new ui(e,li)}var ui=class e{constructor(r,t){this.input=void 0,this.state=void 0,this.input=r,this.state=t}with(...r){if(this.state.matched)return this;let t=r[r.length-1],n=[r[0]],i;r.length===3&&typeof r[1]=="function"?i=r[1]:r.length>2&&n.push(...r.slice(1,r.length-1));let o=!1,s={},a=(u,c)=>{o=!0,s[u]=c},l=!n.some(u=>Ee(u,this.input,a))||i&&!i(this.input)?li:{matched:!0,value:t(o?Gt in s?s[Gt]:s:this.input,this.input)};return new e(this.input,l)}when(r,t){if(this.state.matched)return this;let n=!!r(this.input);return new e(this.input,n?{matched:!0,value:t(this.input,this.input)}:li)}otherwise(r){return this.state.matched?this.state.value:r(this.input)}exhaustive(){if(this.state.matched)return this.state.value;throw new ai(this.input)}run(){return this.exhaustive()}returnType(){return this}};var zo=require("node:util");var Hu={warn:ke("prisma:warn")},Ku={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Qt(e,...r){Ku.warn()&&console.warn(`${Hu.warn} ${e}`,...r)}var Yu=(0,zo.promisify)(Yo.default.exec),ee=gr("prisma:get-platform"),zu=["1.0.x","1.1.x","3.0.x"];async function Zo(){let e=Jt.default.platform(),r=process.arch;if(e==="freebsd"){let s=await Ht("freebsd-version");if(s&&s.trim().length>0){let l=/^(\d+)\.?/.exec(s);if(l)return{platform:"freebsd",targetDistro:`freebsd${l[1]}`,arch:r}}}if(e!=="linux")return{platform:e,arch:r};let t=await Xu(),n=await ac(),i=rc({arch:r,archFromUname:n,familyDistro:t.familyDistro}),{libssl:o}=await tc(i);return{platform:"linux",libssl:o,arch:r,archFromUname:n,...t}}function Zu(e){let r=/^ID="?([^"\n]*)"?$/im,t=/^ID_LIKE="?([^"\n]*)"?$/im,n=r.exec(e),i=n&&n[1]&&n[1].toLowerCase()||"",o=t.exec(e),s=o&&o[1]&&o[1].toLowerCase()||"",a=hr({id:i,idLike:s}).with({id:"alpine"},({id:l})=>({targetDistro:"musl",familyDistro:l,originalDistro:l})).with({id:"raspbian"},({id:l})=>({targetDistro:"arm",familyDistro:"debian",originalDistro:l})).with({id:"nixos"},({id:l})=>({targetDistro:"nixos",originalDistro:l,familyDistro:"nixos"})).with({id:"debian"},{id:"ubuntu"},({id:l})=>({targetDistro:"debian",familyDistro:"debian",originalDistro:l})).with({id:"rhel"},{id:"centos"},{id:"fedora"},({id:l})=>({targetDistro:"rhel",familyDistro:"rhel",originalDistro:l})).when(({idLike:l})=>l.includes("debian")||l.includes("ubuntu"),({id:l})=>({targetDistro:"debian",familyDistro:"debian",originalDistro:l})).when(({idLike:l})=>i==="arch"||l.includes("arch"),({id:l})=>({targetDistro:"debian",familyDistro:"arch",originalDistro:l})).when(({idLike:l})=>l.includes("centos")||l.includes("fedora")||l.includes("rhel")||l.includes("suse"),({id:l})=>({targetDistro:"rhel",familyDistro:"rhel",originalDistro:l})).otherwise(({id:l})=>({targetDistro:void 0,familyDistro:void 0,originalDistro:l}));return ee(`Found distro info: +${JSON.stringify(a,null,2)}`),a}async function Xu(){let e="/etc/os-release";try{let r=await ci.default.readFile(e,{encoding:"utf-8"});return Zu(r)}catch{return{targetDistro:void 0,familyDistro:void 0,originalDistro:void 0}}}function ec(e){let r=/^OpenSSL\s(\d+\.\d+)\.\d+/.exec(e);if(r){let t=`${r[1]}.x`;return Xo(t)}}function Ho(e){let r=/libssl\.so\.(\d)(\.\d)?/.exec(e);if(r){let t=`${r[1]}${r[2]??".0"}.x`;return Xo(t)}}function Xo(e){let r=(()=>{if(rs(e))return e;let t=e.split(".");return t[1]="0",t.join(".")})();if(zu.includes(r))return r}function rc(e){return hr(e).with({familyDistro:"musl"},()=>(ee('Trying platform-specific paths for "alpine"'),["/lib","/usr/lib"])).with({familyDistro:"debian"},({archFromUname:r})=>(ee('Trying platform-specific paths for "debian" (and "ubuntu")'),[`/usr/lib/${r}-linux-gnu`,`/lib/${r}-linux-gnu`])).with({familyDistro:"rhel"},()=>(ee('Trying platform-specific paths for "rhel"'),["/lib64","/usr/lib64"])).otherwise(({familyDistro:r,arch:t,archFromUname:n})=>(ee(`Don't know any platform-specific paths for "${r}" on ${t} (${n})`),[]))}async function tc(e){let r='grep -v "libssl.so.0"',t=await Ko(e);if(t){ee(`Found libssl.so file using platform-specific paths: ${t}`);let o=Ho(t);if(ee(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:"libssl-specific-path"}}ee('Falling back to "ldconfig" and other generic paths');let n=await Ht(`ldconfig -p | sed "s/.*=>s*//" | sed "s|.*/||" | grep libssl | sort | ${r}`);if(n||(n=await Ko(["/lib64","/usr/lib64","/lib","/usr/lib"])),n){ee(`Found libssl.so file using "ldconfig" or other generic paths: ${n}`);let o=Ho(n);if(ee(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:"ldconfig"}}let i=await Ht("openssl version -v");if(i){ee(`Found openssl binary with version: ${i}`);let o=ec(i);if(ee(`The parsed openssl version is: ${o}`),o)return{libssl:o,strategy:"openssl-binary"}}return ee("Couldn't find any version of libssl or OpenSSL in the system"),{}}async function Ko(e){for(let r of e){let t=await nc(r);if(t)return t}}async function nc(e){try{return(await ci.default.readdir(e)).find(t=>t.startsWith("libssl.so.")&&!t.startsWith("libssl.so.0"))}catch(r){if(r.code==="ENOENT")return;throw r}}async function ir(){let{binaryTarget:e}=await es();return e}function ic(e){return e.binaryTarget!==void 0}async function pi(){let{memoized:e,...r}=await es();return r}var Wt={};async function es(){if(ic(Wt))return Promise.resolve({...Wt,memoized:!0});let e=await Zo(),r=oc(e);return Wt={...e,binaryTarget:r},{...Wt,memoized:!1}}function oc(e){let{platform:r,arch:t,archFromUname:n,libssl:i,targetDistro:o,familyDistro:s,originalDistro:a}=e;r==="linux"&&!["x64","arm64"].includes(t)&&Qt(`Prisma only officially supports Linux on amd64 (x86_64) and arm64 (aarch64) system architectures (detected "${t}" instead). If you are using your own custom Prisma engines, you can ignore this warning, as long as you've compiled the engines for your system architecture "${n}".`);let l="1.1.x";if(r==="linux"&&i===void 0){let c=hr({familyDistro:s}).with({familyDistro:"debian"},()=>"Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, add this command to your Dockerfile, or switch to an image that already has OpenSSL installed.").otherwise(()=>"Please manually install OpenSSL and try installing Prisma again.");Qt(`Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to "openssl-${l}". +${c}`)}let u="debian";if(r==="linux"&&o===void 0&&ee(`Distro is "${a}". Falling back to Prisma engines built for "${u}".`),r==="darwin"&&t==="arm64")return"darwin-arm64";if(r==="darwin")return"darwin";if(r==="win32")return"windows";if(r==="freebsd")return o;if(r==="openbsd")return"openbsd";if(r==="netbsd")return"netbsd";if(r==="linux"&&o==="nixos")return"linux-nixos";if(r==="linux"&&t==="arm64")return`${o==="musl"?"linux-musl-arm64":"linux-arm64"}-openssl-${i||l}`;if(r==="linux"&&t==="arm")return`linux-arm-openssl-${i||l}`;if(r==="linux"&&o==="musl"){let c="linux-musl";return!i||rs(i)?c:`${c}-openssl-${i}`}return r==="linux"&&o&&i?`${o}-openssl-${i}`:(r!=="linux"&&Qt(`Prisma detected unknown OS "${r}" and may not work as expected. Defaulting to "linux".`),i?`${u}-openssl-${i}`:o?`${o}-openssl-${l}`:`${u}-openssl-${l}`)}async function sc(e){try{return await e()}catch{return}}function Ht(e){return sc(async()=>{let r=await Yu(e);return ee(`Command "${e}" successfully returned "${r.stdout}"`),r.stdout})}async function ac(){return typeof Jt.default.machine=="function"?Jt.default.machine():(await Ht("uname -m"))?.trim()}function rs(e){return e.startsWith("1.")}var zt={};tr(zt,{beep:()=>_c,clearScreen:()=>Ic,clearTerminal:()=>kc,cursorBackward:()=>fc,cursorDown:()=>dc,cursorForward:()=>mc,cursorGetPosition:()=>yc,cursorHide:()=>wc,cursorLeft:()=>is,cursorMove:()=>pc,cursorNextLine:()=>bc,cursorPrevLine:()=>Ec,cursorRestorePosition:()=>hc,cursorSavePosition:()=>gc,cursorShow:()=>xc,cursorTo:()=>cc,cursorUp:()=>ns,enterAlternativeScreen:()=>Oc,eraseDown:()=>Sc,eraseEndLine:()=>Pc,eraseLine:()=>os,eraseLines:()=>vc,eraseScreen:()=>di,eraseStartLine:()=>Tc,eraseUp:()=>Rc,exitAlternativeScreen:()=>Dc,iTerm:()=>Fc,image:()=>Lc,link:()=>Nc,scrollDown:()=>Ac,scrollUp:()=>Cc});var Yt=k(require("node:process"),1);var Kt=globalThis.window?.document!==void 0,gg=globalThis.process?.versions?.node!==void 0,hg=globalThis.process?.versions?.bun!==void 0,yg=globalThis.Deno?.version?.deno!==void 0,bg=globalThis.process?.versions?.electron!==void 0,Eg=globalThis.navigator?.userAgent?.includes("jsdom")===!0,wg=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,xg=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,vg=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,Pg=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,Zr=globalThis.navigator?.userAgentData?.platform,Tg=Zr==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",Sg=Zr==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",Rg=Zr==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",Cg=Zr==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Ag=Zr==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var A="\x1B[",et="\x1B]",yr="\x07",Xr=";",ts=!Kt&&Yt.default.env.TERM_PROGRAM==="Apple_Terminal",lc=!Kt&&Yt.default.platform==="win32",uc=Kt?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:Yt.default.cwd,cc=(e,r)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof r!="number"?A+(e+1)+"G":A+(r+1)+Xr+(e+1)+"H"},pc=(e,r)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let t="";return e<0?t+=A+-e+"D":e>0&&(t+=A+e+"C"),r<0?t+=A+-r+"A":r>0&&(t+=A+r+"B"),t},ns=(e=1)=>A+e+"A",dc=(e=1)=>A+e+"B",mc=(e=1)=>A+e+"C",fc=(e=1)=>A+e+"D",is=A+"G",gc=ts?"\x1B7":A+"s",hc=ts?"\x1B8":A+"u",yc=A+"6n",bc=A+"E",Ec=A+"F",wc=A+"?25l",xc=A+"?25h",vc=e=>{let r="";for(let t=0;t[et,"8",Xr,Xr,r,yr,e,et,"8",Xr,Xr,yr].join(""),Lc=(e,r={})=>{let t=`${et}1337;File=inline=1`;return r.width&&(t+=`;width=${r.width}`),r.height&&(t+=`;height=${r.height}`),r.preserveAspectRatio===!1&&(t+=";preserveAspectRatio=0"),t+":"+Buffer.from(e).toString("base64")+yr},Fc={setCwd:(e=uc())=>`${et}50;CurrentDir=${e}${yr}`,annotation(e,r={}){let t=`${et}1337;`,n=r.x!==void 0,i=r.y!==void 0;if((n||i)&&!(n&&i&&r.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),t+=r.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",r.length>0?t+=(n?[e,r.length,r.x,r.y]:[r.length,e]).join("|"):t+=e,t+yr}};var Zt=k(ds(),1);function or(e,r,{target:t="stdout",...n}={}){return Zt.default[t]?zt.link(e,r):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,r):`${e} (\u200B${r}\u200B)`}or.isSupported=Zt.default.stdout;or.stderr=(e,r,t={})=>or(e,r,{target:"stderr",...t});or.stderr.isSupported=Zt.default.stderr;function yi(e){return or(e,e,{fallback:Y})}var Vc=ms(),bi=Vc.version;var fs="library";function Er(e){let r=Bc();return r||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":e?.config.engineType==="client"?"client":fs)}function Bc(){let e=process.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":e==="client"?"client":void 0}var Gc=k(wi());var M=k(require("node:path")),Qc=k(wi()),ah=N("prisma:engines");function gs(){return M.default.join(__dirname,"../")}var lh="libquery-engine";M.default.join(__dirname,"../query-engine-darwin");M.default.join(__dirname,"../query-engine-darwin-arm64");M.default.join(__dirname,"../query-engine-debian-openssl-1.0.x");M.default.join(__dirname,"../query-engine-debian-openssl-1.1.x");M.default.join(__dirname,"../query-engine-debian-openssl-3.0.x");M.default.join(__dirname,"../query-engine-linux-static-x64");M.default.join(__dirname,"../query-engine-linux-static-arm64");M.default.join(__dirname,"../query-engine-rhel-openssl-1.0.x");M.default.join(__dirname,"../query-engine-rhel-openssl-1.1.x");M.default.join(__dirname,"../query-engine-rhel-openssl-3.0.x");M.default.join(__dirname,"../libquery_engine-darwin.dylib.node");M.default.join(__dirname,"../libquery_engine-darwin-arm64.dylib.node");M.default.join(__dirname,"../libquery_engine-debian-openssl-1.0.x.so.node");M.default.join(__dirname,"../libquery_engine-debian-openssl-1.1.x.so.node");M.default.join(__dirname,"../libquery_engine-debian-openssl-3.0.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-1.0.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-1.1.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-3.0.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-musl.so.node");M.default.join(__dirname,"../libquery_engine-linux-musl-openssl-3.0.x.so.node");M.default.join(__dirname,"../libquery_engine-rhel-openssl-1.0.x.so.node");M.default.join(__dirname,"../libquery_engine-rhel-openssl-1.1.x.so.node");M.default.join(__dirname,"../libquery_engine-rhel-openssl-3.0.x.so.node");M.default.join(__dirname,"../query_engine-windows.dll.node");var xi=k(require("node:fs")),hs=gr("chmodPlusX");function vi(e){if(process.platform==="win32")return;let r=xi.default.statSync(e),t=r.mode|64|8|1;if(r.mode===t){hs(`Execution permissions of ${e} are fine`);return}let n=t.toString(8).slice(-3);hs(`Have to call chmodPlusX on ${e}`),xi.default.chmodSync(e,n)}function Pi(e){let r=e.e,t=a=>`Prisma cannot find the required \`${a}\` system library in your system`,n=r.message.includes("cannot open shared object file"),i=`Please refer to the documentation about Prisma's system requirements: ${yi("https://pris.ly/d/system-requirements")}`,o=`Unable to require(\`${Ie(e.id)}\`).`,s=hr({message:r.message,code:r.code}).with({code:"ENOENT"},()=>"File does not exist.").when(({message:a})=>n&&a.includes("libz"),()=>`${t("libz")}. Please install it and try again.`).when(({message:a})=>n&&a.includes("libgcc_s"),()=>`${t("libgcc_s")}. Please install it and try again.`).when(({message:a})=>n&&a.includes("libssl"),()=>{let a=e.platformInfo.libssl?`openssl-${e.platformInfo.libssl}`:"openssl";return`${t("libssl")}. Please install ${a} and try again.`}).when(({message:a})=>a.includes("GLIBC"),()=>`Prisma has detected an incompatible version of the \`glibc\` C standard library installed in your system. This probably means your system may be too old to run Prisma. ${i}`).when(({message:a})=>e.platformInfo.platform==="linux"&&a.includes("symbol not found"),()=>`The Prisma engines are not compatible with your system ${e.platformInfo.originalDistro} on (${e.platformInfo.archFromUname}) which uses the \`${e.platformInfo.binaryTarget}\` binaryTarget by default. ${i}`).otherwise(()=>`The Prisma engines do not seem to be compatible with your system. ${i}`);return`${o} +${s} + +Details: ${r.message}`}var Es=k(bs(),1);function Ti(e){let r=(0,Es.default)(e);if(r===0)return e;let t=new RegExp(`^[ \\t]{${r}}`,"gm");return e.replace(t,"")}var ws="prisma+postgres",en=`${ws}:`;function Si(e){return e?.startsWith(`${en}//`)??!1}var vs=k(Ri());function Ai(e){return String(new Ci(e))}var Ci=class{constructor(r){this.config=r}toString(){let{config:r}=this,t=r.provider.fromEnvVar?`env("${r.provider.fromEnvVar}")`:r.provider.value,n=JSON.parse(JSON.stringify({provider:t,binaryTargets:Wc(r.binaryTargets)}));return`generator ${r.name} { +${(0,vs.default)(Jc(n),2)} +}`}};function Wc(e){let r;if(e.length>0){let t=e.find(n=>n.fromEnvVar!==null);t?r=`env("${t.fromEnvVar}")`:r=e.map(n=>n.native?"native":n.value)}else r=void 0;return r}function Jc(e){let r=Object.keys(e).reduce((t,n)=>Math.max(t,n.length),0);return Object.entries(e).map(([t,n])=>`${t.padEnd(r)} = ${Hc(n)}`).join(` +`)}function Hc(e){return JSON.parse(JSON.stringify(e,(r,t)=>Array.isArray(t)?`[${t.map(n=>JSON.stringify(n)).join(", ")}]`:JSON.stringify(t)))}var tt={};tr(tt,{error:()=>zc,info:()=>Yc,log:()=>Kc,query:()=>Zc,should:()=>Ps,tags:()=>rt,warn:()=>Ii});var rt={error:ce("prisma:error"),warn:ke("prisma:warn"),info:Oe("prisma:info"),query:nr("prisma:query")},Ps={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Kc(...e){console.log(...e)}function Ii(e,...r){Ps.warn()&&console.warn(`${rt.warn} ${e}`,...r)}function Yc(e,...r){console.info(`${rt.info} ${e}`,...r)}function zc(e,...r){console.error(`${rt.error} ${e}`,...r)}function Zc(e,...r){console.log(`${rt.query} ${e}`,...r)}function rn(e,r){if(!e)throw new Error(`${r}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}function _e(e,r){throw new Error(r)}var nt=k(require("node:path"));function Oi(e){return nt.default.sep===nt.default.posix.sep?e:e.split(nt.default.sep).join(nt.default.posix.sep)}var Fi=k(Os()),nn=k(require("node:fs"));var wr=k(require("node:path"));function Ds(e){let r=e.ignoreProcessEnv?{}:process.env,t=n=>n.match(/(.?\${(?:[a-zA-Z0-9_]+)?})/g)?.reduce(function(o,s){let a=/(.?)\${([a-zA-Z0-9_]+)?}/g.exec(s);if(!a)return o;let l=a[1],u,c;if(l==="\\")c=a[0],u=c.replace("\\$","$");else{let p=a[2];c=a[0].substring(l.length),u=Object.hasOwnProperty.call(r,p)?r[p]:e.parsed[p]||"",u=t(u)}return o.replace(c,u)},n)??n;for(let n in e.parsed){let i=Object.hasOwnProperty.call(r,n)?r[n]:e.parsed[n];e.parsed[n]=t(i)}for(let n in e.parsed)r[n]=e.parsed[n];return e}var Li=gr("prisma:tryLoadEnv");function it({rootEnvPath:e,schemaEnvPath:r},t={conflictCheck:"none"}){let n=_s(e);t.conflictCheck!=="none"&&gp(n,r,t.conflictCheck);let i=null;return Ns(n?.path,r)||(i=_s(r)),!n&&!i&&Li("No Environment variables loaded"),i?.dotenvResult.error?console.error(ce(W("Schema Env Error: "))+i.dotenvResult.error):{message:[n?.message,i?.message].filter(Boolean).join(` +`),parsed:{...n?.dotenvResult?.parsed,...i?.dotenvResult?.parsed}}}function gp(e,r,t){let n=e?.dotenvResult.parsed,i=!Ns(e?.path,r);if(n&&r&&i&&nn.default.existsSync(r)){let o=Fi.default.parse(nn.default.readFileSync(r)),s=[];for(let a in o)n[a]===o[a]&&s.push(a);if(s.length>0){let a=wr.default.relative(process.cwd(),e.path),l=wr.default.relative(process.cwd(),r);if(t==="error"){let u=`There is a conflict between env var${s.length>1?"s":""} in ${Y(a)} and ${Y(l)} +Conflicting env vars: +${s.map(c=>` ${W(c)}`).join(` +`)} + +We suggest to move the contents of ${Y(l)} to ${Y(a)} to consolidate your env vars. +`;throw new Error(u)}else if(t==="warn"){let u=`Conflict for env var${s.length>1?"s":""} ${s.map(c=>W(c)).join(", ")} in ${Y(a)} and ${Y(l)} +Env vars from ${Y(l)} overwrite the ones from ${Y(a)} + `;console.warn(`${ke("warn(prisma)")} ${u}`)}}}}function _s(e){if(hp(e)){Li(`Environment variables loaded from ${e}`);let r=Fi.default.config({path:e,debug:process.env.DOTENV_CONFIG_DEBUG?!0:void 0});return{dotenvResult:Ds(r),message:Ie(`Environment variables loaded from ${wr.default.relative(process.cwd(),e)}`),path:e}}else Li(`Environment variables not found at ${e}`);return null}function Ns(e,r){return e&&r&&wr.default.resolve(e)===wr.default.resolve(r)}function hp(e){return!!(e&&nn.default.existsSync(e))}function Mi(e,r){return Object.prototype.hasOwnProperty.call(e,r)}function xr(e,r){let t={};for(let n of Object.keys(e))t[n]=r(e[n],n);return t}function $i(e,r){if(e.length===0)return;let t=e[0];for(let n=1;n{Fs.has(e)||(Fs.add(e),Ii(r,...t))};var T=class e extends Error{clientVersion;errorCode;retryable;constructor(r,t,n){super(r),this.name="PrismaClientInitializationError",this.clientVersion=t,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};x(T,"PrismaClientInitializationError");var z=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(r,{code:t,clientVersion:n,meta:i,batchRequestIdx:o}){super(r),this.name="PrismaClientKnownRequestError",this.code=t,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};x(z,"PrismaClientKnownRequestError");var le=class extends Error{clientVersion;constructor(r,t){super(r),this.name="PrismaClientRustPanicError",this.clientVersion=t}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};x(le,"PrismaClientRustPanicError");var j=class extends Error{clientVersion;batchRequestIdx;constructor(r,{clientVersion:t,batchRequestIdx:n}){super(r),this.name="PrismaClientUnknownRequestError",this.clientVersion=t,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};x(j,"PrismaClientUnknownRequestError");var Z=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(r,{clientVersion:t}){super(r),this.clientVersion=t}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};x(Z,"PrismaClientValidationError");var vr=9e15,Ke=1e9,qi="0123456789abcdef",un="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",cn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ji={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-vr,maxE:vr,crypto:!1},js,Le,w=!0,dn="[DecimalError] ",He=dn+"Invalid argument: ",Vs=dn+"Precision limit exceeded",Bs=dn+"crypto unavailable",Us="[object Decimal]",X=Math.floor,U=Math.pow,yp=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,bp=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Ep=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Gs=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,fe=1e7,E=7,wp=9007199254740991,xp=un.length-1,Vi=cn.length-1,m={toStringTag:Us};m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};m.ceil=function(){return y(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(e,r){var t,n=this,i=n.constructor;if(e=new i(e),r=new i(r),!e.s||!r.s)return new i(NaN);if(e.gt(r))throw Error(He+r);return t=n.cmp(e),t<0?e:n.cmp(r)>0?r:new i(n)};m.comparedTo=m.cmp=function(e){var r,t,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,r=0,t=na[r]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};m.cosine=m.cos=function(){var e,r,t=this,n=t.constructor;return t.d?t.d[0]?(e=n.precision,r=n.rounding,n.precision=e+Math.max(t.e,t.sd())+E,n.rounding=1,t=vp(n,Ks(n,t)),n.precision=e,n.rounding=r,y(Le==2||Le==3?t.neg():t,e,r,!0)):new n(1):new n(NaN)};m.cubeRoot=m.cbrt=function(){var e,r,t,n,i,o,s,a,l,u,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(w=!1,o=c.s*U(c.s*c,1/3),!o||Math.abs(o)==1/0?(t=J(c.d),e=c.e,(o=(e-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=U(t,1/3),e=X((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?t="5e"+e:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new p(t),n.s=c.s):n=new p(o.toString()),s=(e=p.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(c),n=L(u.plus(c).times(a),u.plus(l),s+2,1),J(a.d).slice(0,s)===(t=J(n.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!i&&t=="4999"){if(!i&&(y(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}s+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(y(n,e+1,1),r=!n.times(n).times(n).eq(c));break}return w=!0,y(n,e,p.rounding,r)};m.decimalPlaces=m.dp=function(){var e,r=this.d,t=NaN;if(r){if(e=r.length-1,t=(e-X(this.e/E))*E,e=r[e],e)for(;e%10==0;e/=10)t--;t<0&&(t=0)}return t};m.dividedBy=m.div=function(e){return L(this,new this.constructor(e))};m.dividedToIntegerBy=m.divToInt=function(e){var r=this,t=r.constructor;return y(L(r,new t(e),0,1,1),t.precision,t.rounding)};m.equals=m.eq=function(e){return this.cmp(e)===0};m.floor=function(){return y(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(e){return this.cmp(e)>0};m.greaterThanOrEqualTo=m.gte=function(e){var r=this.cmp(e);return r==1||r===0};m.hyperbolicCosine=m.cosh=function(){var e,r,t,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,n=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),r=(1/fn(4,e)).toString()):(e=16,r="2.3283064365386962890625e-10"),o=Pr(s,1,o.times(r),new s(1),!0);for(var l,u=e,c=new s(8);u--;)l=o.times(o),o=a.minus(l.times(c.minus(l.times(c))));return y(o,s.precision=t,s.rounding=n,!0)};m.hyperbolicSine=m.sinh=function(){var e,r,t,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(r=o.precision,t=o.rounding,o.precision=r+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Pr(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/fn(5,e)),i=Pr(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=r,o.rounding=t,y(i,r,t,!0)};m.hyperbolicTangent=m.tanh=function(){var e,r,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+7,n.rounding=1,L(t.sinh(),t.cosh(),n.precision=e,n.rounding=r)):new n(t.s)};m.inverseCosine=m.acos=function(){var e=this,r=e.constructor,t=e.abs().cmp(1),n=r.precision,i=r.rounding;return t!==-1?t===0?e.isNeg()?we(r,n,i):new r(0):new r(NaN):e.isZero()?we(r,n+4,i).times(.5):(r.precision=n+6,r.rounding=1,e=new r(1).minus(e).div(e.plus(1)).sqrt().atan(),r.precision=n,r.rounding=i,e.times(2))};m.inverseHyperbolicCosine=m.acosh=function(){var e,r,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(e=n.precision,r=n.rounding,n.precision=e+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,w=!1,t=t.times(t).minus(1).sqrt().plus(t),w=!0,n.precision=e,n.rounding=r,t.ln()):new n(t)};m.inverseHyperbolicSine=m.asinh=function(){var e,r,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,w=!1,t=t.times(t).plus(1).sqrt().plus(t),w=!0,n.precision=e,n.rounding=r,t.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var e,r,t,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,r=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?y(new o(i),e,r,!0):(o.precision=t=n-i.e,i=L(i.plus(1),new o(1).minus(i),t+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=r,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var e,r,t,n,i=this,o=i.constructor;return i.isZero()?new o(i):(r=i.abs().cmp(1),t=o.precision,n=o.rounding,r!==-1?r===0?(e=we(o,t+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,i.times(2)))};m.inverseTangent=m.atan=function(){var e,r,t,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&p+4<=Vi)return s=we(c,p+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new c(NaN);if(p+4<=Vi)return s=we(c,p+4,d).times(.5),s.s=u.s,s}for(c.precision=a=p+10,c.rounding=1,t=Math.min(28,a/E+2|0),e=t;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,r=Math.ceil(a/E),n=1,l=u.times(u),s=new c(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[r]!==void 0)for(e=r;s.d[e]===o.d[e]&&e--;);return t&&(s=s.times(2<this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(e){return this.cmp(e)<0};m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1};m.logarithm=m.log=function(e){var r,t,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding,f=5;if(e==null)e=new c(10),r=!0;else{if(e=new c(e),t=e.d,e.s<0||!t||!t[0]||e.eq(1))return new c(NaN);r=e.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new c(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(r)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=p+f,s=Je(u,a),n=r?pn(c,a+10):Je(e,a),l=L(s,n,a,1),st(l.d,i=p,d))do if(a+=10,s=Je(u,a),n=r?pn(c,a+10):Je(e,a),l=L(s,n,a,1),!o){+J(l.d).slice(i+1,i+15)+1==1e14&&(l=y(l,p+1,0));break}while(st(l.d,i+=10,d));return w=!0,y(l,p,d)};m.minus=m.sub=function(e){var r,t,n,i,o,s,a,l,u,c,p,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return!f.s||!e.s?e=new g(NaN):f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,a=g.precision,l=g.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new g(f);else return new g(l===3?-0:0);return w?y(e,a,l):e}if(t=X(e.e/E),c=X(f.e/E),u=u.slice(),o=c-t,o){for(p=o<0,p?(r=u,o=-o,s=d.length):(r=d,t=c,s=u.length),n=Math.max(Math.ceil(a/E),s)+2,o>n&&(o=n,r.length=1),r.reverse(),n=o;n--;)r.push(0);r.reverse()}else{for(n=u.length,s=d.length,p=n0;--n)u[s++]=0;for(n=d.length;n>o;){if(u[--n]s?o+1:s+1,i>s&&(i=s,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(s=u.length,i=c.length,s-i<0&&(i=s,t=c,c=u,u=t),r=0;i;)r=(u[--i]=u[i]+c[i]+r)/fe|0,u[i]%=fe;for(r&&(u.unshift(r),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=mn(u,n),w?y(e,a,l):e};m.precision=m.sd=function(e){var r,t=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(He+e);return t.d?(r=Qs(t.d),e&&t.e+1>r&&(r=t.e+1)):r=NaN,r};m.round=function(){var e=this,r=e.constructor;return y(new r(e),e.e+1,r.rounding)};m.sine=m.sin=function(){var e,r,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+Math.max(t.e,t.sd())+E,n.rounding=1,t=Tp(n,Ks(n,t)),n.precision=e,n.rounding=r,y(Le>2?t.neg():t,e,r,!0)):new n(NaN)};m.squareRoot=m.sqrt=function(){var e,r,t,n,i,o,s=this,a=s.d,l=s.e,u=s.s,c=s.constructor;if(u!==1||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(r=J(a),(r.length+l)%2==0&&(r+="0"),u=Math.sqrt(r),l=X((l+1)/2)-(l<0||l%2),u==1/0?r="5e"+l:(r=u.toExponential(),r=r.slice(0,r.indexOf("e")+1)+l),n=new c(r)):n=new c(u.toString()),t=(l=c.precision)+3;;)if(o=n,n=o.plus(L(s,o,t+2,1)).times(.5),J(o.d).slice(0,t)===(r=J(n.d)).slice(0,t))if(r=r.slice(t-3,t+1),r=="9999"||!i&&r=="4999"){if(!i&&(y(o,l+1,0),o.times(o).eq(s))){n=o;break}t+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(y(n,l+1,1),e=!n.times(n).eq(s));break}return w=!0,y(n,l,c.rounding,e)};m.tangent=m.tan=function(){var e,r,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+10,n.rounding=1,t=t.sin(),t.s=1,t=L(t,new n(1).minus(t.times(t)).sqrt(),e+10,0),n.precision=e,n.rounding=r,y(Le==2||Le==4?t.neg():t,e,r,!0)):new n(NaN)};m.times=m.mul=function(e){var r,t,n,i,o,s,a,l,u,c=this,p=c.constructor,d=c.d,f=(e=new p(e)).d;if(e.s*=c.s,!d||!d[0]||!f||!f[0])return new p(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?e.s/0:e.s*0);for(t=X(c.e/E)+X(e.e/E),l=d.length,u=f.length,l=0;){for(r=0,i=l+n;i>n;)a=o[i]+f[n]*d[i-n-1]+r,o[i--]=a%fe|0,r=a/fe|0;o[i]=(o[i]+r)%fe|0}for(;!o[--s];)o.pop();return r?++t:o.shift(),e.d=o,e.e=mn(o,t),w?y(e,p.precision,p.rounding):e};m.toBinary=function(e,r){return Ui(this,2,e,r)};m.toDecimalPlaces=m.toDP=function(e,r){var t=this,n=t.constructor;return t=new n(t),e===void 0?t:(ie(e,0,Ke),r===void 0?r=n.rounding:ie(r,0,8),y(t,e+t.e+1,r))};m.toExponential=function(e,r){var t,n=this,i=n.constructor;return e===void 0?t=xe(n,!0):(ie(e,0,Ke),r===void 0?r=i.rounding:ie(r,0,8),n=y(new i(n),e+1,r),t=xe(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+t:t};m.toFixed=function(e,r){var t,n,i=this,o=i.constructor;return e===void 0?t=xe(i):(ie(e,0,Ke),r===void 0?r=o.rounding:ie(r,0,8),n=y(new o(i),e+i.e+1,r),t=xe(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};m.toFraction=function(e){var r,t,n,i,o,s,a,l,u,c,p,d,f=this,g=f.d,h=f.constructor;if(!g)return new h(f);if(u=t=new h(1),n=l=new h(0),r=new h(n),o=r.e=Qs(g)-f.e-1,s=o%E,r.d[0]=U(10,s<0?E+s:s),e==null)e=o>0?r:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(He+a);e=a.gt(r)?o>0?r:u:a}for(w=!1,a=new h(J(g)),c=h.precision,h.precision=o=g.length*E*2;p=L(a,r,0,1,1),i=t.plus(p.times(n)),i.cmp(e)!=1;)t=n,n=i,i=u,u=l.plus(p.times(i)),l=i,i=r,r=a.minus(p.times(i)),a=i;return i=L(e.minus(t),n,0,1,1),l=l.plus(i.times(u)),t=t.plus(i.times(n)),l.s=u.s=f.s,d=L(u,n,o,1).minus(f).abs().cmp(L(l,t,o,1).minus(f).abs())<1?[u,n]:[l,t],h.precision=c,w=!0,d};m.toHexadecimal=m.toHex=function(e,r){return Ui(this,16,e,r)};m.toNearest=function(e,r){var t=this,n=t.constructor;if(t=new n(t),e==null){if(!t.d)return t;e=new n(1),r=n.rounding}else{if(e=new n(e),r===void 0?r=n.rounding:ie(r,0,8),!t.d)return e.s?t:e;if(!e.d)return e.s&&(e.s=t.s),e}return e.d[0]?(w=!1,t=L(t,e,0,r,1).times(e),w=!0,y(t)):(e.s=t.s,t=e),t};m.toNumber=function(){return+this};m.toOctal=function(e,r){return Ui(this,8,e,r)};m.toPower=m.pow=function(e){var r,t,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(U(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return y(a,n,o);if(r=X(e.e/E),r>=e.d.length-1&&(t=u<0?-u:u)<=wp)return i=Ws(l,a,t,n),e.s<0?new l(1).div(i):y(i,n,o);if(s=a.s,s<0){if(rl.maxE+1||r0?s/0:0):(w=!1,l.rounding=a.s=1,t=Math.min(12,(r+"").length),i=Bi(e.times(Je(a,n+t)),n),i.d&&(i=y(i,n+5,1),st(i.d,n,o)&&(r=n+10,i=y(Bi(e.times(Je(a,r+t)),r),r+5,1),+J(i.d).slice(n+1,n+15)+1==1e14&&(i=y(i,n+1,0)))),i.s=s,w=!0,l.rounding=o,y(i,n,o))};m.toPrecision=function(e,r){var t,n=this,i=n.constructor;return e===void 0?t=xe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,Ke),r===void 0?r=i.rounding:ie(r,0,8),n=y(new i(n),e,r),t=xe(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+t:t};m.toSignificantDigits=m.toSD=function(e,r){var t=this,n=t.constructor;return e===void 0?(e=n.precision,r=n.rounding):(ie(e,1,Ke),r===void 0?r=n.rounding:ie(r,0,8)),y(new n(t),e,r)};m.toString=function(){var e=this,r=e.constructor,t=xe(e,e.e<=r.toExpNeg||e.e>=r.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t};m.truncated=m.trunc=function(){return y(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var e=this,r=e.constructor,t=xe(e,e.e<=r.toExpNeg||e.e>=r.toExpPos);return e.isNeg()?"-"+t:t};function J(e){var r,t,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,r=1;rt)throw Error(He+e)}function st(e,r,t,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--r;return--r<0?(r+=E,i=0):(i=Math.ceil((r+1)/E),r%=E),o=U(10,E-r),a=e[i]%o|0,n==null?r<3?(r==0?a=a/100|0:r==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(e[i+1]/o/100|0)==U(10,r-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:r<4?(r==0?a=a/1e3|0:r==1?a=a/100|0:r==2&&(a=a/10|0),s=(n||t<4)&&a==9999||!n&&t>3&&a==4999):s=((n||t<4)&&a+1==o||!n&&t>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==U(10,r-3)-1,s}function an(e,r,t){for(var n,i=[0],o,s=0,a=e.length;st-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/t|0,i[n]%=t)}return i.reverse()}function vp(e,r){var t,n,i;if(r.isZero())return r;n=r.d.length,n<32?(t=Math.ceil(n/3),i=(1/fn(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),e.precision+=t,r=Pr(e,1,r.times(i),new e(1));for(var o=t;o--;){var s=r.times(r);r=s.times(s).minus(s).times(8).plus(1)}return e.precision-=t,r}var L=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function r(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function t(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var u,c,p,d,f,g,h,I,P,S,b,O,me,ae,Jr,V,te,Ae,H,fr,$t=n.constructor,Xn=n.s==i.s?1:-1,K=n.d,_=i.d;if(!K||!K[0]||!_||!_[0])return new $t(!n.s||!i.s||(K?_&&K[0]==_[0]:!_)?NaN:K&&K[0]==0||!_?Xn*0:Xn/0);for(l?(f=1,c=n.e-i.e):(l=fe,f=E,c=X(n.e/f)-X(i.e/f)),H=_.length,te=K.length,P=new $t(Xn),S=P.d=[],p=0;_[p]==(K[p]||0);p++);if(_[p]>(K[p]||0)&&c--,o==null?(ae=o=$t.precision,s=$t.rounding):a?ae=o+(n.e-i.e)+1:ae=o,ae<0)S.push(1),g=!0;else{if(ae=ae/f+2|0,p=0,H==1){for(d=0,_=_[0],ae++;(p1&&(_=e(_,d,l),K=e(K,d,l),H=_.length,te=K.length),V=H,b=K.slice(0,H),O=b.length;O=l/2&&++Ae;do d=0,u=r(_,b,H,O),u<0?(me=b[0],H!=O&&(me=me*l+(b[1]||0)),d=me/Ae|0,d>1?(d>=l&&(d=l-1),h=e(_,d,l),I=h.length,O=b.length,u=r(h,b,I,O),u==1&&(d--,t(h,H=10;d/=10)p++;P.e=p+c*f-1,y(P,a?o+P.e+1:o,s,g)}return P}}();function y(e,r,t,n){var i,o,s,a,l,u,c,p,d,f=e.constructor;e:if(r!=null){if(p=e.d,!p)return e;for(i=1,a=p[0];a>=10;a/=10)i++;if(o=r-i,o<0)o+=E,s=r,c=p[d=0],l=c/U(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/E),a=p.length,d>=a)if(n){for(;a++<=d;)p.push(0);c=l=0,i=1,o%=E,s=o-E+1}else break e;else{for(c=a=p[d],i=1;a>=10;a/=10)i++;o%=E,s=o-E+i,l=s<0?0:c/U(10,i-s-1)%10|0}if(n=n||r<0||p[d+1]!==void 0||(s<0?c:c%U(10,i-s-1)),u=t<4?(l||n)&&(t==0||t==(e.s<0?3:2)):l>5||l==5&&(t==4||n||t==6&&(o>0?s>0?c/U(10,i-s):0:p[d-1])%10&1||t==(e.s<0?8:7)),r<1||!p[0])return p.length=0,u?(r-=e.e+1,p[0]=U(10,(E-r%E)%E),e.e=-r||0):p[0]=e.e=0,e;if(o==0?(p.length=d,a=1,d--):(p.length=d+1,a=U(10,E-o),p[d]=s>0?(c/U(10,i-s)%U(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=p[0];s>=10;s/=10)o++;for(s=p[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,p[0]==fe&&(p[0]=1));break}else{if(p[d]+=a,p[d]!=fe)break;p[d--]=0,a=1}for(o=p.length;p[--o]===0;)p.pop()}return w&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+We(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+We(-i-1)+o,t&&(n=t-s)>0&&(o+=We(n))):i>=s?(o+=We(i+1-s),t&&(n=t-i-1)>0&&(o=o+"."+We(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=We(n))),o}function mn(e,r){var t=e[0];for(r*=E;t>=10;t/=10)r++;return r}function pn(e,r,t){if(r>xp)throw w=!0,t&&(e.precision=t),Error(Vs);return y(new e(un),r,1,!0)}function we(e,r,t){if(r>Vi)throw Error(Vs);return y(new e(cn),r,t,!0)}function Qs(e){var r=e.length-1,t=r*E+1;if(r=e[r],r){for(;r%10==0;r/=10)t--;for(r=e[0];r>=10;r/=10)t++}return t}function We(e){for(var r="";e--;)r+="0";return r}function Ws(e,r,t,n){var i,o=new e(1),s=Math.ceil(n/E+4);for(w=!1;;){if(t%2&&(o=o.times(r),$s(o.d,s)&&(i=!0)),t=X(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}r=r.times(r),$s(r.d,s)}return w=!0,o}function Ms(e){return e.d[e.d.length-1]&1}function Js(e,r,t){for(var n,i,o=new e(r[0]),s=0;++s17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(r==null?(w=!1,l=g):l=r,a=new d(.03125);e.e>-2;)e=e.times(a),p+=5;for(n=Math.log(U(2,p))/Math.LN10*2+5|0,l+=n,t=o=s=new d(1),d.precision=l;;){if(o=y(o.times(e),l,1),t=t.times(++c),a=s.plus(L(o,t,l,1)),J(a.d).slice(0,l)===J(s.d).slice(0,l)){for(i=p;i--;)s=y(s.times(s),l,1);if(r==null)if(u<3&&st(s.d,l-n,f,u))d.precision=l+=10,t=o=a=new d(1),c=0,u++;else return y(s,d.precision=g,f,w=!0);else return d.precision=g,s}s=a}}function Je(e,r){var t,n,i,o,s,a,l,u,c,p,d,f=1,g=10,h=e,I=h.d,P=h.constructor,S=P.rounding,b=P.precision;if(h.s<0||!I||!I[0]||!h.e&&I[0]==1&&I.length==1)return new P(I&&!I[0]?-1/0:h.s!=1?NaN:I?0:h);if(r==null?(w=!1,c=b):c=r,P.precision=c+=g,t=J(I),n=t.charAt(0),Math.abs(o=h.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)h=h.times(e),t=J(h.d),n=t.charAt(0),f++;o=h.e,n>1?(h=new P("0."+t),o++):h=new P(n+"."+t.slice(1))}else return u=pn(P,c+2,b).times(o+""),h=Je(new P(n+"."+t.slice(1)),c-g).plus(u),P.precision=b,r==null?y(h,b,S,w=!0):h;for(p=h,l=s=h=L(h.minus(1),h.plus(1),c,1),d=y(h.times(h),c,1),i=3;;){if(s=y(s.times(d),c,1),u=l.plus(L(s,new P(i),c,1)),J(u.d).slice(0,c)===J(l.d).slice(0,c))if(l=l.times(2),o!==0&&(l=l.plus(pn(P,c+2,b).times(o+""))),l=L(l,new P(f),c,1),r==null)if(st(l.d,c-g,S,a))P.precision=c+=g,u=s=h=L(p.minus(1),p.plus(1),c,1),d=y(h.times(h),c,1),i=a=1;else return y(l,P.precision=b,S,w=!0);else return P.precision=b,l;l=u,i+=2}}function Hs(e){return String(e.s*e.s/0)}function ln(e,r){var t,n,i;for((t=r.indexOf("."))>-1&&(r=r.replace(".","")),(n=r.search(/e/i))>0?(t<0&&(t=n),t+=+r.slice(n+1),r=r.substring(0,n)):t<0&&(t=r.length),n=0;r.charCodeAt(n)===48;n++);for(i=r.length;r.charCodeAt(i-1)===48;--i);if(r=r.slice(n,i),r){if(i-=n,e.e=t=t-n-1,e.d=[],n=(t+1)%E,t<0&&(n+=E),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(r=r.replace(/(\d)_(?=\d)/g,"$1"),Gs.test(r))return ln(e,r)}else if(r==="Infinity"||r==="NaN")return+r||(e.s=NaN),e.e=NaN,e.d=null,e;if(bp.test(r))t=16,r=r.toLowerCase();else if(yp.test(r))t=2;else if(Ep.test(r))t=8;else throw Error(He+r);for(o=r.search(/p/i),o>0?(l=+r.slice(o+1),r=r.substring(2,o)):r=r.slice(2),o=r.indexOf("."),s=o>=0,n=e.constructor,s&&(r=r.replace(".",""),a=r.length,o=a-o,i=Ws(n,new n(t),o,o*2)),u=an(r,t,fe),c=u.length-1,o=c;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=mn(u,c),e.d=u,w=!1,s&&(e=L(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?U(2,l):sr.pow(2,l))),w=!0,e)}function Tp(e,r){var t,n=r.d.length;if(n<3)return r.isZero()?r:Pr(e,2,r,r);t=1.4*Math.sqrt(n),t=t>16?16:t|0,r=r.times(1/fn(5,t)),r=Pr(e,2,r,r);for(var i,o=new e(5),s=new e(16),a=new e(20);t--;)i=r.times(r),r=r.times(o.plus(i.times(s.times(i).minus(a))));return r}function Pr(e,r,t,n,i){var o,s,a,l,u=1,c=e.precision,p=Math.ceil(c/E);for(w=!1,l=t.times(t),a=new e(n);;){if(s=L(a.times(l),new e(r++*r++),c,1),a=i?n.plus(s):n.minus(s),n=L(s.times(l),new e(r++*r++),c,1),s=a.plus(n),s.d[p]!==void 0){for(o=p;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return w=!0,s.d.length=p+1,s}function fn(e,r){for(var t=e;--r;)t*=e;return t}function Ks(e,r){var t,n=r.s<0,i=we(e,e.precision,1),o=i.times(.5);if(r=r.abs(),r.lte(o))return Le=n?4:1,r;if(t=r.divToInt(i),t.isZero())Le=n?3:2;else{if(r=r.minus(t.times(i)),r.lte(o))return Le=Ms(t)?n?2:3:n?4:1,r;Le=Ms(t)?n?1:4:n?3:2}return r.minus(i).abs()}function Ui(e,r,t,n){var i,o,s,a,l,u,c,p,d,f=e.constructor,g=t!==void 0;if(g?(ie(t,1,Ke),n===void 0?n=f.rounding:ie(n,0,8)):(t=f.precision,n=f.rounding),!e.isFinite())c=Hs(e);else{for(c=xe(e),s=c.indexOf("."),g?(i=2,r==16?t=t*4-3:r==8&&(t=t*3-2)):i=r,s>=0&&(c=c.replace(".",""),d=new f(1),d.e=c.length-s,d.d=an(xe(d),10,i),d.e=d.d.length),p=an(c,10,i),o=l=p.length;p[--l]==0;)p.pop();if(!p[0])c=g?"0p+0":"0";else{if(s<0?o--:(e=new f(e),e.d=p,e.e=o,e=L(e,d,t,n,0,i),p=e.d,o=e.e,u=js),s=p[t],a=i/2,u=u||p[t+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&p[t-1]&1||n===(e.s<0?8:7)),p.length=t,u)for(;++p[--t]>i-1;)p[t]=0,t||(++o,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,c="";s1)if(r==16||r==8){for(s=r==16?4:3,--l;l%s;l++)c+="0";for(p=an(c,i,r),l=p.length;!p[l-1];--l);for(s=1,c="1.";sl)for(o-=l;o--;)c+="0";else or)return e.length=r,!0}function Sp(e){return new this(e).abs()}function Rp(e){return new this(e).acos()}function Cp(e){return new this(e).acosh()}function Ap(e,r){return new this(e).plus(r)}function Ip(e){return new this(e).asin()}function kp(e){return new this(e).asinh()}function Op(e){return new this(e).atan()}function Dp(e){return new this(e).atanh()}function _p(e,r){e=new this(e),r=new this(r);var t,n=this.precision,i=this.rounding,o=n+4;return!e.s||!r.s?t=new this(NaN):!e.d&&!r.d?(t=we(this,o,1).times(r.s>0?.25:.75),t.s=e.s):!r.d||e.isZero()?(t=r.s<0?we(this,n,i):new this(0),t.s=e.s):!e.d||r.isZero()?(t=we(this,o,1).times(.5),t.s=e.s):r.s<0?(this.precision=o,this.rounding=1,t=this.atan(L(e,r,o,1)),r=we(this,o,1),this.precision=n,this.rounding=i,t=e.s<0?t.minus(r):t.plus(r)):t=this.atan(L(e,r,o,1)),t}function Np(e){return new this(e).cbrt()}function Lp(e){return y(e=new this(e),e.e+1,2)}function Fp(e,r,t){return new this(e).clamp(r,t)}function Mp(e){if(!e||typeof e!="object")throw Error(dn+"Object expected");var r,t,n,i=e.defaults===!0,o=["precision",1,Ke,"rounding",0,8,"toExpNeg",-vr,0,"toExpPos",0,vr,"maxE",0,vr,"minE",-vr,0,"modulo",0,9];for(r=0;r=o[r+1]&&n<=o[r+2])this[t]=n;else throw Error(He+t+": "+n);if(t="crypto",i&&(this[t]=ji[t]),(n=e[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Bs);else this[t]=!1;else throw Error(He+t+": "+n);return this}function $p(e){return new this(e).cos()}function qp(e){return new this(e).cosh()}function Ys(e){var r,t,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,qs(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e=10;a/=10)s++;w?s>i.maxE?(u.e=NaN,u.d=null):s=429e7?r[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(r=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(r,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(Bs);else for(;o=10;i/=10)n++;nCr,datamodelEnumToSchemaEnum:()=>dd});function dd(e){return{name:e.name,values:e.values.map(r=>r.name)}}var Cr=(b=>(b.findUnique="findUnique",b.findUniqueOrThrow="findUniqueOrThrow",b.findFirst="findFirst",b.findFirstOrThrow="findFirstOrThrow",b.findMany="findMany",b.create="create",b.createMany="createMany",b.createManyAndReturn="createManyAndReturn",b.update="update",b.updateMany="updateMany",b.updateManyAndReturn="updateManyAndReturn",b.upsert="upsert",b.delete="delete",b.deleteMany="deleteMany",b.groupBy="groupBy",b.count="count",b.aggregate="aggregate",b.findRaw="findRaw",b.aggregateRaw="aggregateRaw",b))(Cr||{});var na=k(Ri());var ta=k(require("node:fs"));var Xs={keyword:Oe,entity:Oe,value:e=>W(nr(e)),punctuation:nr,directive:Oe,function:Oe,variable:e=>W(nr(e)),string:e=>W(qe(e)),boolean:ke,number:Oe,comment:Hr};var md=e=>e,hn={},fd=0,v={manual:hn.Prism&&hn.Prism.manual,disableWorkerMessageHandler:hn.Prism&&hn.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof ge){let r=e;return new ge(r.type,v.util.encode(r.content),r.alias)}else return Array.isArray(e)?e.map(v.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(Ae instanceof ge)continue;if(me&&V!=r.length-1){S.lastIndex=te;var p=S.exec(e);if(!p)break;var c=p.index+(O?p[1].length:0),d=p.index+p[0].length,a=V,l=te;for(let _=r.length;a<_&&(l=l&&(++V,te=l);if(r[V]instanceof ge)continue;u=a-V,Ae=e.slice(te,l),p.index-=te}else{S.lastIndex=0;var p=S.exec(Ae),u=1}if(!p){if(o)break;continue}O&&(ae=p[1]?p[1].length:0);var c=p.index+ae,p=p[0].slice(ae),d=c+p.length,f=Ae.slice(0,c),g=Ae.slice(d);let H=[V,u];f&&(++V,te+=f.length,H.push(f));let fr=new ge(h,b?v.tokenize(p,b):p,Jr,p,me);if(H.push(fr),g&&H.push(g),Array.prototype.splice.apply(r,H),u!=1&&v.matchGrammar(e,r,t,V,te,!0,h),o)break}}}},tokenize:function(e,r){let t=[e],n=r.rest;if(n){for(let i in n)r[i]=n[i];delete r.rest}return v.matchGrammar(e,t,r,0,0,!1),t},hooks:{all:{},add:function(e,r){let t=v.hooks.all;t[e]=t[e]||[],t[e].push(r)},run:function(e,r){let t=v.hooks.all[e];if(!(!t||!t.length))for(var n=0,i;i=t[n++];)i(r)}},Token:ge};v.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};v.languages.javascript=v.languages.extend("clike",{"class-name":[v.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});v.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;v.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:v.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:v.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:v.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:v.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});v.languages.markup&&v.languages.markup.tag.addInlined("script","javascript");v.languages.js=v.languages.javascript;v.languages.typescript=v.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/});v.languages.ts=v.languages.typescript;function ge(e,r,t,n,i){this.type=e,this.content=r,this.alias=t,this.length=(n||"").length|0,this.greedy=!!i}ge.stringify=function(e,r){return typeof e=="string"?e:Array.isArray(e)?e.map(function(t){return ge.stringify(t,r)}).join(""):gd(e.type)(e.content)};function gd(e){return Xs[e]||md}function ea(e){return hd(e,v.languages.javascript)}function hd(e,r){return v.tokenize(e,r).map(n=>ge.stringify(n)).join("")}function ra(e){return Ti(e)}var yn=class e{firstLineNumber;lines;static read(r){let t;try{t=ta.default.readFileSync(r,"utf-8")}catch{return null}return e.fromContent(t)}static fromContent(r){let t=r.split(/\r?\n/);return new e(1,t)}constructor(r,t){this.firstLineNumber=r,this.lines=t}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(r,t){if(rthis.lines.length+this.firstLineNumber)return this;let n=r-this.firstLineNumber,i=[...this.lines];return i[n]=t(i[n]),new e(this.firstLineNumber,i)}mapLines(r){return new e(this.firstLineNumber,this.lines.map((t,n)=>r(t,this.firstLineNumber+n)))}lineAt(r){return this.lines[r-this.firstLineNumber]}prependSymbolAt(r,t){return this.mapLines((n,i)=>i===r?`${t} ${n}`:` ${n}`)}slice(r,t){let n=this.lines.slice(r-1,t).join(` +`);return new e(r,ra(n).split(` +`))}highlight(){let r=ea(this.toString());return new e(this.firstLineNumber,r.split(` +`))}toString(){return this.lines.join(` +`)}};var yd={red:ce,gray:Hr,dim:Ie,bold:W,underline:Y,highlightSource:e=>e.highlight()},bd={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ed({message:e,originalMethod:r,isPanic:t,callArguments:n}){return{functionName:`prisma.${r}()`,message:e,isPanic:t??!1,callArguments:n}}function wd({callsite:e,message:r,originalMethod:t,isPanic:n,callArguments:i},o){let s=Ed({message:r,originalMethod:t,isPanic:n,callArguments:i});if(!e||typeof window<"u"||process.env.NODE_ENV==="production")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=yn.read(a.fileName)?.slice(l,a.lineNumber),c=u?.lineAt(a.lineNumber);if(u&&c){let p=vd(c),d=xd(c);if(!d)return s;s.functionName=`${d.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,g=>g.slice(0,d.openingBraceIndex))),u=o.highlightSource(u);let f=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((g,h)=>o.gray(String(h).padStart(f))+" "+g).mapLines(g=>o.dim(g)).prependSymbolAt(a.lineNumber,o.bold(o.red("\u2192"))),i){let g=p+f+1;g+=2,s.callArguments=(0,na.default)(i,g).slice(g)}}return s}function xd(e){let r=Object.keys(Cr).join("|"),n=new RegExp(String.raw`\.(${r})\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(" ",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function vd(e){let r=0;for(let t=0;t"Unknown error")}function la(e){return e.errors.flatMap(r=>r.kind==="Union"?la(r):[r])}function Sd(e){let r=new Map,t=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){t.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=r.get(i);o?r.set(i,{...n,argument:{...n.argument,typeNames:Rd(o.argument.typeNames,n.argument.typeNames)}}):r.set(i,n)}return t.push(...r.values()),t}function Rd(e,r){return[...new Set(e.concat(r))]}function Cd(e){return $i(e,(r,t)=>{let n=oa(r),i=oa(t);return n!==i?n-i:sa(r)-sa(t)})}function oa(e){let r=0;return Array.isArray(e.selectionPath)&&(r+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(r+=e.argumentPath.length),r}function sa(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}var ue=class{constructor(r,t){this.name=r;this.value=t}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(r){let{colors:{green:t}}=r.context;r.addMarginSymbol(t(this.isRequired?"+":"?")),r.write(t(this.name)),this.isRequired||r.write(t("?")),r.write(t(": ")),typeof this.value=="string"?r.write(t(this.value)):r.write(this.value)}};ca();var Ar=class{constructor(r=0,t){this.context=t;this.currentIndent=r}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(r){return typeof r=="string"?this.currentLine+=r:r.write(this),this}writeJoined(r,t,n=(i,o)=>o.write(i)){let i=t.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(r){return this.marginSymbol=r,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let r=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+r.slice(1):r}};ua();var wn=class{constructor(r){this.value=r}write(r){r.write(this.value)}markAsError(){this.value.markAsError()}};var xn=e=>e,vn={bold:xn,red:xn,green:xn,dim:xn,enabled:!1},pa={bold:W,red:ce,green:qe,dim:Ie,enabled:!0},Ir={write(e){e.writeLine(",")}};var Te=class{constructor(r){this.contents=r}isUnderlined=!1;color=r=>r;underline(){return this.isUnderlined=!0,this}setColor(r){return this.color=r,this}write(r){let t=r.getCurrentLineLength();r.write(this.color(this.contents)),this.isUnderlined&&r.afterNextNewline(()=>{r.write(" ".repeat(t)).writeLine(this.color("~".repeat(this.contents.length)))})}};var ze=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var kr=class extends ze{items=[];addItem(r){return this.items.push(new wn(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(t=>t.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let t=new Te("[]");this.hasError&&t.setColor(r.context.colors.red).underline(),r.write(t)}writeWithItems(r){let{colors:t}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(Ir,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(t.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var Or=class e extends ze{fields={};suggestions=[];addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[t,...n]=r,i=this.getField(t);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof kr&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let t=this;for(let n of r){if(!(t instanceof e))return;let i=t.getSubSelectionValue(n);if(!i)return;t=i}return t}getDeepSelectionParent(r){let t=this.getSelectionParent();if(!t)return;let n=t;for(let i of r){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let t=this.getField("include")?.value.asObject();if(t)return{kind:"include",value:t}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(n=>n.getPrintWidth()))+2}write(r){let t=Object.values(this.fields);if(t.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,t)}asObject(){return this}writeEmpty(r){let t=new Te("{}");this.hasError&&t.setColor(r.context.colors.red).underline(),r.write(t)}writeWithContents(r,t){r.writeLine("{").withIndent(()=>{r.writeJoined(Ir,[...t,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};var Q=class extends ze{constructor(t){super();this.text=t}getPrintWidth(){return this.text.length}write(t){let n=new Te(this.text);this.hasError&&n.underline().setColor(t.context.colors.red),t.write(n)}asObject(){}};var ut=class{fields=[];addField(r,t){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${r}: ${t}`))).addMarginSymbol(i(o("+")))}}),this}write(r){let{colors:{green:t}}=r.context;r.writeLine(t("{")).withIndent(()=>{r.writeJoined(Ir,this.fields).newLine()}).write(t("}")).addMarginSymbol(t("+"))}};function En(e,r,t){switch(e.kind){case"MutuallyExclusiveFields":Ad(e,r);break;case"IncludeOnScalar":Id(e,r);break;case"EmptySelection":kd(e,r,t);break;case"UnknownSelectionField":Nd(e,r);break;case"InvalidSelectionValue":Ld(e,r);break;case"UnknownArgument":Fd(e,r);break;case"UnknownInputField":Md(e,r);break;case"RequiredArgumentMissing":$d(e,r);break;case"InvalidArgumentType":qd(e,r);break;case"InvalidArgumentValue":jd(e,r);break;case"ValueTooLarge":Vd(e,r);break;case"SomeFieldsMissing":Bd(e,r);break;case"TooManyFieldsGiven":Ud(e,r);break;case"Union":aa(e,r,t);break;default:throw new Error("not implemented: "+e.kind)}}function Ad(e,r){let t=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();t&&(t.getField(e.firstField)?.markAsError(),t.getField(e.secondField)?.markAsError()),r.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function Id(e,r){let[t,n]=ct(e.selectionPath),i=e.outputType,o=r.arguments.getDeepSelectionParent(t)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ue(s.name,"true"));r.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${pt(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function kd(e,r,t){let n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Od(e,r,i);return}if(n.hasField("select")){Dd(e,r);return}}if(t?.[Ye(e.outputType.name)]){_d(e,r);return}r.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Od(e,r,t){t.removeAllFields();for(let n of e.outputType.fields)t.addSuggestion(new ue(n.name,"false"));r.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Dd(e,r){let t=e.outputType,n=r.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),ga(n,t)),r.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(t.name)} must not be empty. ${pt(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(t.name)} needs ${o.bold("at least one truthy value")}.`)}function _d(e,r){let t=new ut;for(let i of e.outputType.fields)i.isRelation||t.addField(i.name,"false");let n=new ue("omit",t).makeRequired();if(e.selectionPath.length===0)r.arguments.addSuggestion(n);else{let[i,o]=ct(e.selectionPath),a=r.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new Or;l.addSuggestion(n),a.value=l}}r.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Nd(e,r){let t=ha(e.selectionPath,r);if(t.parentKind!=="unknown"){t.field.markAsError();let n=t.parent;switch(t.parentKind){case"select":ga(n,e.outputType);break;case"include":Gd(n,e.outputType);break;case"omit":Qd(n,e.outputType);break}}r.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${t.fieldName}\``)}`];return t.parentKind!=="unknown"&&i.push(`for ${n.bold(t.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(pt(n)),i.join(" ")})}function Ld(e,r){let t=ha(e.selectionPath,r);t.parentKind!=="unknown"&&t.field.value.markAsError(),r.addErrorMessage(n=>`Invalid value for selection field \`${n.red(t.fieldName)}\`: ${e.underlyingError}`)}function Fd(e,r){let t=e.argumentPath[0],n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(t)?.markAsError(),Wd(n,e.arguments)),r.addErrorMessage(i=>ma(i,t,e.arguments.map(o=>o.name)))}function Md(e,r){let[t,n]=ct(e.argumentPath),i=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(t)?.asObject();o&&ya(o,e.inputType)}r.addErrorMessage(o=>ma(o,n,e.inputType.fields.map(s=>s.name)))}function ma(e,r,t){let n=[`Unknown argument \`${e.red(r)}\`.`],i=Hd(r,t);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),t.length>0&&n.push(pt(e)),n.join(" ")}function $d(e,r){let t;r.addErrorMessage(l=>t?.value instanceof Q&&t.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=ct(e.argumentPath),s=new ut,a=n.getDeepFieldValue(i)?.asObject();if(a)if(t=a.getField(o),t&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ue(o,s).makeRequired())}else{let l=e.inputTypes.map(fa).join(" | ");a.addSuggestion(new ue(o,l).makeRequired())}}function fa(e){return e.kind==="list"?`${fa(e.elementType)}[]`:e.name}function qd(e,r){let t=e.argument.name,n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),r.addErrorMessage(i=>{let o=Pn("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(t)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function jd(e,r){let t=e.argument.name,n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),r.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(t)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Pn("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Vd(e,r){let t=e.argument.name,n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof Q&&(i=s.text)}r.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(t)}\``),s.join(" ")})}function Bd(e,r){let t=e.argumentPath[e.argumentPath.length-1],n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&ya(i,e.inputType)}r.addErrorMessage(i=>{let o=[`Argument \`${i.bold(t)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Pn("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(pt(i)),o.join(" ")})}function Ud(e,r){let t=e.argumentPath[e.argumentPath.length-1],n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}r.addErrorMessage(o=>{let s=[`Argument \`${o.bold(t)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Pn("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function ga(e,r){for(let t of r.fields)e.hasField(t.name)||e.addSuggestion(new ue(t.name,"true"))}function Gd(e,r){for(let t of r.fields)t.isRelation&&!e.hasField(t.name)&&e.addSuggestion(new ue(t.name,"true"))}function Qd(e,r){for(let t of r.fields)!e.hasField(t.name)&&!t.isRelation&&e.addSuggestion(new ue(t.name,"true"))}function Wd(e,r){for(let t of r)e.hasField(t.name)||e.addSuggestion(new ue(t.name,t.typeNames.join(" | ")))}function ha(e,r){let[t,n]=ct(e),i=r.arguments.getDeepSubSelectionValue(t)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function ya(e,r){if(r.kind==="object")for(let t of r.fields)e.hasField(t.name)||e.addSuggestion(new ue(t.name,t.typeNames.join(" | ")))}function ct(e){let r=[...e],t=r.pop();if(!t)throw new Error("unexpected empty path");return[r,t]}function pt({green:e,enabled:r}){return"Available options are "+(r?`listed in ${e("green")}`:"marked with ?")+"."}function Pn(e,r){if(r.length===1)return r[0];let t=[...r],n=t.pop();return`${t.join(", ")} ${e} ${n}`}var Jd=3;function Hd(e,r){let t=1/0,n;for(let i of r){let o=(0,da.default)(e,i);o>Jd||o`}};function Dr(e){return e instanceof dt}var Tn=Symbol(),Ji=new WeakMap,Fe=class{constructor(r){r===Tn?Ji.set(this,`Prisma.${this._getName()}`):Ji.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Ji.get(this)}},mt=class extends Fe{_getNamespace(){return"NullTypes"}},ft=class extends mt{_brand_DbNull};Hi(ft,"DbNull");var gt=class extends mt{_brand_JsonNull};Hi(gt,"JsonNull");var ht=class extends mt{_brand_AnyNull};Hi(ht,"AnyNull");var Sn={classes:{DbNull:ft,JsonNull:gt,AnyNull:ht},instances:{DbNull:new ft(Tn),JsonNull:new gt(Tn),AnyNull:new ht(Tn)}};function Hi(e,r){Object.defineProperty(e,"name",{value:r,configurable:!0})}var ba=": ",Rn=class{constructor(r,t){this.name=r;this.value=t}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+ba.length}write(r){let t=new Te(this.name);this.hasError&&t.underline().setColor(r.context.colors.red),r.write(t).write(ba).write(this.value)}};var Ki=class{arguments;errorMessages=[];constructor(r){this.arguments=r}write(r){r.write(this.arguments)}addErrorMessage(r){this.errorMessages.push(r)}renderAllMessages(r){return this.errorMessages.map(t=>t(r)).join(` +`)}};function _r(e){return new Ki(Ea(e))}function Ea(e){let r=new Or;for(let[t,n]of Object.entries(e)){let i=new Rn(t,wa(n));r.addField(i)}return r}function wa(e){if(typeof e=="string")return new Q(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new Q(String(e));if(typeof e=="bigint")return new Q(`${e}n`);if(e===null)return new Q("null");if(e===void 0)return new Q("undefined");if(Rr(e))return new Q(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return Buffer.isBuffer(e)?new Q(`Buffer.alloc(${e.byteLength})`):new Q(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let r=gn(e)?e.toISOString():"Invalid Date";return new Q(`new Date("${r}")`)}return e instanceof Fe?new Q(`Prisma.${e._getName()}`):Dr(e)?new Q(`prisma.${Ye(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Kd(e):typeof e=="object"?Ea(e):new Q(Object.prototype.toString.call(e))}function Kd(e){let r=new kr;for(let t of e)r.addItem(wa(t));return r}function Cn(e,r){let t=r==="pretty"?pa:vn,n=e.renderAllMessages(t),i=new Ar(0,{colors:t}).write(e).toString();return{message:n,args:i}}function An({args:e,errors:r,errorFormat:t,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=_r(e);for(let p of r)En(p,a,s);let{message:l,args:u}=Cn(a,t),c=bn({message:l,callsite:n,originalMethod:i,showColors:t==="pretty",callArguments:u});throw new Z(c,{clientVersion:o})}function Se(e){return e.replace(/^./,r=>r.toLowerCase())}function va(e,r,t){let n=Se(t);return!r.result||!(r.result.$allModels||r.result[n])?e:Yd({...e,...xa(r.name,e,r.result.$allModels),...xa(r.name,e,r.result[n])})}function Yd(e){let r=new Pe,t=(n,i)=>r.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>t(o,i)):[n]));return xr(e,n=>({...n,needs:t(n.name,new Set)}))}function xa(e,r,t){return t?xr(t,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:zd(r,o,i)})):{}}function zd(e,r,t){let n=e?.[r]?.compute;return n?i=>t({...i,[r]:n(i)}):t}function Pa(e,r){if(!r)return e;let t={...e};for(let n of Object.values(r))if(e[n.name])for(let i of n.needs)t[i]=!0;return t}function Ta(e,r){if(!r)return e;let t={...e};for(let n of Object.values(r))if(!e[n.name])for(let i of n.needs)delete t[i];return t}var In=class{constructor(r,t){this.extension=r;this.previous=t}computedFieldsCache=new Pe;modelExtensionsCache=new Pe;queryCallbacksCache=new Pe;clientExtensions=at(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=at(()=>{let r=this.previous?.getAllBatchQueryCallbacks()??[],t=this.extension.query?.$__internalBatch;return t?r.concat(t):r});getAllComputedFields(r){return this.computedFieldsCache.getOrCreate(r,()=>va(this.previous?.getAllComputedFields(r),this.extension,r))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(r){return this.modelExtensionsCache.getOrCreate(r,()=>{let t=Se(r);return!this.extension.model||!(this.extension.model[t]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(r):{...this.previous?.getAllModelExtensions(r),...this.extension.model.$allModels,...this.extension.model[t]}})}getAllQueryCallbacks(r,t){return this.queryCallbacksCache.getOrCreate(`${r}:${t}`,()=>{let n=this.previous?.getAllQueryCallbacks(r,t)??[],i=[],o=this.extension.query;return!o||!(o[r]||o.$allModels||o[t]||o.$allOperations)?n:(o[r]!==void 0&&(o[r][t]!==void 0&&i.push(o[r][t]),o[r].$allOperations!==void 0&&i.push(o[r].$allOperations)),r!=="$none"&&o.$allModels!==void 0&&(o.$allModels[t]!==void 0&&i.push(o.$allModels[t]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[t]!==void 0&&i.push(o[t]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},Nr=class e{constructor(r){this.head=r}static empty(){return new e}static single(r){return new e(new In(r))}isEmpty(){return this.head===void 0}append(r){return new e(new In(r,this.head))}getAllComputedFields(r){return this.head?.getAllComputedFields(r)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(r){return this.head?.getAllModelExtensions(r)}getAllQueryCallbacks(r,t){return this.head?.getAllQueryCallbacks(r,t)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};var kn=class{constructor(r){this.name=r}};function Sa(e){return e instanceof kn}function Ra(e){return new kn(e)}var Ca=Symbol(),yt=class{constructor(r){if(r!==Ca)throw new Error("Skip instance can not be constructed directly")}ifUndefined(r){return r===void 0?On:r}},On=new yt(Ca);function Re(e){return e instanceof yt}var Zd={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Aa="explicitly `undefined` values are not allowed";function Dn({modelName:e,action:r,args:t,runtimeDataModel:n,extensions:i=Nr.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c}){let p=new Yi({runtimeDataModel:n,modelName:e,action:r,rootArgs:t,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c});return{modelName:e,action:Zd[r],query:bt(t,p)}}function bt({select:e,include:r,...t}={},n){let i=t.omit;return delete t.omit,{arguments:ka(t,n),selection:Xd(e,r,i,n)}}function Xd(e,r,t,n){return e?(r?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):t&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),nm(e,n)):em(n,r,t)}function em(e,r,t){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),r&&rm(n,r,e),tm(n,t,e),n}function rm(e,r,t){for(let[n,i]of Object.entries(r)){if(Re(i))continue;let o=t.nestSelection(n);if(zi(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=t.findField(n);if(s&&s.kind!=="object"&&t.throwValidationError({kind:"IncludeOnScalar",selectionPath:t.getSelectionPath().concat(n),outputType:t.getOutputTypeDescription()}),s){e[n]=bt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=bt(i,o)}}function tm(e,r,t){let n=t.getComputedFields(),i={...t.getGlobalOmit(),...r},o=Ta(i,n);for(let[s,a]of Object.entries(o)){if(Re(a))continue;zi(a,t.nestSelection(s));let l=t.findField(s);n?.[s]&&!l||(e[s]=!a)}}function nm(e,r){let t={},n=r.getComputedFields(),i=Pa(e,n);for(let[o,s]of Object.entries(i)){if(Re(s))continue;let a=r.nestSelection(o);zi(s,a);let l=r.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Re(s)){t[o]=!1;continue}if(s===!0){l?.kind==="object"?t[o]=bt({},a):t[o]=!0;continue}t[o]=bt(s,a)}}return t}function Ia(e,r){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(Sr(e)){if(gn(e))return{$type:"DateTime",value:e.toISOString()};r.throwValidationError({kind:"InvalidArgumentValue",selectionPath:r.getSelectionPath(),argumentPath:r.getArgumentPath(),argument:{name:r.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Sa(e))return{$type:"Param",value:e.name};if(Dr(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return im(e,r);if(ArrayBuffer.isView(e)){let{buffer:t,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:Buffer.from(t,n,i).toString("base64")}}if(om(e))return e.values;if(Rr(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Fe){if(e!==Sn.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(sm(e))return e.toJSON();if(typeof e=="object")return ka(e,r);r.throwValidationError({kind:"InvalidArgumentValue",selectionPath:r.getSelectionPath(),argumentPath:r.getArgumentPath(),argument:{name:r.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function ka(e,r){if(e.$type)return{$type:"Raw",value:e};let t={};for(let n in e){let i=e[n],o=r.nestArgument(n);Re(i)||(i!==void 0?t[n]=Ia(i,o):r.isPreviewFeatureOn("strictUndefinedChecks")&&r.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:r.getSelectionPath(),argument:{name:r.getArgumentName(),typeNames:[]},underlyingError:Aa}))}return t}function im(e,r){let t=[];for(let n=0;n({name:r.name,typeName:"boolean",isRelation:r.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(r){return this.params.previewFeatures.includes(r)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(r){return this.modelOrType?.fields.find(t=>t.name===r)}nestSelection(r){let t=this.findField(r),n=t?.kind==="object"?t.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(r)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[Ye(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:_e(this.params.action,"Unknown action")}}nestArgument(r){return new e({...this.params,argumentPath:this.params.argumentPath.concat(r)})}};function Oa(e){if(!e._hasPreviewFlag("metrics"))throw new Z("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var Lr=class{_client;constructor(r){this._client=r}prometheus(r){return Oa(this._client),this._client._engine.metrics({format:"prometheus",...r})}json(r){return Oa(this._client),this._client._engine.metrics({format:"json",...r})}};function Da(e,r){let t=at(()=>am(r));Object.defineProperty(e,"dmmf",{get:()=>t.get()})}function am(e){return{datamodel:{models:Zi(e.models),enums:Zi(e.enums),types:Zi(e.types)}}}function Zi(e){return Object.entries(e).map(([r,t])=>({name:r,...t}))}var Xi=new WeakMap,_n="$$PrismaTypedSql",Et=class{constructor(r,t){Xi.set(this,{sql:r,values:t}),Object.defineProperty(this,_n,{value:_n})}get sql(){return Xi.get(this).sql}get values(){return Xi.get(this).values}};function _a(e){return(...r)=>new Et(e,r)}function Nn(e){return e!=null&&e[_n]===_n}var pu=k(Ei());var du=require("node:async_hooks"),mu=require("node:events"),fu=k(require("node:fs")),Zn=k(require("node:path"));var oe=class e{constructor(r,t){if(r.length-1!==t.length)throw r.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${r.length} strings to have ${r.length-1} values`);let n=t.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=r[0];let i=0,o=0;for(;ie.getPropertyValue(t))},getPropertyDescriptor(t){return e.getPropertyDescriptor?.(t)}}}var Ln={enumerable:!0,configurable:!0,writable:!0};function Fn(e){let r=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>Ln,has:(t,n)=>r.has(n),set:(t,n,i)=>r.add(n)&&Reflect.set(t,n,i),ownKeys:()=>[...r]}}var Fa=Symbol.for("nodejs.util.inspect.custom");function he(e,r){let t=lm(r),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=t.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=t.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Ma(Reflect.ownKeys(o),t),a=Ma(Array.from(t.keys()),t);return[...new Set([...s,...a,...n])]},set(o,s,a){return t.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=t.get(s);return l?l.getPropertyDescriptor?{...Ln,...l?.getPropertyDescriptor(s)}:Ln:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[Fa]=function(){let o={...this};return delete o[Fa],o},i}function lm(e){let r=new Map;for(let t of e){let n=t.getKeys();for(let i of n)r.set(i,t)}return r}function Ma(e,r){return e.filter(t=>r.get(t)?.has?.(t)??!0)}function Fr(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}function Mr(e,r){return{batch:e,transaction:r?.kind==="batch"?{isolationLevel:r.options.isolationLevel}:void 0}}function $a(e){if(e===void 0)return"";let r=_r(e);return new Ar(0,{colors:vn}).write(r).toString()}var um="P2037";function $r({error:e,user_facing_error:r},t,n){return r.error_code?new z(cm(r,n),{code:r.error_code,clientVersion:t,meta:r.meta,batchRequestIdx:r.batch_request_idx}):new j(e,{clientVersion:t,batchRequestIdx:r.batch_request_idx})}function cm(e,r){let t=e.message;return(r==="postgresql"||r==="postgres"||r==="mysql")&&e.error_code===um&&(t+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),t}var xt="";function qa(e){var r=e.split(` +`);return r.reduce(function(t,n){var i=mm(n)||gm(n)||bm(n)||vm(n)||wm(n);return i&&t.push(i),t},[])}var pm=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,dm=/\((\S*)(?::(\d+))(?::(\d+))\)/;function mm(e){var r=pm.exec(e);if(!r)return null;var t=r[2]&&r[2].indexOf("native")===0,n=r[2]&&r[2].indexOf("eval")===0,i=dm.exec(r[2]);return n&&i!=null&&(r[2]=i[1],r[3]=i[2],r[4]=i[3]),{file:t?null:r[2],methodName:r[1]||xt,arguments:t?[r[2]]:[],lineNumber:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}var fm=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function gm(e){var r=fm.exec(e);return r?{file:r[2],methodName:r[1]||xt,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}:null}var hm=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,ym=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function bm(e){var r=hm.exec(e);if(!r)return null;var t=r[3]&&r[3].indexOf(" > eval")>-1,n=ym.exec(r[3]);return t&&n!=null&&(r[3]=n[1],r[4]=n[2],r[5]=null),{file:r[3],methodName:r[1]||xt,arguments:r[2]?r[2].split(","):[],lineNumber:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}var Em=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function wm(e){var r=Em.exec(e);return r?{file:r[3],methodName:r[1]||xt,arguments:[],lineNumber:+r[4],column:r[5]?+r[5]:null}:null}var xm=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function vm(e){var r=xm.exec(e);return r?{file:r[2],methodName:r[1]||xt,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}:null}var to=class{getLocation(){return null}},no=class{_error;constructor(){this._error=new Error}getLocation(){let r=this._error.stack;if(!r)return null;let n=qa(r).find(i=>{if(!i.file)return!1;let o=Oi(i.file);return o!==""&&!o.includes("@prisma")&&!o.includes("/packages/client/src/runtime/")&&!o.endsWith("/runtime/binary.js")&&!o.endsWith("/runtime/library.js")&&!o.endsWith("/runtime/edge.js")&&!o.endsWith("/runtime/edge-esm.js")&&!o.startsWith("internal/")&&!i.methodName.includes("new ")&&!i.methodName.includes("getCallSite")&&!i.methodName.includes("Proxy.")&&i.methodName.split(".").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ze(e){return e==="minimal"?typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new to:new no}var ja={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function qr(e={}){let r=Tm(e);return Object.entries(r).reduce((n,[i,o])=>(ja[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Tm(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Mn(e={}){return r=>(typeof e._count=="boolean"&&(r._count=r._count._all),r)}function Va(e,r){let t=Mn(e);return r({action:"aggregate",unpacker:t,argsMapper:qr})(e)}function Sm(e={}){let{select:r,...t}=e;return typeof r=="object"?qr({...t,_count:r}):qr({...t,_count:{_all:!0}})}function Rm(e={}){return typeof e.select=="object"?r=>Mn(e)(r)._count:r=>Mn(e)(r)._count._all}function Ba(e,r){return r({action:"count",unpacker:Rm(e),argsMapper:Sm})(e)}function Cm(e={}){let r=qr(e);if(Array.isArray(r.by))for(let t of r.by)typeof t=="string"&&(r.select[t]=!0);else typeof r.by=="string"&&(r.select[r.by]=!0);return r}function Am(e={}){return r=>(typeof e?._count=="boolean"&&r.forEach(t=>{t._count=t._count._all}),r)}function Ua(e,r){return r({action:"groupBy",unpacker:Am(e),argsMapper:Cm})(e)}function Ga(e,r,t){if(r==="aggregate")return n=>Va(n,t);if(r==="count")return n=>Ba(n,t);if(r==="groupBy")return n=>Ua(n,t)}function Qa(e,r){let t=r.fields.filter(i=>!i.relationName),n=zs(t,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new dt(e,o,s.type,s.isList,s.kind==="enum")},...Fn(Object.keys(n))})}var Wa=e=>Array.isArray(e)?e:e.split("."),io=(e,r)=>Wa(r).reduce((t,n)=>t&&t[n],e),Ja=(e,r,t)=>Wa(r).reduceRight((n,i,o,s)=>Object.assign({},io(e,s.slice(0,o)),{[i]:n}),t);function Im(e,r){return e===void 0||r===void 0?[]:[...r,"select",e]}function km(e,r,t){return r===void 0?e??{}:Ja(r,t,e||!0)}function oo(e,r,t,n,i,o){let a=e._runtimeDataModel.models[r].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ze(e._errorFormat),c=Im(n,i),p=km(l,o,c),d=t({dataPath:c,callsite:u})(p),f=Om(e,r);return new Proxy(d,{get(g,h){if(!f.includes(h))return g[h];let P=[a[h].type,t,h],S=[c,p];return oo(e,...P,...S)},...Fn([...f,...Object.getOwnPropertyNames(d)])})}}function Om(e,r){return e._runtimeDataModel.models[r].fields.filter(t=>t.kind==="object").map(t=>t.name)}var Dm=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],_m=["aggregate","count","groupBy"];function so(e,r){let t=e._extensions.getAllModelExtensions(r)??{},n=[Nm(e,r),Fm(e,r),wt(t),re("name",()=>r),re("$name",()=>r),re("$parent",()=>e._appliedParent)];return he({},n)}function Nm(e,r){let t=Se(r),n=Object.keys(Cr).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let u=Ze(e._errorFormat);return e._createPrismaPromise(c=>{let p={args:l,dataPath:[],action:o,model:r,clientMethod:`${t}.${i}`,jsModelName:t,transaction:c,callsite:u};return e._request({...p,...a})},{action:o,args:l,model:r})};return Dm.includes(o)?oo(e,r,s):Lm(i)?Ga(e,i,s):s({})}}}function Lm(e){return _m.includes(e)}function Fm(e,r){return ar(re("fields",()=>{let t=e._runtimeDataModel.models[r];return Qa(r,t)}))}function Ha(e){return e.replace(/^./,r=>r.toUpperCase())}var ao=Symbol();function vt(e){let r=[Mm(e),$m(e),re(ao,()=>e),re("$parent",()=>e._appliedParent)],t=e._extensions.getAllClientExtensions();return t&&r.push(wt(t)),he(e,r)}function Mm(e){let r=Object.getPrototypeOf(e._originalClient),t=[...new Set(Object.getOwnPropertyNames(r))];return{getKeys(){return t},getPropertyValue(n){return e[n]}}}function $m(e){let r=Object.keys(e._runtimeDataModel.models),t=r.map(Se),n=[...new Set(r.concat(t))];return ar({getKeys(){return n},getPropertyValue(i){let o=Ha(i);if(e._runtimeDataModel.models[o]!==void 0)return so(e,o);if(e._runtimeDataModel.models[i]!==void 0)return so(e,i)},getPropertyDescriptor(i){if(!t.includes(i))return{enumerable:!1}}})}function Ka(e){return e[ao]?e[ao]:e}function Ya(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let t=e.client.__AccelerateEngine;this._originalClient._engine=new t(this._originalClient._accelerateEngineConfig)}let r=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return vt(r)}function za({result:e,modelName:r,select:t,omit:n,extensions:i}){let o=i.getAllComputedFields(r);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(c=>n[c]);u.length>0&&a.push(Fr(u))}else if(t){if(!t[l.name])continue;let u=l.needs.filter(c=>!t[c]);u.length>0&&a.push(Fr(u))}qm(e,l.needs)&&s.push(jm(l,he(e,s)))}return s.length>0||a.length>0?he(e,[...s,...a]):e}function qm(e,r){return r.every(t=>Mi(e,t))}function jm(e,r){return ar(re(e.name,()=>e.compute(r)))}function $n({visitor:e,result:r,args:t,runtimeDataModel:n,modelName:i}){if(Array.isArray(r)){for(let s=0;sc.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let u=typeof s=="object"?s:{};r[o]=$n({visitor:i,result:r[o],args:u,modelName:l.type,runtimeDataModel:n})}}function Xa({result:e,modelName:r,args:t,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[r]?e:$n({result:e,args:t??{},modelName:r,runtimeDataModel:i,visitor:(a,l,u)=>{let c=Se(l);return za({result:a,modelName:c,select:u.select,omit:u.select?void 0:{...o?.[c],...u.omit},extensions:n})}})}var Vm=["$connect","$disconnect","$on","$transaction","$use","$extends"],el=Vm;function rl(e){if(e instanceof oe)return Bm(e);if(Nn(e))return Um(e);if(Array.isArray(e)){let t=[e[0]];for(let n=1;n{let o=r.customDataProxyFetch;return"transaction"in r&&i!==void 0&&(r.transaction?.kind==="batch"&&r.transaction.lock.then(),r.transaction=i),n===t.length?e._executeRequest(r):t[n]({model:r.model,operation:r.model?r.action:r.clientMethod,args:rl(r.args??{}),__internalParams:r,query:(s,a=r)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=al(o,l),a.args=s,nl(e,a,t,n+1)}})})}function il(e,r){let{jsModelName:t,action:n,clientMethod:i}=r,o=t?n:i;if(e._extensions.isEmpty())return e._executeRequest(r);let s=e._extensions.getAllQueryCallbacks(t??"$none",o);return nl(e,r,s)}function ol(e){return r=>{let t={requests:r},n=r[0].extensions.getAllBatchQueryCallbacks();return n.length?sl(t,n,0,e):e(t)}}function sl(e,r,t,n){if(t===r.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return r[t]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=al(i,l),sl(a,r,t+1,n)}})}var tl=e=>e;function al(e=tl,r=tl){return t=>e(r(t))}var ll=N("prisma:client"),ul={Vercel:"vercel","Netlify CI":"netlify"};function cl({postinstall:e,ciName:r,clientVersion:t}){if(ll("checkPlatformCaching:postinstall",e),ll("checkPlatformCaching:ciName",r),e===!0&&r&&r in ul){let n=`Prisma has detected that this project was built on ${r}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ul[r]}-build`;throw console.error(n),new T(n,t)}}function pl(e,r){return e?e.datasources?e.datasources:e.datasourceUrl?{[r[0]]:{url:e.datasourceUrl}}:{}:{}}var Gm=()=>globalThis.process?.release?.name==="node",Qm=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,Wm=()=>!!globalThis.Deno,Jm=()=>typeof globalThis.Netlify=="object",Hm=()=>typeof globalThis.EdgeRuntime=="object",Km=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function Ym(){return[[Jm,"netlify"],[Hm,"edge-light"],[Km,"workerd"],[Wm,"deno"],[Qm,"bun"],[Gm,"node"]].flatMap(t=>t[0]()?[t[1]]:[]).at(0)??""}var zm={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function qn(){let e=Ym();return{id:e,prettyName:zm[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}var hl=k(require("node:fs")),Tt=k(require("node:path"));function jn(e){let{runtimeBinaryTarget:r}=e;return`Add "${r}" to \`binaryTargets\` in the "schema.prisma" file and run \`prisma generate\` after saving it: + +${Zm(e)}`}function Zm(e){let{generator:r,generatorBinaryTargets:t,runtimeBinaryTarget:n}=e,i={fromEnvVar:null,value:n},o=[...t,i];return Ai({...r,binaryTargets:o})}function Xe(e){let{runtimeBinaryTarget:r}=e;return`Prisma Client could not locate the Query Engine for runtime "${r}".`}function er(e){let{searchedLocations:r}=e;return`The following locations have been searched: +${[...new Set(r)].map(i=>` ${i}`).join(` +`)}`}function dl(e){let{runtimeBinaryTarget:r}=e;return`${Xe(e)} + +This happened because \`binaryTargets\` have been pinned, but the actual deployment also required "${r}". +${jn(e)} + +${er(e)}`}function Vn(e){return`We would appreciate if you could take the time to share some information with us. +Please help us by answering a few questions: https://pris.ly/${e}`}function Bn(e){let{errorStack:r}=e;return r?.match(/\/\.next|\/next@|\/next\//)?` + +We detected that you are using Next.js, learn how to fix this: https://pris.ly/d/engine-not-found-nextjs.`:""}function ml(e){let{queryEngineName:r}=e;return`${Xe(e)}${Bn(e)} + +This is likely caused by a bundler that has not copied "${r}" next to the resulting bundle. +Ensure that "${r}" has been copied next to the bundle or in "${e.expectedLocation}". + +${Vn("engine-not-found-bundler-investigation")} + +${er(e)}`}function fl(e){let{runtimeBinaryTarget:r,generatorBinaryTargets:t}=e,n=t.find(i=>i.native);return`${Xe(e)} + +This happened because Prisma Client was generated for "${n?.value??"unknown"}", but the actual deployment required "${r}". +${jn(e)} + +${er(e)}`}function gl(e){let{queryEngineName:r}=e;return`${Xe(e)}${Bn(e)} + +This is likely caused by tooling that has not copied "${r}" to the deployment folder. +Ensure that you ran \`prisma generate\` and that "${r}" has been copied to "${e.expectedLocation}". + +${Vn("engine-not-found-tooling-investigation")} + +${er(e)}`}var Xm=N("prisma:client:engines:resolveEnginePath"),ef=()=>new RegExp("runtime[\\\\/]library\\.m?js$");async function yl(e,r){let t={binary:process.env.PRISMA_QUERY_ENGINE_BINARY,library:process.env.PRISMA_QUERY_ENGINE_LIBRARY}[e]??r.prismaPath;if(t!==void 0)return t;let{enginePath:n,searchedLocations:i}=await rf(e,r);if(Xm("enginePath",n),n!==void 0&&e==="binary"&&vi(n),n!==void 0)return r.prismaPath=n;let o=await ir(),s=r.generator?.binaryTargets??[],a=s.some(d=>d.native),l=!s.some(d=>d.value===o),u=__filename.match(ef())===null,c={searchedLocations:i,generatorBinaryTargets:s,generator:r.generator,runtimeBinaryTarget:o,queryEngineName:bl(e,o),expectedLocation:Tt.default.relative(process.cwd(),r.dirname),errorStack:new Error().stack},p;throw a&&l?p=fl(c):l?p=dl(c):u?p=ml(c):p=gl(c),new T(p,r.clientVersion)}async function rf(engineType,config){let binaryTarget=await ir(),searchedLocations=[],dirname=eval("__dirname"),searchLocations=[config.dirname,Tt.default.resolve(dirname,".."),config.generator?.output?.value??dirname,Tt.default.resolve(dirname,"../../../.prisma/client"),"/tmp/prisma-engines",config.cwd];__filename.includes("resolveEnginePath")&&searchLocations.push(gs());for(let e of searchLocations){let r=bl(engineType,binaryTarget),t=Tt.default.join(e,r);if(searchedLocations.push(e),hl.default.existsSync(t))return{enginePath:t,searchedLocations}}return{enginePath:void 0,searchedLocations}}function bl(e,r){return e==="library"?Bt(r,"fs"):`query-engine-${r}${r==="windows"?".exe":""}`}var lo=k(ki());function El(e){return e?e.replace(/".*"/g,'"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g,r=>`${r[0]}5`):""}function wl(e){return e.split(` +`).map(r=>r.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/,"").replace(/\+\d+\s*ms$/,"")).join(` +`)}var xl=k(Ls());function vl({title:e,user:r="prisma",repo:t="prisma",template:n="bug_report.yml",body:i}){return(0,xl.default)({user:r,repo:t,template:n,title:e,body:i})}function Pl({version:e,binaryTarget:r,title:t,description:n,engineVersion:i,database:o,query:s}){let a=Go(6e3-(s?.length??0)),l=wl((0,lo.default)(a)),u=n?`# Description +\`\`\` +${n} +\`\`\``:"",c=(0,lo.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${process.version?.padEnd(19)}| +| OS | ${r?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s?El(s):""} +\`\`\` +`),p=vl({title:t,body:c});return`${t} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${Y(p)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`}function jr({inlineDatasources:e,overrideDatasources:r,env:t,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=r[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=t[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new T(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new T("error: Missing URL environment variable, value, or override.",n);return i}var Un=class extends Error{clientVersion;cause;constructor(r,t){super(r),this.clientVersion=t.clientVersion,this.cause=t.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends Un{isRetryable;constructor(r,t){super(r,t),this.isRetryable=t.isRetryable??!0}};function R(e,r){return{...e,isRetryable:r}}var Vr=class extends se{name="ForcedRetryError";code="P5001";constructor(r){super("This request must be retried",R(r,!0))}};x(Vr,"ForcedRetryError");var lr=class extends se{name="InvalidDatasourceError";code="P6001";constructor(r,t){super(r,R(t,!1))}};x(lr,"InvalidDatasourceError");var ur=class extends se{name="NotImplementedYetError";code="P5004";constructor(r,t){super(r,R(t,!1))}};x(ur,"NotImplementedYetError");var $=class extends se{response;constructor(r,t){super(r,t),this.response=t.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var cr=class extends ${name="SchemaMissingError";code="P5005";constructor(r){super("Schema needs to be uploaded",R(r,!0))}};x(cr,"SchemaMissingError");var uo="This request could not be understood by the server",St=class extends ${name="BadRequestError";code="P5000";constructor(r,t,n){super(t||uo,R(r,!1)),n&&(this.code=n)}};x(St,"BadRequestError");var Rt=class extends ${name="HealthcheckTimeoutError";code="P5013";logs;constructor(r,t){super("Engine not started: healthcheck timeout",R(r,!0)),this.logs=t}};x(Rt,"HealthcheckTimeoutError");var Ct=class extends ${name="EngineStartupError";code="P5014";logs;constructor(r,t,n){super(t,R(r,!0)),this.logs=n}};x(Ct,"EngineStartupError");var At=class extends ${name="EngineVersionNotSupportedError";code="P5012";constructor(r){super("Engine version is not supported",R(r,!1))}};x(At,"EngineVersionNotSupportedError");var co="Request timed out",It=class extends ${name="GatewayTimeoutError";code="P5009";constructor(r,t=co){super(t,R(r,!1))}};x(It,"GatewayTimeoutError");var tf="Interactive transaction error",kt=class extends ${name="InteractiveTransactionError";code="P5015";constructor(r,t=tf){super(t,R(r,!1))}};x(kt,"InteractiveTransactionError");var nf="Request parameters are invalid",Ot=class extends ${name="InvalidRequestError";code="P5011";constructor(r,t=nf){super(t,R(r,!1))}};x(Ot,"InvalidRequestError");var po="Requested resource does not exist",Dt=class extends ${name="NotFoundError";code="P5003";constructor(r,t=po){super(t,R(r,!1))}};x(Dt,"NotFoundError");var mo="Unknown server error",Br=class extends ${name="ServerError";code="P5006";logs;constructor(r,t,n){super(t||mo,R(r,!0)),this.logs=n}};x(Br,"ServerError");var fo="Unauthorized, check your connection string",_t=class extends ${name="UnauthorizedError";code="P5007";constructor(r,t=fo){super(t,R(r,!1))}};x(_t,"UnauthorizedError");var go="Usage exceeded, retry again later",Nt=class extends ${name="UsageExceededError";code="P5008";constructor(r,t=go){super(t,R(r,!0))}};x(Nt,"UsageExceededError");async function of(e){let r;try{r=await e.text()}catch{return{type:"EmptyError"}}try{let t=JSON.parse(r);if(typeof t=="string")switch(t){case"InternalDataProxyError":return{type:"DataProxyError",body:t};default:return{type:"UnknownTextError",body:t}}if(typeof t=="object"&&t!==null){if("is_panic"in t&&"message"in t&&"error_code"in t)return{type:"QueryEngineError",body:t};if("EngineNotStarted"in t||"InteractiveTransactionMisrouted"in t||"InvalidRequestError"in t){let n=Object.values(t)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:t}:{type:"DataProxyError",body:t}}}return{type:"UnknownJsonError",body:t}}catch{return r===""?{type:"EmptyError"}:{type:"UnknownTextError",body:r}}}async function Lt(e,r){if(e.ok)return;let t={clientVersion:r,response:e},n=await of(e);if(n.type==="QueryEngineError")throw new z(n.body.message,{code:n.body.error_code,clientVersion:r});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new Br(t,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new cr(t);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new At(t);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Ct(t,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new T(i,r,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Rt(t,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new kt(t,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Ot(t,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new _t(t,Ur(fo,n));if(e.status===404)return new Dt(t,Ur(po,n));if(e.status===429)throw new Nt(t,Ur(go,n));if(e.status===504)throw new It(t,Ur(co,n));if(e.status>=500)throw new Br(t,Ur(mo,n));if(e.status>=400)throw new St(t,Ur(uo,n))}function Ur(e,r){return r.type==="EmptyError"?e:`${e}: ${JSON.stringify(r)}`}function Tl(e){let r=Math.pow(2,e)*50,t=Math.ceil(Math.random()*r)-Math.ceil(r/2),n=r+t;return new Promise(i=>setTimeout(()=>i(n),n))}var Me="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Sl(e){let r=new TextEncoder().encode(e),t="",n=r.byteLength,i=n%3,o=n-i,s,a,l,u,c;for(let p=0;p>18,a=(c&258048)>>12,l=(c&4032)>>6,u=c&63,t+=Me[s]+Me[a]+Me[l]+Me[u];return i==1?(c=r[o],s=(c&252)>>2,a=(c&3)<<4,t+=Me[s]+Me[a]+"=="):i==2&&(c=r[o]<<8|r[o+1],s=(c&64512)>>10,a=(c&1008)>>4,l=(c&15)<<2,t+=Me[s]+Me[a]+Me[l]+"="),t}function Rl(e){if(!!e.generator?.previewFeatures.some(t=>t.toLowerCase().includes("metrics")))throw new T("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}function sf(e){return e[0]*1e3+e[1]/1e6}function ho(e){return new Date(sf(e))}var Cl={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};var Ft=class extends se{name="RequestError";code="P5010";constructor(r,t){super(`Cannot fetch data from service: +${r}`,R(t,!0))}};x(Ft,"RequestError");async function pr(e,r,t=n=>n){let{clientVersion:n,...i}=r,o=t(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new Ft(a,{clientVersion:n,cause:s})}}var lf=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,Al=N("prisma:client:dataproxyEngine");async function uf(e,r){let t=Cl["@prisma/engines-version"],n=r.clientVersion??"unknown";if(process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&lf.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=t.split("-")??[],[a,l,u]=s.split("."),c=cf(`<=${a}.${l}.${u}`),p=await pr(c,{clientVersion:n});if(!p.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${p.status} ${p.statusText}, response body: ${await p.text()||""}`);let d=await p.text();Al("length of body fetched from unpkg.com",d.length);let f;try{f=JSON.parse(d)}catch(g){throw console.error("JSON.parse error: body fetched from unpkg.com: ",d),g}return f.version}throw new ur("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Il(e,r){let t=await uf(e,r);return Al("version",t),t}function cf(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var kl=3,Gn=N("prisma:client:dataproxyEngine"),yo=class{apiKey;tracingHelper;logLevel;logQueries;engineHash;constructor({apiKey:r,tracingHelper:t,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=r,this.tracingHelper=t,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:r,interactiveTransaction:t}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=r??this.tracingHelper.getTraceParent()),t&&(n["X-transaction-id"]=t.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let r=[];return this.tracingHelper.isEnabled()&&r.push("tracing"),this.logLevel&&r.push(this.logLevel),this.logQueries&&r.push("query"),r}},Mt=class{name="DataProxyEngine";inlineSchema;inlineSchemaHash;inlineDatasources;config;logEmitter;env;clientVersion;engineHash;tracingHelper;remoteClientVersion;host;headerBuilder;startPromise;constructor(r){Rl(r),this.config=r,this.env={...r.env,...typeof process<"u"?process.env:{}},this.inlineSchema=Sl(r.inlineSchema),this.inlineDatasources=r.inlineDatasources,this.inlineSchemaHash=r.inlineSchemaHash,this.clientVersion=r.clientVersion,this.engineHash=r.engineVersion,this.logEmitter=r.logEmitter,this.tracingHelper=r.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[r,t]=this.extractHostAndApiKey();this.host=r,this.headerBuilder=new yo({apiKey:t,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Il(r,this.config),Gn("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(r){r?.logs?.length&&r.logs.forEach(t=>{switch(t.level){case"debug":case"trace":Gn(t);break;case"error":case"warn":case"info":{this.logEmitter.emit(t.level,{timestamp:ho(t.timestamp),message:t.attributes.message??"",target:t.target});break}case"query":{this.logEmitter.emit("query",{query:t.attributes.query??"",timestamp:ho(t.timestamp),duration:t.attributes.duration_ms??0,params:t.attributes.params??"",target:t.target});break}default:t.level}}),r?.traces?.length&&this.tracingHelper.dispatchEngineSpans(r.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(r){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${r}`}async uploadSchema(){let r={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(r,async()=>{let t=await pr(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});t.ok||Gn("schema response status",t.status);let n=await Lt(t,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(r,{traceparent:t,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:r,traceparent:t,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(r,{traceparent:t,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=Mr(r,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:t})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:r,traceparent:t,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await pr(s,{method:"POST",headers:this.headerBuilder.build({traceparent:t,interactiveTransaction:i}),body:JSON.stringify(r),clientVersion:this.clientVersion},n);a.ok||Gn("graphql response status",a.status),await this.handleError(await Lt(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(r,t,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[r]} transaction`,callback:async({logHttpCall:o})=>{if(r==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await pr(a,{method:"POST",headers:this.headerBuilder.build({traceparent:t.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Lt(l,this.clientVersion));let u=await l.json(),{extensions:c}=u;c&&this.propagateResponseExtensions(c);let p=u.id,d=u["data-proxy"].endpoint;return{id:p,payload:{endpoint:d}}}else{let s=`${n.payload.endpoint}/${r}`;o(s);let a=await pr(s,{method:"POST",headers:this.headerBuilder.build({traceparent:t.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Lt(a,this.clientVersion));let l=await a.json(),{extensions:u}=l;u&&this.propagateResponseExtensions(u);return}}})}extractHostAndApiKey(){let r={clientVersion:this.clientVersion},t=Object.keys(this.inlineDatasources)[0],n=jr({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new lr(`Error validating datasource \`${t}\`: the URL must start with the protocol \`prisma://\``,r)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!==en)throw new lr(`Error validating datasource \`${t}\`: the URL must start with the protocol \`prisma://\``,r);let l=a.get("api_key");if(l===null||l.length<1)throw new lr(`Error validating datasource \`${t}\`: the URL must contain a valid API key`,r);return[s,l]}metrics(){throw new ur("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(r){for(let t=0;;t++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${t})`,timestamp:new Date,target:""})};try{return await r.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(t>=kl)throw i instanceof Vr?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${t+1}/${kl} failed for ${r.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Tl(t);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(r){if(r instanceof cr)throw await this.uploadSchema(),new Vr({clientVersion:this.clientVersion,cause:r});if(r)throw r}convertProtocolErrorsToClientError(r){return r.length===1?$r(r[0],this.config.clientVersion,this.config.activeProvider):new j(JSON.stringify(r),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function bo(e){return e.name==="DriverAdapterError"&&typeof e.cause=="object"}function Qn(e){return{ok:!0,value:e,map(r){return Qn(r(e))},flatMap(r){return r(e)}}}function dr(e){return{ok:!1,error:e,map(){return dr(e)},flatMap(){return dr(e)}}}var Ol=N("driver-adapter-utils"),Eo=class{registeredErrors=[];consumeError(r){return this.registeredErrors[r]}registerNewError(r){let t=0;for(;this.registeredErrors[t]!==void 0;)t++;return this.registeredErrors[t]={error:r},t}};var wo=(e,r=new Eo)=>{let t={adapterName:e.adapterName,errorRegistry:r,queryRaw:$e(r,e.queryRaw.bind(e)),executeRaw:$e(r,e.executeRaw.bind(e)),executeScript:$e(r,e.executeScript.bind(e)),dispose:$e(r,e.dispose.bind(e)),provider:e.provider,startTransaction:async(...n)=>(await $e(r,e.startTransaction.bind(e))(...n)).map(o=>pf(r,o))};return e.getConnectionInfo&&(t.getConnectionInfo=df(r,e.getConnectionInfo.bind(e))),t},pf=(e,r)=>({adapterName:r.adapterName,provider:r.provider,options:r.options,queryRaw:$e(e,r.queryRaw.bind(r)),executeRaw:$e(e,r.executeRaw.bind(r)),commit:$e(e,r.commit.bind(r)),rollback:$e(e,r.rollback.bind(r))});function $e(e,r){return async(...t)=>{try{return Qn(await r(...t))}catch(n){if(Ol("[error@wrapAsync]",n),bo(n))return dr(n.cause);let i=e.registerNewError(n);return dr({kind:"GenericJs",id:i})}}}function df(e,r){return(...t)=>{try{return Qn(r(...t))}catch(n){if(Ol("[error@wrapSync]",n),bo(n))return dr(n.cause);let i=e.registerNewError(n);return dr({kind:"GenericJs",id:i})}}}function Dl(e){if(e?.kind==="itx")return e.options.id}var vo=k(require("node:os")),_l=k(require("node:path"));var xo=Symbol("PrismaLibraryEngineCache");function mf(){let e=globalThis;return e[xo]===void 0&&(e[xo]={}),e[xo]}function ff(e){let r=mf();if(r[e]!==void 0)return r[e];let t=_l.default.toNamespacedPath(e),n={exports:{}},i=0;return process.platform!=="win32"&&(i=vo.default.constants.dlopen.RTLD_LAZY|vo.default.constants.dlopen.RTLD_DEEPBIND),process.dlopen(n,t,i),r[e]=n.exports,n.exports}var Nl={async loadLibrary(e){let r=await pi(),t=await yl("library",e);try{return e.tracingHelper.runInChildSpan({name:"loadLibrary",internal:!0},()=>ff(t))}catch(n){let i=Pi({e:n,platformInfo:r,id:t});throw new T(i,e.clientVersion)}}};var Po,Ll={async loadLibrary(e){let{clientVersion:r,adapter:t,engineWasm:n}=e;if(t===void 0)throw new T(`The \`adapter\` option for \`PrismaClient\` is required in this context (${qn().prettyName})`,r);if(n===void 0)throw new T("WASM engine was unexpectedly `undefined`",r);Po===void 0&&(Po=(async()=>{let o=await n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new T("The loaded wasm module was unexpectedly `undefined` or `null` once loaded",r);let a={"./query_engine_bg.js":o},l=new WebAssembly.Instance(s,a),u=l.exports.__wbindgen_start;return o.__wbg_set_wasm(l.exports),u(),o.QueryEngine})());let i=await Po;return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:i}}};var gf="P2036",Ce=N("prisma:client:libraryEngine");function hf(e){return e.item_type==="query"&&"query"in e}function yf(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var Fl=[...oi,"native"],bf=0xffffffffffffffffn,To=1n;function Ef(){let e=To++;return To>bf&&(To=1n),e}var Gr=class{name="LibraryEngine";engine;libraryInstantiationPromise;libraryStartingPromise;libraryStoppingPromise;libraryStarted;executingQueryPromise;config;QueryEngineConstructor;libraryLoader;library;logEmitter;libQueryEnginePath;binaryTarget;datasourceOverrides;datamodel;logQueries;logLevel;lastQuery;loggerRustPanic;tracingHelper;adapterPromise;versionInfo;constructor(r,t){this.libraryLoader=t??Nl,r.engineWasm!==void 0&&(this.libraryLoader=t??Ll),this.config=r,this.libraryStarted=!1,this.logQueries=r.logQueries??!1,this.logLevel=r.logLevel??"error",this.logEmitter=r.logEmitter,this.datamodel=r.inlineSchema,this.tracingHelper=r.tracingHelper,r.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(r.overrideDatasources)[0],i=r.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(r){return{applyPendingMigrations:r.applyPendingMigrations?.bind(r),commitTransaction:this.withRequestId(r.commitTransaction.bind(r)),connect:this.withRequestId(r.connect.bind(r)),disconnect:this.withRequestId(r.disconnect.bind(r)),metrics:r.metrics?.bind(r),query:this.withRequestId(r.query.bind(r)),rollbackTransaction:this.withRequestId(r.rollbackTransaction.bind(r)),sdlSchema:r.sdlSchema?.bind(r),startTransaction:this.withRequestId(r.startTransaction.bind(r)),trace:r.trace.bind(r)}}withRequestId(r){return async(...t)=>{let n=Ef().toString();try{return await r(...t,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){throw new Error("Cannot call this method from this type of engine instance")}async transaction(r,t,n){await this.start();let i=await this.adapterPromise,o=JSON.stringify(t),s;if(r==="start"){let l=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});s=await this.engine?.startTransaction(l,o)}else r==="commit"?s=await this.engine?.commitTransaction(n.id,o):r==="rollback"&&(s=await this.engine?.rollbackTransaction(n.id,o));let a=this.parseEngineResponse(s);if(wf(a)){let l=this.getExternalAdapterError(a,i?.errorRegistry);throw l?l.error:new z(a.message,{code:a.error_code,clientVersion:this.config.clientVersion,meta:a.meta})}else if(typeof a.message=="string")throw new j(a.message,{clientVersion:this.config.clientVersion});return a}async instantiateLibrary(){if(Ce("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;ii(),this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){{if(this.binaryTarget)return this.binaryTarget;let r=await this.tracingHelper.runInChildSpan("detect_platform",()=>ir());if(!Fl.includes(r))throw new T(`Unknown ${ce("PRISMA_QUERY_ENGINE_LIBRARY")} ${ce(W(r))}. Possible binaryTargets: ${qe(Fl.join(", "))} or a path to the query engine library. +You may have to run ${qe("prisma generate")} for your changes to take effect.`,this.config.clientVersion);return r}}parseEngineResponse(r){if(!r)throw new j("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(r)}catch{throw new j("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let r=new WeakRef(this);this.adapterPromise||(this.adapterPromise=this.config.adapter?.connect()?.then(wo));let t=await this.adapterPromise;t&&Ce("Using driver adapter: %O",t),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:process.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{r.deref()?.logger(n)},t))}catch(r){let t=r,n=this.parseInitError(t.message);throw typeof n=="string"?t:new T(n.message,this.config.clientVersion,n.error_code)}}}logger(r){let t=this.parseEngineResponse(r);t&&(t.level=t?.level.toLowerCase()??"unknown",hf(t)?this.logEmitter.emit("query",{timestamp:new Date,query:t.query,params:t.params,duration:Number(t.duration_ms),target:t.module_path}):yf(t)?this.loggerRustPanic=new le(So(this,`${t.message}: ${t.reason} in ${t.file}:${t.line}:${t.column}`),this.config.clientVersion):this.logEmitter.emit(t.level,{timestamp:new Date,message:t.message,target:t.module_path}))}parseInitError(r){try{return JSON.parse(r)}catch{}return r}parseRequestError(r){try{return JSON.parse(r)}catch{}return r}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Ce(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let r=async()=>{Ce("library starting");try{let t={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(t)),this.libraryStarted=!0,Ce("library started")}catch(t){let n=this.parseInitError(t.message);throw typeof n=="string"?t:new T(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",r),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Ce("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let r=async()=>{await new Promise(n=>setTimeout(n,5)),Ce("library stopping");let t={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(t)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,await(await this.adapterPromise)?.dispose(),this.adapterPromise=void 0,Ce("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",r),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(r){return this.library?.debugPanic(r)}async request(r,{traceparent:t,interactiveTransaction:n}){Ce(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:t}),o=JSON.stringify(r);try{await this.start();let s=await this.adapterPromise;this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let a=this.parseEngineResponse(await this.executingQueryPromise);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],s?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:a}}catch(s){if(s instanceof T)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new le(So(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new j(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(r,{transaction:t,traceparent:n}){Ce("requestBatch");let i=Mr(r,t);await this.start();let o=await this.adapterPromise;this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),Dl(t));let s=await this.executingQueryPromise,a=this.parseEngineResponse(s);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],o?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});let{batchResult:l,errors:u}=a;if(Array.isArray(l))return l.map(c=>c.errors&&c.errors.length>0?this.loggerRustPanic??this.buildQueryError(c.errors[0],o?.errorRegistry):{data:c});throw u&&u.length===1?new Error(u[0].error):new Error(JSON.stringify(a))}buildQueryError(r,t){if(r.user_facing_error.is_panic)return new le(So(this,r.user_facing_error.message),this.config.clientVersion);let n=this.getExternalAdapterError(r.user_facing_error,t);return n?n.error:$r(r,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(r,t){if(r.error_code===gf&&t){let n=r.meta?.id;rn(typeof n=="number","Malformed external JS error received from the engine");let i=t.consumeError(n);return rn(i,"External error with reported id was not registered"),i}}async metrics(r){await this.start();let t=await this.engine.metrics(JSON.stringify(r));return r.format==="prometheus"?t:this.parseEngineResponse(t)}};function wf(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function So(e,r){return Pl({binaryTarget:e.binaryTarget,title:r,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function Ml({copyEngine:e=!0},r){let t;try{t=jr({inlineDatasources:r.inlineDatasources,overrideDatasources:r.overrideDatasources,env:{...r.env,...process.env},clientVersion:r.clientVersion})}catch{}let n=!!(t?.startsWith("prisma://")||Si(t));e&&n&&ot("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Er(r.generator),o=n||!e,s=!!r.adapter,a=i==="library",l=i==="binary",u=i==="client";if(o&&s||s&&!1){let c;throw e?t?.startsWith("prisma://")?c=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:c=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:c=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new Z(c.join(` +`),{clientVersion:r.clientVersion})}return o?new Mt(r):a?new Gr(r):new Gr(r)}function Wn({generator:e}){return e?.previewFeatures??[]}var $l=e=>({command:e});var ql=e=>e.strings.reduce((r,t,n)=>`${r}@P${n}${t}`);function Qr(e){try{return jl(e,"fast")}catch{return jl(e,"slow")}}function jl(e,r){return JSON.stringify(e.map(t=>Bl(t,r)))}function Bl(e,r){if(Array.isArray(e))return e.map(t=>Bl(t,r));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(Sr(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ve.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(xf(e))return{prisma__type:"bytes",prisma__value:Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:t,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:Buffer.from(t,n,i).toString("base64")}}return typeof e=="object"&&r==="slow"?Ul(e):e}function xf(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Ul(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Vl);let r={};for(let t of Object.keys(e))r[t]=Vl(e[t]);return r}function Vl(e){return typeof e=="bigint"?e.toString():Ul(e)}var vf=/^(\s*alter\s)/i,Gl=N("prisma:client");function Ro(e,r,t,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&t.length>0&&vf.exec(r))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Co=({clientMethod:e,activeProvider:r})=>t=>{let n="",i;if(Nn(t))n=t.sql,i={values:Qr(t.values),__prismaRawParameters__:!0};else if(Array.isArray(t)){let[o,...s]=t;n=o,i={values:Qr(s||[]),__prismaRawParameters__:!0}}else switch(r){case"sqlite":case"mysql":{n=t.sql,i={values:Qr(t.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=t.text,i={values:Qr(t.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=ql(t),i={values:Qr(t.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${r} provider does not support ${e}`)}return i?.values?Gl(`prisma.${e}(${n}, ${i.values})`):Gl(`prisma.${e}(${n})`),{query:n,parameters:i}},Ql={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[r,...t]=e;return new oe(r,t)}},Wl={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};function Ao(e){return function(t,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=Jl(t(s)):Jl(t(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function Jl(e){return typeof e.then=="function"?e:Promise.resolve(e)}var Pf=bi.split(".")[0],Tf={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,r){return r()}},Io=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(r){return this.getGlobalTracingHelper().getTraceParent(r)}dispatchEngineSpans(r){return this.getGlobalTracingHelper().dispatchEngineSpans(r)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(r,t){return this.getGlobalTracingHelper().runInChildSpan(r,t)}getGlobalTracingHelper(){let r=globalThis[`V${Pf}_PRISMA_INSTRUMENTATION`],t=globalThis.PRISMA_INSTRUMENTATION;return r?.helper??t?.helper??Tf}};function Hl(){return new Io}function Kl(e,r=()=>{}){let t,n=new Promise(i=>t=i);return{then(i){return--e===0&&t(r()),i?.(n)}}}function Yl(e){return typeof e=="string"?e:e.reduce((r,t)=>{let n=typeof t=="string"?t:t.level;return n==="query"?r:r&&(t==="info"||r==="info")?"info":n},void 0)}var Jn=class{_middlewares=[];use(r){this._middlewares.push(r)}get(r){return this._middlewares[r]}has(r){return!!this._middlewares[r]}length(){return this._middlewares.length}};var Zl=k(ki());function Hn(e){return typeof e.batchRequestIdx=="number"}function zl(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let r=[];return e.modelName&&r.push(e.modelName),e.query.arguments&&r.push(ko(e.query.arguments)),r.push(ko(e.query.selection)),r.join("")}function ko(e){return`(${Object.keys(e).sort().map(t=>{let n=e[t];return typeof n=="object"&&n!==null?`(${t} ${ko(n)})`:t}).join(" ")})`}var Sf={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function Oo(e){return Sf[e]}var Kn=class{constructor(r){this.options=r;this.batches={}}batches;tickActive=!1;request(r){let t=this.options.batchBy(r);return t?(this.batches[t]||(this.batches[t]=[],this.tickActive||(this.tickActive=!0,process.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[t].push({request:r,resolve:n,reject:i})})):this.options.singleLoader(r)}dispatchBatches(){for(let r in this.batches){let t=this.batches[r];delete this.batches[r],t.length===1?this.options.singleLoader(t[0].request).then(n=>{n instanceof Error?t[0].reject(n):t[0].resolve(n)}).catch(n=>{t[0].reject(n)}):(t.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(t.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;imr("bigint",t));case"bytes-array":return r.map(t=>mr("bytes",t));case"decimal-array":return r.map(t=>mr("decimal",t));case"datetime-array":return r.map(t=>mr("datetime",t));case"date-array":return r.map(t=>mr("date",t));case"time-array":return r.map(t=>mr("time",t));default:return r}}function Yn(e){let r=[],t=Rf(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(p=>p.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(p=>Oo(p.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Af(o),containsWrite:u,customDataProxyFetch:i})).map((p,d)=>{if(p instanceof Error)return p;try{return this.mapQueryEngineResult(n[d],p)}catch(f){return f}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Xl(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Oo(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:zl(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(r){try{return await this.dataloader.request(r)}catch(t){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=r;this.handleAndLogRequestError({error:t,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:r.globalOmit})}}mapQueryEngineResult({dataPath:r,unpacker:t},n){let i=n?.data,o=this.unpack(i,r,t);return process.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(r){try{this.handleRequestError(r)}catch(t){throw this.logEmitter&&this.logEmitter.emit("error",{message:t.message,target:r.clientMethod,timestamp:new Date}),t}}handleRequestError({error:r,clientMethod:t,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Cf(r),If(r,i))throw r;if(r instanceof z&&kf(r)){let u=eu(r.meta);An({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:t,clientVersion:this.client._clientVersion,globalOmit:a})}let l=r.message;if(n&&(l=bn({callsite:n,originalMethod:t,isPanic:r.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),r.code){let u=s?{modelName:s,...r.meta}:r.meta;throw new z(l,{code:r.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:r.batchRequestIdx})}else{if(r.isPanic)throw new le(l,this.client._clientVersion);if(r instanceof j)throw new j(l,{clientVersion:this.client._clientVersion,batchRequestIdx:r.batchRequestIdx});if(r instanceof T)throw new T(l,this.client._clientVersion);if(r instanceof le)throw new le(l,this.client._clientVersion)}throw r.clientVersion=this.client._clientVersion,r}sanitizeMessage(r){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Zl.default)(r):r}unpack(r,t,n){if(!r||(r.data&&(r=r.data),!r))return r;let i=Object.keys(r)[0],o=Object.values(r)[0],s=t.filter(u=>u!=="select"&&u!=="include"),a=io(o,s),l=i==="queryRaw"?Yn(a):Tr(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Af(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Xl(e)};_e(e,"Unknown transaction kind")}}function Xl(e){return{id:e.id,payload:e.payload}}function If(e,r){return Hn(e)&&r?.kind==="batch"&&e.batchRequestIdx!==r.index}function kf(e){return e.code==="P2009"||e.code==="P2012"}function eu(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(eu)};if(Array.isArray(e.selectionPath)){let[,...r]=e.selectionPath;return{...e,selectionPath:r}}return e}var ru="6.6.0";var tu=ru;var au=k(Qi());var D=class extends Error{constructor(r){super(r+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};x(D,"PrismaClientConstructorValidationError");var nu=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],iu=["pretty","colorless","minimal"],ou=["info","query","warn","error"],Df={datasources:(e,{datasourceNames:r})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new D(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[t,n]of Object.entries(e)){if(!r.includes(t)){let i=Wr(t,r)||` Available datasources: ${r.join(", ")}`;throw new D(`Unknown datasource ${t} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new D(`Invalid value ${JSON.stringify(e)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new D(`Invalid value ${JSON.stringify(e)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new D(`Invalid value ${JSON.stringify(o)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,r)=>{if(!e&&Er(r.generator)==="client")throw new D('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new D('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Wn(r).includes("driverAdapters"))throw new D('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Er(r.generator)==="binary")throw new D('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new D(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new D(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!iu.includes(e)){let r=Wr(e,iu);throw new D(`Invalid errorFormat ${e} provided to PrismaClient constructor.${r}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new D(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function r(t){if(typeof t=="string"&&!ou.includes(t)){let n=Wr(t,ou);throw new D(`Invalid log level "${t}" provided to PrismaClient constructor.${n}`)}}for(let t of e){r(t);let n={level:r,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=Wr(i,o);throw new D(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(t&&typeof t=="object")for(let[i,o]of Object.entries(t))if(n[i])n[i](o);else throw new D(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let r=e.maxWait;if(r!=null&&r<=0)throw new D(`Invalid value ${r} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let t=e.timeout;if(t!=null&&t<=0)throw new D(`Invalid value ${t} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,r)=>{if(typeof e!="object")throw new D('"omit" option is expected to be an object.');if(e===null)throw new D('"omit" option can not be `null`');let t=[];for(let[n,i]of Object.entries(e)){let o=Nf(n,r.runtimeDataModel);if(!o){t.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){t.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){t.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&t.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(t.length>0)throw new D(Lf(e,t))},__internal:e=>{if(!e)return;let r=["debug","engine","configOverride"];if(typeof e!="object")throw new D(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[t]of Object.entries(e))if(!r.includes(t)){let n=Wr(t,r);throw new D(`Invalid property ${JSON.stringify(t)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function lu(e,r){for(let[t,n]of Object.entries(e)){if(!nu.includes(t)){let i=Wr(t,nu);throw new D(`Unknown property ${t} provided to PrismaClient constructor.${i}`)}Df[t](n,r)}if(e.datasourceUrl&&e.datasources)throw new D('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function Wr(e,r){if(r.length===0||typeof e!="string")return"";let t=_f(e,r);return t?` Did you mean "${t}"?`:""}function _f(e,r){if(r.length===0)return null;let t=r.map(i=>({value:i,distance:(0,au.default)(e,i)}));t.sort((i,o)=>i.distanceYe(n)===r);if(t)return e[t]}function Lf(e,r){let t=_r(e);for(let o of r)switch(o.kind){case"UnknownModel":t.arguments.getField(o.modelKey)?.markAsError(),t.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":t.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),t.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":t.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),t.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":t.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),t.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Cn(t,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}function uu(e){return e.length===0?Promise.resolve([]):new Promise((r,t)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?t(i):r(n)))},l=u=>{o||(o=!0,t(u))};for(let u=0;u{n[u]=c,a()},c=>{if(!Hn(c)){l(c);return}c.batchRequestIdx===u?l(c):(i||(i=c),a())})})}var rr=N("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Ff={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Mf=Symbol.for("prisma.client.transaction.id"),$f={id:0,nextId(){return++this.id}};function gu(e){class r{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Jn;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=Ao();constructor(n){e=n?.__internal?.configOverride?.(e)??e,cl(e),n&&lu(n,e);let i=new mu.EventEmitter().on("error",()=>{});this._extensions=Nr.empty(),this._previewFeatures=Wn(e),this._clientVersion=e.clientVersion??tu,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Hl();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Zn.default.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Zn.default.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new T(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new T("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=!s&&o&&it(o,{conflictCheck:"none"})||e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},c=u.debug===!0;c&&N.enable("prisma:client");let p=Zn.default.resolve(e.dirname,e.relativePath);fu.default.existsSync(p)||(p=e.dirname),rr("dirname",e.dirname),rr("relativePath",e.relativePath),rr("cwd",p);let d=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:process.env.NODE_ENV==="production"?this._errorFormat="minimal":process.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:p,dirname:e.dirname,enableDebugLogs:c,allowTriggerPanic:d.allowTriggerPanic,prismaPath:d.binaryPath??void 0,engineEndpoint:d.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Yl(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(f=>typeof f=="string"?f==="query":f.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:pl(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:jr,getBatchRequestPayload:Mr,prismaGraphQLToJSError:$r,PrismaClientUnknownRequestError:j,PrismaClientInitializationError:T,PrismaClientKnownRequestError:z,debug:N("prisma:client:accelerateEngine"),engineVersion:pu.version,clientVersion:e.clientVersion}},rr("clientVersion",e.clientVersion),this._engine=Ml(e,this._engineConfig),this._requestHandler=new zn(this,i),l.log)for(let f of l.log){let g=typeof f=="string"?f:f.emit==="stdout"?f.level:null;g&&this.$on(g,h=>{tt.log(`${tt.tags[g]??""}`,h.message||h.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=vt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Qo()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=cu(n,i);return Ro(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new Z("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Ro(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new Z(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:$l,callsite:Ze(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...cu(n,i));throw new Z("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new Z("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=$f.nextId(),s=Kl(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let c=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,p={kind:"batch",id:o,index:u,isolationLevel:c,lock:s};return l.requestTransaction?.(p)??l});return uu(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let u={kind:"itx",...a};l=await n(this._createItxClient(u)),await this._engine.transaction("commit",o,a)}catch(u){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),u}return l}_createItxClient(n){return he(vt(he(Ka(this),[re("_appliedParent",()=>this._appliedParent._createItxClient(n)),re("_createPrismaPromise",()=>Ao(n)),re(Mf,()=>n.id)])),[Fr(el)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Ff,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let c=this._middlewares.get(++a);if(c)return this._tracingHelper.runInChildSpan(s.middleware,I=>c(u,P=>(I?.end(),l(P))));let{runInTransaction:p,args:d,...f}=u,g={...n,...f};d&&(g.args=i.middlewareArgsToRequestArgs(d)),n.transaction!==void 0&&p===!1&&delete g.transaction;let h=await il(this,g);return g.model?Xa({result:h,modelName:g.model,args:g.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):h};return this._tracingHelper.runInChildSpan(s.operation,()=>new du.AsyncResource("prisma-client-request").runInAsyncScope(()=>l(o)))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:c,unpacker:p,otelParentCtx:d,customDataProxyFetch:f}){try{n=u?u(n):n;let g={name:"serialize"},h=this._tracingHelper.runInChildSpan(g,()=>Dn({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return N.enabled("prisma:client")&&(rr("Prisma Client call:"),rr(`prisma.${i}(${$a(n)})`),rr("Generated request:"),rr(JSON.stringify(h,null,2)+` +`)),c?.kind==="batch"&&await c.lock,this._requestHandler.request({protocolQuery:h,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:c,unpacker:p,otelParentCtx:d,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:f})}catch(g){throw g.clientVersion=this._clientVersion,g}}$metrics=new Lr(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=Ya}return r}function cu(e,r){return qf(e)?[new oe(e,r),Ql]:[e,Wl]}function qf(e){return Array.isArray(e)&&Array.isArray(e.raw)}var jf=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function hu(e){return new Proxy(e,{get(r,t){if(t in r)return r[t];if(!jf.has(t))throw new TypeError(`Invalid enum value: ${String(t)}`)}})}function yu(e){it(e,{conflictCheck:"warn"})}0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +/*! Bundled license information: + +decimal.js/decimal.mjs: + (*! + * decimal.js v10.5.0 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2025 Michael Mclaughlin + * MIT Licence + *) +*/ +//# sourceMappingURL=library.js.map diff --git a/lib/generated/prisma/runtime/react-native.js b/lib/generated/prisma/runtime/react-native.js new file mode 100644 index 0000000..b22b413 --- /dev/null +++ b/lib/generated/prisma/runtime/react-native.js @@ -0,0 +1,80 @@ +"use strict";var ba=Object.create;var tr=Object.defineProperty;var Ea=Object.getOwnPropertyDescriptor;var xa=Object.getOwnPropertyNames;var Pa=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ge=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ae=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ze=(e,t)=>{for(var r in t)tr(e,r,{get:t[r],enumerable:!0})},ni=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of xa(t))!va.call(e,i)&&i!==r&&tr(e,i,{get:()=>t[i],enumerable:!(n=Ea(t,i))||n.enumerable});return e};var Se=(e,t,r)=>(r=e!=null?ba(Pa(e)):{},ni(t||!e||!e.__esModule?tr(r,"default",{value:e,enumerable:!0}):r,e)),Ta=e=>ni(tr({},"__esModule",{value:!0}),e);var y,c=ge(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var x,p=ge(()=>{"use strict";x=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,d=ge(()=>{"use strict";E=()=>{};E.prototype=E});var b,f=ge(()=>{"use strict";b=class{value;constructor(t){this.value=t}deref(){return this.value}}});var Pi=Ae(rt=>{"use strict";m();c();p();d();f();var li=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ca=li(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=R;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var M=C.indexOf("=");M===-1&&(M=A);var I=M===A?0:4-M%4;return[M,I]}function l(C){var A=a(C),M=A[0],I=A[1];return(M+I)*3/4-I}function u(C,A,M){return(A+M)*3/4-M}function g(C){var A,M=a(C),I=M[0],L=M[1],k=new n(u(C,I,L)),D=0,z=L>0?I-4:I,B;for(B=0;B>16&255,k[D++]=A>>8&255,k[D++]=A&255;return L===2&&(A=r[C.charCodeAt(B)]<<2|r[C.charCodeAt(B+1)]>>4,k[D++]=A&255),L===1&&(A=r[C.charCodeAt(B)]<<10|r[C.charCodeAt(B+1)]<<4|r[C.charCodeAt(B+2)]>>2,k[D++]=A>>8&255,k[D++]=A&255),k}function h(C){return t[C>>18&63]+t[C>>12&63]+t[C>>6&63]+t[C&63]}function v(C,A,M){for(var I,L=[],k=A;kz?z:D+k));return I===1?(A=C[M-1],L.push(t[A>>2]+t[A<<4&63]+"==")):I===2&&(A=(C[M-2]<<8)+C[M-1],L.push(t[A>>10]+t[A>>4&63]+t[A<<2&63]+"=")),L.join("")}}),Aa=li(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,u=(1<>1,h=-7,v=n?o-1:0,R=n?-1:1,C=t[r+v];for(v+=R,s=C&(1<<-h)-1,C>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=R,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=R,h-=8);if(s===0)s=1-g;else{if(s===u)return a?NaN:(C?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(C?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,u,g=s*8-o-1,h=(1<>1,R=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,C=i?0:s-1,A=i?1:-1,M=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+v>=1?r+=R/u:r+=R*Math.pow(2,1-v),r*u>=2&&(a++,u/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*u-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+C]=l&255,C+=A,l/=256,o-=8);for(a=a<0;t[n+C]=a&255,C+=A,a/=256,g-=8);t[n+C-A]|=M*128}}),Zr=Ca(),et=Aa(),ii=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;rt.Buffer=T;rt.SlowBuffer=Fa;rt.INSPECT_MAX_BYTES=50;var rr=2147483647;rt.kMaxLength=rr;T.TYPED_ARRAY_SUPPORT=Sa();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function Sa(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function Re(e){if(e>rr)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return tn(e)}return ui(e,t,r)}T.poolSize=8192;function ui(e,t,r){if(typeof e=="string")return ka(e,t);if(ArrayBuffer.isView(e))return Oa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(he(e,ArrayBuffer)||e&&he(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(he(e,SharedArrayBuffer)||e&&he(e.buffer,SharedArrayBuffer)))return pi(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=Ma(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return ui(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ci(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function Ra(e,t,r){return ci(e),e<=0?Re(e):t!==void 0?typeof r=="string"?Re(e).fill(t,r):Re(e).fill(t):Re(e)}T.alloc=function(e,t,r){return Ra(e,t,r)};function tn(e){return ci(e),Re(e<0?0:rn(e)|0)}T.allocUnsafe=function(e){return tn(e)};T.allocUnsafeSlow=function(e){return tn(e)};function ka(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=di(e,t)|0,n=Re(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function Xr(e){let t=e.length<0?0:rn(e.length)|0,r=Re(t);for(let n=0;n=rr)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+rr.toString(16)+" bytes");return e|0}function Fa(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(he(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),he(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function di(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||he(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return en(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return xi(e).length;default:if(i)return n?-1:en(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=di;function Ia(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Va(this,t,r);case"utf8":case"utf-8":return mi(this,t,r);case"ascii":return Ba(this,t,r);case"latin1":case"binary":return Ua(this,t,r);case"base64":return $a(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Qa(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Qe(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};ii&&(T.prototype[ii]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(he(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),u=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,on(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:oi(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):oi(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function oi(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let u;if(i){let g=-1;for(u=r;us&&(r=s-a),u=r;u>=0;u--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _a(this,e,t,r);case"utf8":case"utf-8":return La(this,e,t,r);case"ascii":case"latin1":case"binary":return Na(this,e,t,r);case"base64":return Da(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return qa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function $a(e,t,r){return t===0&&r===e.length?Zr.fromByteArray(e):Zr.fromByteArray(e.slice(t,r))}function mi(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,u,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],u=e[i+2],(l&192)===128&&(u&192)===128&&(h=(o&15)<<12|(l&63)<<6|u&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],u=e[i+2],g=e[i+3],(l&192)===128&&(u&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(u&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return ja(n)}var si=4096;function ja(e){let t=e.length;if(t<=si)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Le(function(e){e=e>>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Le(function(e){e=e>>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),et.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),et.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),et.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),et.read(this,e,!1,52,8)};function ie(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;ie(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;ie(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function gi(e,t,r,n,i){Ei(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function hi(e,t,r,n,i){Ei(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Le(function(e,t=0){return gi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Le(function(e,t=0){return hi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);ie(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);ie(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Le(function(e,t=0){return gi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Le(function(e,t=0){return hi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function yi(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function wi(e,t,r,n,i){return t=+t,r=r>>>0,i||yi(e,t,r,4,34028234663852886e22,-34028234663852886e22),et.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return wi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return wi(this,e,t,!1,r)};function bi(e,t,r,n,i){return t=+t,r=r>>>0,i||yi(e,t,r,8,17976931348623157e292,-17976931348623157e292),et.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return bi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return bi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ai(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ai(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ai(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Ga(e,t,r){tt(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&Tt(t,e.length-(r+1))}function Ei(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Xe.ERR_OUT_OF_RANGE("value",a,e)}Ga(n,i,o)}function tt(e,t){if(typeof e!="number")throw new Xe.ERR_INVALID_ARG_TYPE(t,"number",e)}function Tt(e,t,r){throw Math.floor(e)!==e?(tt(e,r),new Xe.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Xe.ERR_BUFFER_OUT_OF_BOUNDS:new Xe.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Ja=/[^+/0-9A-Za-z-_]/g;function Wa(e){if(e=e.split("=")[0],e=e.trim().replace(Ja,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function en(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Ka(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function xi(e){return Zr.toByteArray(Wa(e))}function nr(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function he(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function on(e){return e!==e}var za=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Le(e){return typeof BigInt>"u"?Ya:e}function Ya(){throw new Error("BigInt not supported")}});var w,m=ge(()=>{"use strict";w=Se(Pi())});function bl(){return!1}function Li(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function El(){return Li()}function xl(){return[]}function Pl(e){e(null,[])}function vl(){return""}function Tl(){return""}function Cl(){}function Al(){}function Sl(){}function Rl(){}function kl(){}function Ol(){}var Ml,Fl,or,cn=ge(()=>{"use strict";m();c();p();d();f();Ml={},Fl={existsSync:bl,lstatSync:Li,statSync:El,readdirSync:xl,readdir:Pl,readlinkSync:vl,realpathSync:Tl,chmodSync:Cl,renameSync:Al,mkdirSync:Sl,rmdirSync:Rl,rmSync:kl,unlinkSync:Ol,promises:Ml},or=Fl});function Il(...e){return e.join("/")}function _l(...e){return e.join("/")}function Ll(e){let t=Ni(e),r=Di(e),[n,i]=t.split(".");return{root:"/",dir:r,base:t,ext:i,name:n}}function Ni(e){let t=e.split("/");return t[t.length-1]}function Di(e){return e.split("/").slice(0,-1).join("/")}var qi,Nl,Dl,Oe,dn=ge(()=>{"use strict";m();c();p();d();f();qi="/",Nl={sep:qi},Dl={basename:Ni,dirname:Di,join:_l,parse:Ll,posix:Nl,resolve:Il,sep:qi},Oe=Dl});var $i=Ae((Ff,ql)=>{ql.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Ui=Ae((Gf,Bi)=>{"use strict";m();c();p();d();f();Bi.exports=e=>{let t=e.match(/^[ \t]*(?=\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0}});var Wi=Ae((um,Ji)=>{"use strict";m();c();p();d();f();Ji.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var zi=Ae((xm,Hi)=>{"use strict";m();c();p();d();f();Hi.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var yn=Ae((Sm,Yi)=>{"use strict";m();c();p();d();f();var Gl=zi();Yi.exports=e=>typeof e=="string"?e.replace(Gl(),""):e});var Zi=Ae((Zm,ar)=>{"use strict";m();c();p();d();f();ar.exports=(e={})=>{let t;if(e.repoUrl)t=e.repoUrl;else if(e.user&&e.repo)t=`https://github.com/${e.user}/${e.repo}`;else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options");let r=new URL(`${t}/issues/new`),n=["body","title","labels","template","milestone","assignee","projects"];for(let i of n){let o=e[i];if(o!==void 0){if(i==="labels"||i==="projects"){if(!Array.isArray(o))throw new TypeError(`The \`${i}\` option should be an array`);o=o.join(",")}r.searchParams.set(i,o)}}return r.toString()};ar.exports.default=ar.exports});var Sn=Ae((xb,Po)=>{"use strict";m();c();p();d();f();Po.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";m();c();p();d();f()});var Ro=ge(()=>{"use strict";m();c();p();d();f()});var Zo=Ae((VP,Dc)=>{Dc.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Nr,Xo=ge(()=>{"use strict";m();c();p();d();f();Nr=class{events={};on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var rd={};Ze(rd,{DMMF:()=>Dt,Debug:()=>K,Decimal:()=>be,Extensions:()=>sn,MetricsClient:()=>wt,PrismaClientInitializationError:()=>V,PrismaClientKnownRequestError:()=>oe,PrismaClientRustPanicError:()=>ue,PrismaClientUnknownRequestError:()=>G,PrismaClientValidationError:()=>ee,Public:()=>an,Sql:()=>ae,createParam:()=>Qo,defineDmmfProperty:()=>zo,deserializeJsonResponse:()=>at,deserializeRawResult:()=>Hr,dmmfToRuntimeDataModel:()=>yo,empty:()=>ts,getPrismaClient:()=>ha,getRuntime:()=>Fs,join:()=>es,makeStrictEnum:()=>ya,makeTypedQueryFactory:()=>Yo,objectEnumValues:()=>Ar,raw:()=>Nn,serializeJsonQuery:()=>Ir,skip:()=>Fr,sqltag:()=>Dn,warnEnvConflicts:()=>void 0,warnOnce:()=>_t});module.exports=Ta(rd);m();c();p();d();f();var sn={};Ze(sn,{defineExtension:()=>vi,getExtensionContext:()=>Ti});m();c();p();d();f();m();c();p();d();f();function vi(e){return typeof e=="function"?e:t=>t.$extends(e)}m();c();p();d();f();function Ti(e){return e}var an={};Ze(an,{validator:()=>Ci});m();c();p();d();f();m();c();p();d();f();function Ci(...e){return t=>t}m();c();p();d();f();m();c();p();d();f();var ir={};Ze(ir,{$:()=>Oi,bgBlack:()=>al,bgBlue:()=>pl,bgCyan:()=>fl,bgGreen:()=>ul,bgMagenta:()=>dl,bgRed:()=>ll,bgWhite:()=>ml,bgYellow:()=>cl,black:()=>nl,blue:()=>Je,bold:()=>pe,cyan:()=>ke,dim:()=>Ct,gray:()=>kt,green:()=>St,grey:()=>sl,hidden:()=>tl,inverse:()=>el,italic:()=>Xa,magenta:()=>il,red:()=>Ge,reset:()=>Za,strikethrough:()=>rl,underline:()=>At,white:()=>ol,yellow:()=>Rt});m();c();p();d();f();var ln,Ai,Si,Ri,ki=!0;typeof y<"u"&&({FORCE_COLOR:ln,NODE_DISABLE_COLORS:Ai,NO_COLOR:Si,TERM:Ri}=y.env||{},ki=y.stdout&&y.stdout.isTTY);var Oi={enabled:!Ai&&Si==null&&Ri!=="dumb"&&(ln!=null&&ln!=="0"||ki)};function U(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!Oi.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var Za=U(0,0),pe=U(1,22),Ct=U(2,22),Xa=U(3,23),At=U(4,24),el=U(7,27),tl=U(8,28),rl=U(9,29),nl=U(30,39),Ge=U(31,39),St=U(32,39),Rt=U(33,39),Je=U(34,39),il=U(35,39),ke=U(36,39),ol=U(37,39),kt=U(90,39),sl=U(90,39),al=U(40,49),ll=U(41,49),ul=U(42,49),cl=U(43,49),pl=U(44,49),dl=U(45,49),fl=U(46,49),ml=U(47,49);m();c();p();d();f();var gl=100,Mi=["green","yellow","blue","magenta","cyan","red"],Ot=[],Fi=Date.now(),hl=0,un=typeof y<"u"?y.env:{};globalThis.DEBUG??=un.DEBUG??"";globalThis.DEBUG_COLORS??=un.DEBUG_COLORS?un.DEBUG_COLORS==="true":!0;var Mt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function yl(e){let t={color:Mi[hl++%Mi.length],enabled:Mt.enabled(e),namespace:e,log:Mt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&Ot.push([o,...n]),Ot.length>gl&&Ot.shift(),Mt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:wl(g)),u=`+${Date.now()-Fi}ms`;Fi=Date.now(),globalThis.DEBUG_COLORS?a(ir[s](pe(o)),...l,ir[s](u)):a(o,...l,u)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var K=new Proxy(yl,{get:(e,t)=>Mt[t],set:(e,t,r)=>Mt[t]=r});function wl(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Ii(e=7500){let t=Ot.map(([r,...n])=>`${r} ${n.map(i=>typeof i=="string"?i:JSON.stringify(i)).join(" ")}`).join(` +`);return t.lengthVl,info:()=>Ul,log:()=>Bl,query:()=>Ql,should:()=>Ki,tags:()=>Ft,warn:()=>hn});m();c();p();d();f();var Ft={error:Ge("prisma:error"),warn:Rt("prisma:warn"),info:ke("prisma:info"),query:Je("prisma:query")},Ki={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function Bl(...e){console.log(...e)}function hn(e,...t){Ki.warn()&&console.warn(`${Ft.warn} ${e}`,...t)}function Ul(e,...t){console.info(`${Ft.info} ${e}`,...t)}function Vl(e,...t){console.error(`${Ft.error} ${e}`,...t)}function Ql(e,...t){console.log(`${Ft.query} ${e}`,...t)}m();c();p();d();f();function sr(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}m();c();p();d();f();function Me(e,t){throw new Error(t)}m();c();p();d();f();dn();function wn(e){return Oe.sep===Oe.posix.sep?e:e.split(Oe.sep).join(Oe.posix.sep)}m();c();p();d();f();function bn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}m();c();p();d();f();function it(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}m();c();p();d();f();function En(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{Xi.has(e)||(Xi.add(e),hn(t,...r))};var V=class e extends Error{clientVersion;errorCode;retryable;constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};le(V,"PrismaClientInitializationError");m();c();p();d();f();var oe=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};le(oe,"PrismaClientKnownRequestError");m();c();p();d();f();var ue=class extends Error{clientVersion;constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};le(ue,"PrismaClientRustPanicError");m();c();p();d();f();var G=class extends Error{clientVersion;batchRequestIdx;constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};le(G,"PrismaClientUnknownRequestError");m();c();p();d();f();var ee=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(t,{clientVersion:r}){super(t),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};le(ee,"PrismaClientValidationError");m();c();p();d();f();m();c();p();d();f();var ot=9e15,$e=1e9,xn="0123456789abcdef",cr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",pr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Pn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ot,maxE:ot,crypto:!1},io,Fe,_=!0,fr="[DecimalError] ",qe=fr+"Invalid argument: ",oo=fr+"Precision limit exceeded",so=fr+"crypto unavailable",ao="[object Decimal]",te=Math.floor,J=Math.pow,Jl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wl=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Kl=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,lo=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=1e7,F=7,Hl=9007199254740991,zl=cr.length-1,vn=pr.length-1,S={toStringTag:ao};S.absoluteValue=S.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)};S.ceil=function(){return O(new this.constructor(this),this.e+1,2)};S.clampedTo=S.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(qe+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};S.comparedTo=S.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};S.cosine=S.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+F,n.rounding=1,r=Yl(n,mo(n,r)),n.precision=e,n.rounding=t,O(Fe==2||Fe==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};S.cubeRoot=S.cbrt=function(){var e,t,r,n,i,o,s,a,l,u,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(_=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=Y(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=te((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(g),n=j(u.plus(g).times(a),u.plus(l),s+2,1),Y(a.d).slice(0,s)===(r=Y(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(O(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(O(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return _=!0,O(n,e,h.rounding,t)};S.decimalPlaces=S.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-te(this.e/F))*F,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};S.dividedBy=S.div=function(e){return j(this,new this.constructor(e))};S.dividedToIntegerBy=S.divToInt=function(e){var t=this,r=t.constructor;return O(j(t,new r(e),0,1,1),r.precision,r.rounding)};S.equals=S.eq=function(e){return this.cmp(e)===0};S.floor=function(){return O(new this.constructor(this),this.e+1,3)};S.greaterThan=S.gt=function(e){return this.cmp(e)>0};S.greaterThanOrEqualTo=S.gte=function(e){var t=this.cmp(e);return t==1||t===0};S.hyperbolicCosine=S.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/gr(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=st(s,1,o.times(t),new s(1),!0);for(var l,u=e,g=new s(8);u--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return O(o,s.precision=r,s.rounding=n,!0)};S.hyperbolicSine=S.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=st(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/gr(5,e)),i=st(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=t,o.rounding=r,O(i,t,r,!0)};S.hyperbolicTangent=S.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,j(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};S.inverseCosine=S.acos=function(){var e=this,t=e.constructor,r=e.abs().cmp(1),n=t.precision,i=t.rounding;return r!==-1?r===0?e.isNeg()?ye(t,n,i):new t(0):new t(NaN):e.isZero()?ye(t,n+4,i).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=i,e.times(2))};S.inverseHyperbolicCosine=S.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,_=!1,r=r.times(r).minus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};S.inverseHyperbolicSine=S.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,_=!1,r=r.times(r).plus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln())};S.inverseHyperbolicTangent=S.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?O(new o(i),e,t,!0):(o.precision=r=n-i.e,i=j(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};S.inverseSine=S.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=ye(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};S.inverseTangent=S.atan=function(){var e,t,r,n,i,o,s,a,l,u=this,g=u.constructor,h=g.precision,v=g.rounding;if(u.isFinite()){if(u.isZero())return new g(u);if(u.abs().eq(1)&&h+4<=vn)return s=ye(g,h+4,v).times(.25),s.s=u.s,s}else{if(!u.s)return new g(NaN);if(h+4<=vn)return s=ye(g,h+4,v).times(.5),s.s=u.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/F+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/F),n=1,l=u.times(u),s=new g(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};S.isNaN=function(){return!this.s};S.isNegative=S.isNeg=function(){return this.s<0};S.isPositive=S.isPos=function(){return this.s>0};S.isZero=function(){return!!this.d&&this.d[0]===0};S.lessThan=S.lt=function(e){return this.cmp(e)<0};S.lessThanOrEqualTo=S.lte=function(e){return this.cmp(e)<1};S.logarithm=S.log=function(e){var t,r,n,i,o,s,a,l,u=this,g=u.constructor,h=g.precision,v=g.rounding,R=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new g(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(_=!1,a=h+R,s=De(u,a),n=t?dr(g,a+10):De(e,a),l=j(s,n,a,1),Lt(l.d,i=h,v))do if(a+=10,s=De(u,a),n=t?dr(g,a+10):De(e,a),l=j(s,n,a,1),!o){+Y(l.d).slice(i+1,i+15)+1==1e14&&(l=O(l,h+1,0));break}while(Lt(l.d,i+=10,v));return _=!0,O(l,h,v)};S.minus=S.sub=function(e){var t,r,n,i,o,s,a,l,u,g,h,v,R=this,C=R.constructor;if(e=new C(e),!R.d||!e.d)return!R.s||!e.s?e=new C(NaN):R.d?e.s=-e.s:e=new C(e.d||R.s!==e.s?R:NaN),e;if(R.s!=e.s)return e.s=-e.s,R.plus(e);if(u=R.d,v=e.d,a=C.precision,l=C.rounding,!u[0]||!v[0]){if(v[0])e.s=-e.s;else if(u[0])e=new C(R);else return new C(l===3?-0:0);return _?O(e,a,l):e}if(r=te(e.e/F),g=te(R.e/F),u=u.slice(),o=g-r,o){for(h=o<0,h?(t=u,o=-o,s=v.length):(t=v,r=g,s=u.length),n=Math.max(Math.ceil(a/F),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=v.length,h=n0;--n)u[s++]=0;for(n=v.length;n>o;){if(u[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=g.length,s-i<0&&(i=s,r=g,g=u,u=r),t=0;i;)t=(u[--i]=u[i]+g[i]+t)/de|0,u[i]%=de;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=mr(u,n),_?O(e,a,l):e};S.precision=S.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(qe+e);return r.d?(t=uo(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};S.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)};S.sine=S.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+F,n.rounding=1,r=Xl(n,mo(n,r)),n.precision=e,n.rounding=t,O(Fe>2?r.neg():r,e,t,!0)):new n(NaN)};S.squareRoot=S.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,u=s.s,g=s.constructor;if(u!==1||!a||!a[0])return new g(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=Y(a),(t.length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=te((l+1)/2)-(l<0||l%2),u==1/0?t="5e"+l:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(u.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(j(s,o,r+2,1)).times(.5),Y(o.d).slice(0,r)===(t=Y(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(O(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(O(n,l+1,1),e=!n.times(n).eq(s));break}return _=!0,O(n,l,g.rounding,e)};S.tangent=S.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=j(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,O(Fe==2||Fe==4?r.neg():r,e,t,!0)):new n(NaN)};S.times=S.mul=function(e){var t,r,n,i,o,s,a,l,u,g=this,h=g.constructor,v=g.d,R=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!R||!R[0])return new h(!e.s||v&&!v[0]&&!R||R&&!R[0]&&!v?NaN:!v||!R?e.s/0:e.s*0);for(r=te(g.e/F)+te(e.e/F),l=v.length,u=R.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+R[n]*v[i-n-1]+t,o[i--]=a%de|0,t=a/de|0;o[i]=(o[i]+t)%de|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=mr(o,r),_?O(e,h.precision,h.rounding):e};S.toBinary=function(e,t){return Cn(this,2,e,t)};S.toDecimalPlaces=S.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(se(e,0,$e),t===void 0?t=n.rounding:se(t,0,8),O(r,e+r.e+1,t))};S.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,!0):(se(e,0,$e),t===void 0?t=i.rounding:se(t,0,8),n=O(new i(n),e+1,t),r=we(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};S.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=we(i):(se(e,0,$e),t===void 0?t=o.rounding:se(t,0,8),n=O(new o(i),e+i.e+1,t),r=we(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};S.toFraction=function(e){var t,r,n,i,o,s,a,l,u,g,h,v,R=this,C=R.d,A=R.constructor;if(!C)return new A(R);if(u=r=new A(1),n=l=new A(0),t=new A(n),o=t.e=uo(C)-R.e-1,s=o%F,t.d[0]=J(10,s<0?F+s:s),e==null)e=o>0?t:u;else{if(a=new A(e),!a.isInt()||a.lt(u))throw Error(qe+a);e=a.gt(t)?o>0?t:u:a}for(_=!1,a=new A(Y(C)),g=A.precision,A.precision=o=C.length*F*2;h=j(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=j(e.minus(r),n,0,1,1),l=l.plus(i.times(u)),r=r.plus(i.times(n)),l.s=u.s=R.s,v=j(u,n,o,1).minus(R).abs().cmp(j(l,r,o,1).minus(R).abs())<1?[u,n]:[l,r],A.precision=g,_=!0,v};S.toHexadecimal=S.toHex=function(e,t){return Cn(this,16,e,t)};S.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:se(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(_=!1,r=j(r,e,0,t,1).times(e),_=!0,O(r)):(e.s=r.s,r=e),r};S.toNumber=function(){return+this};S.toOctal=function(e,t){return Cn(this,8,e,t)};S.toPower=S.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return O(a,n,o);if(t=te(e.e/F),t>=e.d.length-1&&(r=u<0?-u:u)<=Hl)return i=co(l,a,r,n),e.s<0?new l(1).div(i):O(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(_=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=Tn(e.times(De(a,n+r)),n),i.d&&(i=O(i,n+5,1),Lt(i.d,n,o)&&(t=n+10,i=O(Tn(e.times(De(a,t+r)),t),t+5,1),+Y(i.d).slice(n+1,n+15)+1==1e14&&(i=O(i,n+1,0)))),i.s=s,_=!0,l.rounding=o,O(i,n,o))};S.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(se(e,1,$e),t===void 0?t=i.rounding:se(t,0,8),n=O(new i(n),e,t),r=we(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};S.toSignificantDigits=S.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(se(e,1,$e),t===void 0?t=n.rounding:se(t,0,8)),O(new n(r),e,t)};S.toString=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};S.truncated=S.trunc=function(){return O(new this.constructor(this),this.e+1,1)};S.valueOf=S.toJSON=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function Y(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(qe+e)}function Lt(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=F,i=0):(i=Math.ceil((t+1)/F),t%=F),o=J(10,F-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function lr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function Yl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/gr(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=st(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var j=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var u,g,h,v,R,C,A,M,I,L,k,D,z,B,vt,Q,ne,Ce,Z,Ye,er=n.constructor,Yr=n.s==i.s?1:-1,X=n.d,$=i.d;if(!X||!X[0]||!$||!$[0])return new er(!n.s||!i.s||(X?$&&X[0]==$[0]:!$)?NaN:X&&X[0]==0||!$?Yr*0:Yr/0);for(l?(R=1,g=n.e-i.e):(l=de,R=F,g=te(n.e/R)-te(i.e/R)),Z=$.length,ne=X.length,I=new er(Yr),L=I.d=[],h=0;$[h]==(X[h]||0);h++);if($[h]>(X[h]||0)&&g--,o==null?(B=o=er.precision,s=er.rounding):a?B=o+(n.e-i.e)+1:B=o,B<0)L.push(1),C=!0;else{if(B=B/R+2|0,h=0,Z==1){for(v=0,$=$[0],B++;(h1&&($=e($,v,l),X=e(X,v,l),Z=$.length,ne=X.length),Q=Z,k=X.slice(0,Z),D=k.length;D=l/2&&++Ce;do v=0,u=t($,k,Z,D),u<0?(z=k[0],Z!=D&&(z=z*l+(k[1]||0)),v=z/Ce|0,v>1?(v>=l&&(v=l-1),A=e($,v,l),M=A.length,D=k.length,u=t(A,k,M,D),u==1&&(v--,r(A,Z=10;v/=10)h++;I.e=h+g*R-1,O(I,a?o+I.e+1:o,s,C)}return I}}();function O(e,t,r,n){var i,o,s,a,l,u,g,h,v,R=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=F,s=t,g=h[v=0],l=g/J(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/F),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=F,s=o-F+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=F,s=o-F+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%J(10,i-s-1)),u=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=J(10,(F-t%F)%F),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=J(10,F-o),h[v]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),u)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==de&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=de)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return _&&(e.e>R.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Ne(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Ne(-i-1)+o,r&&(n=r-s)>0&&(o+=Ne(n))):i>=s?(o+=Ne(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Ne(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Ne(n))),o}function mr(e,t){var r=e[0];for(t*=F;r>=10;r/=10)t++;return t}function dr(e,t,r){if(t>zl)throw _=!0,r&&(e.precision=r),Error(oo);return O(new e(cr),t,1,!0)}function ye(e,t,r){if(t>vn)throw Error(oo);return O(new e(pr),t,r,!0)}function uo(e){var t=e.length-1,r=t*F+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Ne(e){for(var t="";e--;)t+="0";return t}function co(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/F+4);for(_=!1;;){if(r%2&&(o=o.times(t),ro(o.d,s)&&(i=!0)),r=te(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),ro(t.d,s)}return _=!0,o}function to(e){return e.d[e.d.length-1]&1}function po(e,t,r){for(var n,i,o=new e(t[0]),s=0;++s17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(_=!1,l=C):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=O(o.times(e),l,1),r=r.times(++g),a=s.plus(j(o,r,l,1)),Y(a.d).slice(0,l)===Y(s.d).slice(0,l)){for(i=h;i--;)s=O(s.times(s),l,1);if(t==null)if(u<3&&Lt(s.d,l-n,R,u))v.precision=l+=10,r=o=a=new v(1),g=0,u++;else return O(s,v.precision=C,R,_=!0);else return v.precision=C,s}s=a}}function De(e,t){var r,n,i,o,s,a,l,u,g,h,v,R=1,C=10,A=e,M=A.d,I=A.constructor,L=I.rounding,k=I.precision;if(A.s<0||!M||!M[0]||!A.e&&M[0]==1&&M.length==1)return new I(M&&!M[0]?-1/0:A.s!=1?NaN:M?0:A);if(t==null?(_=!1,g=k):g=t,I.precision=g+=C,r=Y(M),n=r.charAt(0),Math.abs(o=A.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)A=A.times(e),r=Y(A.d),n=r.charAt(0),R++;o=A.e,n>1?(A=new I("0."+r),o++):A=new I(n+"."+r.slice(1))}else return u=dr(I,g+2,k).times(o+""),A=De(new I(n+"."+r.slice(1)),g-C).plus(u),I.precision=k,t==null?O(A,k,L,_=!0):A;for(h=A,l=s=A=j(A.minus(1),A.plus(1),g,1),v=O(A.times(A),g,1),i=3;;){if(s=O(s.times(v),g,1),u=l.plus(j(s,new I(i),g,1)),Y(u.d).slice(0,g)===Y(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(dr(I,g+2,k).times(o+""))),l=j(l,new I(R),g,1),t==null)if(Lt(l.d,g-C,L,a))I.precision=g+=C,u=s=A=j(h.minus(1),h.plus(1),g,1),v=O(A.times(A),g,1),i=a=1;else return O(l,I.precision=k,L,_=!0);else return I.precision=k,l;l=u,i+=2}}function fo(e){return String(e.s*e.s/0)}function ur(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%F,r<0&&(n+=F),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),lo.test(t))return ur(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Wl.test(t))r=16,t=t.toLowerCase();else if(Jl.test(t))r=2;else if(Kl.test(t))r=8;else throw Error(qe+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=co(n,new n(r),o,o*2)),u=lr(t,r,de),g=u.length-1,o=g;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=mr(u,g),e.d=u,_=!1,s&&(e=j(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):We.pow(2,l))),_=!0,e)}function Xl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:st(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/gr(5,r)),t=st(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function st(e,t,r,n,i){var o,s,a,l,u=1,g=e.precision,h=Math.ceil(g/F);for(_=!1,l=r.times(r),a=new e(n);;){if(s=j(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=j(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return _=!0,s.d.length=h+1,s}function gr(e,t){for(var r=e;--t;)r*=e;return r}function mo(e,t){var r,n=t.s<0,i=ye(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Fe=n?4:1,t;if(r=t.divToInt(i),r.isZero())Fe=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Fe=to(r)?n?2:3:n?4:1,t;Fe=to(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Cn(e,t,r,n){var i,o,s,a,l,u,g,h,v,R=e.constructor,C=r!==void 0;if(C?(se(r,1,$e),n===void 0?n=R.rounding:se(n,0,8)):(r=R.precision,n=R.rounding),!e.isFinite())g=fo(e);else{for(g=we(e),s=g.indexOf("."),C?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new R(1),v.e=g.length-s,v.d=lr(we(v),10,i),v.e=v.d.length),h=lr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=C?"0p+0":"0";else{if(s<0?o--:(e=new R(e),e.d=h,e.e=o,e=j(e,v,r,n,0,i),h=e.d,o=e.e,u=io),s=h[r],a=i/2,u=u||h[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,u)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=lr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function eu(e){return new this(e).abs()}function tu(e){return new this(e).acos()}function ru(e){return new this(e).acosh()}function nu(e,t){return new this(e).plus(t)}function iu(e){return new this(e).asin()}function ou(e){return new this(e).asinh()}function su(e){return new this(e).atan()}function au(e){return new this(e).atanh()}function lu(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=ye(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?ye(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=ye(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(j(e,t,o,1)),t=ye(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(j(e,t,o,1)),r}function uu(e){return new this(e).cbrt()}function cu(e){return O(e=new this(e),e.e+1,2)}function pu(e,t,r){return new this(e).clamp(t,r)}function du(e){if(!e||typeof e!="object")throw Error(fr+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,$e,"rounding",0,8,"toExpNeg",-ot,0,"toExpPos",0,ot,"maxE",0,ot,"minE",-ot,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(qe+r+": "+n);if(r="crypto",i&&(this[r]=Pn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(so);else this[r]=!1;else throw Error(qe+r+": "+n);return this}function fu(e){return new this(e).cos()}function mu(e){return new this(e).cosh()}function go(e){var t,r,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,no(o)){u.s=o.s,_?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e=10;a/=10)s++;_?s>i.maxE?(u.e=NaN,u.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(so);else for(;o=10;i/=10)n++;nct,datamodelEnumToSchemaEnum:()=>Bu});m();c();p();d();f();m();c();p();d();f();function Bu(e){return{name:e.name,values:e.values.map(t=>t.name)}}m();c();p();d();f();var ct=(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.updateManyAndReturn="updateManyAndReturn",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw",k))(ct||{});var xo=Se(Wi());m();c();p();d();f();cn();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var wo={keyword:ke,entity:ke,value:e=>pe(Je(e)),punctuation:Je,directive:ke,function:ke,variable:e=>pe(Je(e)),string:e=>pe(St(e)),boolean:Rt,number:ke,comment:kt};var Uu=e=>e,yr={},Vu=0,N={manual:yr.Prism&&yr.Prism.manual,disableWorkerMessageHandler:yr.Prism&&yr.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof fe){let t=e;return new fe(t.type,N.util.encode(t.content),t.alias)}else return Array.isArray(e)?e.map(N.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(Ce instanceof fe)continue;if(z&&Q!=t.length-1){L.lastIndex=ne;var h=L.exec(e);if(!h)break;var g=h.index+(D?h[1].length:0),v=h.index+h[0].length,a=Q,l=ne;for(let $=t.length;a<$&&(l=l&&(++Q,ne=l);if(t[Q]instanceof fe)continue;u=a-Q,Ce=e.slice(ne,l),h.index-=ne}else{L.lastIndex=0;var h=L.exec(Ce),u=1}if(!h){if(o)break;continue}D&&(B=h[1]?h[1].length:0);var g=h.index+B,h=h[0].slice(B),v=g+h.length,R=Ce.slice(0,g),C=Ce.slice(v);let Z=[Q,u];R&&(++Q,ne+=R.length,Z.push(R));let Ye=new fe(A,k?N.tokenize(h,k):h,vt,h,z);if(Z.push(Ye),C&&Z.push(C),Array.prototype.splice.apply(t,Z),u!=1&&N.matchGrammar(e,t,r,Q,ne,!0,A),o)break}}}},tokenize:function(e,t){let r=[e],n=t.rest;if(n){for(let i in n)t[i]=n[i];delete t.rest}return N.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){let r=N.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){let r=N.hooks.all[e];if(!(!r||!r.length))for(var n=0,i;i=r[n++];)i(t)}},Token:fe};N.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};N.languages.javascript=N.languages.extend("clike",{"class-name":[N.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});N.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;N.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:N.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:N.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:N.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:N.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});N.languages.markup&&N.languages.markup.tag.addInlined("script","javascript");N.languages.js=N.languages.javascript;N.languages.typescript=N.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/});N.languages.ts=N.languages.typescript;function fe(e,t,r,n,i){this.type=e,this.content=t,this.alias=r,this.length=(n||"").length|0,this.greedy=!!i}fe.stringify=function(e,t){return typeof e=="string"?e:Array.isArray(e)?e.map(function(r){return fe.stringify(r,t)}).join(""):Qu(e.type)(e.content)};function Qu(e){return wo[e]||Uu}function bo(e){return Gu(e,N.languages.javascript)}function Gu(e,t){return N.tokenize(e,t).map(n=>fe.stringify(n)).join("")}m();c();p();d();f();function Eo(e){return mn(e)}var wr=class e{firstLineNumber;lines;static read(t){let r;try{r=or.readFileSync(t,"utf-8")}catch{return null}return e.fromContent(r)}static fromContent(t){let r=t.split(/\r?\n/);return new e(1,r)}constructor(t,r){this.firstLineNumber=t,this.lines=r}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(t,r){if(tthis.lines.length+this.firstLineNumber)return this;let n=t-this.firstLineNumber,i=[...this.lines];return i[n]=r(i[n]),new e(this.firstLineNumber,i)}mapLines(t){return new e(this.firstLineNumber,this.lines.map((r,n)=>t(r,this.firstLineNumber+n)))}lineAt(t){return this.lines[t-this.firstLineNumber]}prependSymbolAt(t,r){return this.mapLines((n,i)=>i===t?`${r} ${n}`:` ${n}`)}slice(t,r){let n=this.lines.slice(t-1,r).join(` +`);return new e(t,Eo(n).split(` +`))}highlight(){let t=bo(this.toString());return new e(this.firstLineNumber,t.split(` +`))}toString(){return this.lines.join(` +`)}};var Ju={red:Ge,gray:kt,dim:Ct,bold:pe,underline:At,highlightSource:e=>e.highlight()},Wu={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ku({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Hu({callsite:e,message:t,originalMethod:r,isPanic:n,callArguments:i},o){let s=Ku({message:t,originalMethod:r,isPanic:n,callArguments:i});if(!e||typeof window<"u"||y.env.NODE_ENV==="production")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=wr.read(a.fileName)?.slice(l,a.lineNumber),g=u?.lineAt(a.lineNumber);if(u&&g){let h=Yu(g),v=zu(g);if(!v)return s;s.functionName=`${v.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,C=>C.slice(0,v.openingBraceIndex))),u=o.highlightSource(u);let R=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((C,A)=>o.gray(String(A).padStart(R))+" "+C).mapLines(C=>o.dim(C)).prependSymbolAt(a.lineNumber,o.bold(o.red("\u2192"))),i){let C=h+R+1;C+=2,s.callArguments=(0,xo.default)(i,C).slice(C)}}return s}function zu(e){let t=Object.keys(ct).join("|"),n=new RegExp(String.raw`\.(${t})\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(" ",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function Yu(e){let t=0;for(let r=0;r"Unknown error")}function Ao(e){return e.errors.flatMap(t=>t.kind==="Union"?Ao(t):[t])}function ec(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:tc(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function tc(e,t){return[...new Set(e.concat(t))]}function rc(e){return En(e,(t,r)=>{let n=vo(t),i=vo(r);return n!==i?n-i:To(t)-To(r)})}function vo(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function To(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}m();c();p();d();f();var ce=class{constructor(t,r){this.name=t;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};m();c();p();d();f();m();c();p();d();f();Ro();m();c();p();d();f();var pt=class{constructor(t=0,r){this.context=r;this.currentIndent=t}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};So();m();c();p();d();f();m();c();p();d();f();var xr=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};m();c();p();d();f();var Pr=e=>e,vr={bold:Pr,red:Pr,green:Pr,dim:Pr,enabled:!1},ko={bold:pe,red:Ge,green:St,dim:Ct,enabled:!0},dt={write(e){e.writeLine(",")}};m();c();p();d();f();var xe=class{constructor(t){this.contents=t}isUnderlined=!1;color=t=>t;underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};m();c();p();d();f();var Be=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var ft=class extends Be{items=[];addItem(t){return this.items.push(new xr(t)),this}getField(t){return this.items[t]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(t){if(this.items.length===0){this.writeEmpty(t);return}this.writeWithItems(t)}writeEmpty(t){let r=new xe("[]");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithItems(t){let{colors:r}=t.context;t.writeLine("[").withIndent(()=>t.writeJoined(dt,this.items).newLine()).write("]"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var mt=class e extends Be{fields={};suggestions=[];addField(t){this.fields[t.name]=t}addSuggestion(t){this.suggestions.push(t)}getField(t){return this.fields[t]}getDeepField(t){let[r,...n]=t,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof ft&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(t){return t.length===0?this:this.getDeepField(t)?.value}hasField(t){return!!this.getField(t)}removeAllFields(){this.fields={}}removeField(t){delete this.fields[t]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(t){return this.getField(t)?.value}getDeepSubSelectionValue(t){let r=this;for(let n of t){if(!(r instanceof e))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(t){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of t){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let t=this.getField("select")?.value.asObject();if(t)return{kind:"select",value:t};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(t){return this.getSelectionParent()?.value.fields[t].value}getPrintWidth(){let t=Object.values(this.fields);return t.length==0?2:Math.max(...t.map(n=>n.getPrintWidth()))+2}write(t){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(t);return}this.writeWithContents(t,r)}asObject(){return this}writeEmpty(t){let r=new xe("{}");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithContents(t,r){t.writeLine("{").withIndent(()=>{t.writeJoined(dt,[...r,...this.suggestions]).newLine()}),t.write("}"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth())))})}};m();c();p();d();f();var H=class extends Be{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new xe(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};m();c();p();d();f();var qt=class{fields=[];addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(dt,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Er(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":nc(e,t);break;case"IncludeOnScalar":ic(e,t);break;case"EmptySelection":oc(e,t,r);break;case"UnknownSelectionField":uc(e,t);break;case"InvalidSelectionValue":cc(e,t);break;case"UnknownArgument":pc(e,t);break;case"UnknownInputField":dc(e,t);break;case"RequiredArgumentMissing":fc(e,t);break;case"InvalidArgumentType":mc(e,t);break;case"InvalidArgumentValue":gc(e,t);break;case"ValueTooLarge":hc(e,t);break;case"SomeFieldsMissing":yc(e,t);break;case"TooManyFieldsGiven":wc(e,t);break;case"Union":Co(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function nc(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function ic(e,t){let[r,n]=$t(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ce(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${jt(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function oc(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){sc(e,t,i);return}if(n.hasField("select")){ac(e,t);return}}if(r?.[je(e.outputType.name)]){lc(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function sc(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ce(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function ac(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Io(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${jt(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function lc(e,t){let r=new qt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ce("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=$t(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new mt;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function uc(e,t){let r=_o(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":Io(n,e.outputType);break;case"include":bc(n,e.outputType);break;case"omit":Ec(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(jt(n)),i.join(" ")})}function cc(e,t){let r=_o(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function pc(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),xc(n,e.arguments)),t.addErrorMessage(i=>Mo(i,r,e.arguments.map(o=>o.name)))}function dc(e,t){let[r,n]=$t(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Lo(o,e.inputType)}t.addErrorMessage(o=>Mo(o,n,e.inputType.fields.map(s=>s.name)))}function Mo(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=vc(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(jt(e)),n.join(" ")}function fc(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=$t(e.argumentPath),s=new qt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ce(o,s).makeRequired())}else{let l=e.inputTypes.map(Fo).join(" | ");a.addSuggestion(new ce(o,l).makeRequired())}}function Fo(e){return e.kind==="list"?`${Fo(e.elementType)}[]`:e.name}function mc(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Tr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function gc(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Tr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function hc(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function yc(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Lo(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Tr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(jt(i)),o.join(" ")})}function wc(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Tr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function Io(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,"true"))}function bc(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ce(r.name,"true"))}function Ec(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ce(r.name,"true"))}function xc(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function _o(e,t){let[r,n]=$t(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Lo(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function $t(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function jt({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Tr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Pc=3;function vc(e,t){let r=1/0,n;for(let i of t){let o=(0,Oo.default)(e,i);o>Pc||o`}};function gt(e){return e instanceof Bt}m();c();p();d();f();var Cr=Symbol(),kn=new WeakMap,Ie=class{constructor(t){t===Cr?kn.set(this,`Prisma.${this._getName()}`):kn.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return kn.get(this)}},Ut=class extends Ie{_getNamespace(){return"NullTypes"}},Vt=class extends Ut{_brand_DbNull};On(Vt,"DbNull");var Qt=class extends Ut{_brand_JsonNull};On(Qt,"JsonNull");var Gt=class extends Ut{_brand_AnyNull};On(Gt,"AnyNull");var Ar={classes:{DbNull:Vt,JsonNull:Qt,AnyNull:Gt},instances:{DbNull:new Vt(Cr),JsonNull:new Qt(Cr),AnyNull:new Gt(Cr)}};function On(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}m();c();p();d();f();var No=": ",Sr=class{constructor(t,r){this.name=t;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+No.length}write(t){let r=new xe(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(No).write(this.value)}};var Mn=class{arguments;errorMessages=[];constructor(t){this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function ht(e){return new Mn(Do(e))}function Do(e){let t=new mt;for(let[r,n]of Object.entries(e)){let i=new Sr(r,qo(n));t.addField(i)}return t}function qo(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(ut(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=hr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Ie?new H(`Prisma.${e._getName()}`):gt(e)?new H(`prisma.${je(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Tc(e):typeof e=="object"?Do(e):new H(Object.prototype.toString.call(e))}function Tc(e){let t=new ft;for(let r of e)t.addItem(qo(r));return t}function Rr(e,t){let r=t==="pretty"?ko:vr,n=e.renderAllMessages(r),i=new pt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function kr({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=ht(e);for(let h of t)Er(h,a,s);let{message:l,args:u}=Rr(a,r),g=br({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:u});throw new ee(g,{clientVersion:o})}m();c();p();d();f();m();c();p();d();f();function Pe(e){return e.replace(/^./,t=>t.toLowerCase())}m();c();p();d();f();function jo(e,t,r){let n=Pe(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Cc({...e,...$o(t.name,e,t.result.$allModels),...$o(t.name,e,t.result[n])})}function Cc(e){let t=new Ee,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return it(e,n=>({...n,needs:r(n.name,new Set)}))}function $o(e,t,r){return r?it(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Ac(t,o,i)})):{}}function Ac(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Bo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function Uo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Or=class{constructor(t,r){this.extension=t;this.previous=r}computedFieldsCache=new Ee;modelExtensionsCache=new Ee;queryCallbacksCache=new Ee;clientExtensions=Nt(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=Nt(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t});getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>jo(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Pe(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},yt=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Or(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Or(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};m();c();p();d();f();var Mr=class{constructor(t){this.name=t}};function Vo(e){return e instanceof Mr}function Qo(e){return new Mr(e)}m();c();p();d();f();m();c();p();d();f();var Go=Symbol(),Jt=class{constructor(t){if(t!==Go)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Fr:t}},Fr=new Jt(Go);function ve(e){return e instanceof Jt}var Sc={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Jo="explicitly `undefined` values are not allowed";function Ir({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=yt.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:g}){let h=new Fn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:g});return{modelName:e,action:Sc[t],query:Wt(r,h)}}function Wt({select:e,include:t,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Ko(r,n),selection:Rc(e,t,i,n)}}function Rc(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),Fc(e,n)):kc(n,t,r)}function kc(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&Oc(n,t,e),Mc(n,r,e),n}function Oc(e,t,r){for(let[n,i]of Object.entries(t)){if(ve(i))continue;let o=r.nestSelection(n);if(In(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Wt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Wt(i,o)}}function Mc(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=Uo(i,n);for(let[s,a]of Object.entries(o)){if(ve(a))continue;In(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function Fc(e,t){let r={},n=t.getComputedFields(),i=Bo(e,n);for(let[o,s]of Object.entries(i)){if(ve(s))continue;let a=t.nestSelection(o);In(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||ve(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Wt({},a):r[o]=!0;continue}r[o]=Wt(s,a)}}return r}function Wo(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(lt(e)){if(hr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Vo(e))return{$type:"Param",value:e.name};if(gt(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return Ic(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(_c(e))return e.values;if(ut(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ie){if(e!==Ar.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(Lc(e))return e.toJSON();if(typeof e=="object")return Ko(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Ko(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);ve(i)||(i!==void 0?r[n]=Wo(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:Jo}))}return r}function Ic(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[je(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Me(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};m();c();p();d();f();function Ho(e){if(!e._hasPreviewFlag("metrics"))throw new ee("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var wt=class{_client;constructor(t){this._client=t}prometheus(t){return Ho(this._client),this._client._engine.metrics({format:"prometheus",...t})}json(t){return Ho(this._client),this._client._engine.metrics({format:"json",...t})}};m();c();p();d();f();function zo(e,t){let r=Nt(()=>Nc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function Nc(e){return{datamodel:{models:_n(e.models),enums:_n(e.enums),types:_n(e.types)}}}function _n(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}m();c();p();d();f();var Ln=new WeakMap,_r="$$PrismaTypedSql",Kt=class{constructor(t,r){Ln.set(this,{sql:t,values:r}),Object.defineProperty(this,_r,{value:_r})}get sql(){return Ln.get(this).sql}get values(){return Ln.get(this).values}};function Yo(e){return(...t)=>new Kt(e,t)}function Lr(e){return e!=null&&e[_r]===_r}m();c();p();d();f();var ga=Se(Zo());m();c();p();d();f();Xo();cn();dn();m();c();p();d();f();var ae=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}m();c();p();d();f();m();c();p();d();f();var Dr={enumerable:!0,configurable:!0,writable:!0};function qr(e){let t=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>Dr,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var rs=Symbol.for("nodejs.util.inspect.custom");function me(e,t){let r=qc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=ns(Reflect.ownKeys(o),r),a=ns(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Dr,...l?.getPropertyDescriptor(s)}:Dr:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[rs]=function(){let o={...this};return delete o[rs],o},i}function qc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function ns(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}m();c();p();d();f();function bt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}m();c();p();d();f();function $r(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}m();c();p();d();f();function is(e){if(e===void 0)return"";let t=ht(e);return new pt(0,{colors:vr}).write(t).toString()}m();c();p();d();f();var $c="P2037";function jr({error:e,user_facing_error:t},r,n){return t.error_code?new oe(jc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new G(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function jc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===$c&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var zt="";function os(e){var t=e.split(` +`);return t.reduce(function(r,n){var i=Vc(n)||Gc(n)||Kc(n)||Zc(n)||zc(n);return i&&r.push(i),r},[])}var Bc=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Uc=/\((\S*)(?::(\d+))(?::(\d+))\)/;function Vc(e){var t=Bc.exec(e);if(!t)return null;var r=t[2]&&t[2].indexOf("native")===0,n=t[2]&&t[2].indexOf("eval")===0,i=Uc.exec(t[2]);return n&&i!=null&&(t[2]=i[1],t[3]=i[2],t[4]=i[3]),{file:r?null:t[2],methodName:t[1]||zt,arguments:r?[t[2]]:[],lineNumber:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}var Qc=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Gc(e){var t=Qc.exec(e);return t?{file:t[2],methodName:t[1]||zt,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var Jc=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,Wc=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Kc(e){var t=Jc.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(" > eval")>-1,n=Wc.exec(t[3]);return r&&n!=null&&(t[3]=n[1],t[4]=n[2],t[5]=null),{file:t[3],methodName:t[1]||zt,arguments:t[2]?t[2].split(","):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}var Hc=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function zc(e){var t=Hc.exec(e);return t?{file:t[3],methodName:t[1]||zt,arguments:[],lineNumber:+t[4],column:t[5]?+t[5]:null}:null}var Yc=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Zc(e){var t=Yc.exec(e);return t?{file:t[2],methodName:t[1]||zt,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var qn=class{getLocation(){return null}},$n=class{_error;constructor(){this._error=new Error}getLocation(){let t=this._error.stack;if(!t)return null;let n=os(t).find(i=>{if(!i.file)return!1;let o=wn(i.file);return o!==""&&!o.includes("@prisma")&&!o.includes("/packages/client/src/runtime/")&&!o.endsWith("/runtime/binary.js")&&!o.endsWith("/runtime/library.js")&&!o.endsWith("/runtime/edge.js")&&!o.endsWith("/runtime/edge-esm.js")&&!o.startsWith("internal/")&&!i.methodName.includes("new ")&&!i.methodName.includes("getCallSite")&&!i.methodName.includes("Proxy.")&&i.methodName.split(".").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ue(e){return e==="minimal"?typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new qn:new $n}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var ss={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Et(e={}){let t=ep(e);return Object.entries(t).reduce((n,[i,o])=>(ss[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function ep(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Br(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function as(e,t){let r=Br(e);return t({action:"aggregate",unpacker:r,argsMapper:Et})(e)}m();c();p();d();f();function tp(e={}){let{select:t,...r}=e;return typeof t=="object"?Et({...r,_count:t}):Et({...r,_count:{_all:!0}})}function rp(e={}){return typeof e.select=="object"?t=>Br(e)(t)._count:t=>Br(e)(t)._count._all}function ls(e,t){return t({action:"count",unpacker:rp(e),argsMapper:tp})(e)}m();c();p();d();f();function np(e={}){let t=Et(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function ip(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function us(e,t){return t({action:"groupBy",unpacker:ip(e),argsMapper:np})(e)}function cs(e,t,r){if(t==="aggregate")return n=>as(n,r);if(t==="count")return n=>ls(n,r);if(t==="groupBy")return n=>us(n,r)}m();c();p();d();f();function ps(e,t){let r=t.fields.filter(i=>!i.relationName),n=ho(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Bt(e,o,s.type,s.isList,s.kind==="enum")},...qr(Object.keys(n))})}m();c();p();d();f();m();c();p();d();f();var ds=e=>Array.isArray(e)?e:e.split("."),jn=(e,t)=>ds(t).reduce((r,n)=>r&&r[n],e),fs=(e,t,r)=>ds(t).reduceRight((n,i,o,s)=>Object.assign({},jn(e,s.slice(0,o)),{[i]:n}),r);function op(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function sp(e,t,r){return t===void 0?e??{}:fs(t,r,e||!0)}function Bn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ue(e._errorFormat),g=op(n,i),h=sp(l,o,g),v=r({dataPath:g,callsite:u})(h),R=ap(e,t);return new Proxy(v,{get(C,A){if(!R.includes(A))return C[A];let I=[a[A].type,r,A],L=[g,h];return Bn(e,...I,...L)},...qr([...R,...Object.getOwnPropertyNames(v)])})}}function ap(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var lp=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],up=["aggregate","count","groupBy"];function Un(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[cp(e,t),dp(e,t),Ht(r),re("name",()=>t),re("$name",()=>t),re("$parent",()=>e._appliedParent)];return me({},n)}function cp(e,t){let r=Pe(t),n=Object.keys(ct).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let u=Ue(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:u};return e._request({...h,...a})},{action:o,args:l,model:t})};return lp.includes(o)?Bn(e,t,s):pp(i)?cs(e,i,s):s({})}}}function pp(e){return up.includes(e)}function dp(e,t){return Ke(re("fields",()=>{let r=e._runtimeDataModel.models[t];return ps(t,r)}))}m();c();p();d();f();function ms(e){return e.replace(/^./,t=>t.toUpperCase())}var Vn=Symbol();function Yt(e){let t=[fp(e),mp(e),re(Vn,()=>e),re("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(Ht(r)),me(e,t)}function fp(e){let t=Object.getPrototypeOf(e._originalClient),r=[...new Set(Object.getOwnPropertyNames(t))];return{getKeys(){return r},getPropertyValue(n){return e[n]}}}function mp(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Pe),n=[...new Set(t.concat(r))];return Ke({getKeys(){return n},getPropertyValue(i){let o=ms(i);if(e._runtimeDataModel.models[o]!==void 0)return Un(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Un(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function gs(e){return e[Vn]?e[Vn]:e}function hs(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Yt(t)}m();c();p();d();f();m();c();p();d();f();function ys({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(g=>n[g]);u.length>0&&a.push(bt(u))}else if(r){if(!r[l.name])continue;let u=l.needs.filter(g=>!r[g]);u.length>0&&a.push(bt(u))}gp(e,l.needs)&&s.push(hp(l,me(e,s)))}return s.length>0||a.length>0?me(e,[...s,...a]):e}function gp(e,t){return t.every(r=>bn(e,r))}function hp(e,t){return Ke(re(e.name,()=>e.compute(t)))}m();c();p();d();f();function Ur({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let u=typeof s=="object"?s:{};t[o]=Ur({visitor:i,result:t[o],args:u,modelName:l.type,runtimeDataModel:n})}}function bs({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Ur({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,u)=>{let g=Pe(l);return ys({result:a,modelName:g,select:u.select,omit:u.select?void 0:{...o?.[g],...u.omit},extensions:n})}})}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var yp=["$connect","$disconnect","$on","$transaction","$use","$extends"],Es=yp;function xs(e){if(e instanceof ae)return wp(e);if(Lr(e))return bp(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:xs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=Ss(o,l),a.args=s,vs(e,a,r,n+1)}})})}function Ts(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return vs(e,t,s)}function Cs(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?As(r,n,0,e):e(r)}}function As(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=Ss(i,l),As(a,t,r+1,n)}})}var Ps=e=>e;function Ss(e=Ps,t=Ps){return r=>e(t(r))}m();c();p();d();f();var Rs=K("prisma:client"),ks={Vercel:"vercel","Netlify CI":"netlify"};function Os({postinstall:e,ciName:t,clientVersion:r}){if(Rs("checkPlatformCaching:postinstall",e),Rs("checkPlatformCaching:ciName",t),e===!0&&t&&t in ks){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ks[t]}-build`;throw console.error(n),new V(n,r)}}m();c();p();d();f();function Ms(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}m();c();p();d();f();m();c();p();d();f();var Ep=()=>globalThis.process?.release?.name==="node",xp=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,Pp=()=>!!globalThis.Deno,vp=()=>typeof globalThis.Netlify=="object",Tp=()=>typeof globalThis.EdgeRuntime=="object",Cp=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function Ap(){return[[vp,"netlify"],[Tp,"edge-light"],[Cp,"workerd"],[Pp,"deno"],[xp,"bun"],[Ep,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var Sp={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Fs(){let e=Ap();return{id:e,prettyName:Sp[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}m();c();p();d();f();m();c();p();d();f();var Qn=Se(yn());m();c();p();d();f();function Is(e){return e?e.replace(/".*"/g,'"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g,t=>`${t[0]}5`):""}m();c();p();d();f();function _s(e){return e.split(` +`).map(t=>t.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/,"").replace(/\+\d+\s*ms$/,"")).join(` +`)}m();c();p();d();f();var Ls=Se(Zi());function Ns({title:e,user:t="prisma",repo:r="prisma",template:n="bug_report.yml",body:i}){return(0,Ls.default)({user:t,repo:r,template:n,title:e,body:i})}function Ds({version:e,binaryTarget:t,title:r,description:n,engineVersion:i,database:o,query:s}){let a=Ii(6e3-(s?.length??0)),l=_s((0,Qn.default)(a)),u=n?`# Description +\`\`\` +${n} +\`\`\``:"",g=(0,Qn.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${y.version?.padEnd(19)}| +| OS | ${t?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s?Is(s):""} +\`\`\` +`),h=Ns({title:r,body:g});return`${r} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${At(h)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`}m();c();p();d();f();function Vr({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new V(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new V("error: Missing URL environment variable, value, or override.",n);return i}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();function Gn(e){return e.name==="DriverAdapterError"&&typeof e.cause=="object"}m();c();p();d();f();function Qr(e){return{ok:!0,value:e,map(t){return Qr(t(e))},flatMap(t){return t(e)}}}function He(e){return{ok:!1,error:e,map(){return He(e)},flatMap(){return He(e)}}}var qs=K("driver-adapter-utils"),Jn=class{registeredErrors=[];consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}};var Wn=(e,t=new Jn)=>{let r={adapterName:e.adapterName,errorRegistry:t,queryRaw:_e(t,e.queryRaw.bind(e)),executeRaw:_e(t,e.executeRaw.bind(e)),executeScript:_e(t,e.executeScript.bind(e)),dispose:_e(t,e.dispose.bind(e)),provider:e.provider,startTransaction:async(...n)=>(await _e(t,e.startTransaction.bind(e))(...n)).map(o=>Rp(t,o))};return e.getConnectionInfo&&(r.getConnectionInfo=kp(t,e.getConnectionInfo.bind(e))),r},Rp=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:_e(e,t.queryRaw.bind(t)),executeRaw:_e(e,t.executeRaw.bind(t)),commit:_e(e,t.commit.bind(t)),rollback:_e(e,t.rollback.bind(t))});function _e(e,t){return async(...r)=>{try{return Qr(await t(...r))}catch(n){if(qs("[error@wrapAsync]",n),Gn(n))return He(n.cause);let i=e.registerNewError(n);return He({kind:"GenericJs",id:i})}}}function kp(e,t){return(...r)=>{try{return Qr(t(...r))}catch(n){if(qs("[error@wrapSync]",n),Gn(n))return He(n.cause);let i=e.registerNewError(n);return He({kind:"GenericJs",id:i})}}}m();c();p();d();f();function $s(e){if(e?.kind==="itx")return e.options.id}m();c();p();d();f();var Kn=class{engineObject;constructor(t,r,n){this.engineObject=__PrismaProxy.create({datamodel:t.datamodel,env:y.env,ignoreEnvVarErrors:!0,datasourceOverrides:t.datasourceOverrides??{},logLevel:t.logLevel,logQueries:t.logQueries??!1,logCallback:r,enableTracing:t.enableTracing})}async connect(t,r){return __PrismaProxy.connect(this.engineObject,t,r)}async disconnect(t,r){return __PrismaProxy.disconnect(this.engineObject,t,r)}query(t,r,n,i){return __PrismaProxy.execute(this.engineObject,t,r,n,i)}compile(){throw new Error("not implemented")}sdlSchema(){return Promise.resolve("{}")}dmmf(t){return Promise.resolve("{}")}async startTransaction(t,r,n){return __PrismaProxy.startTransaction(this.engineObject,t,r,n)}async commitTransaction(t,r,n){return __PrismaProxy.commitTransaction(this.engineObject,t,r,n)}async rollbackTransaction(t,r,n){return __PrismaProxy.rollbackTransaction(this.engineObject,t,r,n)}metrics(t){return Promise.resolve("{}")}async applyPendingMigrations(){return __PrismaProxy.applyPendingMigrations(this.engineObject)}trace(t){return __PrismaProxy.trace(this.engineObject,t)}},js={async loadLibrary(e){if(!__PrismaProxy)throw new V("__PrismaProxy not detected make sure React Native bindings are installed",e.clientVersion);return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:Kn}}};var Op="P2036",Te=K("prisma:client:libraryEngine");function Mp(e){return e.item_type==="query"&&"query"in e}function Fp(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var z2=[...pn,"native"],Ip=0xffffffffffffffffn,Hn=1n;function _p(){let e=Hn++;return Hn>Ip&&(Hn=1n),e}var Xt=class{name="LibraryEngine";engine;libraryInstantiationPromise;libraryStartingPromise;libraryStoppingPromise;libraryStarted;executingQueryPromise;config;QueryEngineConstructor;libraryLoader;library;logEmitter;libQueryEnginePath;binaryTarget;datasourceOverrides;datamodel;logQueries;logLevel;lastQuery;loggerRustPanic;tracingHelper;adapterPromise;versionInfo;constructor(t,r){this.libraryLoader=js,this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,this.tracingHelper=t.tracingHelper,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(t){return{applyPendingMigrations:t.applyPendingMigrations?.bind(t),commitTransaction:this.withRequestId(t.commitTransaction.bind(t)),connect:this.withRequestId(t.connect.bind(t)),disconnect:this.withRequestId(t.disconnect.bind(t)),metrics:t.metrics?.bind(t),query:this.withRequestId(t.query.bind(t)),rollbackTransaction:this.withRequestId(t.rollbackTransaction.bind(t)),sdlSchema:t.sdlSchema?.bind(t),startTransaction:this.withRequestId(t.startTransaction.bind(t)),trace:t.trace.bind(t)}}withRequestId(t){return async(...r)=>{let n=_p().toString();try{return await t(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){await this.start(),await this.engine?.applyPendingMigrations()}async transaction(t,r,n){await this.start();let i=await this.adapterPromise,o=JSON.stringify(r),s;if(t==="start"){let l=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});s=await this.engine?.startTransaction(l,o)}else t==="commit"?s=await this.engine?.commitTransaction(n.id,o):t==="rollback"&&(s=await this.engine?.rollbackTransaction(n.id,o));let a=this.parseEngineResponse(s);if(Lp(a)){let l=this.getExternalAdapterError(a,i?.errorRegistry);throw l?l.error:new oe(a.message,{code:a.error_code,clientVersion:this.config.clientVersion,meta:a.meta})}else if(typeof a.message=="string")throw new G(a.message,{clientVersion:this.config.clientVersion});return a}async instantiateLibrary(){if(Te("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(t){if(!t)throw new G("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new G("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new b(this);this.adapterPromise||(this.adapterPromise=this.config.adapter?.connect()?.then(Wn));let r=await this.adapterPromise;r&&Te("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:y.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{t.deref()?.logger(n)},r))}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);r&&(r.level=r?.level.toLowerCase()??"unknown",Mp(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):Fp(r)?this.loggerRustPanic=new ue(zn(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path}))}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Te(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Te("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Te("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Te("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Te("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,await(await this.adapterPromise)?.dispose(),this.adapterPromise=void 0,Te("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Te(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start();let s=await this.adapterPromise;this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let a=this.parseEngineResponse(await this.executingQueryPromise);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],s?.errorRegistry):new G(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:a}}catch(s){if(s instanceof V)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new ue(zn(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new G(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Te("requestBatch");let i=$r(t,r);await this.start();let o=await this.adapterPromise;this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),$s(r));let s=await this.executingQueryPromise,a=this.parseEngineResponse(s);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],o?.errorRegistry):new G(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});let{batchResult:l,errors:u}=a;if(Array.isArray(l))return l.map(g=>g.errors&&g.errors.length>0?this.loggerRustPanic??this.buildQueryError(g.errors[0],o?.errorRegistry):{data:g});throw u&&u.length===1?new Error(u[0].error):new Error(JSON.stringify(a))}buildQueryError(t,r){if(t.user_facing_error.is_panic)return new ue(zn(this,t.user_facing_error.message),this.config.clientVersion);let n=this.getExternalAdapterError(t.user_facing_error,r);return n?n.error:jr(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t,r){if(t.error_code===Op&&r){let n=t.meta?.id;sr(typeof n=="number","Malformed external JS error received from the engine");let i=r.consumeError(n);return sr(i,"External error with reported id was not registered"),i}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format==="prometheus"?r:this.parseEngineResponse(r)}};function Lp(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function zn(e,t){return Ds({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function Bs({copyEngine:e=!0},t){let r;try{r=Vr({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||gn(r));e&&n&&_t("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=nt(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary",u=i==="client";if(o&&s||s&&!1){let g;throw e?r?.startsWith("prisma://")?g=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:g=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:g=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new ee(g.join(` +`),{clientVersion:t.clientVersion})}return new Xt(t)}m();c();p();d();f();function Gr({generator:e}){return e?.previewFeatures??[]}m();c();p();d();f();var Us=e=>({command:e});m();c();p();d();f();m();c();p();d();f();var Vs=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);m();c();p();d();f();function xt(e){try{return Qs(e,"fast")}catch{return Qs(e,"slow")}}function Qs(e,t){return JSON.stringify(e.map(r=>Js(r,t)))}function Js(e,t){if(Array.isArray(e))return e.map(r=>Js(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(lt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(be.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(Np(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Ws(e):e}function Np(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Ws(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Gs);let t={};for(let r of Object.keys(e))t[r]=Gs(e[r]);return t}function Gs(e){return typeof e=="bigint"?e.toString():Ws(e)}var Dp=/^(\s*alter\s)/i,Ks=K("prisma:client");function Yn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Dp.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Zn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Lr(r))n=r.sql,i={values:xt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:xt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:xt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:xt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=Vs(r),i={values:xt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Ks(`prisma.${e}(${n}, ${i.values})`):Ks(`prisma.${e}(${n})`),{query:n,parameters:i}},Hs={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new ae(t,r)}},zs={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};m();c();p();d();f();function Xn(e){return function(r,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=Ys(r(s)):Ys(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function Ys(e){return typeof e.then=="function"?e:Promise.resolve(e)}m();c();p();d();f();var qp=fn.split(".")[0],$p={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},ei=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){let t=globalThis[`V${qp}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return t?.helper??r?.helper??$p}};function Zs(){return new ei}m();c();p();d();f();function Xs(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}m();c();p();d();f();function ea(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}m();c();p();d();f();var Jr=class{_middlewares=[];use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};m();c();p();d();f();var ra=Se(yn());m();c();p();d();f();function Wr(e){return typeof e.batchRequestIdx=="number"}m();c();p();d();f();function ta(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(ti(e.query.arguments)),t.push(ti(e.query.selection)),t.join("")}function ti(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${ti(n)})`:r}).join(" ")})`}m();c();p();d();f();var jp={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function ri(e){return jp[e]}m();c();p();d();f();var Kr=class{constructor(t){this.options=t;this.batches={}}batches;tickActive=!1;request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;ize("bigint",r));case"bytes-array":return t.map(r=>ze("bytes",r));case"decimal-array":return t.map(r=>ze("decimal",r));case"datetime-array":return t.map(r=>ze("datetime",r));case"date-array":return t.map(r=>ze("date",r));case"time-array":return t.map(r=>ze("time",r));default:return t}}function Hr(e){let t=[],r=Bp(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(h=>ri(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Vp(o),containsWrite:u,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(R){return R}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?na(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:ri(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:ta(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Up(t),Qp(t,i))throw t;if(t instanceof oe&&Gp(t)){let u=ia(t.meta);kr({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=br({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new oe(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ue(l,this.client._clientVersion);if(t instanceof G)throw new G(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof V)throw new V(l,this.client._clientVersion);if(t instanceof ue)throw new ue(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,ra.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!=="select"&&u!=="include"),a=jn(o,s),l=i==="queryRaw"?Hr(a):at(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Vp(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:na(e)};Me(e,"Unknown transaction kind")}}function na(e){return{id:e.id,payload:e.payload}}function Qp(e,t){return Wr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function Gp(e){return e.code==="P2009"||e.code==="P2012"}function ia(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(ia)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}m();c();p();d();f();var oa="6.6.0";var sa=oa;m();c();p();d();f();var pa=Se(Sn());m();c();p();d();f();var q=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};le(q,"PrismaClientConstructorValidationError");var aa=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],la=["pretty","colorless","minimal"],ua=["info","query","warn","error"],Wp={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new q(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=Pt(r,t)||` Available datasources: ${t.join(", ")}`;throw new q(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new q(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new q(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new q(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(!e&&nt(t.generator)==="client")throw new q('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new q('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Gr(t).includes("driverAdapters"))throw new q('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(nt(t.generator)==="binary")throw new q('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new q(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new q(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!la.includes(e)){let t=Pt(e,la);throw new q(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new q(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!ua.includes(r)){let n=Pt(r,ua);throw new q(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=Pt(i,o);throw new q(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new q(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new q(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new q(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new q('"omit" option is expected to be an object.');if(e===null)throw new q('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=Hp(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new q(zp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new q(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=Pt(r,t);throw new q(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function da(e,t){for(let[r,n]of Object.entries(e)){if(!aa.includes(r)){let i=Pt(r,aa);throw new q(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Wp[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new q('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function Pt(e,t){if(t.length===0||typeof e!="string")return"";let r=Kp(e,t);return r?` Did you mean "${r}"?`:""}function Kp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,pa.default)(e,i)}));r.sort((i,o)=>i.distanceje(n)===t);if(r)return e[r]}function zp(e,t){let r=ht(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Rr(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}m();c();p();d();f();function fa(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=u=>{o||(o=!0,r(u))};for(let u=0;u{n[u]=g,a()},g=>{if(!Wr(g)){l(g);return}g.batchRequestIdx===u?l(g):(i||(i=g),a())})})}var Ve=K("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Yp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Zp=Symbol.for("prisma.client.transaction.id"),Xp={id:0,nextId(){return++this.id}};function ha(e){class t{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Jr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=Xn();constructor(n){e=n?.__internal?.configOverride?.(e)??e,Os(e),n&&da(n,e);let i=new Nr().on("error",()=>{});this._extensions=yt.empty(),this._previewFeatures=Gr(e),this._clientVersion=e.clientVersion??sa,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Zs();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Oe.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Oe.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new V(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new V("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},g=u.debug===!0;g&&K.enable("prisma:client");let h=Oe.resolve(e.dirname,e.relativePath);or.existsSync(h)||(h=e.dirname),Ve("dirname",e.dirname),Ve("relativePath",e.relativePath),Ve("cwd",h);let v=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&ea(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(R=>typeof R=="string"?R==="query":R.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ms(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:Vr,getBatchRequestPayload:$r,prismaGraphQLToJSError:jr,PrismaClientUnknownRequestError:G,PrismaClientInitializationError:V,PrismaClientKnownRequestError:oe,debug:K("prisma:client:accelerateEngine"),engineVersion:ga.version,clientVersion:e.clientVersion}},Ve("clientVersion",e.clientVersion),this._engine=Bs(e,this._engineConfig),this._requestHandler=new zr(this,i),l.log)for(let R of l.log){let C=typeof R=="string"?R:R.emit==="stdout"?R.level:null;C&&this.$on(C,A=>{It.log(`${It.tags[C]??""}`,A.message||A.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=Yt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{_i()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Zn({clientMethod:i,activeProvider:a}),callsite:Ue(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ma(n,i);return Yn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new ee("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Yn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new ee(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:Us,callsite:Ue(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Zn({clientMethod:i,activeProvider:a}),callsite:Ue(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ma(n,i));throw new ee("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new ee("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=Xp.nextId(),s=Xs(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:u,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return fa(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let u={kind:"itx",...a};l=await n(this._createItxClient(u)),await this._engine.transaction("commit",o,a)}catch(u){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),u}return l}_createItxClient(n){return me(Yt(me(gs(this),[re("_appliedParent",()=>this._appliedParent._createItxClient(n)),re("_createPrismaPromise",()=>Xn(n)),re(Zp,()=>n.id)])),[bt(Es)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Yp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,M=>g(u,I=>(M?.end(),l(I))));let{runInTransaction:h,args:v,...R}=u,C={...n,...R};v&&(C.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete C.transaction;let A=await Ts(this,C);return C.model?bs({result:A,modelName:C.model,args:C.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):A};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:R}){try{n=u?u(n):n;let C={name:"serialize"},A=this._tracingHelper.runInChildSpan(C,()=>Ir({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return K.enabled("prisma:client")&&(Ve("Prisma Client call:"),Ve(`prisma.${i}(${is(n)})`),Ve("Generated request:"),Ve(JSON.stringify(A,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:A,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:R})}catch(C){throw C.clientVersion=this._clientVersion,C}}$metrics=new wt(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=hs}return t}function ma(e,t){return ed(e)?[new ae(e,t),Hs]:[e,zs]}function ed(e){return Array.isArray(e)&&Array.isArray(e.raw)}m();c();p();d();f();var td=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function ya(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!td.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}m();c();p();d();f();0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=react-native.js.map diff --git a/lib/generated/prisma/runtime/wasm.js b/lib/generated/prisma/runtime/wasm.js new file mode 100644 index 0000000..7b2f1f5 --- /dev/null +++ b/lib/generated/prisma/runtime/wasm.js @@ -0,0 +1,32 @@ +"use strict";var Yo=Object.create;var Ot=Object.defineProperty;var Xo=Object.getOwnPropertyDescriptor;var Zo=Object.getOwnPropertyNames;var es=Object.getPrototypeOf,ts=Object.prototype.hasOwnProperty;var ne=(t,e)=>()=>(t&&(e=t(t=0)),e);var Le=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),rt=(t,e)=>{for(var r in e)Ot(t,r,{get:e[r],enumerable:!0})},cn=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Zo(e))!ts.call(t,i)&&i!==r&&Ot(t,i,{get:()=>e[i],enumerable:!(n=Xo(e,i))||n.enumerable});return t};var nt=(t,e,r)=>(r=t!=null?Yo(es(t)):{},cn(e||!t||!t.__esModule?Ot(r,"default",{value:t,enumerable:!0}):r,t)),rs=t=>cn(Ot({},"__esModule",{value:!0}),t);function Er(t,e){if(e=e.toLowerCase(),e==="utf8"||e==="utf-8")return new y(ss.encode(t));if(e==="base64"||e==="base64url")return t=t.replace(/-/g,"+").replace(/_/g,"/"),t=t.replace(/[^A-Za-z0-9+/]/g,""),new y([...atob(t)].map(r=>r.charCodeAt(0)));if(e==="binary"||e==="ascii"||e==="latin1"||e==="latin-1")return new y([...t].map(r=>r.charCodeAt(0)));if(e==="ucs2"||e==="ucs-2"||e==="utf16le"||e==="utf-16le"){let r=new y(t.length*2),n=new DataView(r.buffer);for(let i=0;ia.startsWith("get")||a.startsWith("set")),n=r.map(a=>a.replace("get","read").replace("set","write")),i=(a,f)=>function(h=0){return B(h,"offset"),Y(h,"offset"),V(h,"offset",this.length-1),new DataView(this.buffer)[r[a]](h,f)},o=(a,f)=>function(h,T=0){let C=r[a].match(/set(\w+\d+)/)[1].toLowerCase(),k=os[C];return B(T,"offset"),Y(T,"offset"),V(T,"offset",this.length-1),is(h,"value",k[0],k[1]),new DataView(this.buffer)[r[a]](T,h,f),T+parseInt(r[a].match(/\d+/)[0])/8},s=a=>{a.forEach(f=>{f.includes("Uint")&&(t[f.replace("Uint","UInt")]=t[f]),f.includes("Float64")&&(t[f.replace("Float64","Double")]=t[f]),f.includes("Float32")&&(t[f.replace("Float32","Float")]=t[f])})};n.forEach((a,f)=>{a.startsWith("read")&&(t[a]=i(f,!1),t[a+"LE"]=i(f,!0),t[a+"BE"]=i(f,!1)),a.startsWith("write")&&(t[a]=o(f,!1),t[a+"LE"]=o(f,!0),t[a+"BE"]=o(f,!1)),s([a,a+"LE",a+"BE"])})}function pn(t){throw new Error(`Buffer polyfill does not implement "${t}"`)}function Mt(t,e){if(!(t instanceof Uint8Array))throw new TypeError(`The "${e}" argument must be an instance of Buffer or Uint8Array`)}function V(t,e,r=us+1){if(t<0||t>r){let n=new RangeError(`The value of "${e}" is out of range. It must be >= 0 && <= ${r}. Received ${t}`);throw n.code="ERR_OUT_OF_RANGE",n}}function B(t,e){if(typeof t!="number"){let r=new TypeError(`The "${e}" argument must be of type number. Received type ${typeof t}.`);throw r.code="ERR_INVALID_ARG_TYPE",r}}function Y(t,e){if(!Number.isInteger(t)||Number.isNaN(t)){let r=new RangeError(`The value of "${e}" is out of range. It must be an integer. Received ${t}`);throw r.code="ERR_OUT_OF_RANGE",r}}function is(t,e,r,n){if(tn){let i=new RangeError(`The value of "${e}" is out of range. It must be >= ${r} and <= ${n}. Received ${t}`);throw i.code="ERR_OUT_OF_RANGE",i}}function mn(t,e){if(typeof t!="string"){let r=new TypeError(`The "${e}" argument must be of type string. Received type ${typeof t}`);throw r.code="ERR_INVALID_ARG_TYPE",r}}function cs(t,e="utf8"){return y.from(t,e)}var y,os,ss,as,ls,us,b,xr,u=ne(()=>{"use strict";y=class t extends Uint8Array{_isBuffer=!0;get offset(){return this.byteOffset}static alloc(e,r=0,n="utf8"){return mn(n,"encoding"),t.allocUnsafe(e).fill(r,n)}static allocUnsafe(e){return t.from(e)}static allocUnsafeSlow(e){return t.from(e)}static isBuffer(e){return e&&!!e._isBuffer}static byteLength(e,r="utf8"){if(typeof e=="string")return Er(e,r).byteLength;if(e&&e.byteLength)return e.byteLength;let n=new TypeError('The "string" argument must be of type string or an instance of Buffer or ArrayBuffer.');throw n.code="ERR_INVALID_ARG_TYPE",n}static isEncoding(e){return ls.includes(e)}static compare(e,r){Mt(e,"buff1"),Mt(r,"buff2");for(let n=0;nr[n])return 1}return e.length===r.length?0:e.length>r.length?1:-1}static from(e,r="utf8"){if(e&&typeof e=="object"&&e.type==="Buffer")return new t(e.data);if(typeof e=="number")return new t(new Uint8Array(e));if(typeof e=="string")return Er(e,r);if(ArrayBuffer.isView(e)){let{byteOffset:n,byteLength:i,buffer:o}=e;return"map"in e&&typeof e.map=="function"?new t(e.map(s=>s%256),n,i):new t(o,n,i)}if(e&&typeof e=="object"&&("length"in e||"byteLength"in e||"buffer"in e))return new t(e);throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}static concat(e,r){if(e.length===0)return t.alloc(0);let n=[].concat(...e.map(o=>[...o])),i=t.alloc(r!==void 0?r:n.length);return i.set(r!==void 0?n.slice(0,r):n),i}slice(e=0,r=this.length){return this.subarray(e,r)}subarray(e=0,r=this.length){return Object.setPrototypeOf(super.subarray(e,r),t.prototype)}reverse(){return super.reverse(),this}readIntBE(e,r){B(e,"offset"),Y(e,"offset"),V(e,"offset",this.length-1),B(r,"byteLength"),Y(r,"byteLength");let n=new DataView(this.buffer,e,r),i=0;for(let o=0;o=0;o--)i.setUint8(o,e&255),e=e/256;return r+n}writeUintBE(e,r,n){return this.writeUIntBE(e,r,n)}writeUIntLE(e,r,n){B(r,"offset"),Y(r,"offset"),V(r,"offset",this.length-1),B(n,"byteLength"),Y(n,"byteLength");let i=new DataView(this.buffer,r,n);for(let o=0;or===e[n])}copy(e,r=0,n=0,i=this.length){V(r,"targetStart"),V(n,"sourceStart",this.length),V(i,"sourceEnd"),r>>>=0,n>>>=0,i>>>=0;let o=0;for(;n=this.length?this.length-a:e.length),a);return this}includes(e,r=null,n="utf-8"){return this.indexOf(e,r,n)!==-1}lastIndexOf(e,r=null,n="utf-8"){return this.indexOf(e,r,n,!0)}indexOf(e,r=null,n="utf-8",i=!1){let o=i?this.findLastIndex.bind(this):this.findIndex.bind(this);n=typeof r=="string"?r:n;let s=t.from(typeof e=="number"?[e]:e,n),a=typeof r=="string"?0:r;return a=typeof r=="number"?a:null,a=Number.isNaN(a)?null:a,a??=i?this.length:0,a=a<0?this.length+a:a,s.length===0&&i===!1?a>=this.length?this.length:a:s.length===0&&i===!0?(a>=this.length?this.length:a)||this.length:o((f,h)=>(i?h<=a:h>=a)&&this[h]===s[0]&&s.every((C,k)=>this[h+k]===C))}toString(e="utf8",r=0,n=this.length){if(r=r<0?0:r,e=e.toString().toLowerCase(),n<=0)return"";if(e==="utf8"||e==="utf-8")return as.decode(this.slice(r,n));if(e==="base64"||e==="base64url"){let i=btoa(this.reduce((o,s)=>o+xr(s),""));return e==="base64url"?i.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):i}if(e==="binary"||e==="ascii"||e==="latin1"||e==="latin-1")return this.slice(r,n).reduce((i,o)=>i+xr(o&(e==="ascii"?127:255)),"");if(e==="ucs2"||e==="ucs-2"||e==="utf16le"||e==="utf-16le"){let i=new DataView(this.buffer.slice(r,n));return Array.from({length:i.byteLength/2},(o,s)=>s*2+1i+o.toString(16).padStart(2,"0"),"");pn(`encoding "${e}"`)}toLocaleString(){return this.toString()}inspect(){return``}};os={int8:[-128,127],int16:[-32768,32767],int32:[-2147483648,2147483647],uint8:[0,255],uint16:[0,65535],uint32:[0,4294967295],float32:[-1/0,1/0],float64:[-1/0,1/0],bigint64:[-0x8000000000000000n,0x7fffffffffffffffn],biguint64:[0n,0xffffffffffffffffn]},ss=new TextEncoder,as=new TextDecoder,ls=["utf8","utf-8","hex","base64","ascii","binary","base64url","ucs2","ucs-2","utf16le","utf-16le","latin1","latin-1"],us=4294967295;ns(y.prototype);b=new Proxy(cs,{construct(t,[e,r]){return y.from(e,r)},get(t,e){return y[e]}}),xr=String.fromCodePoint});var g,c=ne(()=>{"use strict";g={nextTick:(t,...e)=>{setTimeout(()=>{t(...e)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var x,m=ne(()=>{"use strict";x=globalThis.performance??(()=>{let t=Date.now();return{now:()=>Date.now()-t}})()});var E,p=ne(()=>{"use strict";E=()=>{};E.prototype=E});var w,d=ne(()=>{"use strict";w=class{value;constructor(e){this.value=e}deref(){return this.value}}});function yn(t,e){var r,n,i,o,s,a,f,h,T=t.constructor,C=T.precision;if(!t.s||!e.s)return e.s||(e=new T(t)),q?D(e,C):e;if(f=t.d,h=e.d,s=t.e,i=e.e,f=f.slice(),o=s-i,o){for(o<0?(n=f,o=-o,a=h.length):(n=h,i=s,a=f.length),s=Math.ceil(C/N),a=s>a?s+1:a+1,o>a&&(o=a,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(a=f.length,o=h.length,a-o<0&&(o=a,n=h,h=f,f=n),r=0;o;)r=(f[--o]=f[o]+h[o]+r)/Q|0,f[o]%=Q;for(r&&(f.unshift(r),++i),a=f.length;f[--a]==0;)f.pop();return e.d=f,e.e=i,q?D(e,C):e}function ce(t,e,r){if(t!==~~t||tr)throw Error(Oe+t)}function ue(t){var e,r,n,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e16)throw Error(vr+$(t));if(!t.s)return new T(ee);for(e==null?(q=!1,a=C):a=e,s=new T(.03125);t.abs().gte(.1);)t=t.times(s),h+=5;for(n=Math.log(ke(2,h))/Math.LN10*2+5|0,a+=n,r=i=o=new T(ee),T.precision=a;;){if(i=D(i.times(t),a),r=r.times(++f),s=o.plus(he(i,r,a)),ue(s.d).slice(0,a)===ue(o.d).slice(0,a)){for(;h--;)o=D(o.times(o),a);return T.precision=C,e==null?(q=!0,D(o,C)):o}o=s}}function $(t){for(var e=t.e*N,r=t.d[0];r>=10;r/=10)e++;return e}function Pr(t,e,r){if(e>t.LN10.sd())throw q=!0,r&&(t.precision=r),Error(ie+"LN10 precision limit exceeded");return D(new t(t.LN10),e)}function Pe(t){for(var e="";t--;)e+="0";return e}function it(t,e){var r,n,i,o,s,a,f,h,T,C=1,k=10,A=t,O=A.d,S=A.constructor,M=S.precision;if(A.s<1)throw Error(ie+(A.s?"NaN":"-Infinity"));if(A.eq(ee))return new S(0);if(e==null?(q=!1,h=M):h=e,A.eq(10))return e==null&&(q=!0),Pr(S,h);if(h+=k,S.precision=h,r=ue(O),n=r.charAt(0),o=$(A),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)A=A.times(t),r=ue(A.d),n=r.charAt(0),C++;o=$(A),n>1?(A=new S("0."+r),o++):A=new S(n+"."+r.slice(1))}else return f=Pr(S,h+2,M).times(o+""),A=it(new S(n+"."+r.slice(1)),h-k).plus(f),S.precision=M,e==null?(q=!0,D(A,M)):A;for(a=s=A=he(A.minus(ee),A.plus(ee),h),T=D(A.times(A),h),i=3;;){if(s=D(s.times(T),h),f=a.plus(he(s,new S(i),h)),ue(f.d).slice(0,h)===ue(a.d).slice(0,h))return a=a.times(2),o!==0&&(a=a.plus(Pr(S,h+2,M).times(o+""))),a=he(a,new S(C),h),S.precision=M,e==null?(q=!0,D(a,M)):a;a=f,i+=2}}function dn(t,e){var r,n,i;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),n=0;e.charCodeAt(n)===48;)++n;for(i=e.length;e.charCodeAt(i-1)===48;)--i;if(e=e.slice(n,i),e){if(i-=n,r=r-n-1,t.e=Ne(r/N),t.d=[],n=(r+1)%N,r<0&&(n+=N),nIt||t.e<-It))throw Error(vr+r)}else t.s=0,t.e=0,t.d=[0];return t}function D(t,e,r){var n,i,o,s,a,f,h,T,C=t.d;for(s=1,o=C[0];o>=10;o/=10)s++;if(n=e-s,n<0)n+=N,i=e,h=C[T=0];else{if(T=Math.ceil((n+1)/N),o=C.length,T>=o)return t;for(h=o=C[T],s=1;o>=10;o/=10)s++;n%=N,i=n-N+s}if(r!==void 0&&(o=ke(10,s-i-1),a=h/o%10|0,f=e<0||C[T+1]!==void 0||h%o,f=r<4?(a||f)&&(r==0||r==(t.s<0?3:2)):a>5||a==5&&(r==4||f||r==6&&(n>0?i>0?h/ke(10,s-i):0:C[T-1])%10&1||r==(t.s<0?8:7))),e<1||!C[0])return f?(o=$(t),C.length=1,e=e-o-1,C[0]=ke(10,(N-e%N)%N),t.e=Ne(-e/N)||0):(C.length=1,C[0]=t.e=t.s=0),t;if(n==0?(C.length=T,o=1,T--):(C.length=T+1,o=ke(10,N-n),C[T]=i>0?(h/ke(10,s-i)%ke(10,i)|0)*o:0),f)for(;;)if(T==0){(C[0]+=o)==Q&&(C[0]=1,++t.e);break}else{if(C[T]+=o,C[T]!=Q)break;C[T--]=0,o=1}for(n=C.length;C[--n]===0;)C.pop();if(q&&(t.e>It||t.e<-It))throw Error(vr+$(t));return t}function bn(t,e){var r,n,i,o,s,a,f,h,T,C,k=t.constructor,A=k.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new k(t),q?D(e,A):e;if(f=t.d,C=e.d,n=e.e,h=t.e,f=f.slice(),s=h-n,s){for(T=s<0,T?(r=f,s=-s,a=C.length):(r=C,n=h,a=f.length),i=Math.max(Math.ceil(A/N),a)+2,s>i&&(s=i,r.length=1),r.reverse(),i=s;i--;)r.push(0);r.reverse()}else{for(i=f.length,a=C.length,T=i0;--i)f[a++]=0;for(i=C.length;i>s;){if(f[--i]0?o=o.charAt(0)+"."+o.slice(1)+Pe(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+Pe(-i-1)+o,r&&(n=r-s)>0&&(o+=Pe(n))):i>=s?(o+=Pe(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Pe(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Pe(n))),t.s<0?"-"+o:o}function fn(t,e){if(t.length>e)return t.length=e,!0}function wn(t){var e,r,n;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(Oe+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return dn(s,o.toString())}else if(typeof o!="string")throw Error(Oe+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,ps.test(o))dn(s,o);else throw Error(Oe+o)}if(i.prototype=R,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=wn,i.config=i.set=ds,t===void 0&&(t={}),t)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=i[e+1]&&n<=i[e+2])this[r]=n;else throw Error(Oe+r+": "+n);if((n=t[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Oe+r+": "+n);return this}var Fe,ms,Tr,q,ie,Oe,vr,Ne,ke,ps,ee,Q,N,gn,It,R,he,Tr,_t,En=ne(()=>{"use strict";u();c();m();p();d();l();Fe=1e9,ms={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},q=!0,ie="[DecimalError] ",Oe=ie+"Invalid argument: ",vr=ie+"Exponent out of range: ",Ne=Math.floor,ke=Math.pow,ps=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,N=7,gn=9007199254740991,It=Ne(gn/N),R={};R.absoluteValue=R.abs=function(){var t=new this.constructor(this);return t.s&&(t.s=1),t};R.comparedTo=R.cmp=function(t){var e,r,n,i,o=this;if(t=new o.constructor(t),o.s!==t.s)return o.s||-t.s;if(o.e!==t.e)return o.e>t.e^o.s<0?1:-1;for(n=o.d.length,i=t.d.length,e=0,r=nt.d[e]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1};R.decimalPlaces=R.dp=function(){var t=this,e=t.d.length-1,r=(e-t.e)*N;if(e=t.d[e],e)for(;e%10==0;e/=10)r--;return r<0?0:r};R.dividedBy=R.div=function(t){return he(this,new this.constructor(t))};R.dividedToIntegerBy=R.idiv=function(t){var e=this,r=e.constructor;return D(he(e,new r(t),0,1),r.precision)};R.equals=R.eq=function(t){return!this.cmp(t)};R.exponent=function(){return $(this)};R.greaterThan=R.gt=function(t){return this.cmp(t)>0};R.greaterThanOrEqualTo=R.gte=function(t){return this.cmp(t)>=0};R.isInteger=R.isint=function(){return this.e>this.d.length-2};R.isNegative=R.isneg=function(){return this.s<0};R.isPositive=R.ispos=function(){return this.s>0};R.isZero=function(){return this.s===0};R.lessThan=R.lt=function(t){return this.cmp(t)<0};R.lessThanOrEqualTo=R.lte=function(t){return this.cmp(t)<1};R.logarithm=R.log=function(t){var e,r=this,n=r.constructor,i=n.precision,o=i+5;if(t===void 0)t=new n(10);else if(t=new n(t),t.s<1||t.eq(ee))throw Error(ie+"NaN");if(r.s<1)throw Error(ie+(r.s?"NaN":"-Infinity"));return r.eq(ee)?new n(0):(q=!1,e=he(it(r,o),it(t,o),o),q=!0,D(e,i))};R.minus=R.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?bn(e,t):yn(e,(t.s=-t.s,t))};R.modulo=R.mod=function(t){var e,r=this,n=r.constructor,i=n.precision;if(t=new n(t),!t.s)throw Error(ie+"NaN");return r.s?(q=!1,e=he(r,t,0,1).times(t),q=!0,r.minus(e)):D(new n(r),i)};R.naturalExponential=R.exp=function(){return hn(this)};R.naturalLogarithm=R.ln=function(){return it(this)};R.negated=R.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};R.plus=R.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?yn(e,t):bn(e,(t.s=-t.s,t))};R.precision=R.sd=function(t){var e,r,n,i=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Oe+t);if(e=$(i)+1,n=i.d.length-1,r=n*N+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return t&&e>r?e:r};R.squareRoot=R.sqrt=function(){var t,e,r,n,i,o,s,a=this,f=a.constructor;if(a.s<1){if(!a.s)return new f(0);throw Error(ie+"NaN")}for(t=$(a),q=!1,i=Math.sqrt(+a),i==0||i==1/0?(e=ue(a.d),(e.length+t)%2==0&&(e+="0"),i=Math.sqrt(e),t=Ne((t+1)/2)-(t<0||t%2),i==1/0?e="5e"+t:(e=i.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),n=new f(e)):n=new f(i.toString()),r=f.precision,i=s=r+3;;)if(o=n,n=o.plus(he(a,o,s+2)).times(.5),ue(o.d).slice(0,s)===(e=ue(n.d)).slice(0,s)){if(e=e.slice(s-3,s+1),i==s&&e=="4999"){if(D(o,r+1,0),o.times(o).eq(a)){n=o;break}}else if(e!="9999")break;s+=4}return q=!0,D(n,r)};R.times=R.mul=function(t){var e,r,n,i,o,s,a,f,h,T=this,C=T.constructor,k=T.d,A=(t=new C(t)).d;if(!T.s||!t.s)return new C(0);for(t.s*=T.s,r=T.e+t.e,f=k.length,h=A.length,f=0;){for(e=0,i=f+n;i>n;)a=o[i]+A[n]*k[i-n-1]+e,o[i--]=a%Q|0,e=a/Q|0;o[i]=(o[i]+e)%Q|0}for(;!o[--s];)o.pop();return e?++r:o.shift(),t.d=o,t.e=r,q?D(t,C.precision):t};R.toDecimalPlaces=R.todp=function(t,e){var r=this,n=r.constructor;return r=new n(r),t===void 0?r:(ce(t,0,Fe),e===void 0?e=n.rounding:ce(e,0,8),D(r,t+$(r)+1,e))};R.toExponential=function(t,e){var r,n=this,i=n.constructor;return t===void 0?r=Me(n,!0):(ce(t,0,Fe),e===void 0?e=i.rounding:ce(e,0,8),n=D(new i(n),t+1,e),r=Me(n,!0,t+1)),r};R.toFixed=function(t,e){var r,n,i=this,o=i.constructor;return t===void 0?Me(i):(ce(t,0,Fe),e===void 0?e=o.rounding:ce(e,0,8),n=D(new o(i),t+$(i)+1,e),r=Me(n.abs(),!1,t+$(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};R.toInteger=R.toint=function(){var t=this,e=t.constructor;return D(new e(t),$(t)+1,e.rounding)};R.toNumber=function(){return+this};R.toPower=R.pow=function(t){var e,r,n,i,o,s,a=this,f=a.constructor,h=12,T=+(t=new f(t));if(!t.s)return new f(ee);if(a=new f(a),!a.s){if(t.s<1)throw Error(ie+"Infinity");return a}if(a.eq(ee))return a;if(n=f.precision,t.eq(ee))return D(a,n);if(e=t.e,r=t.d.length-1,s=e>=r,o=a.s,s){if((r=T<0?-T:T)<=gn){for(i=new f(ee),e=Math.ceil(n/N+4),q=!1;r%2&&(i=i.times(a),fn(i.d,e)),r=Ne(r/2),r!==0;)a=a.times(a),fn(a.d,e);return q=!0,t.s<0?new f(ee).div(i):D(i,n)}}else if(o<0)throw Error(ie+"NaN");return o=o<0&&t.d[Math.max(e,r)]&1?-1:1,a.s=1,q=!1,i=t.times(it(a,n+h)),q=!0,i=hn(i),i.s=o,i};R.toPrecision=function(t,e){var r,n,i=this,o=i.constructor;return t===void 0?(r=$(i),n=Me(i,r<=o.toExpNeg||r>=o.toExpPos)):(ce(t,1,Fe),e===void 0?e=o.rounding:ce(e,0,8),i=D(new o(i),t,e),r=$(i),n=Me(i,t<=r||r<=o.toExpNeg,t)),n};R.toSignificantDigits=R.tosd=function(t,e){var r=this,n=r.constructor;return t===void 0?(t=n.precision,e=n.rounding):(ce(t,1,Fe),e===void 0?e=n.rounding:ce(e,0,8)),D(new n(r),t,e)};R.toString=R.valueOf=R.val=R.toJSON=R[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=$(t),r=t.constructor;return Me(t,e<=r.toExpNeg||e>=r.toExpPos)};he=function(){function t(n,i){var o,s=0,a=n.length;for(n=n.slice();a--;)o=n[a]*i+s,n[a]=o%Q|0,s=o/Q|0;return s&&n.unshift(s),n}function e(n,i,o,s){var a,f;if(o!=s)f=o>s?1:-1;else for(a=f=0;ai[a]?1:-1;break}return f}function r(n,i,o){for(var s=0;o--;)n[o]-=s,s=n[o]1;)n.shift()}return function(n,i,o,s){var a,f,h,T,C,k,A,O,S,M,oe,H,L,z,Se,wr,se,St,kt=n.constructor,zo=n.s==i.s?1:-1,le=n.d,U=i.d;if(!n.s)return new kt(n);if(!i.s)throw Error(ie+"Division by zero");for(f=n.e-i.e,se=U.length,Se=le.length,A=new kt(zo),O=A.d=[],h=0;U[h]==(le[h]||0);)++h;if(U[h]>(le[h]||0)&&--f,o==null?H=o=kt.precision:s?H=o+($(n)-$(i))+1:H=o,H<0)return new kt(0);if(H=H/N+2|0,h=0,se==1)for(T=0,U=U[0],H++;(h1&&(U=t(U,T),le=t(le,T),se=U.length,Se=le.length),z=se,S=le.slice(0,se),M=S.length;M=Q/2&&++wr;do T=0,a=e(U,S,se,M),a<0?(oe=S[0],se!=M&&(oe=oe*Q+(S[1]||0)),T=oe/wr|0,T>1?(T>=Q&&(T=Q-1),C=t(U,T),k=C.length,M=S.length,a=e(C,S,k,M),a==1&&(T--,r(C,se{"use strict";En();v=class extends _t{static isDecimal(e){return e instanceof _t}static random(e=20){{let n=globalThis.crypto.getRandomValues(new Uint8Array(e)).reduce((i,o)=>i+o,"");return new _t(`0.${n.slice(0,e)}`)}}},me=v});function ws(){return!1}function Nn(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function Es(){return Nn()}function xs(){return[]}function Ps(t){t(null,[])}function vs(){return""}function Ts(){return""}function Cs(){}function Rs(){}function As(){}function Ss(){}function ks(){}function Os(){}var Ms,Is,qn,Un=ne(()=>{"use strict";u();c();m();p();d();l();Ms={},Is={existsSync:ws,lstatSync:Nn,statSync:Es,readdirSync:xs,readdir:Ps,readlinkSync:vs,realpathSync:Ts,chmodSync:Cs,renameSync:Rs,mkdirSync:As,rmdirSync:Ss,rmSync:ks,unlinkSync:Os,promises:Ms},qn=Is});function _s(...t){return t.join("/")}function Ds(...t){return t.join("/")}function Ls(t){let e=Bn(t),r=$n(t),[n,i]=e.split(".");return{root:"/",dir:r,base:e,ext:i,name:n}}function Bn(t){let e=t.split("/");return e[e.length-1]}function $n(t){return t.split("/").slice(0,-1).join("/")}var Vn,Fs,Ns,Nt,jn=ne(()=>{"use strict";u();c();m();p();d();l();Vn="/",Fs={sep:Vn},Ns={basename:Bn,dirname:$n,join:Ds,parse:Ls,posix:Fs,resolve:_s,sep:Vn},Nt=Ns});var Qn=Le((Zc,qs)=>{qs.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Hn=Le((xm,Kn)=>{"use strict";u();c();m();p();d();l();Kn.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(n,r.indent.repeat(e))}});var Xn=Le((Lm,Yn)=>{"use strict";u();c();m();p();d();l();Yn.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var ei=Le((Vm,Zn)=>{"use strict";u();c();m();p();d();l();var Js=Xn();Zn.exports=t=>typeof t=="string"?t.replace(Js(),""):t});var Fr=Le((oy,oi)=>{"use strict";u();c();m();p();d();l();oi.exports=function(){function t(e,r,n,i,o){return en?n+1:e+1:i===o?r:r+1}return function(e,r){if(e===r)return 0;if(e.length>r.length){var n=e;e=r,r=n}for(var i=e.length,o=r.length;i>0&&e.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";u();c();m();p();d();l()});var mi=ne(()=>{"use strict";u();c();m();p();d();l()});var Li=Le((iP,qa)=>{qa.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var nr,Fi=ne(()=>{"use strict";u();c();m();p();d();l();nr=class{events={};on(e,r){return this.events[e]||(this.events[e]=[]),this.events[e].push(r),this}emit(e,...r){return this.events[e]?(this.events[e].forEach(n=>{n(...r)}),!0):!1}}});var Jl={};rt(Jl,{DMMF:()=>mt,Debug:()=>J,Decimal:()=>me,Extensions:()=>Cr,MetricsClient:()=>Ye,PrismaClientInitializationError:()=>I,PrismaClientKnownRequestError:()=>X,PrismaClientRustPanicError:()=>we,PrismaClientUnknownRequestError:()=>j,PrismaClientValidationError:()=>W,Public:()=>Rr,Sql:()=>Z,createParam:()=>Ai,defineDmmfProperty:()=>_i,deserializeJsonResponse:()=>$e,deserializeRawResult:()=>hr,dmmfToRuntimeDataModel:()=>ii,empty:()=>qi,getPrismaClient:()=>Wo,getRuntime:()=>Re,join:()=>Ni,makeStrictEnum:()=>Ko,makeTypedQueryFactory:()=>Di,objectEnumValues:()=>Wt,raw:()=>Jr,serializeJsonQuery:()=>er,skip:()=>Zt,sqltag:()=>Gr,warnEnvConflicts:()=>void 0,warnOnce:()=>lt});module.exports=rs(Jl);u();c();m();p();d();l();var Cr={};rt(Cr,{defineExtension:()=>xn,getExtensionContext:()=>Pn});u();c();m();p();d();l();u();c();m();p();d();l();function xn(t){return typeof t=="function"?t:e=>e.$extends(t)}u();c();m();p();d();l();function Pn(t){return t}var Rr={};rt(Rr,{validator:()=>vn});u();c();m();p();d();l();u();c();m();p();d();l();function vn(...t){return e=>e}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var Ar,Tn,Cn,Rn,An=!0;typeof g<"u"&&({FORCE_COLOR:Ar,NODE_DISABLE_COLORS:Tn,NO_COLOR:Cn,TERM:Rn}=g.env||{},An=g.stdout&&g.stdout.isTTY);var fs={enabled:!Tn&&Cn==null&&Rn!=="dumb"&&(Ar!=null&&Ar!=="0"||An)};function F(t,e){let r=new RegExp(`\\x1b\\[${e}m`,"g"),n=`\x1B[${t}m`,i=`\x1B[${e}m`;return function(o){return!fs.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var ju=F(0,0),Dt=F(1,22),Lt=F(2,22),Qu=F(3,23),Sn=F(4,24),Ju=F(7,27),Gu=F(8,28),Wu=F(9,29),Ku=F(30,39),qe=F(31,39),kn=F(32,39),On=F(33,39),Mn=F(34,39),Hu=F(35,39),In=F(36,39),zu=F(37,39),_n=F(90,39),Yu=F(90,39),Xu=F(40,49),Zu=F(41,49),ec=F(42,49),tc=F(43,49),rc=F(44,49),nc=F(45,49),ic=F(46,49),oc=F(47,49);u();c();m();p();d();l();var gs=100,Dn=["green","yellow","blue","magenta","cyan","red"],Ft=[],Ln=Date.now(),ys=0,Sr=typeof g<"u"?g.env:{};globalThis.DEBUG??=Sr.DEBUG??"";globalThis.DEBUG_COLORS??=Sr.DEBUG_COLORS?Sr.DEBUG_COLORS==="true":!0;var ot={enable(t){typeof t=="string"&&(globalThis.DEBUG=t)},disable(){let t=globalThis.DEBUG;return globalThis.DEBUG="",t},enabled(t){let e=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=e.some(i=>i===""||i[0]==="-"?!1:t.match(RegExp(i.split("*").join(".*")+"$"))),n=e.some(i=>i===""||i[0]!=="-"?!1:t.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...t)=>{let[e,r,...n]=t;(console.warn??console.log)(`${e} ${r}`,...n)},formatters:{}};function hs(t){let e={color:Dn[ys++%Dn.length],enabled:ot.enabled(t),namespace:t,log:ot.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=e;if(n.length!==0&&Ft.push([o,...n]),Ft.length>gs&&Ft.shift(),ot.enabled(o)||i){let f=n.map(T=>typeof T=="string"?T:bs(T)),h=`+${Date.now()-Ln}ms`;Ln=Date.now(),a(o,...f,h)}};return new Proxy(r,{get:(n,i)=>e[i],set:(n,i,o)=>e[i]=o})}var J=new Proxy(hs,{get:(t,e)=>ot[e],set:(t,e,r)=>ot[e]=r});function bs(t,e=2){let r=new Set;return JSON.stringify(t,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},e)}function Fn(){Ft.length=0}u();c();m();p();d();l();u();c();m();p();d();l();var kr=["darwin","darwin-arm64","debian-openssl-1.0.x","debian-openssl-1.1.x","debian-openssl-3.0.x","rhel-openssl-1.0.x","rhel-openssl-1.1.x","rhel-openssl-3.0.x","linux-arm64-openssl-1.1.x","linux-arm64-openssl-1.0.x","linux-arm64-openssl-3.0.x","linux-arm-openssl-1.1.x","linux-arm-openssl-1.0.x","linux-arm-openssl-3.0.x","linux-musl","linux-musl-openssl-3.0.x","linux-musl-arm64-openssl-1.1.x","linux-musl-arm64-openssl-3.0.x","linux-nixos","linux-static-x64","linux-static-arm64","windows","freebsd11","freebsd12","freebsd13","freebsd14","freebsd15","openbsd","netbsd","arm"];u();c();m();p();d();l();var Us=Qn(),Or=Us.version;u();c();m();p();d();l();var Jn="library";function Ue(t){let e=Bs();return e||(t?.config.engineType==="library"?"library":t?.config.engineType==="binary"?"binary":t?.config.engineType==="client"?"client":Jn)}function Bs(){let t=g.env.PRISMA_CLIENT_ENGINE_TYPE;return t==="library"?"library":t==="binary"?"binary":t==="client"?"client":void 0}u();c();m();p();d();l();var Gn="prisma+postgres",Wn=`${Gn}:`;function Mr(t){return t?.startsWith(`${Wn}//`)??!1}var at={};rt(at,{error:()=>js,info:()=>Vs,log:()=>$s,query:()=>Qs,should:()=>zn,tags:()=>st,warn:()=>Ir});u();c();m();p();d();l();var st={error:qe("prisma:error"),warn:On("prisma:warn"),info:In("prisma:info"),query:Mn("prisma:query")},zn={warn:()=>!g.env.PRISMA_DISABLE_WARNINGS};function $s(...t){console.log(...t)}function Ir(t,...e){zn.warn()&&console.warn(`${st.warn} ${t}`,...e)}function Vs(t,...e){console.info(`${st.info} ${t}`,...e)}function js(t,...e){console.error(`${st.error} ${t}`,...e)}function Qs(t,...e){console.log(`${st.query} ${t}`,...e)}u();c();m();p();d();l();function qt(t,e){if(!t)throw new Error(`${e}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}u();c();m();p();d();l();function be(t,e){throw new Error(e)}u();c();m();p();d();l();function _r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}u();c();m();p();d();l();function Be(t,e){let r={};for(let n of Object.keys(t))r[n]=e(t[n],n);return r}u();c();m();p();d();l();function Dr(t,e){if(t.length===0)return;let r=t[0];for(let n=1;n{ti.has(t)||(ti.add(t),Ir(e,...r))};var I=class t extends Error{clientVersion;errorCode;retryable;constructor(e,r,n){super(e),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(t)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};te(I,"PrismaClientInitializationError");u();c();m();p();d();l();var X=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(e,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(e),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};te(X,"PrismaClientKnownRequestError");u();c();m();p();d();l();var we=class extends Error{clientVersion;constructor(e,r){super(e),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};te(we,"PrismaClientRustPanicError");u();c();m();p();d();l();var j=class extends Error{clientVersion;batchRequestIdx;constructor(e,{clientVersion:r,batchRequestIdx:n}){super(e),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};te(j,"PrismaClientUnknownRequestError");u();c();m();p();d();l();var W=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(e,{clientVersion:r}){super(e),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};te(W,"PrismaClientValidationError");u();c();m();p();d();l();l();function $e(t){return t===null?t:Array.isArray(t)?t.map($e):typeof t=="object"?Gs(t)?Ws(t):Be(t,$e):t}function Gs(t){return t!==null&&typeof t=="object"&&typeof t.$type=="string"}function Ws({$type:t,value:e}){switch(t){case"BigInt":return BigInt(e);case"Bytes":{let{buffer:r,byteOffset:n,byteLength:i}=b.from(e,"base64");return new Uint8Array(r,n,i)}case"DateTime":return new Date(e);case"Decimal":return new me(e);case"Json":return JSON.parse(e);default:be(e,"Unknown tagged value")}}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var pe=class{_map=new Map;get(e){return this._map.get(e)?.value}set(e,r){this._map.set(e,{value:r})}getOrCreate(e,r){let n=this._map.get(e);if(n)return n.value;let i=r();return this.set(e,i),i}};u();c();m();p();d();l();function ve(t){return t.substring(0,1).toLowerCase()+t.substring(1)}u();c();m();p();d();l();function ni(t,e){let r={};for(let n of t){let i=n[e];r[i]=n}return r}u();c();m();p();d();l();function ut(t){let e;return{get(){return e||(e={value:t()}),e.value}}}u();c();m();p();d();l();function ii(t){return{models:Lr(t.models),enums:Lr(t.enums),types:Lr(t.types)}}function Lr(t){let e={};for(let{name:r,...n}of t)e[r]=n;return e}u();c();m();p();d();l();function Ve(t){return t instanceof Date||Object.prototype.toString.call(t)==="[object Date]"}function Ut(t){return t.toString()!=="Invalid Date"}u();c();m();p();d();l();l();function je(t){return v.isDecimal(t)?!0:t!==null&&typeof t=="object"&&typeof t.s=="number"&&typeof t.e=="number"&&typeof t.toFixed=="function"&&Array.isArray(t.d)}u();c();m();p();d();l();u();c();m();p();d();l();var mt={};rt(mt,{ModelAction:()=>ct,datamodelEnumToSchemaEnum:()=>Ks});u();c();m();p();d();l();u();c();m();p();d();l();function Ks(t){return{name:t.name,values:t.values.map(e=>e.name)}}u();c();m();p();d();l();var ct=(L=>(L.findUnique="findUnique",L.findUniqueOrThrow="findUniqueOrThrow",L.findFirst="findFirst",L.findFirstOrThrow="findFirstOrThrow",L.findMany="findMany",L.create="create",L.createMany="createMany",L.createManyAndReturn="createManyAndReturn",L.update="update",L.updateMany="updateMany",L.updateManyAndReturn="updateManyAndReturn",L.upsert="upsert",L.delete="delete",L.deleteMany="deleteMany",L.groupBy="groupBy",L.count="count",L.aggregate="aggregate",L.findRaw="findRaw",L.aggregateRaw="aggregateRaw",L))(ct||{});var Hs=nt(Hn());var zs={red:qe,gray:_n,dim:Lt,bold:Dt,underline:Sn,highlightSource:t=>t.highlight()},Ys={red:t=>t,gray:t=>t,dim:t=>t,bold:t=>t,underline:t=>t,highlightSource:t=>t};function Xs({message:t,originalMethod:e,isPanic:r,callArguments:n}){return{functionName:`prisma.${e}()`,message:t,isPanic:r??!1,callArguments:n}}function Zs({functionName:t,location:e,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],f=e?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${t}\``)} invocation${f}`))):a.push(s.red(`Invalid ${s.bold(`\`${t}\``)} invocation${f}`)),e&&a.push(s.underline(ea(e))),i){a.push("");let h=[i.toString()];o&&(h.push(o),h.push(s.dim(")"))),a.push(h.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function ea(t){let e=[t.fileName];return t.lineNumber&&e.push(String(t.lineNumber)),t.columnNumber&&e.push(String(t.columnNumber)),e.join(":")}function Bt(t){let e=t.showColors?zs:Ys,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(t,e):r=Xs(t),Zs(r,e)}u();c();m();p();d();l();var di=nt(Fr());u();c();m();p();d();l();function li(t,e,r){let n=ui(t),i=ta(n),o=na(i);o?$t(o,e,r):e.addErrorMessage(()=>"Unknown error")}function ui(t){return t.errors.flatMap(e=>e.kind==="Union"?ui(e):[e])}function ta(t){let e=new Map,r=[];for(let n of t){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=e.get(i);o?e.set(i,{...n,argument:{...n.argument,typeNames:ra(o.argument.typeNames,n.argument.typeNames)}}):e.set(i,n)}return r.push(...e.values()),r}function ra(t,e){return[...new Set(t.concat(e))]}function na(t){return Dr(t,(e,r)=>{let n=si(e),i=si(r);return n!==i?n-i:ai(e)-ai(r)})}function si(t){let e=0;return Array.isArray(t.selectionPath)&&(e+=t.selectionPath.length),Array.isArray(t.argumentPath)&&(e+=t.argumentPath.length),e}function ai(t){switch(t.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}u();c();m();p();d();l();var re=class{constructor(e,r){this.name=e;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(e){let{colors:{green:r}}=e.context;e.addMarginSymbol(r(this.isRequired?"+":"?")),e.write(r(this.name)),this.isRequired||e.write(r("?")),e.write(r(": ")),typeof this.value=="string"?e.write(r(this.value)):e.write(this.value)}};u();c();m();p();d();l();u();c();m();p();d();l();mi();u();c();m();p();d();l();var Qe=class{constructor(e=0,r){this.context=r;this.currentIndent=e}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(e){return typeof e=="string"?this.currentLine+=e:e.write(this),this}writeJoined(e,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(e){return this.marginSymbol=e,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let e=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+e.slice(1):e}};ci();u();c();m();p();d();l();u();c();m();p();d();l();var Vt=class{constructor(e){this.value=e}write(e){e.write(this.value)}markAsError(){this.value.markAsError()}};u();c();m();p();d();l();var jt=t=>t,Qt={bold:jt,red:jt,green:jt,dim:jt,enabled:!1},pi={bold:Dt,red:qe,green:kn,dim:Lt,enabled:!0},Je={write(t){t.writeLine(",")}};u();c();m();p();d();l();var de=class{constructor(e){this.contents=e}isUnderlined=!1;color=e=>e;underline(){return this.isUnderlined=!0,this}setColor(e){return this.color=e,this}write(e){let r=e.getCurrentLineLength();e.write(this.color(this.contents)),this.isUnderlined&&e.afterNextNewline(()=>{e.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};u();c();m();p();d();l();var Te=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var Ge=class extends Te{items=[];addItem(e){return this.items.push(new Vt(e)),this}getField(e){return this.items[e]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(e){if(this.items.length===0){this.writeEmpty(e);return}this.writeWithItems(e)}writeEmpty(e){let r=new de("[]");this.hasError&&r.setColor(e.context.colors.red).underline(),e.write(r)}writeWithItems(e){let{colors:r}=e.context;e.writeLine("[").withIndent(()=>e.writeJoined(Je,this.items).newLine()).write("]"),this.hasError&&e.afterNextNewline(()=>{e.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var We=class t extends Te{fields={};suggestions=[];addField(e){this.fields[e.name]=e}addSuggestion(e){this.suggestions.push(e)}getField(e){return this.fields[e]}getDeepField(e){let[r,...n]=e,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof t?a=o.value.getField(s):o.value instanceof Ge&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(e){return e.length===0?this:this.getDeepField(e)?.value}hasField(e){return!!this.getField(e)}removeAllFields(){this.fields={}}removeField(e){delete this.fields[e]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(e){return this.getField(e)?.value}getDeepSubSelectionValue(e){let r=this;for(let n of e){if(!(r instanceof t))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(e){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of e){let o=n.value.getFieldValue(i);if(!o||!(o instanceof t))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let e=this.getField("select")?.value.asObject();if(e)return{kind:"select",value:e};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(e){return this.getSelectionParent()?.value.fields[e].value}getPrintWidth(){let e=Object.values(this.fields);return e.length==0?2:Math.max(...e.map(n=>n.getPrintWidth()))+2}write(e){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(e);return}this.writeWithContents(e,r)}asObject(){return this}writeEmpty(e){let r=new de("{}");this.hasError&&r.setColor(e.context.colors.red).underline(),e.write(r)}writeWithContents(e,r){e.writeLine("{").withIndent(()=>{e.writeJoined(Je,[...r,...this.suggestions]).newLine()}),e.write("}"),this.hasError&&e.afterNextNewline(()=>{e.writeLine(e.context.colors.red("~".repeat(this.getPrintWidth())))})}};u();c();m();p();d();l();var G=class extends Te{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new de(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};u();c();m();p();d();l();var pt=class{fields=[];addField(e,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${e}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(e){let{colors:{green:r}}=e.context;e.writeLine(r("{")).withIndent(()=>{e.writeJoined(Je,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function $t(t,e,r){switch(t.kind){case"MutuallyExclusiveFields":ia(t,e);break;case"IncludeOnScalar":oa(t,e);break;case"EmptySelection":sa(t,e,r);break;case"UnknownSelectionField":ca(t,e);break;case"InvalidSelectionValue":ma(t,e);break;case"UnknownArgument":pa(t,e);break;case"UnknownInputField":da(t,e);break;case"RequiredArgumentMissing":fa(t,e);break;case"InvalidArgumentType":ga(t,e);break;case"InvalidArgumentValue":ya(t,e);break;case"ValueTooLarge":ha(t,e);break;case"SomeFieldsMissing":ba(t,e);break;case"TooManyFieldsGiven":wa(t,e);break;case"Union":li(t,e,r);break;default:throw new Error("not implemented: "+t.kind)}}function ia(t,e){let r=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();r&&(r.getField(t.firstField)?.markAsError(),r.getField(t.secondField)?.markAsError()),e.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${t.firstField}\``)} or ${n.green(`\`${t.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function oa(t,e){let[r,n]=dt(t.selectionPath),i=t.outputType,o=e.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new re(s.name,"true"));e.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${ft(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function sa(t,e,r){let n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){aa(t,e,i);return}if(n.hasField("select")){la(t,e);return}}if(r?.[ve(t.outputType.name)]){ua(t,e);return}e.addErrorMessage(()=>`Unknown field at "${t.selectionPath.join(".")} selection"`)}function aa(t,e,r){r.removeAllFields();for(let n of t.outputType.fields)r.addSuggestion(new re(n.name,"false"));e.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(t.outputType.name)}. At least one field must be included in the result`)}function la(t,e){let r=t.outputType,n=e.arguments.getDeepSelectionParent(t.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),yi(n,r)),e.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${ft(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function ua(t,e){let r=new pt;for(let i of t.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new re("omit",r).makeRequired();if(t.selectionPath.length===0)e.arguments.addSuggestion(n);else{let[i,o]=dt(t.selectionPath),a=e.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let f=a?.value.asObject()??new We;f.addSuggestion(n),a.value=f}}e.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(t.outputType.name)}. At least one field must be included in the result`)}function ca(t,e){let r=hi(t.selectionPath,e);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":yi(n,t.outputType);break;case"include":Ea(n,t.outputType);break;case"omit":xa(n,t.outputType);break}}e.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${t.outputType.name}\``)}.`),i.push(ft(n)),i.join(" ")})}function ma(t,e){let r=hi(t.selectionPath,e);r.parentKind!=="unknown"&&r.field.value.markAsError(),e.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${t.underlyingError}`)}function pa(t,e){let r=t.argumentPath[0],n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Pa(n,t.arguments)),e.addErrorMessage(i=>fi(i,r,t.arguments.map(o=>o.name)))}function da(t,e){let[r,n]=dt(t.argumentPath),i=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(i){i.getDeepField(t.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&bi(o,t.inputType)}e.addErrorMessage(o=>fi(o,n,t.inputType.fields.map(s=>s.name)))}function fi(t,e,r){let n=[`Unknown argument \`${t.red(e)}\`.`],i=Ta(e,r);return i&&n.push(`Did you mean \`${t.green(i)}\`?`),r.length>0&&n.push(ft(t)),n.join(" ")}function fa(t,e){let r;e.addErrorMessage(f=>r?.value instanceof G&&r.value.text==="null"?`Argument \`${f.green(o)}\` must not be ${f.red("null")}.`:`Argument \`${f.green(o)}\` is missing.`);let n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(!n)return;let[i,o]=dt(t.argumentPath),s=new pt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),t.inputTypes.length===1&&t.inputTypes[0].kind==="object"){for(let f of t.inputTypes[0].fields)s.addField(f.name,f.typeNames.join(" | "));a.addSuggestion(new re(o,s).makeRequired())}else{let f=t.inputTypes.map(gi).join(" | ");a.addSuggestion(new re(o,f).makeRequired())}}function gi(t){return t.kind==="list"?`${gi(t.elementType)}[]`:t.name}function ga(t,e){let r=t.argument.name,n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();n&&n.getDeepFieldValue(t.argumentPath)?.markAsError(),e.addErrorMessage(i=>{let o=Jt("or",t.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(t.inferredType)}.`})}function ya(t,e){let r=t.argument.name,n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();n&&n.getDeepFieldValue(t.argumentPath)?.markAsError(),e.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(t.underlyingError&&o.push(`: ${t.underlyingError}`),o.push("."),t.argument.typeNames.length>0){let s=Jt("or",t.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function ha(t,e){let r=t.argument.name,n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(t.argumentPath)?.value;s?.markAsError(),s instanceof G&&(i=s.text)}e.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function ba(t,e){let r=t.argumentPath[t.argumentPath.length-1],n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(t.argumentPath)?.asObject();i&&bi(i,t.inputType)}e.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(t.inputType.name)} needs`];return t.constraints.minFieldCount===1?t.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Jt("or",t.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${t.constraints.minFieldCount}`)} arguments.`),o.push(ft(i)),o.join(" ")})}function wa(t,e){let r=t.argumentPath[t.argumentPath.length-1],n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(t.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}e.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(t.inputType.name)} needs`];return t.constraints.minFieldCount===1&&t.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):t.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${t.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Jt("and",i.map(a=>o.red(a)))}. Please choose`),t.constraints.maxFieldCount===1?s.push("one."):s.push(`${t.constraints.maxFieldCount}.`),s.join(" ")})}function yi(t,e){for(let r of e.fields)t.hasField(r.name)||t.addSuggestion(new re(r.name,"true"))}function Ea(t,e){for(let r of e.fields)r.isRelation&&!t.hasField(r.name)&&t.addSuggestion(new re(r.name,"true"))}function xa(t,e){for(let r of e.fields)!t.hasField(r.name)&&!r.isRelation&&t.addSuggestion(new re(r.name,"true"))}function Pa(t,e){for(let r of e)t.hasField(r.name)||t.addSuggestion(new re(r.name,r.typeNames.join(" | ")))}function hi(t,e){let[r,n]=dt(t),i=e.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),f=o?.getField(n);return o&&f?{parentKind:"select",parent:o,field:f,fieldName:n}:(f=s?.getField(n),s&&f?{parentKind:"include",field:f,parent:s,fieldName:n}:(f=a?.getField(n),a&&f?{parentKind:"omit",field:f,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function bi(t,e){if(e.kind==="object")for(let r of e.fields)t.hasField(r.name)||t.addSuggestion(new re(r.name,r.typeNames.join(" | ")))}function dt(t){let e=[...t],r=e.pop();if(!r)throw new Error("unexpected empty path");return[e,r]}function ft({green:t,enabled:e}){return"Available options are "+(e?`listed in ${t("green")}`:"marked with ?")+"."}function Jt(t,e){if(e.length===1)return e[0];let r=[...e],n=r.pop();return`${r.join(", ")} ${t} ${n}`}var va=3;function Ta(t,e){let r=1/0,n;for(let i of e){let o=(0,di.default)(t,i);o>va||o`}};function Ke(t){return t instanceof gt}u();c();m();p();d();l();var Gt=Symbol(),qr=new WeakMap,Ee=class{constructor(e){e===Gt?qr.set(this,`Prisma.${this._getName()}`):qr.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return qr.get(this)}},yt=class extends Ee{_getNamespace(){return"NullTypes"}},ht=class extends yt{_brand_DbNull};Ur(ht,"DbNull");var bt=class extends yt{_brand_JsonNull};Ur(bt,"JsonNull");var wt=class extends yt{_brand_AnyNull};Ur(wt,"AnyNull");var Wt={classes:{DbNull:ht,JsonNull:bt,AnyNull:wt},instances:{DbNull:new ht(Gt),JsonNull:new bt(Gt),AnyNull:new wt(Gt)}};function Ur(t,e){Object.defineProperty(t,"name",{value:e,configurable:!0})}u();c();m();p();d();l();var wi=": ",Kt=class{constructor(e,r){this.name=e;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+wi.length}write(e){let r=new de(this.name);this.hasError&&r.underline().setColor(e.context.colors.red),e.write(r).write(wi).write(this.value)}};var Br=class{arguments;errorMessages=[];constructor(e){this.arguments=e}write(e){e.write(this.arguments)}addErrorMessage(e){this.errorMessages.push(e)}renderAllMessages(e){return this.errorMessages.map(r=>r(e)).join(` +`)}};function He(t){return new Br(Ei(t))}function Ei(t){let e=new We;for(let[r,n]of Object.entries(t)){let i=new Kt(r,xi(n));e.addField(i)}return e}function xi(t){if(typeof t=="string")return new G(JSON.stringify(t));if(typeof t=="number"||typeof t=="boolean")return new G(String(t));if(typeof t=="bigint")return new G(`${t}n`);if(t===null)return new G("null");if(t===void 0)return new G("undefined");if(je(t))return new G(`new Prisma.Decimal("${t.toFixed()}")`);if(t instanceof Uint8Array)return b.isBuffer(t)?new G(`Buffer.alloc(${t.byteLength})`):new G(`new Uint8Array(${t.byteLength})`);if(t instanceof Date){let e=Ut(t)?t.toISOString():"Invalid Date";return new G(`new Date("${e}")`)}return t instanceof Ee?new G(`Prisma.${t._getName()}`):Ke(t)?new G(`prisma.${ve(t.modelName)}.$fields.${t.name}`):Array.isArray(t)?Ca(t):typeof t=="object"?Ei(t):new G(Object.prototype.toString.call(t))}function Ca(t){let e=new Ge;for(let r of t)e.addItem(xi(r));return e}function Ht(t,e){let r=e==="pretty"?pi:Qt,n=t.renderAllMessages(r),i=new Qe(0,{colors:r}).write(t).toString();return{message:n,args:i}}function zt({args:t,errors:e,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=He(t);for(let C of e)$t(C,a,s);let{message:f,args:h}=Ht(a,r),T=Bt({message:f,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:h});throw new W(T,{clientVersion:o})}u();c();m();p();d();l();u();c();m();p();d();l();function fe(t){return t.replace(/^./,e=>e.toLowerCase())}u();c();m();p();d();l();function vi(t,e,r){let n=fe(r);return!e.result||!(e.result.$allModels||e.result[n])?t:Ra({...t,...Pi(e.name,t,e.result.$allModels),...Pi(e.name,t,e.result[n])})}function Ra(t){let e=new pe,r=(n,i)=>e.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),t[n]?t[n].needs.flatMap(o=>r(o,i)):[n]));return Be(t,n=>({...n,needs:r(n.name,new Set)}))}function Pi(t,e,r){return r?Be(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Aa(e,o,i)})):{}}function Aa(t,e,r){let n=t?.[e]?.compute;return n?i=>r({...i,[e]:n(i)}):r}function Ti(t,e){if(!e)return t;let r={...t};for(let n of Object.values(e))if(t[n.name])for(let i of n.needs)r[i]=!0;return r}function Ci(t,e){if(!e)return t;let r={...t};for(let n of Object.values(e))if(!t[n.name])for(let i of n.needs)delete r[i];return r}var Yt=class{constructor(e,r){this.extension=e;this.previous=r}computedFieldsCache=new pe;modelExtensionsCache=new pe;queryCallbacksCache=new pe;clientExtensions=ut(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=ut(()=>{let e=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?e.concat(r):e});getAllComputedFields(e){return this.computedFieldsCache.getOrCreate(e,()=>vi(this.previous?.getAllComputedFields(e),this.extension,e))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(e){return this.modelExtensionsCache.getOrCreate(e,()=>{let r=fe(e);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(e):{...this.previous?.getAllModelExtensions(e),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(e,r){return this.queryCallbacksCache.getOrCreate(`${e}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(e,r)??[],i=[],o=this.extension.query;return!o||!(o[e]||o.$allModels||o[r]||o.$allOperations)?n:(o[e]!==void 0&&(o[e][r]!==void 0&&i.push(o[e][r]),o[e].$allOperations!==void 0&&i.push(o[e].$allOperations)),e!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ze=class t{constructor(e){this.head=e}static empty(){return new t}static single(e){return new t(new Yt(e))}isEmpty(){return this.head===void 0}append(e){return new t(new Yt(e,this.head))}getAllComputedFields(e){return this.head?.getAllComputedFields(e)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(e){return this.head?.getAllModelExtensions(e)}getAllQueryCallbacks(e,r){return this.head?.getAllQueryCallbacks(e,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};u();c();m();p();d();l();var Xt=class{constructor(e){this.name=e}};function Ri(t){return t instanceof Xt}function Ai(t){return new Xt(t)}u();c();m();p();d();l();u();c();m();p();d();l();var Si=Symbol(),Et=class{constructor(e){if(e!==Si)throw new Error("Skip instance can not be constructed directly")}ifUndefined(e){return e===void 0?Zt:e}},Zt=new Et(Si);function ge(t){return t instanceof Et}var Sa={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},ki="explicitly `undefined` values are not allowed";function er({modelName:t,action:e,args:r,runtimeDataModel:n,extensions:i=ze.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:f,previewFeatures:h,globalOmit:T}){let C=new $r({runtimeDataModel:n,modelName:t,action:e,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:f,previewFeatures:h,globalOmit:T});return{modelName:t,action:Sa[e],query:xt(r,C)}}function xt({select:t,include:e,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Mi(r,n),selection:ka(t,e,i,n)}}function ka(t,e,r,n){return t?(e?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),_a(t,n)):Oa(n,e,r)}function Oa(t,e,r){let n={};return t.modelOrType&&!t.isRawAction()&&(n.$composites=!0,n.$scalars=!0),e&&Ma(n,e,t),Ia(n,r,t),n}function Ma(t,e,r){for(let[n,i]of Object.entries(e)){if(ge(i))continue;let o=r.nestSelection(n);if(Vr(i,o),i===!1||i===void 0){t[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){t[n]=xt(i===!0?{}:i,o);continue}if(i===!0){t[n]=!0;continue}t[n]=xt(i,o)}}function Ia(t,e,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...e},o=Ci(i,n);for(let[s,a]of Object.entries(o)){if(ge(a))continue;Vr(a,r.nestSelection(s));let f=r.findField(s);n?.[s]&&!f||(t[s]=!a)}}function _a(t,e){let r={},n=e.getComputedFields(),i=Ti(t,n);for(let[o,s]of Object.entries(i)){if(ge(s))continue;let a=e.nestSelection(o);Vr(s,a);let f=e.findField(o);if(!(n?.[o]&&!f)){if(s===!1||s===void 0||ge(s)){r[o]=!1;continue}if(s===!0){f?.kind==="object"?r[o]=xt({},a):r[o]=!0;continue}r[o]=xt(s,a)}}return r}function Oi(t,e){if(t===null)return null;if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="bigint")return{$type:"BigInt",value:String(t)};if(Ve(t)){if(Ut(t))return{$type:"DateTime",value:t.toISOString()};e.throwValidationError({kind:"InvalidArgumentValue",selectionPath:e.getSelectionPath(),argumentPath:e.getArgumentPath(),argument:{name:e.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Ri(t))return{$type:"Param",value:t.name};if(Ke(t))return{$type:"FieldRef",value:{_ref:t.name,_container:t.modelName}};if(Array.isArray(t))return Da(t,e);if(ArrayBuffer.isView(t)){let{buffer:r,byteOffset:n,byteLength:i}=t;return{$type:"Bytes",value:b.from(r,n,i).toString("base64")}}if(La(t))return t.values;if(je(t))return{$type:"Decimal",value:t.toFixed()};if(t instanceof Ee){if(t!==Wt.instances[t._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:t._getName()}}if(Fa(t))return t.toJSON();if(typeof t=="object")return Mi(t,e);e.throwValidationError({kind:"InvalidArgumentValue",selectionPath:e.getSelectionPath(),argumentPath:e.getArgumentPath(),argument:{name:e.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(t)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Mi(t,e){if(t.$type)return{$type:"Raw",value:t};let r={};for(let n in t){let i=t[n],o=e.nestArgument(n);ge(i)||(i!==void 0?r[n]=Oi(i,o):e.isPreviewFeatureOn("strictUndefinedChecks")&&e.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:e.getSelectionPath(),argument:{name:e.getArgumentName(),typeNames:[]},underlyingError:ki}))}return r}function Da(t,e){let r=[];for(let n=0;n({name:e.name,typeName:"boolean",isRelation:e.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(e){return this.params.previewFeatures.includes(e)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(e){return this.modelOrType?.fields.find(r=>r.name===e)}nestSelection(e){let r=this.findField(e),n=r?.kind==="object"?r.type:void 0;return new t({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(e)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[ve(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:be(this.params.action,"Unknown action")}}nestArgument(e){return new t({...this.params,argumentPath:this.params.argumentPath.concat(e)})}};u();c();m();p();d();l();function Ii(t){if(!t._hasPreviewFlag("metrics"))throw new W("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:t._clientVersion})}var Ye=class{_client;constructor(e){this._client=e}prometheus(e){return Ii(this._client),this._client._engine.metrics({format:"prometheus",...e})}json(e){return Ii(this._client),this._client._engine.metrics({format:"json",...e})}};u();c();m();p();d();l();function _i(t,e){let r=ut(()=>Na(e));Object.defineProperty(t,"dmmf",{get:()=>r.get()})}function Na(t){throw new Error("Prisma.dmmf is not available when running in edge runtimes.")}function jr(t){return Object.entries(t).map(([e,r])=>({name:e,...r}))}u();c();m();p();d();l();var Qr=new WeakMap,tr="$$PrismaTypedSql",Pt=class{constructor(e,r){Qr.set(this,{sql:e,values:r}),Object.defineProperty(this,tr,{value:tr})}get sql(){return Qr.get(this).sql}get values(){return Qr.get(this).values}};function Di(t){return(...e)=>new Pt(t,e)}function rr(t){return t!=null&&t[tr]===tr}u();c();m();p();d();l();var Go=nt(Li());u();c();m();p();d();l();Fi();Un();jn();u();c();m();p();d();l();var Z=class t{constructor(e,r){if(e.length-1!==r.length)throw e.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${e.length} strings to have ${e.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof t?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=e[0];let i=0,o=0;for(;it.getPropertyValue(r))},getPropertyDescriptor(r){return t.getPropertyDescriptor?.(r)}}}u();c();m();p();d();l();u();c();m();p();d();l();var ir={enumerable:!0,configurable:!0,writable:!0};function or(t){let e=new Set(t);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>ir,has:(r,n)=>e.has(n),set:(r,n,i)=>e.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...e]}}var Ui=Symbol.for("nodejs.util.inspect.custom");function ae(t,e){let r=Ua(e),n=new Set,i=new Proxy(t,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Bi(Reflect.ownKeys(o),r),a=Bi(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let f=r.get(s);return f?f.getPropertyDescriptor?{...ir,...f?.getPropertyDescriptor(s)}:ir:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[Ui]=function(){let o={...this};return delete o[Ui],o},i}function Ua(t){let e=new Map;for(let r of t){let n=r.getKeys();for(let i of n)e.set(i,r)}return e}function Bi(t,e){return t.filter(r=>e.get(r)?.has?.(r)??!0)}u();c();m();p();d();l();function Xe(t){return{getKeys(){return t},has(){return!1},getPropertyValue(){}}}u();c();m();p();d();l();function sr(t,e){return{batch:t,transaction:e?.kind==="batch"?{isolationLevel:e.options.isolationLevel}:void 0}}u();c();m();p();d();l();function $i(t){if(t===void 0)return"";let e=He(t);return new Qe(0,{colors:Qt}).write(e).toString()}u();c();m();p();d();l();var Ba="P2037";function ar({error:t,user_facing_error:e},r,n){return e.error_code?new X($a(e,n),{code:e.error_code,clientVersion:r,meta:e.meta,batchRequestIdx:e.batch_request_idx}):new j(t,{clientVersion:r,batchRequestIdx:e.batch_request_idx})}function $a(t,e){let r=t.message;return(e==="postgresql"||e==="postgres"||e==="mysql")&&t.error_code===Ba&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var Wr=class{getLocation(){return null}};function Ce(t){return typeof $EnabledCallSite=="function"&&t!=="minimal"?new $EnabledCallSite:new Wr}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var Vi={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Ze(t={}){let e=ja(t);return Object.entries(e).reduce((n,[i,o])=>(Vi[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function ja(t={}){return typeof t._count=="boolean"?{...t,_count:{_all:t._count}}:t}function lr(t={}){return e=>(typeof t._count=="boolean"&&(e._count=e._count._all),e)}function ji(t,e){let r=lr(t);return e({action:"aggregate",unpacker:r,argsMapper:Ze})(t)}u();c();m();p();d();l();function Qa(t={}){let{select:e,...r}=t;return typeof e=="object"?Ze({...r,_count:e}):Ze({...r,_count:{_all:!0}})}function Ja(t={}){return typeof t.select=="object"?e=>lr(t)(e)._count:e=>lr(t)(e)._count._all}function Qi(t,e){return e({action:"count",unpacker:Ja(t),argsMapper:Qa})(t)}u();c();m();p();d();l();function Ga(t={}){let e=Ze(t);if(Array.isArray(e.by))for(let r of e.by)typeof r=="string"&&(e.select[r]=!0);else typeof e.by=="string"&&(e.select[e.by]=!0);return e}function Wa(t={}){return e=>(typeof t?._count=="boolean"&&e.forEach(r=>{r._count=r._count._all}),e)}function Ji(t,e){return e({action:"groupBy",unpacker:Wa(t),argsMapper:Ga})(t)}function Gi(t,e,r){if(e==="aggregate")return n=>ji(n,r);if(e==="count")return n=>Qi(n,r);if(e==="groupBy")return n=>Ji(n,r)}u();c();m();p();d();l();function Wi(t,e){let r=e.fields.filter(i=>!i.relationName),n=ni(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new gt(t,o,s.type,s.isList,s.kind==="enum")},...or(Object.keys(n))})}u();c();m();p();d();l();u();c();m();p();d();l();var Ki=t=>Array.isArray(t)?t:t.split("."),Kr=(t,e)=>Ki(e).reduce((r,n)=>r&&r[n],t),Hi=(t,e,r)=>Ki(e).reduceRight((n,i,o,s)=>Object.assign({},Kr(t,s.slice(0,o)),{[i]:n}),r);function Ka(t,e){return t===void 0||e===void 0?[]:[...e,"select",t]}function Ha(t,e,r){return e===void 0?t??{}:Hi(e,r,t||!0)}function Hr(t,e,r,n,i,o){let a=t._runtimeDataModel.models[e].fields.reduce((f,h)=>({...f,[h.name]:h}),{});return f=>{let h=Ce(t._errorFormat),T=Ka(n,i),C=Ha(f,o,T),k=r({dataPath:T,callsite:h})(C),A=za(t,e);return new Proxy(k,{get(O,S){if(!A.includes(S))return O[S];let oe=[a[S].type,r,S],H=[T,C];return Hr(t,...oe,...H)},...or([...A,...Object.getOwnPropertyNames(k)])})}}function za(t,e){return t._runtimeDataModel.models[e].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Ya=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Xa=["aggregate","count","groupBy"];function zr(t,e){let r=t._extensions.getAllModelExtensions(e)??{},n=[Za(t,e),tl(t,e),vt(r),K("name",()=>e),K("$name",()=>e),K("$parent",()=>t._appliedParent)];return ae({},n)}function Za(t,e){let r=fe(e),n=Object.keys(ct).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>f=>{let h=Ce(t._errorFormat);return t._createPrismaPromise(T=>{let C={args:f,dataPath:[],action:o,model:e,clientMethod:`${r}.${i}`,jsModelName:r,transaction:T,callsite:h};return t._request({...C,...a})},{action:o,args:f,model:e})};return Ya.includes(o)?Hr(t,e,s):el(i)?Gi(t,i,s):s({})}}}function el(t){return Xa.includes(t)}function tl(t,e){return Ie(K("fields",()=>{let r=t._runtimeDataModel.models[e];return Wi(e,r)}))}u();c();m();p();d();l();function zi(t){return t.replace(/^./,e=>e.toUpperCase())}var Yr=Symbol();function Tt(t){let e=[rl(t),nl(t),K(Yr,()=>t),K("$parent",()=>t._appliedParent)],r=t._extensions.getAllClientExtensions();return r&&e.push(vt(r)),ae(t,e)}function rl(t){let e=Object.getPrototypeOf(t._originalClient),r=[...new Set(Object.getOwnPropertyNames(e))];return{getKeys(){return r},getPropertyValue(n){return t[n]}}}function nl(t){let e=Object.keys(t._runtimeDataModel.models),r=e.map(fe),n=[...new Set(e.concat(r))];return Ie({getKeys(){return n},getPropertyValue(i){let o=zi(i);if(t._runtimeDataModel.models[o]!==void 0)return zr(t,o);if(t._runtimeDataModel.models[i]!==void 0)return zr(t,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Yi(t){return t[Yr]?t[Yr]:t}function Xi(t){if(typeof t=="function")return t(this);if(t.client?.__AccelerateEngine){let r=t.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let e=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(t)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Tt(e)}u();c();m();p();d();l();u();c();m();p();d();l();function Zi({result:t,modelName:e,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(e);if(!o)return t;let s=[],a=[];for(let f of Object.values(o)){if(n){if(n[f.name])continue;let h=f.needs.filter(T=>n[T]);h.length>0&&a.push(Xe(h))}else if(r){if(!r[f.name])continue;let h=f.needs.filter(T=>!r[T]);h.length>0&&a.push(Xe(h))}il(t,f.needs)&&s.push(ol(f,ae(t,s)))}return s.length>0||a.length>0?ae(t,[...s,...a]):t}function il(t,e){return e.every(r=>_r(t,r))}function ol(t,e){return Ie(K(t.name,()=>t.compute(e)))}u();c();m();p();d();l();function ur({visitor:t,result:e,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(e)){for(let s=0;sT.name===o);if(!f||f.kind!=="object"||!f.relationName)continue;let h=typeof s=="object"?s:{};e[o]=ur({visitor:i,result:e[o],args:h,modelName:f.type,runtimeDataModel:n})}}function to({result:t,modelName:e,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||t==null||typeof t!="object"||!i.models[e]?t:ur({result:t,args:r??{},modelName:e,runtimeDataModel:i,visitor:(a,f,h)=>{let T=fe(f);return Zi({result:a,modelName:T,select:h.select,omit:h.select?void 0:{...o?.[T],...h.omit},extensions:n})}})}u();c();m();p();d();l();u();c();m();p();d();l();l();u();c();m();p();d();l();var sl=["$connect","$disconnect","$on","$transaction","$use","$extends"],ro=sl;function no(t){if(t instanceof Z)return al(t);if(rr(t))return ll(t);if(Array.isArray(t)){let r=[t[0]];for(let n=1;n{let o=e.customDataProxyFetch;return"transaction"in e&&i!==void 0&&(e.transaction?.kind==="batch"&&e.transaction.lock.then(),e.transaction=i),n===r.length?t._executeRequest(e):r[n]({model:e.model,operation:e.model?e.action:e.clientMethod,args:no(e.args??{}),__internalParams:e,query:(s,a=e)=>{let f=a.customDataProxyFetch;return a.customDataProxyFetch=uo(o,f),a.args=s,oo(t,a,r,n+1)}})})}function so(t,e){let{jsModelName:r,action:n,clientMethod:i}=e,o=r?n:i;if(t._extensions.isEmpty())return t._executeRequest(e);let s=t._extensions.getAllQueryCallbacks(r??"$none",o);return oo(t,e,s)}function ao(t){return e=>{let r={requests:e},n=e[0].extensions.getAllBatchQueryCallbacks();return n.length?lo(r,n,0,t):t(r)}}function lo(t,e,r,n){if(r===e.length)return n(t);let i=t.customDataProxyFetch,o=t.requests[0].transaction;return e[r]({args:{queries:t.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:t,query(s,a=t){let f=a.customDataProxyFetch;return a.customDataProxyFetch=uo(i,f),lo(a,e,r+1,n)}})}var io=t=>t;function uo(t=io,e=io){return r=>t(e(r))}u();c();m();p();d();l();var co=J("prisma:client"),mo={Vercel:"vercel","Netlify CI":"netlify"};function po({postinstall:t,ciName:e,clientVersion:r}){if(co("checkPlatformCaching:postinstall",t),co("checkPlatformCaching:ciName",e),t===!0&&e&&e in mo){let n=`Prisma has detected that this project was built on ${e}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${mo[e]}-build`;throw console.error(n),new I(n,r)}}u();c();m();p();d();l();function fo(t,e){return t?t.datasources?t.datasources:t.datasourceUrl?{[e[0]]:{url:t.datasourceUrl}}:{}:{}}u();c();m();p();d();l();u();c();m();p();d();l();var ul=()=>globalThis.process?.release?.name==="node",cl=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,ml=()=>!!globalThis.Deno,pl=()=>typeof globalThis.Netlify=="object",dl=()=>typeof globalThis.EdgeRuntime=="object",fl=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function gl(){return[[pl,"netlify"],[dl,"edge-light"],[fl,"workerd"],[ml,"deno"],[cl,"bun"],[ul,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var yl={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Re(){let t=gl();return{id:t,prettyName:yl[t]||t,isEdge:["workerd","deno","netlify","edge-light"].includes(t)}}u();c();m();p();d();l();u();c();m();p();d();l();function cr({inlineDatasources:t,overrideDatasources:e,env:r,clientVersion:n}){let i,o=Object.keys(t)[0],s=t[o]?.url,a=e[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Re().id==="workerd"?new I(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new I(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new I("error: Missing URL environment variable, value, or override.",n);return i}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();function Xr(t){return t.name==="DriverAdapterError"&&typeof t.cause=="object"}u();c();m();p();d();l();function mr(t){return{ok:!0,value:t,map(e){return mr(e(t))},flatMap(e){return e(t)}}}function _e(t){return{ok:!1,error:t,map(){return _e(t)},flatMap(){return _e(t)}}}var go=J("driver-adapter-utils"),Zr=class{registeredErrors=[];consumeError(e){return this.registeredErrors[e]}registerNewError(e){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:e},r}};var en=(t,e=new Zr)=>{let r={adapterName:t.adapterName,errorRegistry:e,queryRaw:xe(e,t.queryRaw.bind(t)),executeRaw:xe(e,t.executeRaw.bind(t)),executeScript:xe(e,t.executeScript.bind(t)),dispose:xe(e,t.dispose.bind(t)),provider:t.provider,startTransaction:async(...n)=>(await xe(e,t.startTransaction.bind(t))(...n)).map(o=>hl(e,o))};return t.getConnectionInfo&&(r.getConnectionInfo=bl(e,t.getConnectionInfo.bind(t))),r},hl=(t,e)=>({adapterName:e.adapterName,provider:e.provider,options:e.options,queryRaw:xe(t,e.queryRaw.bind(e)),executeRaw:xe(t,e.executeRaw.bind(e)),commit:xe(t,e.commit.bind(e)),rollback:xe(t,e.rollback.bind(e))});function xe(t,e){return async(...r)=>{try{return mr(await e(...r))}catch(n){if(go("[error@wrapAsync]",n),Xr(n))return _e(n.cause);let i=t.registerNewError(n);return _e({kind:"GenericJs",id:i})}}}function bl(t,e){return(...r)=>{try{return mr(e(...r))}catch(n){if(go("[error@wrapSync]",n),Xr(n))return _e(n.cause);let i=t.registerNewError(n);return _e({kind:"GenericJs",id:i})}}}u();c();m();p();d();l();function yo(t){if(t?.kind==="itx")return t.options.id}u();c();m();p();d();l();var tn,ho={async loadLibrary(t){let{clientVersion:e,adapter:r,engineWasm:n}=t;if(r===void 0)throw new I(`The \`adapter\` option for \`PrismaClient\` is required in this context (${Re().prettyName})`,e);if(n===void 0)throw new I("WASM engine was unexpectedly `undefined`",e);tn===void 0&&(tn=(async()=>{let o=await n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new I("The loaded wasm module was unexpectedly `undefined` or `null` once loaded",e);let a={"./query_engine_bg.js":o},f=new WebAssembly.Instance(s,a),h=f.exports.__wbindgen_start;return o.__wbg_set_wasm(f.exports),h(),o.QueryEngine})());let i=await tn;return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:i}}};var wl="P2036",ye=J("prisma:client:libraryEngine");function El(t){return t.item_type==="query"&&"query"in t}function xl(t){return"level"in t?t.level==="error"&&t.message==="PANIC":!1}var SS=[...kr,"native"],Pl=0xffffffffffffffffn,rn=1n;function vl(){let t=rn++;return rn>Pl&&(rn=1n),t}var Rt=class{name="LibraryEngine";engine;libraryInstantiationPromise;libraryStartingPromise;libraryStoppingPromise;libraryStarted;executingQueryPromise;config;QueryEngineConstructor;libraryLoader;library;logEmitter;libQueryEnginePath;binaryTarget;datasourceOverrides;datamodel;logQueries;logLevel;lastQuery;loggerRustPanic;tracingHelper;adapterPromise;versionInfo;constructor(e,r){this.libraryLoader=r??ho,this.config=e,this.libraryStarted=!1,this.logQueries=e.logQueries??!1,this.logLevel=e.logLevel??"error",this.logEmitter=e.logEmitter,this.datamodel=e.inlineSchema,this.tracingHelper=e.tracingHelper,e.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(e.overrideDatasources)[0],i=e.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(e){return{applyPendingMigrations:e.applyPendingMigrations?.bind(e),commitTransaction:this.withRequestId(e.commitTransaction.bind(e)),connect:this.withRequestId(e.connect.bind(e)),disconnect:this.withRequestId(e.disconnect.bind(e)),metrics:e.metrics?.bind(e),query:this.withRequestId(e.query.bind(e)),rollbackTransaction:this.withRequestId(e.rollbackTransaction.bind(e)),sdlSchema:e.sdlSchema?.bind(e),startTransaction:this.withRequestId(e.startTransaction.bind(e)),trace:e.trace.bind(e)}}withRequestId(e){return async(...r)=>{let n=vl().toString();try{return await e(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){throw new Error("Cannot call this method from this type of engine instance")}async transaction(e,r,n){await this.start();let i=await this.adapterPromise,o=JSON.stringify(r),s;if(e==="start"){let f=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});s=await this.engine?.startTransaction(f,o)}else e==="commit"?s=await this.engine?.commitTransaction(n.id,o):e==="rollback"&&(s=await this.engine?.rollbackTransaction(n.id,o));let a=this.parseEngineResponse(s);if(Tl(a)){let f=this.getExternalAdapterError(a,i?.errorRegistry);throw f?f.error:new X(a.message,{code:a.error_code,clientVersion:this.config.clientVersion,meta:a.meta})}else if(typeof a.message=="string")throw new j(a.message,{clientVersion:this.config.clientVersion});return a}async instantiateLibrary(){if(ye("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(e){if(!e)throw new j("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(e)}catch{throw new j("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let e=new w(this);this.adapterPromise||(this.adapterPromise=this.config.adapter?.connect()?.then(en));let r=await this.adapterPromise;r&&ye("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:g.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{e.deref()?.logger(n)},r))}catch(e){let r=e,n=this.parseInitError(r.message);throw typeof n=="string"?r:new I(n.message,this.config.clientVersion,n.error_code)}}}logger(e){let r=this.parseEngineResponse(e);r&&(r.level=r?.level.toLowerCase()??"unknown",El(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):(xl(r),this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})))}parseInitError(e){try{return JSON.parse(e)}catch{}return e}parseRequestError(e){try{return JSON.parse(e)}catch{}return e}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return ye(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let e=async()=>{ye("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,ye("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new I(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",e),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return ye("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let e=async()=>{await new Promise(n=>setTimeout(n,5)),ye("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,await(await this.adapterPromise)?.dispose(),this.adapterPromise=void 0,ye("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",e),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(e){return this.library?.debugPanic(e)}async request(e,{traceparent:r,interactiveTransaction:n}){ye(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(e);try{await this.start();let s=await this.adapterPromise;this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let a=this.parseEngineResponse(await this.executingQueryPromise);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],s?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:a}}catch(s){if(s instanceof I)throw s;s.code==="GenericFailure"&&s.message?.startsWith("PANIC:");let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new j(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(e,{transaction:r,traceparent:n}){ye("requestBatch");let i=sr(e,r);await this.start();let o=await this.adapterPromise;this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),yo(r));let s=await this.executingQueryPromise,a=this.parseEngineResponse(s);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],o?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});let{batchResult:f,errors:h}=a;if(Array.isArray(f))return f.map(T=>T.errors&&T.errors.length>0?this.loggerRustPanic??this.buildQueryError(T.errors[0],o?.errorRegistry):{data:T});throw h&&h.length===1?new Error(h[0].error):new Error(JSON.stringify(a))}buildQueryError(e,r){e.user_facing_error.is_panic;let n=this.getExternalAdapterError(e.user_facing_error,r);return n?n.error:ar(e,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(e,r){if(e.error_code===wl&&r){let n=e.meta?.id;qt(typeof n=="number","Malformed external JS error received from the engine");let i=r.consumeError(n);return qt(i,"External error with reported id was not registered"),i}}async metrics(e){await this.start();let r=await this.engine.metrics(JSON.stringify(e));return e.format==="prometheus"?r:this.parseEngineResponse(r)}};function Tl(t){return typeof t=="object"&&t!==null&&t.error_code!==void 0}u();c();m();p();d();l();var At="Accelerate has not been setup correctly. Make sure your client is using `.$extends(withAccelerate())`. See https://pris.ly/d/accelerate-getting-started",pr=class{constructor(e){this.config=e;this.resolveDatasourceUrl=this.config.accelerateUtils?.resolveDatasourceUrl,this.getBatchRequestPayload=this.config.accelerateUtils?.getBatchRequestPayload,this.prismaGraphQLToJSError=this.config.accelerateUtils?.prismaGraphQLToJSError,this.PrismaClientUnknownRequestError=this.config.accelerateUtils?.PrismaClientUnknownRequestError,this.PrismaClientInitializationError=this.config.accelerateUtils?.PrismaClientInitializationError,this.PrismaClientKnownRequestError=this.config.accelerateUtils?.PrismaClientKnownRequestError,this.debug=this.config.accelerateUtils?.debug,this.engineVersion=this.config.accelerateUtils?.engineVersion,this.clientVersion=this.config.accelerateUtils?.clientVersion}name="AccelerateEngine";resolveDatasourceUrl;getBatchRequestPayload;prismaGraphQLToJSError;PrismaClientUnknownRequestError;PrismaClientInitializationError;PrismaClientKnownRequestError;debug;engineVersion;clientVersion;onBeforeExit(e){}async start(){}async stop(){}version(e){return"unknown"}transaction(e,r,n){throw new I(At,this.config.clientVersion)}metrics(e){throw new I(At,this.config.clientVersion)}request(e,r){throw new I(At,this.config.clientVersion)}requestBatch(e,r){throw new I(At,this.config.clientVersion)}applyPendingMigrations(){throw new I(At,this.config.clientVersion)}};function bo({copyEngine:t=!0},e){let r;try{r=cr({inlineDatasources:e.inlineDatasources,overrideDatasources:e.overrideDatasources,env:{...e.env,...g.env},clientVersion:e.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||Mr(r));t&&n&<("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ue(e.generator),o=n||!t,s=!!e.adapter,a=i==="library",f=i==="binary",h=i==="client";if(o&&s||s&&!1){let T;throw t?r?.startsWith("prisma://")?T=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:T=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:T=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new W(T.join(` +`),{clientVersion:e.clientVersion})}if(s)return new Rt(e);if(o)return new pr(e);{let T=[`PrismaClient failed to initialize because it wasn't configured to run in this environment (${Re().prettyName}).`,"In order to run Prisma Client in an edge runtime, you will need to configure one of the following options:","- Enable Driver Adapters: https://pris.ly/d/driver-adapters","- Enable Accelerate: https://pris.ly/d/accelerate"];throw new W(T.join(` +`),{clientVersion:e.clientVersion})}return"wasm"}u();c();m();p();d();l();function dr({generator:t}){return t?.previewFeatures??[]}u();c();m();p();d();l();var wo=t=>({command:t});u();c();m();p();d();l();u();c();m();p();d();l();var Eo=t=>t.strings.reduce((e,r,n)=>`${e}@P${n}${r}`);u();c();m();p();d();l();l();function et(t){try{return xo(t,"fast")}catch{return xo(t,"slow")}}function xo(t,e){return JSON.stringify(t.map(r=>vo(r,e)))}function vo(t,e){if(Array.isArray(t))return t.map(r=>vo(r,e));if(typeof t=="bigint")return{prisma__type:"bigint",prisma__value:t.toString()};if(Ve(t))return{prisma__type:"date",prisma__value:t.toJSON()};if(me.isDecimal(t))return{prisma__type:"decimal",prisma__value:t.toJSON()};if(b.isBuffer(t))return{prisma__type:"bytes",prisma__value:t.toString("base64")};if(Cl(t))return{prisma__type:"bytes",prisma__value:b.from(t).toString("base64")};if(ArrayBuffer.isView(t)){let{buffer:r,byteOffset:n,byteLength:i}=t;return{prisma__type:"bytes",prisma__value:b.from(r,n,i).toString("base64")}}return typeof t=="object"&&e==="slow"?To(t):t}function Cl(t){return t instanceof ArrayBuffer||t instanceof SharedArrayBuffer?!0:typeof t=="object"&&t!==null?t[Symbol.toStringTag]==="ArrayBuffer"||t[Symbol.toStringTag]==="SharedArrayBuffer":!1}function To(t){if(typeof t!="object"||t===null)return t;if(typeof t.toJSON=="function")return t.toJSON();if(Array.isArray(t))return t.map(Po);let e={};for(let r of Object.keys(t))e[r]=Po(t[r]);return e}function Po(t){return typeof t=="bigint"?t.toString():To(t)}var Rl=/^(\s*alter\s)/i,Co=J("prisma:client");function nn(t,e,r,n){if(!(t!=="postgresql"&&t!=="cockroachdb")&&r.length>0&&Rl.exec(e))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var on=({clientMethod:t,activeProvider:e})=>r=>{let n="",i;if(rr(r))n=r.sql,i={values:et(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:et(s||[]),__prismaRawParameters__:!0}}else switch(e){case"sqlite":case"mysql":{n=r.sql,i={values:et(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:et(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=Eo(r),i={values:et(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${e} provider does not support ${t}`)}return i?.values?Co(`prisma.${t}(${n}, ${i.values})`):Co(`prisma.${t}(${n})`),{query:n,parameters:i}},Ro={requestArgsToMiddlewareArgs(t){return[t.strings,...t.values]},middlewareArgsToRequestArgs(t){let[e,...r]=t;return new Z(e,r)}},Ao={requestArgsToMiddlewareArgs(t){return[t]},middlewareArgsToRequestArgs(t){return t[0]}};u();c();m();p();d();l();function sn(t){return function(r,n){let i,o=(s=t)=>{try{return s===void 0||s?.kind==="itx"?i??=So(r(s)):So(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function So(t){return typeof t.then=="function"?t:Promise.resolve(t)}u();c();m();p();d();l();var Al=Or.split(".")[0],Sl={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(t,e){return e()}},an=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(e){return this.getGlobalTracingHelper().getTraceParent(e)}dispatchEngineSpans(e){return this.getGlobalTracingHelper().dispatchEngineSpans(e)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(e,r){return this.getGlobalTracingHelper().runInChildSpan(e,r)}getGlobalTracingHelper(){let e=globalThis[`V${Al}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return e?.helper??r?.helper??Sl}};function ko(){return new an}u();c();m();p();d();l();function Oo(t,e=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--t===0&&r(e()),i?.(n)}}}u();c();m();p();d();l();function Mo(t){return typeof t=="string"?t:t.reduce((e,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?e:e&&(r==="info"||e==="info")?"info":n},void 0)}u();c();m();p();d();l();var fr=class{_middlewares=[];use(e){this._middlewares.push(e)}get(e){return this._middlewares[e]}has(e){return!!this._middlewares[e]}length(){return this._middlewares.length}};u();c();m();p();d();l();var _o=nt(ei());u();c();m();p();d();l();function gr(t){return typeof t.batchRequestIdx=="number"}u();c();m();p();d();l();function Io(t){if(t.action!=="findUnique"&&t.action!=="findUniqueOrThrow")return;let e=[];return t.modelName&&e.push(t.modelName),t.query.arguments&&e.push(ln(t.query.arguments)),e.push(ln(t.query.selection)),e.join("")}function ln(t){return`(${Object.keys(t).sort().map(r=>{let n=t[r];return typeof n=="object"&&n!==null?`(${r} ${ln(n)})`:r}).join(" ")})`}u();c();m();p();d();l();var kl={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function un(t){return kl[t]}u();c();m();p();d();l();var yr=class{constructor(e){this.options=e;this.batches={}}batches;tickActive=!1;request(e){let r=this.options.batchBy(e);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,g.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:e,resolve:n,reject:i})})):this.options.singleLoader(e)}dispatchBatches(){for(let e in this.batches){let r=this.batches[e];delete this.batches[e],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iDe("bigint",r));case"bytes-array":return e.map(r=>De("bytes",r));case"decimal-array":return e.map(r=>De("decimal",r));case"datetime-array":return e.map(r=>De("datetime",r));case"date-array":return e.map(r=>De("date",r));case"time-array":return e.map(r=>De("time",r));default:return e}}function hr(t){let e=[],r=Ol(t);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(C=>C.protocolQuery),f=this.client._tracingHelper.getTraceParent(s),h=n.some(C=>un(C.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:f,transaction:Il(o),containsWrite:h,customDataProxyFetch:i})).map((C,k)=>{if(C instanceof Error)return C;try{return this.mapQueryEngineResult(n[k],C)}catch(A){return A}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Do(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:un(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Io(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(e){try{return await this.dataloader.request(e)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=e;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:e.globalOmit})}}mapQueryEngineResult({dataPath:e,unpacker:r},n){let i=n?.data,o=this.unpack(i,e,r);return g.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(e){try{this.handleRequestError(e)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:e.clientMethod,timestamp:new Date}),r}}handleRequestError({error:e,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Ml(e),_l(e,i))throw e;if(e instanceof X&&Dl(e)){let h=Lo(e.meta);zt({args:o,errors:[h],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let f=e.message;if(n&&(f=Bt({callsite:n,originalMethod:r,isPanic:e.isPanic,showColors:this.client._errorFormat==="pretty",message:f})),f=this.sanitizeMessage(f),e.code){let h=s?{modelName:s,...e.meta}:e.meta;throw new X(f,{code:e.code,clientVersion:this.client._clientVersion,meta:h,batchRequestIdx:e.batchRequestIdx})}else{if(e.isPanic)throw new we(f,this.client._clientVersion);if(e instanceof j)throw new j(f,{clientVersion:this.client._clientVersion,batchRequestIdx:e.batchRequestIdx});if(e instanceof I)throw new I(f,this.client._clientVersion);if(e instanceof we)throw new we(f,this.client._clientVersion)}throw e.clientVersion=this.client._clientVersion,e}sanitizeMessage(e){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,_o.default)(e):e}unpack(e,r,n){if(!e||(e.data&&(e=e.data),!e))return e;let i=Object.keys(e)[0],o=Object.values(e)[0],s=r.filter(h=>h!=="select"&&h!=="include"),a=Kr(o,s),f=i==="queryRaw"?hr(a):$e(a);return n?n(f):f}get[Symbol.toStringTag](){return"RequestHandler"}};function Il(t){if(t){if(t.kind==="batch")return{kind:"batch",options:{isolationLevel:t.isolationLevel}};if(t.kind==="itx")return{kind:"itx",options:Do(t)};be(t,"Unknown transaction kind")}}function Do(t){return{id:t.id,payload:t.payload}}function _l(t,e){return gr(t)&&e?.kind==="batch"&&t.batchRequestIdx!==e.index}function Dl(t){return t.code==="P2009"||t.code==="P2012"}function Lo(t){if(t.kind==="Union")return{kind:"Union",errors:t.errors.map(Lo)};if(Array.isArray(t.selectionPath)){let[,...e]=t.selectionPath;return{...t,selectionPath:e}}return t}u();c();m();p();d();l();var Fo="6.6.0";var No=Fo;u();c();m();p();d();l();var Vo=nt(Fr());u();c();m();p();d();l();var _=class extends Error{constructor(e){super(e+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};te(_,"PrismaClientConstructorValidationError");var qo=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Uo=["pretty","colorless","minimal"],Bo=["info","query","warn","error"],Fl={datasources:(t,{datasourceNames:e})=>{if(t){if(typeof t!="object"||Array.isArray(t))throw new _(`Invalid value ${JSON.stringify(t)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(t)){if(!e.includes(r)){let i=tt(r,e)||` Available datasources: ${e.join(", ")}`;throw new _(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new _(`Invalid value ${JSON.stringify(t)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new _(`Invalid value ${JSON.stringify(t)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new _(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(t,e)=>{if(!t&&Ue(e.generator)==="client")throw new _('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(t===null)return;if(t===void 0)throw new _('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!dr(e).includes("driverAdapters"))throw new _('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ue(e.generator)==="binary")throw new _('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:t=>{if(typeof t<"u"&&typeof t!="string")throw new _(`Invalid value ${JSON.stringify(t)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:t=>{if(t){if(typeof t!="string")throw new _(`Invalid value ${JSON.stringify(t)} for "errorFormat" provided to PrismaClient constructor.`);if(!Uo.includes(t)){let e=tt(t,Uo);throw new _(`Invalid errorFormat ${t} provided to PrismaClient constructor.${e}`)}}},log:t=>{if(!t)return;if(!Array.isArray(t))throw new _(`Invalid value ${JSON.stringify(t)} for "log" provided to PrismaClient constructor.`);function e(r){if(typeof r=="string"&&!Bo.includes(r)){let n=tt(r,Bo);throw new _(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of t){e(r);let n={level:e,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=tt(i,o);throw new _(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new _(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:t=>{if(!t)return;let e=t.maxWait;if(e!=null&&e<=0)throw new _(`Invalid value ${e} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=t.timeout;if(r!=null&&r<=0)throw new _(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(t,e)=>{if(typeof t!="object")throw new _('"omit" option is expected to be an object.');if(t===null)throw new _('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(t)){let o=ql(n,e.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let f=o.fields.find(h=>h.name===s);if(!f){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(f.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new _(Ul(t,r))},__internal:t=>{if(!t)return;let e=["debug","engine","configOverride"];if(typeof t!="object")throw new _(`Invalid value ${JSON.stringify(t)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(t))if(!e.includes(r)){let n=tt(r,e);throw new _(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function jo(t,e){for(let[r,n]of Object.entries(t)){if(!qo.includes(r)){let i=tt(r,qo);throw new _(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Fl[r](n,e)}if(t.datasourceUrl&&t.datasources)throw new _('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function tt(t,e){if(e.length===0||typeof t!="string")return"";let r=Nl(t,e);return r?` Did you mean "${r}"?`:""}function Nl(t,e){if(e.length===0)return null;let r=e.map(i=>({value:i,distance:(0,Vo.default)(t,i)}));r.sort((i,o)=>i.distanceve(n)===e);if(r)return t[r]}function Ul(t,e){let r=He(t);for(let o of e)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Ht(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}u();c();m();p();d();l();function Qo(t){return t.length===0?Promise.resolve([]):new Promise((e,r)=>{let n=new Array(t.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===t.length&&(o=!0,i?r(i):e(n)))},f=h=>{o||(o=!0,r(h))};for(let h=0;h{n[h]=T,a()},T=>{if(!gr(T)){f(T);return}T.batchRequestIdx===h?f(T):(i||(i=T),a())})})}var Ae=J("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Bl={requestArgsToMiddlewareArgs:t=>t,middlewareArgsToRequestArgs:t=>t},$l=Symbol.for("prisma.client.transaction.id"),Vl={id:0,nextId(){return++this.id}};function Wo(t){class e{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new fr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=sn();constructor(n){t=n?.__internal?.configOverride?.(t)??t,po(t),n&&jo(n,t);let i=new nr().on("error",()=>{});this._extensions=ze.empty(),this._previewFeatures=dr(t),this._clientVersion=t.clientVersion??No,this._activeProvider=t.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=ko();let o=t.relativeEnvPaths&&{rootEnvPath:t.relativeEnvPaths.rootEnvPath&&Nt.resolve(t.dirname,t.relativeEnvPaths.rootEnvPath),schemaEnvPath:t.relativeEnvPaths.schemaEnvPath&&Nt.resolve(t.dirname,t.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let f=t.activeProvider==="postgresql"?"postgres":t.activeProvider;if(s.provider!==f)throw new I(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${f}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new I("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=t.injectableEdgeEnv?.();try{let f=n??{},h=f.__internal??{},T=h.debug===!0;T&&J.enable("prisma:client");let C=Nt.resolve(t.dirname,t.relativePath);qn.existsSync(C)||(C=t.dirname),Ae("dirname",t.dirname),Ae("relativePath",t.relativePath),Ae("cwd",C);let k=h.engine||{};if(f.errorFormat?this._errorFormat=f.errorFormat:g.env.NODE_ENV==="production"?this._errorFormat="minimal":g.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=t.runtimeDataModel,this._engineConfig={cwd:C,dirname:t.dirname,enableDebugLogs:T,allowTriggerPanic:k.allowTriggerPanic,prismaPath:k.binaryPath??void 0,engineEndpoint:k.endpoint,generator:t.generator,showColors:this._errorFormat==="pretty",logLevel:f.log&&Mo(f.log),logQueries:f.log&&!!(typeof f.log=="string"?f.log==="query":f.log.find(A=>typeof A=="string"?A==="query":A.level==="query")),env:a?.parsed??{},flags:[],engineWasm:t.engineWasm,compilerWasm:t.compilerWasm,clientVersion:t.clientVersion,engineVersion:t.engineVersion,previewFeatures:this._previewFeatures,activeProvider:t.activeProvider,inlineSchema:t.inlineSchema,overrideDatasources:fo(f,t.datasourceNames),inlineDatasources:t.inlineDatasources,inlineSchemaHash:t.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:f.transactionOptions?.maxWait??2e3,timeout:f.transactionOptions?.timeout??5e3,isolationLevel:f.transactionOptions?.isolationLevel},logEmitter:i,isBundled:t.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:cr,getBatchRequestPayload:sr,prismaGraphQLToJSError:ar,PrismaClientUnknownRequestError:j,PrismaClientInitializationError:I,PrismaClientKnownRequestError:X,debug:J("prisma:client:accelerateEngine"),engineVersion:Go.version,clientVersion:t.clientVersion}},Ae("clientVersion",t.clientVersion),this._engine=bo(t,this._engineConfig),this._requestHandler=new br(this,i),f.log)for(let A of f.log){let O=typeof A=="string"?A:A.emit==="stdout"?A.level:null;O&&this.$on(O,S=>{at.log(`${at.tags[O]??""}`,S.message||S.query)})}}catch(f){throw f.clientVersion=this._clientVersion,f}return this._appliedParent=Tt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Fn()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:on({clientMethod:i,activeProvider:a}),callsite:Ce(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=Jo(n,i);return nn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new W("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(nn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(t.activeProvider!=="mongodb")throw new W(`The ${t.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:wo,callsite:Ce(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:on({clientMethod:i,activeProvider:a}),callsite:Ce(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...Jo(n,i));throw new W("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new W("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=Vl.nextId(),s=Oo(n.length),a=n.map((f,h)=>{if(f?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let T=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,C={kind:"batch",id:o,index:h,isolationLevel:T,lock:s};return f.requestTransaction?.(C)??f});return Qo(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),f;try{let h={kind:"itx",...a};f=await n(this._createItxClient(h)),await this._engine.transaction("commit",o,a)}catch(h){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),h}return f}_createItxClient(n){return ae(Tt(ae(Yi(this),[K("_appliedParent",()=>this._appliedParent._createItxClient(n)),K("_createPrismaPromise",()=>sn(n)),K($l,()=>n.id)])),[Xe(ro)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Bl,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,f=async h=>{let T=this._middlewares.get(++a);if(T)return this._tracingHelper.runInChildSpan(s.middleware,M=>T(h,oe=>(M?.end(),f(oe))));let{runInTransaction:C,args:k,...A}=h,O={...n,...A};k&&(O.args=i.middlewareArgsToRequestArgs(k)),n.transaction!==void 0&&C===!1&&delete O.transaction;let S=await so(this,O);return O.model?to({result:S,modelName:O.model,args:O.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):S};return this._tracingHelper.runInChildSpan(s.operation,()=>f(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:f,argsMapper:h,transaction:T,unpacker:C,otelParentCtx:k,customDataProxyFetch:A}){try{n=h?h(n):n;let O={name:"serialize"},S=this._tracingHelper.runInChildSpan(O,()=>er({modelName:f,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return J.enabled("prisma:client")&&(Ae("Prisma Client call:"),Ae(`prisma.${i}(${$i(n)})`),Ae("Generated request:"),Ae(JSON.stringify(S,null,2)+` +`)),T?.kind==="batch"&&await T.lock,this._requestHandler.request({protocolQuery:S,modelName:f,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:T,unpacker:C,otelParentCtx:k,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:A})}catch(O){throw O.clientVersion=this._clientVersion,O}}$metrics=new Ye(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=Xi}return e}function Jo(t,e){return jl(t)?[new Z(t,e),Ro]:[t,Ao]}function jl(t){return Array.isArray(t)&&Array.isArray(t.raw)}u();c();m();p();d();l();var Ql=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Ko(t){return new Proxy(t,{get(e,r){if(r in e)return e[r];if(!Ql.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}u();c();m();p();d();l();l();0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=wasm.js.map diff --git a/lib/generated/prisma/schema.prisma b/lib/generated/prisma/schema.prisma new file mode 100644 index 0000000..c1ab833 --- /dev/null +++ b/lib/generated/prisma/schema.prisma @@ -0,0 +1,108 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client-js" + output = "../lib/generated/prisma" +} + +datasource database { + provider = "postgresql" + url = env("DATABASE_URL") +} + +model User { + id String @id @default(uuid()) + name String? + email String? @unique + password String + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + detail Detail? + + @@map("users") +} + +model Detail { + tax_id String @id + phone String + bio String + city String + county String + post_kode String + photo_profile String + + user User @relation(fields: [tax_id], references: [id]) + + @@map("detail") +} + +model Kecamatan { + id_kecamatan Int @id @default(autoincrement()) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + nama_kecamatan String @database.VarChar(100) + deskripsi String @database.Text + gambar String @database.Text + area Float + posisi_x Int + posisi_y Int + penduduk Penduduk[] + hasil_panen HasilPanen[] + prediksi_panen PrediksiPanen[] + + @@map("data_kecamatan") +} + +model Penduduk { + id_penduduk Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + data_tahun Int + jumlah_penduduk Float + laju_pertumbuhan String @database.VarChar(30) + + @@map("data_penduduk") +} + +model Komoditas { + id_komoditas Int @id @default(autoincrement()) + nama_komoditas String @database.VarChar(100) + posisi_x Int + posisi_y Int + kecamatan Kecamatan[] + hasil_panen HasilPanen[] + prediksi_panen PrediksiPanen[] + + @@map("data_komoditas") +} + +model HasilPanen { + id_panen Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + tahun_panen Int + produksi Float + luas_panen Float + produktivitas Float + + @@map("hasil_panen") +} + +model PrediksiPanen { + id_prediksi Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + tahun_prediksi Int + hasil_prediksi Int + + @@map("prediksi_panen") +} diff --git a/lib/generated/prisma/wasm.d.ts b/lib/generated/prisma/wasm.d.ts new file mode 100644 index 0000000..bc20c6c --- /dev/null +++ b/lib/generated/prisma/wasm.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/lib/generated/prisma/wasm.js b/lib/generated/prisma/wasm.js new file mode 100644 index 0000000..0b91359 --- /dev/null +++ b/lib/generated/prisma/wasm.js @@ -0,0 +1,238 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + Decimal, + objectEnumValues, + makeStrictEnum, + Public, + getRuntime, + skip +} = require('./runtime/index-browser.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)}; +Prisma.PrismaClientUnknownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientRustPanicError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientInitializationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientValidationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.empty = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.join = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.raw = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.defineExtension = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + +/** + * Enums + */ + +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +}; + +exports.Prisma.DetailScalarFieldEnum = { + tax_id: 'tax_id', + phone: 'phone', + bio: 'bio', + city: 'city', + county: 'county', + post_kode: 'post_kode', + photo_profile: 'photo_profile' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; + +/** + * This is a stub Prisma Client that will error at runtime if called. + */ +class PrismaClient { + constructor() { + return new Proxy(this, { + get(target, prop) { + let message + const runtime = getRuntime() + if (runtime.isEdge) { + message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either: +- Use Prisma Accelerate: https://pris.ly/d/accelerate +- Use Driver Adapters: https://pris.ly/d/driver-adapters +`; + } else { + message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).' + } + + message += ` +If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report` + + throw new Error(message) + } + }) + } +} + +exports.PrismaClient = PrismaClient + +Object.assign(exports, Prisma) diff --git a/next.config.ts b/next.config.ts new file mode 100644 index 0000000..4d38641 --- /dev/null +++ b/next.config.ts @@ -0,0 +1,18 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + // --- TAMBAHKAN DARI SINI --- + typescript: { + // !! PERINGATAN !! + // Ini akan memaksa Vercel mengabaikan semua error TypeScript dan tetap lanjut + ignoreBuildErrors: true, + }, + eslint: { + // Ini akan mengabaikan error ESLint + ignoreDuringBuilds: true, + }, + // --- SAMPAI SINI --- + + // (Kalau di bawah sini ada pengaturan lain, biarkan saja) +}; + +export default nextConfig; \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..07f5ba8 --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "pandawa", + "version": "1.8.2", + "private": true, + "scripts": { + "dev": "next dev --turbopack", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "prisma": { + "seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} src/lib/seed.ts" + }, + "dependencies": { + "@auth/prisma-adapter": "^2.9.0", + "@prisma/client": "^6.7.0", + "apexcharts": "^4.7.0", + "bcrypt-ts": "^7.0.0", + "d3": "^7.9.0", + "mysql2": "^3.20.0", + "next": "latest", + "next-auth": "^5.0.0-beta.27", + "postcss": "^8.5.3", + "react": "^19.0.0", + "react-apexcharts": "^1.7.0", + "react-dom": "^19.0.0", + "react-dropzone": "^14.3.8", + "tailwind-merge": "^3.2.0", + "zod": "^3.24.4" + }, + "devDependencies": { + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", + "@types/d3": "^7.4.3", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "15.3.1", + "prisma": "^6.7.0", + "tailwindcss": "^4", + "ts-node": "^10.9.2", + "typescript": "^5.8.3" + } +} diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..61e3684 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; + +export default config; diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..ff5ebf2 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1 @@ +export const plugins = ['prettier-plugin-tailwindcss']; \ No newline at end of file diff --git a/prisma/migrations/20250501204044_init/migration.sql b/prisma/migrations/20250501204044_init/migration.sql new file mode 100644 index 0000000..e09336b --- /dev/null +++ b/prisma/migrations/20250501204044_init/migration.sql @@ -0,0 +1,107 @@ +-- CreateTable +CREATE TABLE "users" ( + "id" TEXT NOT NULL, + "name" TEXT, + "email" TEXT, + "password" TEXT NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "users_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "detail" ( + "tax_id" TEXT NOT NULL, + "phone" TEXT NOT NULL, + "bio" TEXT NOT NULL, + "city" TEXT NOT NULL, + "county" TEXT NOT NULL, + "post_kode" TEXT NOT NULL, + "photo_profile" TEXT NOT NULL, + + CONSTRAINT "detail_pkey" PRIMARY KEY ("tax_id") +); + +-- CreateTable +CREATE TABLE "data_kecamatan" ( + "id_kecamatan" SERIAL NOT NULL, + "id_komoditas" INTEGER NOT NULL, + "nama_kecamatan" VARCHAR(100) NOT NULL, + "deskripsi" TEXT NOT NULL, + "gambar" TEXT NOT NULL, + "area" DOUBLE PRECISION NOT NULL, + "posisi_x" DOUBLE PRECISION NOT NULL, + "posisi_y" DOUBLE PRECISION NOT NULL, + + CONSTRAINT "data_kecamatan_pkey" PRIMARY KEY ("id_kecamatan") +); + +-- CreateTable +CREATE TABLE "data_penduduk" ( + "id_penduduk" SERIAL NOT NULL, + "id_kecamatan" INTEGER NOT NULL, + "data_tahun" INTEGER NOT NULL, + "jumlah_penduduk" DOUBLE PRECISION NOT NULL, + "laju_pertumbuhan" VARCHAR(30) NOT NULL, + + CONSTRAINT "data_penduduk_pkey" PRIMARY KEY ("id_penduduk") +); + +-- CreateTable +CREATE TABLE "data_komoditas" ( + "id_komoditas" SERIAL NOT NULL, + "nama_komoditas" VARCHAR(100) NOT NULL, + "posisi_x" DOUBLE PRECISION NOT NULL, + "posisi_y" DOUBLE PRECISION NOT NULL, + + CONSTRAINT "data_komoditas_pkey" PRIMARY KEY ("id_komoditas") +); + +-- CreateTable +CREATE TABLE "hasil_panen" ( + "id_panen" SERIAL NOT NULL, + "id_kecamatan" INTEGER NOT NULL, + "id_komoditas" INTEGER NOT NULL, + "tahun_panen" INTEGER NOT NULL, + "produksi" DOUBLE PRECISION NOT NULL, + "luas_panen" DOUBLE PRECISION NOT NULL, + "produktivitas" DOUBLE PRECISION NOT NULL, + + CONSTRAINT "hasil_panen_pkey" PRIMARY KEY ("id_panen") +); + +-- CreateTable +CREATE TABLE "prediksi_panen" ( + "id_prediksi" SERIAL NOT NULL, + "id_kecamatan" INTEGER NOT NULL, + "id_komoditas" INTEGER NOT NULL, + "tahun_prediksi" INTEGER NOT NULL, + "hasil_prediksi" INTEGER NOT NULL, + + CONSTRAINT "prediksi_panen_pkey" PRIMARY KEY ("id_prediksi") +); + +-- CreateIndex +CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); + +-- AddForeignKey +ALTER TABLE "detail" ADD CONSTRAINT "detail_tax_id_fkey" FOREIGN KEY ("tax_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "data_kecamatan" ADD CONSTRAINT "data_kecamatan_id_komoditas_fkey" FOREIGN KEY ("id_komoditas") REFERENCES "data_komoditas"("id_komoditas") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "data_penduduk" ADD CONSTRAINT "data_penduduk_id_kecamatan_fkey" FOREIGN KEY ("id_kecamatan") REFERENCES "data_kecamatan"("id_kecamatan") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "hasil_panen" ADD CONSTRAINT "hasil_panen_id_kecamatan_fkey" FOREIGN KEY ("id_kecamatan") REFERENCES "data_kecamatan"("id_kecamatan") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "hasil_panen" ADD CONSTRAINT "hasil_panen_id_komoditas_fkey" FOREIGN KEY ("id_komoditas") REFERENCES "data_komoditas"("id_komoditas") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "prediksi_panen" ADD CONSTRAINT "prediksi_panen_id_kecamatan_fkey" FOREIGN KEY ("id_kecamatan") REFERENCES "data_kecamatan"("id_kecamatan") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "prediksi_panen" ADD CONSTRAINT "prediksi_panen_id_komoditas_fkey" FOREIGN KEY ("id_komoditas") REFERENCES "data_komoditas"("id_komoditas") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..044d57c --- /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 (e.g., Git) +provider = "postgresql" diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..2028ce2 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,173 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client-js" + output = "../src/lib/generated/prisma" +} + +datasource database { + provider = "postgresql" + url = env("POSTGRES_PRISMA_URL") + directUrl = env("POSTGRES_URL_NON_POOLING") +} + +model User { + id String @id @default(uuid()) + first_name String? + last_name String? + email String? @unique + email_verified DateTime? + password String? + image String? + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + detail Detail? + accounts Account[] + sessions Session[] + + @@map("users") +} + +model Detail { + id_detail String @id @default(uuid()) + id_tax String @unique + phone String + bio String + city String + country String + post_kode String + + user User @relation(fields: [id_tax], references: [id]) + + @@map("detail") +} + +model Account { + id String @id @default(cuid()) + id_user String @map("id_user") + id_provider String + id_token String? @database.Text + type String + scope String? + provider String + expires_at Int? + token_type String? + access_token String? @database.Text + refresh_token String? @database.Text + session_state String? + + user User @relation(fields: [id_user], references: [id], onDelete: Cascade) + + @@unique([provider, id_provider]) + @@map("account") +} + +model Session { + id String @id @default(cuid()) + id_user String @map("id_user") + session_token String @unique + expires DateTime + + user User @relation(fields: [id_user], references: [id], onDelete: Cascade) + + @@map("session") +} + +model VerificationToken { + identifier String + token String @unique + expires DateTime + + @@unique([identifier, token]) + + @@map("token") +} + +model Kecamatan { + id_kecamatan Int @id @default(autoincrement()) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + nama_kecamatan String @database.VarChar(100) + deskripsi String @database.Text + gambar String @database.Text + area Float + posisi_x Int + posisi_y Int + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + penduduk Penduduk[] + hasil_panen HasilPanen[] + prediksi_panen PrediksiPanen[] + + @@map("data_kecamatan") +} + +model Penduduk { + id_penduduk Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + data_tahun Int + jumlah_penduduk Float + laju_pertumbuhan String @database.VarChar(30) + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + @@map("data_penduduk") +} + +model Komoditas { + id_komoditas Int @id @default(autoincrement()) + nama_komoditas String @database.VarChar(100) + posisi_x Int + posisi_y Int + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + deleted_at DateTime? @map("deleted_at") + + kecamatan Kecamatan[] + hasil_panen HasilPanen[] + prediksi_panen PrediksiPanen[] + + @@map("data_komoditas") +} + +model HasilPanen { + id_panen Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + tahun_panen Int + produksi Float + luas_panen Float + produktivitas Float + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + @@map("hasil_panen") +} + +model PrediksiPanen { + id_prediksi Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + tahun_prediksi Int + hasil_prediksi Int + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + @@map("prediksi_panen") +} \ No newline at end of file diff --git a/public/assets/css/animated.css b/public/assets/css/animated.css new file mode 100644 index 0000000..f784ce8 --- /dev/null +++ b/public/assets/css/animated.css @@ -0,0 +1,3158 @@ +@charset "UTF-8"; +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2014 Daniel Eden +*/ + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +@keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + -ms-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +@keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes slideInDown { + 0% { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes slideInLeft { + 0% { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translateX(100%); + transform: translateX(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes slideInRight { + 0% { + -webkit-transform: translateX(100%); + transform: translateX(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translateY(100%); + transform: translateY(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes slideInUp { + 0% { + -webkit-transform: translateY(100%); + transform: translateY(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} + +@keyframes slideOutDown { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +@keyframes slideOutLeft { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} + +@keyframes slideOutRight { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +@keyframes slideOutUp { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} diff --git a/public/assets/css/fontawesome.css b/public/assets/css/fontawesome.css new file mode 100644 index 0000000..24fcc04 --- /dev/null +++ b/public/assets/css/fontawesome.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file diff --git a/public/assets/css/owl.css b/public/assets/css/owl.css new file mode 100644 index 0000000..b78c841 --- /dev/null +++ b/public/assets/css/owl.css @@ -0,0 +1,186 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +/* + * Owl Carousel - Core + */ +.owl-carousel { + display: none; + width: 100%; + -webkit-tap-highlight-color: transparent; + /* position relative and z-index fix webkit rendering fonts issue */ + position: relative; + z-index: 1; } + .owl-carousel .owl-stage { + position: relative; + -ms-touch-action: pan-Y; + touch-action: manipulation; + -moz-backface-visibility: hidden; + /* fix firefox animation glitch */ } + .owl-carousel .owl-stage:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; } + .owl-carousel .owl-stage-outer { + position: relative; + overflow: hidden; + /* fix for flashing background */ + -webkit-transform: translate3d(0px, 0px, 0px); } + .owl-carousel .owl-wrapper, + .owl-carousel .owl-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); } + .owl-carousel .owl-item { + position: relative; + min-height: 1px; + float: left; + -webkit-backface-visibility: hidden; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; } + .owl-carousel .owl-item img { + display: block; + width: 100%; } + .owl-carousel .owl-nav.disabled, + .owl-carousel .owl-dots.disabled { + display: none; } + .owl-carousel .owl-nav .owl-prev, + .owl-carousel .owl-nav .owl-next, + .owl-carousel .owl-dot { + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .owl-carousel .owl-nav button.owl-prev, + .owl-carousel .owl-nav button.owl-next, + .owl-carousel button.owl-dot { + background: none; + color: inherit; + border: none; + padding: 0 !important; + font: inherit; } + .owl-carousel.owl-loaded { + display: block; } + .owl-carousel.owl-loading { + opacity: 0; + display: block; } + .owl-carousel.owl-hidden { + opacity: 0; } + .owl-carousel.owl-refresh .owl-item { + visibility: hidden; } + .owl-carousel.owl-drag .owl-item { + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .owl-carousel.owl-grab { + cursor: move; + cursor: grab; } + .owl-carousel.owl-rtl { + direction: rtl; } + .owl-carousel.owl-rtl .owl-item { + float: right; } + +/* No Js */ +.no-js .owl-carousel { + display: block; } + +/* + * Owl Carousel - Animate Plugin + */ +.owl-carousel .animated { + animation-duration: 1000ms; + animation-fill-mode: both; } + +.owl-carousel .owl-animated-in { + z-index: 0; } + +.owl-carousel .owl-animated-out { + z-index: 1; } + +.owl-carousel .fadeOut { + animation-name: fadeOut; } + +@keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +/* + * Owl Carousel - Auto Height Plugin + */ +.owl-height { + transition: height 500ms ease-in-out; } + +/* + * Owl Carousel - Lazy Load Plugin + */ +.owl-carousel .owl-item { + /** + This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong + calculation of the height of the owl-item that breaks page layouts + */ } + .owl-carousel .owl-item .owl-lazy { + opacity: 0; + transition: opacity 400ms ease; } + .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) { + max-height: 0; } + .owl-carousel .owl-item img.owl-lazy { + transform-style: preserve-3d; } + +/* + * Owl Carousel - Video Plugin + */ +.owl-carousel .owl-video-wrapper { + position: relative; + height: 100%; + background: #000; } + +.owl-carousel .owl-video-play-icon { + position: absolute; + height: 80px; + width: 80px; + left: 50%; + top: 50%; + margin-left: -40px; + margin-top: -40px; + background: url("owl.video.play.png") no-repeat; + cursor: pointer; + z-index: 1; + -webkit-backface-visibility: hidden; + transition: transform 100ms ease; } + +.owl-carousel .owl-video-play-icon:hover { + -ms-transform: scale(1.3, 1.3); + transform: scale(1.3, 1.3); } + +.owl-carousel .owl-video-playing .owl-video-tn, +.owl-carousel .owl-video-playing .owl-video-play-icon { + display: none; } + +.owl-carousel .owl-video-tn { + opacity: 0; + height: 100%; + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + transition: opacity 400ms ease; } + +.owl-carousel .owl-video-frame { + position: relative; + z-index: 1; + height: 100%; + width: 100%; } \ No newline at end of file diff --git a/public/assets/css/templatemo-space-dynamic.css b/public/assets/css/templatemo-space-dynamic.css new file mode 100644 index 0000000..65d53b2 --- /dev/null +++ b/public/assets/css/templatemo-space-dynamic.css @@ -0,0 +1,1577 @@ +/* + +TemplateMo 562 Space Dynamic + +https://templatemo.com/tm-562-space-dynamic + +*/ + +/* --------------------------------------------- +Table of contents +------------------------------------------------ +01. font & reset css +02. reset +03. global styles +04. header +05. banner +06. features +07. testimonials +08. contact +09. footer +10. preloader +11. search +12. portfolio + +--------------------------------------------- */ +/* +--------------------------------------------- +font & reset css +--------------------------------------------- +*/ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap'); +/* +--------------------------------------------- +reset +--------------------------------------------- +*/ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, div +pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, +s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, +figure, header, nav, section, article, aside, footer, figcaption { + margin: 0; + padding: 0; + border: 0; + outline: 0; +} + +/* clear fix */ +.grid:after { + content: ''; + display: block; + clear: both; +} + +/* ---- .grid-item ---- */ + +.grid-sizer, +.grid-item { + width: 50%; +} + +.grid-item { + float: left; +} + +.grid-item img { + display: block; + max-width: 100%; +} + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +.clearfix { + display: inline-block; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} + +ul, li { + padding: 0; + margin: 0; + list-style: none; +} + +header, nav, section, article, aside, footer, hgroup { + display: block; +} + +* { + box-sizing: border-box; +} + +html, body { + font-family: 'Poppins', sans-serif; + font-weight: 400; + background-color: #fff; + -ms-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + text-decoration: none !important; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0px; + margin-bottom: 0px; +} + +ul { + margin-bottom: 0px; +} + +p { + font-size: 15px; + line-height: 30px; + color: #2a2a2a; +} + +img { + width: 100%; + overflow: hidden; +} + +/* +--------------------------------------------- +global styles +--------------------------------------------- +*/ +html, +body { + background: #fff; + font-family: 'Poppins', sans-serif; +} + +::selection { + background: #468135; + color: #fff; +} + +::-moz-selection { + background: #468135; + color: #fff; +} + +@media (max-width: 991px) { + html, body { + overflow-x: hidden; + } + .mobile-top-fix { + margin-top: 30px; + margin-bottom: 0px; + } + .mobile-bottom-fix { + margin-bottom: 30px; + } + .mobile-bottom-fix-big { + margin-bottom: 60px; + } +} + +.page-section { + margin-top: 120px; +} + +.section-heading h2 { + font-size: 30px; + text-transform: capitalize; + color: #2a2a2a; + font-weight: 700; + letter-spacing: 0.25px; + position: relative; + z-index: 2; + line-height: 44px; +} + +.section-heading h2 em { + font-style: normal; + color: #468135; +} + +.section-heading h2 span { + color: #9F1D1B; +} + +.main-blue-button a { + display: inline-block; + background-color: #468135; + font-size: 15px; + font-weight: 400; + color: #fff; + text-transform: capitalize; + padding: 12px 25px; + border-radius: 23px; + letter-spacing: 0.25px; +} + +.main-red-button a { + display: inline-block; + background-color: #9F1D1B; + font-size: 15px; + font-weight: 400; + color: #fff; + text-transform: capitalize; + padding: 12px 25px; + border-radius: 23px; + letter-spacing: 0.25px; +} + +.main-white-button a { + display: inline-block; + background-color: #fff; + font-size: 15px; + font-weight: 400; + color: #9F1D1B; + text-transform: capitalize; + padding: 12px 25px; + border-radius: 23px; + letter-spacing: 0.25px; +} + +/* +--------------------------------------------- +header +--------------------------------------------- +*/ + +.background-header { + background-color: #fff!important; + height: 80px!important; + position: fixed!important; + top: 0px; + left: 0px; + right: 0px; + box-shadow: 0px 0px 10px rgba(0,0,0,0.15)!important; +} + +.background-header .logo, +.background-header .main-nav .nav li a { + color: #1e1e1e!important; +} + +.background-header .main-nav .nav li:hover a { + color: #9F1D1B!important; +} + +.background-header .nav li a.active { + color: #9F1D1B!important; +} + +.header-area { + background-color: #fafafa; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + z-index: 100; + height: 100px; + -webkit-transition: all .5s ease 0s; + -moz-transition: all .5s ease 0s; + -o-transition: all .5s ease 0s; + transition: all .5s ease 0s; +} + +.header-area .main-nav { + min-height: 80px; + background: transparent; +} + +.header-area .main-nav .logo { + line-height: 100px; + color: #fff; + font-size: 24px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 2px; + float: left; + -webkit-transition: all 0.3s ease 0s; + -moz-transition: all 0.3s ease 0s; + -o-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; +} + +.header-area .main-nav .logo h4 { + font-size: 24px; + font-weight: 700; + text-transform: uppercase; + color: #468135; + line-height: 100px; + float: left; + -webkit-transition: all 0.3s ease 0s; + -moz-transition: all 0.3s ease 0s; + -o-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; +} + +.logo h4 span { + color: #9F1D1B; +} + +.background-header .main-nav .logo h4 { + line-height: 80px; +} + +.background-header .main-nav .nav { + margin-top: 20px !important; +} + +.header-area .main-nav .nav { + float: right; + margin-top: 30px; + margin-right: 0px; + background-color: transparent; + -webkit-transition: all 0.3s ease 0s; + -moz-transition: all 0.3s ease 0s; + -o-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; + position: relative; + z-index: 999; +} + +.header-area .main-nav .nav li { + padding-left: 20px; + padding-right: 20px; +} + +.header-area .main-nav .nav li:last-child { + padding-right: 0px; + padding-left: 40px; +} + +.header-area .main-nav .nav li:last-child a , +.background-header .main-nav .nav li:last-child a { + color: #fff !important; + padding: 0px 20px; + font-weight: 400; +} + +.header-area .main-nav .nav li:last-child a:hover, +.header-area .main-nav .nav li:last-child a.active { + color: #fff !important; +} + +.header-area .main-nav .nav li a { + display: block; + font-weight: 500; + font-size: 15px; + color: #2a2a2a; + text-transform: capitalize; + -webkit-transition: all 0.3s ease 0s; + -moz-transition: all 0.3s ease 0s; + -o-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; + height: 40px; + line-height: 40px; + border: transparent; + letter-spacing: 1px; +} + +.header-area .main-nav .nav li a { + color: #2a2a2a; +} + +.header-area .main-nav .nav li:hover a, +.header-area .main-nav .nav li a.active { + color: #9F1D1B!important; +} + +.background-header .main-nav .nav li:hover a, +.background-header .main-nav .nav li a.active { + color: #9F1D1B!important; + opacity: 1; +} + +.header-area .main-nav .nav li:last-child a:hover , +.background-header .main-nav .nav li:last-child a:hover { + background-color: #468135; +} + +.header-area .main-nav .nav li.submenu { + position: relative; + padding-right: 30px; +} + +.header-area .main-nav .nav li.submenu:after { + font-family: FontAwesome; + content: "\f107"; + font-size: 12px; + color: #2a2a2a; + position: absolute; + right: 18px; + top: 12px; +} + +.background-header .main-nav .nav li.submenu:after { + color: #2a2a2a; +} + +.header-area .main-nav .nav li.submenu ul { + position: absolute; + width: 200px; + box-shadow: 0 2px 28px 0 rgba(0, 0, 0, 0.06); + overflow: hidden; + top: 50px; + opacity: 0; + transform: translateY(+2em); + visibility: hidden; + z-index: -1; + transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s; +} + +.header-area .main-nav .nav li.submenu ul li { + margin-left: 0px; + padding-left: 0px; + padding-right: 0px; +} + +.header-area .main-nav .nav li.submenu ul li a { + opacity: 1; + display: block; + background: #f7f7f7; + color: #2a2a2a!important; + padding-left: 20px; + height: 40px; + line-height: 40px; + -webkit-transition: all 0.3s ease 0s; + -moz-transition: all 0.3s ease 0s; + -o-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; + position: relative; + font-size: 13px; + font-weight: 400; + border-bottom: 1px solid #eee; +} + +.header-area .main-nav .nav li.submenu ul li a:hover { + background: #fff; + color: #9F1D1B!important; + padding-left: 25px; +} + +.header-area .main-nav .nav li.submenu ul li a:hover:before { + width: 3px; +} + +.header-area .main-nav .nav li.submenu:hover ul { + visibility: visible; + opacity: 1; + z-index: 1; + transform: translateY(0%); + transition-delay: 0s, 0s, 0.3s; +} + +.header-area .main-nav .menu-trigger { + cursor: pointer; + display: block; + position: absolute; + top: 33px; + width: 32px; + height: 40px; + text-indent: -9999em; + z-index: 99; + right: 40px; + display: none; +} + +.background-header .main-nav .menu-trigger { + top: 23px; +} + +.header-area .main-nav .menu-trigger span, +.header-area .main-nav .menu-trigger span:before, +.header-area .main-nav .menu-trigger span:after { + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + -webkit-transition: all 0.4s; + transition: all 0.4s; + background-color: #1e1e1e; + display: block; + position: absolute; + width: 30px; + height: 2px; + left: 0; +} + +.background-header .main-nav .menu-trigger span, +.background-header .main-nav .menu-trigger span:before, +.background-header .main-nav .menu-trigger span:after { + background-color: #1e1e1e; +} + +.header-area .main-nav .menu-trigger span:before, +.header-area .main-nav .menu-trigger span:after { + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + -webkit-transition: all 0.4s; + transition: all 0.4s; + background-color: #1e1e1e; + display: block; + position: absolute; + width: 30px; + height: 2px; + left: 0; + width: 75%; +} + +.background-header .main-nav .menu-trigger span:before, +.background-header .main-nav .menu-trigger span:after { + background-color: #1e1e1e; +} + +.header-area .main-nav .menu-trigger span:before, +.header-area .main-nav .menu-trigger span:after { + content: ""; +} + +.header-area .main-nav .menu-trigger span { + top: 16px; +} + +.header-area .main-nav .menu-trigger span:before { + -moz-transform-origin: 33% 100%; + -ms-transform-origin: 33% 100%; + -webkit-transform-origin: 33% 100%; + transform-origin: 33% 100%; + top: -10px; + z-index: 10; +} + +.header-area .main-nav .menu-trigger span:after { + -moz-transform-origin: 33% 0; + -ms-transform-origin: 33% 0; + -webkit-transform-origin: 33% 0; + transform-origin: 33% 0; + top: 10px; +} + +.header-area .main-nav .menu-trigger.active span, +.header-area .main-nav .menu-trigger.active span:before, +.header-area .main-nav .menu-trigger.active span:after { + background-color: transparent; + width: 100%; +} + +.header-area .main-nav .menu-trigger.active span:before { + -moz-transform: translateY(6px) translateX(1px) rotate(45deg); + -ms-transform: translateY(6px) translateX(1px) rotate(45deg); + -webkit-transform: translateY(6px) translateX(1px) rotate(45deg); + transform: translateY(6px) translateX(1px) rotate(45deg); + background-color: #1e1e1e; +} + +.background-header .main-nav .menu-trigger.active span:before { + background-color: #1e1e1e; +} + +.header-area .main-nav .menu-trigger.active span:after { + -moz-transform: translateY(-6px) translateX(1px) rotate(-45deg); + -ms-transform: translateY(-6px) translateX(1px) rotate(-45deg); + -webkit-transform: translateY(-6px) translateX(1px) rotate(-45deg); + transform: translateY(-6px) translateX(1px) rotate(-45deg); + background-color: #1e1e1e; +} + +.background-header .main-nav .menu-trigger.active span:after { + background-color: #1e1e1e; +} + +.header-area.header-sticky { + min-height: 80px; +} + +.header-area .nav { + margin-top: 30px; +} + +.header-area.header-sticky .nav li a.active { + color: #9F1D1B; +} + +@media (max-width: 1200px) { + .header-area .main-nav .nav li { + padding-left: 12px; + padding-right: 12px; + } + .header-area .main-nav:before { + display: none; + } +} + +@media (max-width: 992px) { + .header-area .main-nav .nav li:last-child , + .background-header .main-nav .nav li:last-child { + display: none; + } + .header-area .main-nav .nav li:nth-child(6), + .background-header .main-nav .nav li:nth-child(6) { + padding-right: 0px; + } +} + +@media (max-width: 767px) { + .background-header .main-nav .nav { + margin-top: 80px !important; + } + .header-area .main-nav .logo { + color: #1e1e1e; + } + .header-area.header-sticky .nav li a:hover, + .header-area.header-sticky .nav li a.active { + color: #9F1D1B!important; + opacity: 1; + } + .header-area.header-sticky .nav li.search-icon a { + width: 100%; + } + .header-area { + background-color: #f7f7f7; + padding: 0px 15px; + height: 100px; + box-shadow: none; + text-align: center; + } + .header-area .container { + padding: 0px; + } + .header-area .logo { + margin-left: 30px; + } + .header-area .menu-trigger { + display: block !important; + } + .header-area .main-nav { + overflow: hidden; + } + .header-area .main-nav .nav { + float: none; + width: 100%; + display: none; + -webkit-transition: all 0s ease 0s; + -moz-transition: all 0s ease 0s; + -o-transition: all 0s ease 0s; + transition: all 0s ease 0s; + margin-left: 0px; + } + .background-header .nav { + margin-top: 80px; + } + .header-area .main-nav .nav li:first-child { + border-top: 1px solid #eee; + } + .header-area.header-sticky .nav { + margin-top: 100px; + } + .header-area .main-nav .nav li { + width: 100%; + background: #fff; + border-bottom: 1px solid #e7e7e7; + padding-left: 0px !important; + padding-right: 0px !important; + } + .header-area .main-nav .nav li a { + height: 50px !important; + line-height: 50px !important; + padding: 0px !important; + border: none !important; + background: #f7f7f7 !important; + color: #191a20 !important; + } + .header-area .main-nav .nav li a:hover { + background: #eee !important; + color: #9F1D1B!important; + } + .header-area .main-nav .nav li.submenu ul { + position: relative; + visibility: inherit; + opacity: 1; + z-index: 1; + transform: translateY(0%); + transition-delay: 0s, 0s, 0.3s; + top: 0px; + width: 100%; + box-shadow: none; + height: 0px; + } + .header-area .main-nav .nav li.submenu ul li a { + font-size: 12px; + font-weight: 400; + } + .header-area .main-nav .nav li.submenu ul li a:hover:before { + width: 0px; + } + .header-area .main-nav .nav li.submenu ul.active { + height: auto !important; + } + .header-area .main-nav .nav li.submenu:after { + color: #3B566E; + right: 25px; + font-size: 14px; + top: 15px; + } + .header-area .main-nav .nav li.submenu:hover ul, .header-area .main-nav .nav li.submenu:focus ul { + height: 0px; + } +} + +@media (min-width: 767px) { + .header-area .main-nav .nav { + display: flex !important; + } +} + +/* +--------------------------------------------- +preloader +--------------------------------------------- +*/ + +.js-preloader { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #fff; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + opacity: 1; + visibility: visible; + z-index: 9999; + -webkit-transition: opacity 0.25s ease; + transition: opacity 0.25s ease; +} + +.js-preloader.loaded { + opacity: 0; + visibility: hidden; + pointer-events: none; +} + +@-webkit-keyframes dot { + 50% { + -webkit-transform: translateX(96px); + transform: translateX(96px); + } +} + +@keyframes dot { + 50% { + -webkit-transform: translateX(96px); + transform: translateX(96px); + } +} + +@-webkit-keyframes dots { + 50% { + -webkit-transform: translateX(-31px); + transform: translateX(-31px); + } +} + +@keyframes dots { + 50% { + -webkit-transform: translateX(-31px); + transform: translateX(-31px); + } +} + +.preloader-inner { + position: relative; + width: 142px; + height: 40px; + background: #fff; +} + +.preloader-inner .dot { + position: absolute; + width: 16px; + height: 16px; + top: 12px; + left: 15px; + background: #9F1D1B; + border-radius: 50%; + -webkit-transform: translateX(0); + transform: translateX(0); + -webkit-animation: dot 2.8s infinite; + animation: dot 2.8s infinite; +} + +.preloader-inner .dots { + -webkit-transform: translateX(0); + transform: translateX(0); + margin-top: 12px; + margin-left: 31px; + -webkit-animation: dots 2.8s infinite; + animation: dots 2.8s infinite; +} + +.preloader-inner .dots span { + display: block; + float: left; + width: 16px; + height: 16px; + margin-left: 16px; + background: #9F1D1B; + border-radius: 50%; +} + + + +/* +--------------------------------------------- +Banner Style +--------------------------------------------- +*/ + +.main-banner { + background-repeat: no-repeat; + background-position: center center; + background-size: cover; + padding: 226px 0px 120px 0px; + position: relative; + overflow: hidden; +} + +.main-banner:after { + content: ''; + background-image: url(../images/baner-dec-left.png); + background-repeat: no-repeat; + position: absolute; + left: 0; + top: 100px; + width: 193px; + height: 467px; +} + +.main-banner:before { + content: ''; + background-image: url(../images/baner-dec-right.png); + background-repeat: no-repeat; + position: absolute; + right: 0; + top: 100px; + width: 98px; + height: 290px; +} + +.main-banner .left-content { + margin-right: 45px; +} + +.main-banner .left-content h6 { + text-transform: uppercase; + font-size: 18px; + color: #9F1D1B; + margin-bottom: 15px; +} + +.main-banner .left-content h2 { + font-size: 50px; + font-weight: 700; + color: #2a2a2a; + line-height: 72px; +} + +.main-banner .left-content h2 em { + color: #468135; + font-style: normal; +} + +.main-banner .left-content h2 span { + color: #9F1D1B; +} + +.main-banner .left-content p { + margin: 20px 0px; +} + +.main-banner .left-content form { + margin-top: 30px; + width: 470px; + height: 66px; + position: relative; +} + +.main-banner .left-content form button { + position: absolute; + right: 10px; + top: 10px; + display: inline-block; + background-color: #fff; + font-size: 15px; + font-weight: 500; + color: #9F1D1B; + text-transform: capitalize; + padding: 12px 25px; + border-radius: 23px; + letter-spacing: 0.25px; + outline: none; + border: none; +} + +.main-banner .left-content form input { + width: 470px; + height: 66px; + background-color: #468135; + border-radius: 33px; + border: none; + outline: none; + padding: 0px 25px; + color: #fff; + letter-spacing: 0.25px; + font-size: 15px; + font-weight: 300; +} + +.main-banner .left-content form input::placeholder { + color: #fff; +} + + + +/* +--------------------------------------------- +About Us Style +--------------------------------------------- +*/ + +#about { + margin-top: 120px; +} + +.about-us { + background-image: url(../images/about-bg.png); + background-repeat: no-repeat; + background-position: center center; + background-size: cover; + padding: 140px 0px 120px 0px; +} + +.about-us .left-image { + margin-right: 45px; +} + +.about-us .services .item { + margin-bottom: 30px; +} + +.about-us .services .item .icon { + float: left; + margin-right: 25px; +} + +.about-us .services .item .icon img { + max-width: 70px; +} + +.about-us .services .item h4 { + color: #fff; + font-size: 20px; + font-weight: 700; + margin-bottom: 12px; +} + +.about-us .services .item p { + color: #fff; +} + + +/* +--------------------------------------------- +Services Style +--------------------------------------------- +*/ + +.our-services { + margin-top: 0px; + padding-top: 120px; +} + +.our-services .left-image { + margin-right: 45px; +} + +.our-services .section-heading h2 { + margin-right: 100px; +} + +.our-services .section-heading p { + margin-top: 30px; + margin-bottom: 60px; +} + +.our-services .progress-skill-bar { + margin-bottom: 30px; + position: relative; + width: 100%; +} + +.our-services .progress-skill-bar span { + position: absolute; + top: 0; + font-size: 18px; + font-weight: 600; + color: #468135; +} + +.our-services .first-bar span { + left: 69%; +} + +.our-services .second-bar span { + left: 81%; +} + +.our-services .third-bar span { + left: 88%; +} + +.our-services .progress-skill-bar h4 { + font-size: 18px; + font-weight: 700; + color: #2a2a2a; + margin-bottom: 14px; +} + +.our-services .progress-skill-bar .full-bar { + width: 100%; + height: 6px; + border-radius: 3px; + background-color: #f7eff1; + position: relative; + z-index: 1; +} + +.our-services .progress-skill-bar .filled-bar { + background: rgb(255,77,30); + background: linear-gradient(105deg, rgba(255,77,30,1) 0%, rgba(255,44,109,1) 100%); + height: 6px; + border-radius: 3px; + margin-bottom: -6px; + position: relative; + z-index: 2; +} + +.our-services .first-bar .filled-bar { + width: 71%; +} + +.our-services .second-bar .filled-bar { + width: 83%; +} + +.our-services .third-bar .filled-bar { + width: 90%; +} + + +/* +--------------------------------------------- +Portfolio +--------------------------------------------- +*/ + +.our-portfolio { + padding-top: 120px; + margin-top: 0px; +} + +.our-portfolio .section-heading h2 { + text-align: center; + margin: 0px 90px 0px 90px; + margin-bottom: 120px; + position: relative; + z-index: 1; +} + +.our-portfolio .item { + position: relative; +} + +.our-portfolio .item:hover .hidden-content { + top: -100px; + opacity: 1; + visibility: visible; +} + +.our-portfolio .item:hover .showed-content { + top: 90px; +} + +.our-portfolio .hidden-content { + background: rgb(255,77,30); + background: linear-gradient(105deg, rgba(255,77,30,1) 0%, rgba(255,44,109,1) 100%); + padding: 30px; + border-radius: 20px; + text-align: center; + opacity: 0; + top: 0; + visibility: hidden; + position: absolute; + z-index: 2; + transition: all 0.5s; +} + +.our-portfolio .hidden-content:after { + width: 20px; + height: 20px; + position: absolute; + background: rgb(255,77,30); + content: ''; + left: 50%; + bottom: -8px; + margin-left: -5px; + transform: rotate(45deg); + background: linear-gradient(105deg, rgba(255,52,69,1) 0%, rgba(255,51,78,1) 100%); + z-index: -1; +} + +.our-portfolio .hidden-content h4 { + font-size: 20px; + font-weight: 700; + color: #fff; + margin-bottom: 20px; +} + +.our-portfolio .hidden-content p { + color: #fff; +} + +.our-portfolio .showed-content { + top: 0px; + position: relative; + z-index: 3; + background-color: #fff; + text-align: center; + padding: 50px; + border-radius: 20px; + box-shadow: 0px 0px 10px rgba(0,0,0,0.1); + transition: all 0.5s; +} + +.our-portfolio .showed-content img { + max-width: 100px; +} + + +/* +--------------------------------------------- +Blog +--------------------------------------------- +*/ + +.our-blog { + position: relative; + margin-top: 80px; + padding-top: 120px; +} + +.our-blog .section-heading h2 { + margin-right: 180px; +} + +.our-blog .top-dec { + text-align: right; + margin-top: -80px; +} + +.our-blog .top-dec img { + max-width: 270px; +} + +.our-blog .left-image { + position: relative; +} + +.our-blog .left-image img { + border-radius: 20px; + box-shadow: 0px 0px 15px rgba(0,0,0,0.1); +} + +.our-blog .left-image .info { + position: relative; +} + +.our-blog .left-image .info .inner-content { + background-color: #fff; + box-shadow: 0px 0px 15px rgba(0,0,0,0.1); + border-radius: 20px; + margin-right: 75px; + position: absolute; + margin-top: -100px; + padding: 30px; +} + +.our-blog .left-image ul li { + display: inline-block; + font-size: 15px; + color: #afafaf; + font-weight: 300; + margin-right: 20px; +} + +.our-blog .left-image ul li:last-child { + margin-right: 0px; +} + +.our-blog .left-image ul li i { + color: #ff4d61; + font-size: 16px; + margin-right: 8px; +} + +.our-blog .left-image h4 { + font-size: 20px; + font-weight: 700; + color: #2a2a2a; + margin: 20px 0px 15px 0px; +} + +.our-blog .left-image .info .main-blue-button { + position: absolute; + bottom: -80px; + left: 0; +} + +.our-blog .right-list { + margin-left: 30px; +} + +.our-blog .right-list ul li { + display: inline-flex; + width: 100%; + margin-bottom: 30px; +} + +.our-blog .right-list .left-content { + margin-right: 45px; +} + +.our-blog .right-list .left-content span { + font-size: 15px; + color: #afafaf; + font-weight: 300; +} + +.our-blog .right-list .left-content span i { + color: #ff4d61; + font-size: 16px; + margin-right: 8px; +} + +.our-blog .right-list .left-content h4 { + font-size: 20px; + font-weight: 700; + color: #2a2a2a; + margin: 20px 0px 15px 0px; +} + + +.our-blog .right-list .right-image img { + width: 250px; + border-radius: 20px; +} + + +/* +--------------------------------------------- +contact +--------------------------------------------- +*/ + +.contact-us { + padding: 160px 0px; + background-image: url(../images/contact-bg.png); + background-repeat: no-repeat; + background-position: center center; + background-size: cover; +} + +.contact-us .section-heading h2, +.contact-us .section-heading h2 em, +.contact-us .section-heading h2 span { + color: #fff; +} + +.contact-us .section-heading p { + color: #fff; + margin-top: 30px; +} + +.phone-info { + margin-top: 40px; +} + +.phone-info h4 { + font-size: 20px; + font-weight: 700; + color: #fff; +} + +.phone-info h4 span i { + width: 46px; + height: 46px; + display: inline-block; + text-align: center; + line-height: 46px; + background-color: #fff; + border-radius: 50%; + color: #ff3b2c; + font-size: 22px; + margin-left: 30px; + margin-right: 15px; +} + +.phone-info h4 span a { + color: #fff; + font-size: 15px; + font-weight: 400; +} + +form#contact .contact-dec { + position: absolute; + right: -166px; + bottom: 0; +} + +form#contact .contact-dec img { + max-width: 178px; +} + +form#contact { + margin-left: 30px; + position: relative; + background-color: #fff; + padding: 60px 30px; + border-radius: 20px; +} + +form#contact input { + width: 100%; + height: 46px; + border-radius: 33px; + background-color: #d1f3ff; + border: none; + outline: none; + font-size: 15px; + font-weight: 300; + color: #2a2a2a; + padding: 0px 20px; + margin-bottom: 20px; +} + +form#contact input::placeholder { + color: #2a2a2a; +} + +form#contact textarea { + width: 100%; + min-width: 100%; + max-width: 100%; + max-height: 180px; + min-height: 140px; + height: 140px; + border-radius: 20px; + background-color: #d1f3ff; + border: none; + outline: none; + font-size: 15px; + font-weight: 300; + color: #2a2a2a; + padding: 15px 20px; + margin-bottom: 20px; +} + +form#contact textarea::placeholder { + color: #2a2a2a; +} + +form#contact button { + display: inline-block; + background-color: #468135; + font-size: 15px; + font-weight: 400; + color: #fff; + text-transform: capitalize; + padding: 12px 25px; + border-radius: 23px; + letter-spacing: 0.25px; + border: none; + outline: none; + transition: all .3s; +} + +form#contact button:hover { + background-color: #9F1D1B; +} + + +/* +--------------------------------------------- +Footer Style +--------------------------------------------- +*/ + +footer p { + text-align: center; + margin: 30px 0px 45px 0px; +} + +footer p a { + color: #9F1D1B; +} + +/* +--------------------------------------------- +responsive +--------------------------------------------- +*/ + +@media (max-width: 1645px) { + form#contact .contact-dec { + display: none; + } +} + +@media (max-width: 992px) { + .main-banner { + padding-top: 196px; + } + .main-banner .left-content { + margin-right: 0px; + text-align: center; + margin-bottom: 45px; + } + .main-banner:after { + top: 76px; + z-index: -1; + } + .main-banner .left-content form, + .main-banner .left-content form input { + width: 100%!important; + } + #about { + margin-top: 0px; + } + .about-us { + position: relative; + background-image: none; + padding: 0px; + } + .about-us .left-image { + margin-right: 0px; + position: absolute; + bottom: -220px; + right: 0; + } + .about-us .services { + text-align: center; + } + .about-us .services .item { + background: rgb(255,77,30); + background: linear-gradient(105deg, rgba(255,77,30,1) 0%, rgba(255,44,109,1) 100%); + padding: 30px; + border-radius: 20px; + display: inline-block; + } + .about-us .services .item .right-text { + text-align: left; + } + .our-services { + margin-top: 200px; + } + .our-services .left-image { + margin-right: 0px; + margin-bottom: 45px; + } + .our-services .section-heading h2, + .our-services .section-heading p { + margin-right: 0px; + text-align: center; + } + .our-portfolio .section-heading h2 { + margin: 0px 0px 80px 0px; + } + .our-portfolio .item { + margin-bottom: 15px; + } + .our-blog { + margin-top: 0px; + } + .our-blog .top-dec { + display: none; + } + .our-blog .section-heading h2 { + margin-right: 0px; + text-align: center; + margin-bottom: 45px; + } + .our-blog .left-image .info .inner-content { + position: relative; + margin-right: 0px; + } + .our-blog .left-image .info .main-blue-button { + position: relative; + bottom: 0px; + margin-top: 30px; + } + .our-blog .left-image { + margin-bottom: 45px; + } + .contact-us { + margin-top: 60px; + padding: 120px 0px; + } + .contact-us .section-heading { + text-align: center; + } + form#contact { + margin-left: 0px; + margin-top: 30px; + } + form#contact .contact-dec { + display: none; + } + footer p { + margin: 15px 0px 30px 0px; + } +} + +@media (max-width: 767px) { + .about-us .left-image { + bottom: -280px; + } + .our-blog .right-list { + margin-left: 0px; + } + .our-blog .right-list ul li { + display: inline-block; + margin-top: 0px; + padding-top: 30px; + border-top: 1px solid #eee; + } + .our-blog .right-list .left-content { + margin-right: 0px; + width: 100%; + margin-bottom: 15px; + } + .our-blog .right-list .right-image, + .our-blog .right-list .right-image img { + width: 100%; + } + .phone-info h4 span { + display: block; + margin-top: 15px; + } + .phone-info h4 span i { + margin-left: 0px; + } +} \ No newline at end of file diff --git a/public/assets/fonts/Flaticon.woff b/public/assets/fonts/Flaticon.woff new file mode 100644 index 0000000..8b057c3 Binary files /dev/null and b/public/assets/fonts/Flaticon.woff differ diff --git a/public/assets/fonts/FontAwesome.otf b/public/assets/fonts/FontAwesome.otf new file mode 100644 index 0000000..f7936cc Binary files /dev/null and b/public/assets/fonts/FontAwesome.otf differ diff --git a/public/assets/fonts/flexslider-icon.eot b/public/assets/fonts/flexslider-icon.eot new file mode 100644 index 0000000..97c4196 Binary files /dev/null and b/public/assets/fonts/flexslider-icon.eot differ diff --git a/public/assets/fonts/flexslider-icon.svg b/public/assets/fonts/flexslider-icon.svg new file mode 100644 index 0000000..89fd1ab --- /dev/null +++ b/public/assets/fonts/flexslider-icon.svg @@ -0,0 +1,19 @@ + + + + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/fonts/flexslider-icon.ttf b/public/assets/fonts/flexslider-icon.ttf new file mode 100644 index 0000000..0543298 Binary files /dev/null and b/public/assets/fonts/flexslider-icon.ttf differ diff --git a/public/assets/fonts/flexslider-icon.woff b/public/assets/fonts/flexslider-icon.woff new file mode 100644 index 0000000..10c4eeb Binary files /dev/null and b/public/assets/fonts/flexslider-icon.woff differ diff --git a/public/assets/fonts/fontawesome-webfont.eot b/public/assets/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..33b2bb8 Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.eot differ diff --git a/public/assets/fonts/fontawesome-webfont.svg b/public/assets/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..1ee89d4 --- /dev/null +++ b/public/assets/fonts/fontawesome-webfont.svg @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/fonts/fontawesome-webfont.ttf b/public/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..ed9372f Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.ttf differ diff --git a/public/assets/fonts/fontawesome-webfont.woff b/public/assets/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..8b280b9 Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.woff differ diff --git a/public/assets/fonts/fontawesome-webfont.woff2 b/public/assets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..3311d58 Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.woff2 differ diff --git a/public/assets/fonts/slick.eot b/public/assets/fonts/slick.eot new file mode 100644 index 0000000..2cbab9c Binary files /dev/null and b/public/assets/fonts/slick.eot differ diff --git a/public/assets/fonts/slick.svg b/public/assets/fonts/slick.svg new file mode 100644 index 0000000..b36a66a --- /dev/null +++ b/public/assets/fonts/slick.svg @@ -0,0 +1,14 @@ + + + +Generated by Fontastic.me + + + + + + + + + + diff --git a/public/assets/fonts/slick.ttf b/public/assets/fonts/slick.ttf new file mode 100644 index 0000000..9d03461 Binary files /dev/null and b/public/assets/fonts/slick.ttf differ diff --git a/public/assets/fonts/slick.woff b/public/assets/fonts/slick.woff new file mode 100644 index 0000000..8ee9972 Binary files /dev/null and b/public/assets/fonts/slick.woff differ diff --git a/public/assets/images/about-bg.png b/public/assets/images/about-bg.png new file mode 100644 index 0000000..64eaa17 Binary files /dev/null and b/public/assets/images/about-bg.png differ diff --git a/public/assets/images/about-left-image.png b/public/assets/images/about-left-image.png new file mode 100644 index 0000000..21e6e11 Binary files /dev/null and b/public/assets/images/about-left-image.png differ diff --git a/public/assets/images/baner-dec-left.png b/public/assets/images/baner-dec-left.png new file mode 100644 index 0000000..58b9bf3 Binary files /dev/null and b/public/assets/images/baner-dec-left.png differ diff --git a/public/assets/images/baner-dec-right.png b/public/assets/images/baner-dec-right.png new file mode 100644 index 0000000..a45390b Binary files /dev/null and b/public/assets/images/baner-dec-right.png differ diff --git a/public/assets/images/banner-right-image.png b/public/assets/images/banner-right-image.png new file mode 100644 index 0000000..ebc29c2 Binary files /dev/null and b/public/assets/images/banner-right-image.png differ diff --git a/public/assets/images/bappeda.jpg b/public/assets/images/bappeda.jpg new file mode 100644 index 0000000..80bb273 Binary files /dev/null and b/public/assets/images/bappeda.jpg differ diff --git a/public/assets/images/big-blog-thumb.jpg b/public/assets/images/big-blog-thumb.jpg new file mode 100644 index 0000000..05266ce Binary files /dev/null and b/public/assets/images/big-blog-thumb.jpg differ diff --git a/public/assets/images/blog-dec.png b/public/assets/images/blog-dec.png new file mode 100644 index 0000000..a1417a4 Binary files /dev/null and b/public/assets/images/blog-dec.png differ diff --git a/public/assets/images/blog-thumb-01.jpg b/public/assets/images/blog-thumb-01.jpg new file mode 100644 index 0000000..73fcb00 Binary files /dev/null and b/public/assets/images/blog-thumb-01.jpg differ diff --git a/public/assets/images/bps.jpg b/public/assets/images/bps.jpg new file mode 100644 index 0000000..ed67cad Binary files /dev/null and b/public/assets/images/bps.jpg differ diff --git a/public/assets/images/bwsmap.png b/public/assets/images/bwsmap.png new file mode 100644 index 0000000..64610d9 Binary files /dev/null and b/public/assets/images/bwsmap.png differ diff --git a/public/assets/images/contact-bg.png b/public/assets/images/contact-bg.png new file mode 100644 index 0000000..21a57f6 Binary files /dev/null and b/public/assets/images/contact-bg.png differ diff --git a/public/assets/images/contact-decoration.png b/public/assets/images/contact-decoration.png new file mode 100644 index 0000000..1d8fa98 Binary files /dev/null and b/public/assets/images/contact-decoration.png differ diff --git a/public/assets/images/diperta.webp b/public/assets/images/diperta.webp new file mode 100644 index 0000000..070acc5 Binary files /dev/null and b/public/assets/images/diperta.webp differ diff --git a/public/assets/images/komdigi.png b/public/assets/images/komdigi.png new file mode 100644 index 0000000..3f9ff0c Binary files /dev/null and b/public/assets/images/komdigi.png differ diff --git a/public/assets/images/portfolio-image.png b/public/assets/images/portfolio-image.png new file mode 100644 index 0000000..24d9660 Binary files /dev/null and b/public/assets/images/portfolio-image.png differ diff --git a/public/assets/images/sda.jpg b/public/assets/images/sda.jpg new file mode 100644 index 0000000..678a4be Binary files /dev/null and b/public/assets/images/sda.jpg differ diff --git a/public/assets/images/service-icon-01.png b/public/assets/images/service-icon-01.png new file mode 100644 index 0000000..bae344a Binary files /dev/null and b/public/assets/images/service-icon-01.png differ diff --git a/public/assets/images/service-icon-02.png b/public/assets/images/service-icon-02.png new file mode 100644 index 0000000..560c2be Binary files /dev/null and b/public/assets/images/service-icon-02.png differ diff --git a/public/assets/images/service-icon-03.png b/public/assets/images/service-icon-03.png new file mode 100644 index 0000000..03dfa50 Binary files /dev/null and b/public/assets/images/service-icon-03.png differ diff --git a/public/assets/images/service-icon-04.png b/public/assets/images/service-icon-04.png new file mode 100644 index 0000000..e4480e5 Binary files /dev/null and b/public/assets/images/service-icon-04.png differ diff --git a/public/assets/images/services-left-image.png b/public/assets/images/services-left-image.png new file mode 100644 index 0000000..e75d08d Binary files /dev/null and b/public/assets/images/services-left-image.png differ diff --git a/public/assets/js/animation.js b/public/assets/js/animation.js new file mode 100644 index 0000000..5a0912a --- /dev/null +++ b/public/assets/js/animation.js @@ -0,0 +1,193 @@ +(function() { + var Util, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + Util = (function() { + function Util() {} + + Util.prototype.extend = function(custom, defaults) { + var key, value; + for (key in custom) { + value = custom[key]; + if (value != null) { + defaults[key] = value; + } + } + return defaults; + }; + + Util.prototype.isMobile = function(agent) { + return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent); + }; + + return Util; + + })(); + + this.WOW = (function() { + WOW.prototype.defaults = { + boxClass: 'wow', + animateClass: 'animated', + offset: 0, + mobile: true + }; + + function WOW(options) { + if (options == null) { + options = {}; + } + this.scrollCallback = __bind(this.scrollCallback, this); + this.scrollHandler = __bind(this.scrollHandler, this); + this.start = __bind(this.start, this); + this.scrolled = true; + this.config = this.util().extend(options, this.defaults); + } + + WOW.prototype.init = function() { + var _ref; + this.element = window.document.documentElement; + if ((_ref = document.readyState) === "interactive" || _ref === "complete") { + return this.start(); + } else { + return document.addEventListener('DOMContentLoaded', this.start); + } + }; + + WOW.prototype.start = function() { + var box, _i, _len, _ref; + this.boxes = this.element.getElementsByClassName(this.config.boxClass); + if (this.boxes.length) { + if (this.disabled()) { + return this.resetStyle(); + } else { + _ref = this.boxes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + this.applyStyle(box, true); + } + window.addEventListener('scroll', this.scrollHandler, false); + window.addEventListener('resize', this.scrollHandler, false); + return this.interval = setInterval(this.scrollCallback, 50); + } + } + }; + + WOW.prototype.stop = function() { + window.removeEventListener('scroll', this.scrollHandler, false); + window.removeEventListener('resize', this.scrollHandler, false); + if (this.interval != null) { + return clearInterval(this.interval); + } + }; + + WOW.prototype.show = function(box) { + this.applyStyle(box); + return box.className = "" + box.className + " " + this.config.animateClass; + }; + + WOW.prototype.applyStyle = function(box, hidden) { + var delay, duration, iteration; + duration = box.getAttribute('data-wow-duration'); + delay = box.getAttribute('data-wow-delay'); + iteration = box.getAttribute('data-wow-iteration'); + return box.setAttribute('style', this.customStyle(hidden, duration, delay, iteration)); + }; + + WOW.prototype.resetStyle = function() { + var box, _i, _len, _ref, _results; + _ref = this.boxes; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + _results.push(box.setAttribute('style', 'visibility: visible;')); + } + return _results; + }; + + WOW.prototype.customStyle = function(hidden, duration, delay, iteration) { + var style; + style = hidden ? "visibility: hidden; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none;" : "visibility: visible;"; + if (duration) { + style += "-webkit-animation-duration: " + duration + "; -moz-animation-duration: " + duration + "; animation-duration: " + duration + ";"; + } + if (delay) { + style += "-webkit-animation-delay: " + delay + "; -moz-animation-delay: " + delay + "; animation-delay: " + delay + ";"; + } + if (iteration) { + style += "-webkit-animation-iteration-count: " + iteration + "; -moz-animation-iteration-count: " + iteration + "; animation-iteration-count: " + iteration + ";"; + } + return style; + }; + + WOW.prototype.scrollHandler = function() { + return this.scrolled = true; + }; + + WOW.prototype.scrollCallback = function() { + var box; + if (this.scrolled) { + this.scrolled = false; + this.boxes = (function() { + var _i, _len, _ref, _results; + _ref = this.boxes; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + if (!(box)) { + continue; + } + if (this.isVisible(box)) { + this.show(box); + continue; + } + _results.push(box); + } + return _results; + }).call(this); + if (!this.boxes.length) { + return this.stop(); + } + } + }; + + WOW.prototype.offsetTop = function(element) { + var top; + top = element.offsetTop; + while (element = element.offsetParent) { + top += element.offsetTop; + } + return top; + }; + + WOW.prototype.isVisible = function(box) { + var bottom, offset, top, viewBottom, viewTop; + offset = box.getAttribute('data-wow-offset') || this.config.offset; + viewTop = window.pageYOffset; + viewBottom = viewTop + this.element.clientHeight - offset; + top = this.offsetTop(box); + bottom = top + box.clientHeight; + return top <= viewBottom && bottom >= viewTop; + }; + + WOW.prototype.util = function() { + return this._util || (this._util = new Util()); + }; + + WOW.prototype.disabled = function() { + return !this.config.mobile && this.util().isMobile(navigator.userAgent); + }; + + return WOW; + + })(); + +}).call(this); + + +wow = new WOW( + { + animateClass: 'animated', + offset: 50 + } +); +wow.init(); diff --git a/public/assets/js/imagesloaded.js b/public/assets/js/imagesloaded.js new file mode 100644 index 0000000..f6ac95c --- /dev/null +++ b/public/assets/js/imagesloaded.js @@ -0,0 +1,496 @@ +/*! + * imagesLoaded PACKAGED v4.1.4 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + +/** + * EvEmitter v1.1.0 + * Lil' event emitter + * MIT License + */ + +/* jshint unused: true, undef: true, strict: true */ + +( function( global, factory ) { + // universal module definition + /* jshint strict: false */ /* globals define, module, window */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'ev-emitter/ev-emitter',factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory(); + } else { + // Browser globals + global.EvEmitter = factory(); + } + +}( typeof window != 'undefined' ? window : this, function() { + + + +function EvEmitter() {} + +var proto = EvEmitter.prototype; + +proto.on = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // set events hash + var events = this._events = this._events || {}; + // set listeners array + var listeners = events[ eventName ] = events[ eventName ] || []; + // only add once + if ( listeners.indexOf( listener ) == -1 ) { + listeners.push( listener ); + } + + return this; +}; + +proto.once = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // add event + this.on( eventName, listener ); + // set once flag + // set onceEvents hash + var onceEvents = this._onceEvents = this._onceEvents || {}; + // set onceListeners object + var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; + // set flag + onceListeners[ listener ] = true; + + return this; +}; + +proto.off = function( eventName, listener ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + var index = listeners.indexOf( listener ); + if ( index != -1 ) { + listeners.splice( index, 1 ); + } + + return this; +}; + +proto.emitEvent = function( eventName, args ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + // copy over to avoid interference if .off() in listener + listeners = listeners.slice(0); + args = args || []; + // once stuff + var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; + + for ( var i=0; i < listeners.length; i++ ) { + var listener = listeners[i] + var isOnce = onceListeners && onceListeners[ listener ]; + if ( isOnce ) { + // remove listener + // remove before trigger to prevent recursion + this.off( eventName, listener ); + // unset once flag + delete onceListeners[ listener ]; + } + // trigger listener + listener.apply( this, args ); + } + + return this; +}; + +proto.allOff = function() { + delete this._events; + delete this._onceEvents; +}; + +return EvEmitter; + +})); + +/*! + * imagesLoaded v4.1.4 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + +( function( window, factory ) { 'use strict'; + // universal module definition + + /*global define: false, module: false, require: false */ + + if ( typeof define == 'function' && define.amd ) { + // AMD + define( [ + 'ev-emitter/ev-emitter' + ], function( EvEmitter ) { + return factory( window, EvEmitter ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('ev-emitter') + ); + } else { + // browser global + window.imagesLoaded = factory( + window, + window.EvEmitter + ); + } + +})( typeof window !== 'undefined' ? window : this, + +// -------------------------- factory -------------------------- // + +function factory( window, EvEmitter ) { + + + +var $ = window.jQuery; +var console = window.console; + +// -------------------------- helpers -------------------------- // + +// extend objects +function extend( a, b ) { + for ( var prop in b ) { + a[ prop ] = b[ prop ]; + } + return a; +} + +var arraySlice = Array.prototype.slice; + +// turn element or nodeList into an array +function makeArray( obj ) { + if ( Array.isArray( obj ) ) { + // use object if already an array + return obj; + } + + var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; + if ( isArrayLike ) { + // convert nodeList to array + return arraySlice.call( obj ); + } + + // array of single index + return [ obj ]; +} + +// -------------------------- imagesLoaded -------------------------- // + +/** + * @param {Array, Element, NodeList, String} elem + * @param {Object or Function} options - if function, use as callback + * @param {Function} onAlways - callback function + */ +function ImagesLoaded( elem, options, onAlways ) { + // coerce ImagesLoaded() without new, to be new ImagesLoaded() + if ( !( this instanceof ImagesLoaded ) ) { + return new ImagesLoaded( elem, options, onAlways ); + } + // use elem as selector string + var queryElem = elem; + if ( typeof elem == 'string' ) { + queryElem = document.querySelectorAll( elem ); + } + // bail if bad element + if ( !queryElem ) { + console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); + return; + } + + this.elements = makeArray( queryElem ); + this.options = extend( {}, this.options ); + // shift arguments if no options set + if ( typeof options == 'function' ) { + onAlways = options; + } else { + extend( this.options, options ); + } + + if ( onAlways ) { + this.on( 'always', onAlways ); + } + + this.getImages(); + + if ( $ ) { + // add jQuery Deferred object + this.jqDeferred = new $.Deferred(); + } + + // HACK check async to allow time to bind listeners + setTimeout( this.check.bind( this ) ); +} + +ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); + +ImagesLoaded.prototype.options = {}; + +ImagesLoaded.prototype.getImages = function() { + this.images = []; + + // filter & find items if we have an item selector + this.elements.forEach( this.addElementImages, this ); +}; + +/** + * @param {Node} element + */ +ImagesLoaded.prototype.addElementImages = function( elem ) { + // filter siblings + if ( elem.nodeName == 'IMG' ) { + this.addImage( elem ); + } + // get background image on element + if ( this.options.background === true ) { + this.addElementBackgroundImages( elem ); + } + + // find children + // no non-element nodes, #143 + var nodeType = elem.nodeType; + if ( !nodeType || !elementNodeTypes[ nodeType ] ) { + return; + } + var childImgs = elem.querySelectorAll('img'); + // concat childElems to filterFound array + for ( var i=0; i < childImgs.length; i++ ) { + var img = childImgs[i]; + this.addImage( img ); + } + + // get child background images + if ( typeof this.options.background == 'string' ) { + var children = elem.querySelectorAll( this.options.background ); + for ( i=0; i < children.length; i++ ) { + var child = children[i]; + this.addElementBackgroundImages( child ); + } + } +}; + +var elementNodeTypes = { + 1: true, + 9: true, + 11: true +}; + +ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { + var style = getComputedStyle( elem ); + if ( !style ) { + // Firefox returns null if in a hidden iframe https://bugzil.la/548397 + return; + } + // get url inside url("...") + var reURL = /url\((['"])?(.*?)\1\)/gi; + var matches = reURL.exec( style.backgroundImage ); + while ( matches !== null ) { + var url = matches && matches[2]; + if ( url ) { + this.addBackground( url, elem ); + } + matches = reURL.exec( style.backgroundImage ); + } +}; + +/** + * @param {Image} img + */ +ImagesLoaded.prototype.addImage = function( img ) { + var loadingImage = new LoadingImage( img ); + this.images.push( loadingImage ); +}; + +ImagesLoaded.prototype.addBackground = function( url, elem ) { + var background = new Background( url, elem ); + this.images.push( background ); +}; + +ImagesLoaded.prototype.check = function() { + var _this = this; + this.progressedCount = 0; + this.hasAnyBroken = false; + // complete if no images + if ( !this.images.length ) { + this.complete(); + return; + } + + function onProgress( image, elem, message ) { + // HACK - Chrome triggers event before object properties have changed. #83 + setTimeout( function() { + _this.progress( image, elem, message ); + }); + } + + this.images.forEach( function( loadingImage ) { + loadingImage.once( 'progress', onProgress ); + loadingImage.check(); + }); +}; + +ImagesLoaded.prototype.progress = function( image, elem, message ) { + this.progressedCount++; + this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; + // progress event + this.emitEvent( 'progress', [ this, image, elem ] ); + if ( this.jqDeferred && this.jqDeferred.notify ) { + this.jqDeferred.notify( this, image ); + } + // check if completed + if ( this.progressedCount == this.images.length ) { + this.complete(); + } + + if ( this.options.debug && console ) { + console.log( 'progress: ' + message, image, elem ); + } +}; + +ImagesLoaded.prototype.complete = function() { + var eventName = this.hasAnyBroken ? 'fail' : 'done'; + this.isComplete = true; + this.emitEvent( eventName, [ this ] ); + this.emitEvent( 'always', [ this ] ); + if ( this.jqDeferred ) { + var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; + this.jqDeferred[ jqMethod ]( this ); + } +}; + +// -------------------------- -------------------------- // + +function LoadingImage( img ) { + this.img = img; +} + +LoadingImage.prototype = Object.create( EvEmitter.prototype ); + +LoadingImage.prototype.check = function() { + // If complete is true and browser supports natural sizes, + // try to check for image status manually. + var isComplete = this.getIsImageComplete(); + if ( isComplete ) { + // report based on naturalWidth + this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); + return; + } + + // If none of the checks above matched, simulate loading on detached element. + this.proxyImage = new Image(); + this.proxyImage.addEventListener( 'load', this ); + this.proxyImage.addEventListener( 'error', this ); + // bind to image as well for Firefox. #191 + this.img.addEventListener( 'load', this ); + this.img.addEventListener( 'error', this ); + this.proxyImage.src = this.img.src; +}; + +LoadingImage.prototype.getIsImageComplete = function() { + // check for non-zero, non-undefined naturalWidth + // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 + return this.img.complete && this.img.naturalWidth; +}; + +LoadingImage.prototype.confirm = function( isLoaded, message ) { + this.isLoaded = isLoaded; + this.emitEvent( 'progress', [ this, this.img, message ] ); +}; + +// ----- events ----- // + +// trigger specified handler for event type +LoadingImage.prototype.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } +}; + +LoadingImage.prototype.onload = function() { + this.confirm( true, 'onload' ); + this.unbindEvents(); +}; + +LoadingImage.prototype.onerror = function() { + this.confirm( false, 'onerror' ); + this.unbindEvents(); +}; + +LoadingImage.prototype.unbindEvents = function() { + this.proxyImage.removeEventListener( 'load', this ); + this.proxyImage.removeEventListener( 'error', this ); + this.img.removeEventListener( 'load', this ); + this.img.removeEventListener( 'error', this ); +}; + +// -------------------------- Background -------------------------- // + +function Background( url, element ) { + this.url = url; + this.element = element; + this.img = new Image(); +} + +// inherit LoadingImage prototype +Background.prototype = Object.create( LoadingImage.prototype ); + +Background.prototype.check = function() { + this.img.addEventListener( 'load', this ); + this.img.addEventListener( 'error', this ); + this.img.src = this.url; + // check if image is already complete + var isComplete = this.getIsImageComplete(); + if ( isComplete ) { + this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); + this.unbindEvents(); + } +}; + +Background.prototype.unbindEvents = function() { + this.img.removeEventListener( 'load', this ); + this.img.removeEventListener( 'error', this ); +}; + +Background.prototype.confirm = function( isLoaded, message ) { + this.isLoaded = isLoaded; + this.emitEvent( 'progress', [ this, this.element, message ] ); +}; + +// -------------------------- jQuery -------------------------- // + +ImagesLoaded.makeJQueryPlugin = function( jQuery ) { + jQuery = jQuery || window.jQuery; + if ( !jQuery ) { + return; + } + // set local variable + $ = jQuery; + // $().imagesLoaded() + $.fn.imagesLoaded = function( options, callback ) { + var instance = new ImagesLoaded( this, options, callback ); + return instance.jqDeferred.promise( $(this) ); + }; +}; +// try making plugin +ImagesLoaded.makeJQueryPlugin(); + +// -------------------------- -------------------------- // + +return ImagesLoaded; + +}); diff --git a/public/assets/js/isotope.js b/public/assets/js/isotope.js new file mode 100644 index 0000000..7ca671c --- /dev/null +++ b/public/assets/js/isotope.js @@ -0,0 +1,12 @@ +/*! + * Isotope PACKAGED v3.0.6 + * + * Licensed GPLv3 for open source use + * or Isotope Commercial License for commercial use + * + * https://isotope.metafizzy.co + * Copyright 2010-2018 Metafizzy + */ + +!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n

', { + "class": this.settings.stageOuterClass + })); + + // append stage + this.$element.append(this.$stage.parent()); + }; + + /** + * Create item DOM elements + */ + Owl.prototype.initializeItems = function() { + var $items = this.$element.find('.owl-item'); + + // if the items are already in the DOM, grab them and skip item initialization + if ($items.length) { + this._items = $items.get().map(function(item) { + return $(item); + }); + + this._mergers = this._items.map(function() { + return 1; + }); + + this.refresh(); + + return; + } + + // append content + this.replace(this.$element.children().not(this.$stage.parent())); + + // check visibility + if (this.isVisible()) { + // update view + this.refresh(); + } else { + // invalidate width + this.invalidate('width'); + } + + this.$element + .removeClass(this.options.loadingClass) + .addClass(this.options.loadedClass); + }; + + /** + * Initializes the carousel. + * @protected + */ + Owl.prototype.initialize = function() { + this.enter('initializing'); + this.trigger('initialize'); + + this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl); + + if (this.settings.autoWidth && !this.is('pre-loading')) { + var imgs, nestedSelector, width; + imgs = this.$element.find('img'); + nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined; + width = this.$element.children(nestedSelector).width(); + + if (imgs.length && width <= 0) { + this.preloadAutoWidthImages(imgs); + } + } + + this.initializeStage(); + this.initializeItems(); + + // register event handlers + this.registerEventHandlers(); + + this.leave('initializing'); + this.trigger('initialized'); + }; + + /** + * @returns {Boolean} visibility of $element + * if you know the carousel will always be visible you can set `checkVisibility` to `false` to + * prevent the expensive browser layout forced reflow the $element.is(':visible') does + */ + Owl.prototype.isVisible = function() { + return this.settings.checkVisibility + ? this.$element.is(':visible') + : true; + }; + + /** + * Setups the current settings. + * @todo Remove responsive classes. Why should adaptive designs be brought into IE8? + * @todo Support for media queries by using `matchMedia` would be nice. + * @public + */ + Owl.prototype.setup = function() { + var viewport = this.viewport(), + overwrites = this.options.responsive, + match = -1, + settings = null; + + if (!overwrites) { + settings = $.extend({}, this.options); + } else { + $.each(overwrites, function(breakpoint) { + if (breakpoint <= viewport && breakpoint > match) { + match = Number(breakpoint); + } + }); + + settings = $.extend({}, this.options, overwrites[match]); + if (typeof settings.stagePadding === 'function') { + settings.stagePadding = settings.stagePadding(); + } + delete settings.responsive; + + // responsive class + if (settings.responsiveClass) { + this.$element.attr('class', + this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match) + ); + } + } + + this.trigger('change', { property: { name: 'settings', value: settings } }); + this._breakpoint = match; + this.settings = settings; + this.invalidate('settings'); + this.trigger('changed', { property: { name: 'settings', value: this.settings } }); + }; + + /** + * Updates option logic if necessery. + * @protected + */ + Owl.prototype.optionsLogic = function() { + if (this.settings.autoWidth) { + this.settings.stagePadding = false; + this.settings.merge = false; + } + }; + + /** + * Prepares an item before add. + * @todo Rename event parameter `content` to `item`. + * @protected + * @returns {jQuery|HTMLElement} - The item container. + */ + Owl.prototype.prepare = function(item) { + var event = this.trigger('prepare', { content: item }); + + if (!event.data) { + event.data = $('<' + this.settings.itemElement + '/>') + .addClass(this.options.itemClass).append(item) + } + + this.trigger('prepared', { content: event.data }); + + return event.data; + }; + + /** + * Updates the view. + * @public + */ + Owl.prototype.update = function() { + var i = 0, + n = this._pipe.length, + filter = $.proxy(function(p) { return this[p] }, this._invalidated), + cache = {}; + + while (i < n) { + if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) { + this._pipe[i].run(cache); + } + i++; + } + + this._invalidated = {}; + + !this.is('valid') && this.enter('valid'); + }; + + /** + * Gets the width of the view. + * @public + * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return. + * @returns {Number} - The width of the view in pixel. + */ + Owl.prototype.width = function(dimension) { + dimension = dimension || Owl.Width.Default; + switch (dimension) { + case Owl.Width.Inner: + case Owl.Width.Outer: + return this._width; + default: + return this._width - this.settings.stagePadding * 2 + this.settings.margin; + } + }; + + /** + * Refreshes the carousel primarily for adaptive purposes. + * @public + */ + Owl.prototype.refresh = function() { + this.enter('refreshing'); + this.trigger('refresh'); + + this.setup(); + + this.optionsLogic(); + + this.$element.addClass(this.options.refreshClass); + + this.update(); + + this.$element.removeClass(this.options.refreshClass); + + this.leave('refreshing'); + this.trigger('refreshed'); + }; + + /** + * Checks window `resize` event. + * @protected + */ + Owl.prototype.onThrottledResize = function() { + window.clearTimeout(this.resizeTimer); + this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate); + }; + + /** + * Checks window `resize` event. + * @protected + */ + Owl.prototype.onResize = function() { + if (!this._items.length) { + return false; + } + + if (this._width === this.$element.width()) { + return false; + } + + if (!this.isVisible()) { + return false; + } + + this.enter('resizing'); + + if (this.trigger('resize').isDefaultPrevented()) { + this.leave('resizing'); + return false; + } + + this.invalidate('width'); + + this.refresh(); + + this.leave('resizing'); + this.trigger('resized'); + }; + + /** + * Registers event handlers. + * @todo Check `msPointerEnabled` + * @todo #261 + * @protected + */ + Owl.prototype.registerEventHandlers = function() { + if ($.support.transition) { + this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this)); + } + + if (this.settings.responsive !== false) { + this.on(window, 'resize', this._handlers.onThrottledResize); + } + + if (this.settings.mouseDrag) { + this.$element.addClass(this.options.dragClass); + this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this)); + this.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false }); + } + + if (this.settings.touchDrag){ + this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this)); + this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this)); + } + }; + + /** + * Handles `touchstart` and `mousedown` events. + * @todo Horizontal swipe threshold as option + * @todo #261 + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragStart = function(event) { + var stage = null; + + if (event.which === 3) { + return; + } + + if ($.support.transform) { + stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(','); + stage = { + x: stage[stage.length === 16 ? 12 : 4], + y: stage[stage.length === 16 ? 13 : 5] + }; + } else { + stage = this.$stage.position(); + stage = { + x: this.settings.rtl ? + stage.left + this.$stage.width() - this.width() + this.settings.margin : + stage.left, + y: stage.top + }; + } + + if (this.is('animating')) { + $.support.transform ? this.animate(stage.x) : this.$stage.stop() + this.invalidate('position'); + } + + this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown'); + + this.speed(0); + + this._drag.time = new Date().getTime(); + this._drag.target = $(event.target); + this._drag.stage.start = stage; + this._drag.stage.current = stage; + this._drag.pointer = this.pointer(event); + + $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this)); + + $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) { + var delta = this.difference(this._drag.pointer, this.pointer(event)); + + $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this)); + + if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) { + return; + } + + event.preventDefault(); + + this.enter('dragging'); + this.trigger('drag'); + }, this)); + }; + + /** + * Handles the `touchmove` and `mousemove` events. + * @todo #261 + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragMove = function(event) { + var minimum = null, + maximum = null, + pull = null, + delta = this.difference(this._drag.pointer, this.pointer(event)), + stage = this.difference(this._drag.stage.start, delta); + + if (!this.is('dragging')) { + return; + } + + event.preventDefault(); + + if (this.settings.loop) { + minimum = this.coordinates(this.minimum()); + maximum = this.coordinates(this.maximum() + 1) - minimum; + stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum; + } else { + minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()); + maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()); + pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0; + stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull); + } + + this._drag.stage.current = stage; + + this.animate(stage.x); + }; + + /** + * Handles the `touchend` and `mouseup` events. + * @todo #261 + * @todo Threshold for click event + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragEnd = function(event) { + var delta = this.difference(this._drag.pointer, this.pointer(event)), + stage = this._drag.stage.current, + direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right'; + + $(document).off('.owl.core'); + + this.$element.removeClass(this.options.grabClass); + + if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) { + this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed); + this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction)); + this.invalidate('position'); + this.update(); + + this._drag.direction = direction; + + if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) { + this._drag.target.one('click.owl.core', function() { return false; }); + } + } + + if (!this.is('dragging')) { + return; + } + + this.leave('dragging'); + this.trigger('dragged'); + }; + + /** + * Gets absolute position of the closest item for a coordinate. + * @todo Setting `freeDrag` makes `closest` not reusable. See #165. + * @protected + * @param {Number} coordinate - The coordinate in pixel. + * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`. + * @return {Number} - The absolute position of the closest item. + */ + Owl.prototype.closest = function(coordinate, direction) { + var position = -1, + pull = 30, + width = this.width(), + coordinates = this.coordinates(); + + if (!this.settings.freeDrag) { + // check closest item + $.each(coordinates, $.proxy(function(index, value) { + // on a left pull, check on current index + if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) { + position = index; + // on a right pull, check on previous index + // to do so, subtract width from value and set position = index + 1 + } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) { + position = index + 1; + } else if (this.op(coordinate, '<', value) + && this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) { + position = direction === 'left' ? index + 1 : index; + } + return position === -1; + }, this)); + } + + if (!this.settings.loop) { + // non loop boundries + if (this.op(coordinate, '>', coordinates[this.minimum()])) { + position = coordinate = this.minimum(); + } else if (this.op(coordinate, '<', coordinates[this.maximum()])) { + position = coordinate = this.maximum(); + } + } + + return position; + }; + + /** + * Animates the stage. + * @todo #270 + * @public + * @param {Number} coordinate - The coordinate in pixels. + */ + Owl.prototype.animate = function(coordinate) { + var animate = this.speed() > 0; + + this.is('animating') && this.onTransitionEnd(); + + if (animate) { + this.enter('animating'); + this.trigger('translate'); + } + + if ($.support.transform3d && $.support.transition) { + this.$stage.css({ + transform: 'translate3d(' + coordinate + 'px,0px,0px)', + transition: (this.speed() / 1000) + 's' + ( + this.settings.slideTransition ? ' ' + this.settings.slideTransition : '' + ) + }); + } else if (animate) { + this.$stage.animate({ + left: coordinate + 'px' + }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this)); + } else { + this.$stage.css({ + left: coordinate + 'px' + }); + } + }; + + /** + * Checks whether the carousel is in a specific state or not. + * @param {String} state - The state to check. + * @returns {Boolean} - The flag which indicates if the carousel is busy. + */ + Owl.prototype.is = function(state) { + return this._states.current[state] && this._states.current[state] > 0; + }; + + /** + * Sets the absolute position of the current item. + * @public + * @param {Number} [position] - The new absolute position or nothing to leave it unchanged. + * @returns {Number} - The absolute position of the current item. + */ + Owl.prototype.current = function(position) { + if (position === undefined) { + return this._current; + } + + if (this._items.length === 0) { + return undefined; + } + + position = this.normalize(position); + + if (this._current !== position) { + var event = this.trigger('change', { property: { name: 'position', value: position } }); + + if (event.data !== undefined) { + position = this.normalize(event.data); + } + + this._current = position; + + this.invalidate('position'); + + this.trigger('changed', { property: { name: 'position', value: this._current } }); + } + + return this._current; + }; + + /** + * Invalidates the given part of the update routine. + * @param {String} [part] - The part to invalidate. + * @returns {Array.} - The invalidated parts. + */ + Owl.prototype.invalidate = function(part) { + if ($.type(part) === 'string') { + this._invalidated[part] = true; + this.is('valid') && this.leave('valid'); + } + return $.map(this._invalidated, function(v, i) { return i }); + }; + + /** + * Resets the absolute position of the current item. + * @public + * @param {Number} position - The absolute position of the new item. + */ + Owl.prototype.reset = function(position) { + position = this.normalize(position); + + if (position === undefined) { + return; + } + + this._speed = 0; + this._current = position; + + this.suppress([ 'translate', 'translated' ]); + + this.animate(this.coordinates(position)); + + this.release([ 'translate', 'translated' ]); + }; + + /** + * Normalizes an absolute or a relative position of an item. + * @public + * @param {Number} position - The absolute or relative position to normalize. + * @param {Boolean} [relative=false] - Whether the given position is relative or not. + * @returns {Number} - The normalized position. + */ + Owl.prototype.normalize = function(position, relative) { + var n = this._items.length, + m = relative ? 0 : this._clones.length; + + if (!this.isNumeric(position) || n < 1) { + position = undefined; + } else if (position < 0 || position >= n + m) { + position = ((position - m / 2) % n + n) % n + m / 2; + } + + return position; + }; + + /** + * Converts an absolute position of an item into a relative one. + * @public + * @param {Number} position - The absolute position to convert. + * @returns {Number} - The converted position. + */ + Owl.prototype.relative = function(position) { + position -= this._clones.length / 2; + return this.normalize(position, true); + }; + + /** + * Gets the maximum position for the current item. + * @public + * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. + * @returns {Number} + */ + Owl.prototype.maximum = function(relative) { + var settings = this.settings, + maximum = this._coordinates.length, + iterator, + reciprocalItemsWidth, + elementWidth; + + if (settings.loop) { + maximum = this._clones.length / 2 + this._items.length - 1; + } else if (settings.autoWidth || settings.merge) { + iterator = this._items.length; + if (iterator) { + reciprocalItemsWidth = this._items[--iterator].width(); + elementWidth = this.$element.width(); + while (iterator--) { + reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin; + if (reciprocalItemsWidth > elementWidth) { + break; + } + } + } + maximum = iterator + 1; + } else if (settings.center) { + maximum = this._items.length - 1; + } else { + maximum = this._items.length - settings.items; + } + + if (relative) { + maximum -= this._clones.length / 2; + } + + return Math.max(maximum, 0); + }; + + /** + * Gets the minimum position for the current item. + * @public + * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. + * @returns {Number} + */ + Owl.prototype.minimum = function(relative) { + return relative ? 0 : this._clones.length / 2; + }; + + /** + * Gets an item at the specified relative position. + * @public + * @param {Number} [position] - The relative position of the item. + * @return {jQuery|Array.} - The item at the given position or all items if no position was given. + */ + Owl.prototype.items = function(position) { + if (position === undefined) { + return this._items.slice(); + } + + position = this.normalize(position, true); + return this._items[position]; + }; + + /** + * Gets an item at the specified relative position. + * @public + * @param {Number} [position] - The relative position of the item. + * @return {jQuery|Array.} - The item at the given position or all items if no position was given. + */ + Owl.prototype.mergers = function(position) { + if (position === undefined) { + return this._mergers.slice(); + } + + position = this.normalize(position, true); + return this._mergers[position]; + }; + + /** + * Gets the absolute positions of clones for an item. + * @public + * @param {Number} [position] - The relative position of the item. + * @returns {Array.} - The absolute positions of clones for the item or all if no position was given. + */ + Owl.prototype.clones = function(position) { + var odd = this._clones.length / 2, + even = odd + this._items.length, + map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 }; + + if (position === undefined) { + return $.map(this._clones, function(v, i) { return map(i) }); + } + + return $.map(this._clones, function(v, i) { return v === position ? map(i) : null }); + }; + + /** + * Sets the current animation speed. + * @public + * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged. + * @returns {Number} - The current animation speed in milliseconds. + */ + Owl.prototype.speed = function(speed) { + if (speed !== undefined) { + this._speed = speed; + } + + return this._speed; + }; + + /** + * Gets the coordinate of an item. + * @todo The name of this method is missleanding. + * @public + * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`. + * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates. + */ + Owl.prototype.coordinates = function(position) { + var multiplier = 1, + newPosition = position - 1, + coordinate; + + if (position === undefined) { + return $.map(this._coordinates, $.proxy(function(coordinate, index) { + return this.coordinates(index); + }, this)); + } + + if (this.settings.center) { + if (this.settings.rtl) { + multiplier = -1; + newPosition = position + 1; + } + + coordinate = this._coordinates[position]; + coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier; + } else { + coordinate = this._coordinates[newPosition] || 0; + } + + coordinate = Math.ceil(coordinate); + + return coordinate; + }; + + /** + * Calculates the speed for a translation. + * @protected + * @param {Number} from - The absolute position of the start item. + * @param {Number} to - The absolute position of the target item. + * @param {Number} [factor=undefined] - The time factor in milliseconds. + * @returns {Number} - The time in milliseconds for the translation. + */ + Owl.prototype.duration = function(from, to, factor) { + if (factor === 0) { + return 0; + } + + return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed)); + }; + + /** + * Slides to the specified item. + * @public + * @param {Number} position - The position of the item. + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.to = function(position, speed) { + var current = this.current(), + revert = null, + distance = position - this.relative(current), + direction = (distance > 0) - (distance < 0), + items = this._items.length, + minimum = this.minimum(), + maximum = this.maximum(); + + if (this.settings.loop) { + if (!this.settings.rewind && Math.abs(distance) > items / 2) { + distance += direction * -1 * items; + } + + position = current + distance; + revert = ((position - minimum) % items + items) % items + minimum; + + if (revert !== position && revert - distance <= maximum && revert - distance > 0) { + current = revert - distance; + position = revert; + this.reset(current); + } + } else if (this.settings.rewind) { + maximum += 1; + position = (position % maximum + maximum) % maximum; + } else { + position = Math.max(minimum, Math.min(maximum, position)); + } + + this.speed(this.duration(current, position, speed)); + this.current(position); + + if (this.isVisible()) { + this.update(); + } + }; + + /** + * Slides to the next item. + * @public + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.next = function(speed) { + speed = speed || false; + this.to(this.relative(this.current()) + 1, speed); + }; + + /** + * Slides to the previous item. + * @public + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.prev = function(speed) { + speed = speed || false; + this.to(this.relative(this.current()) - 1, speed); + }; + + /** + * Handles the end of an animation. + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onTransitionEnd = function(event) { + + // if css2 animation then event object is undefined + if (event !== undefined) { + event.stopPropagation(); + + // Catch only owl-stage transitionEnd event + if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) { + return false; + } + } + + this.leave('animating'); + this.trigger('translated'); + }; + + /** + * Gets viewport width. + * @protected + * @return {Number} - The width in pixel. + */ + Owl.prototype.viewport = function() { + var width; + if (this.options.responsiveBaseElement !== window) { + width = $(this.options.responsiveBaseElement).width(); + } else if (window.innerWidth) { + width = window.innerWidth; + } else if (document.documentElement && document.documentElement.clientWidth) { + width = document.documentElement.clientWidth; + } else { + console.warn('Can not detect viewport width.'); + } + return width; + }; + + /** + * Replaces the current content. + * @public + * @param {HTMLElement|jQuery|String} content - The new content. + */ + Owl.prototype.replace = function(content) { + this.$stage.empty(); + this._items = []; + + if (content) { + content = (content instanceof jQuery) ? content : $(content); + } + + if (this.settings.nestedItemSelector) { + content = content.find('.' + this.settings.nestedItemSelector); + } + + content.filter(function() { + return this.nodeType === 1; + }).each($.proxy(function(index, item) { + item = this.prepare(item); + this.$stage.append(item); + this._items.push(item); + this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + }, this)); + + this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0); + + this.invalidate('items'); + }; + + /** + * Adds an item. + * @todo Use `item` instead of `content` for the event arguments. + * @public + * @param {HTMLElement|jQuery|String} content - The item content to add. + * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end. + */ + Owl.prototype.add = function(content, position) { + var current = this.relative(this._current); + + position = position === undefined ? this._items.length : this.normalize(position, true); + content = content instanceof jQuery ? content : $(content); + + this.trigger('add', { content: content, position: position }); + + content = this.prepare(content); + + if (this._items.length === 0 || position === this._items.length) { + this._items.length === 0 && this.$stage.append(content); + this._items.length !== 0 && this._items[position - 1].after(content); + this._items.push(content); + this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + } else { + this._items[position].before(content); + this._items.splice(position, 0, content); + this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + } + + this._items[current] && this.reset(this._items[current].index()); + + this.invalidate('items'); + + this.trigger('added', { content: content, position: position }); + }; + + /** + * Removes an item by its position. + * @todo Use `item` instead of `content` for the event arguments. + * @public + * @param {Number} position - The relative position of the item to remove. + */ + Owl.prototype.remove = function(position) { + position = this.normalize(position, true); + + if (position === undefined) { + return; + } + + this.trigger('remove', { content: this._items[position], position: position }); + + this._items[position].remove(); + this._items.splice(position, 1); + this._mergers.splice(position, 1); + + this.invalidate('items'); + + this.trigger('removed', { content: null, position: position }); + }; + + /** + * Preloads images with auto width. + * @todo Replace by a more generic approach + * @protected + */ + Owl.prototype.preloadAutoWidthImages = function(images) { + images.each($.proxy(function(i, element) { + this.enter('pre-loading'); + element = $(element); + $(new Image()).one('load', $.proxy(function(e) { + element.attr('src', e.target.src); + element.css('opacity', 1); + this.leave('pre-loading'); + !this.is('pre-loading') && !this.is('initializing') && this.refresh(); + }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina')); + }, this)); + }; + + /** + * Destroys the carousel. + * @public + */ + Owl.prototype.destroy = function() { + + this.$element.off('.owl.core'); + this.$stage.off('.owl.core'); + $(document).off('.owl.core'); + + if (this.settings.responsive !== false) { + window.clearTimeout(this.resizeTimer); + this.off(window, 'resize', this._handlers.onThrottledResize); + } + + for (var i in this._plugins) { + this._plugins[i].destroy(); + } + + this.$stage.children('.cloned').remove(); + + this.$stage.unwrap(); + this.$stage.children().contents().unwrap(); + this.$stage.children().unwrap(); + this.$stage.remove(); + this.$element + .removeClass(this.options.refreshClass) + .removeClass(this.options.loadingClass) + .removeClass(this.options.loadedClass) + .removeClass(this.options.rtlClass) + .removeClass(this.options.dragClass) + .removeClass(this.options.grabClass) + .attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')) + .removeData('owl.carousel'); + }; + + /** + * Operators to calculate right-to-left and left-to-right. + * @protected + * @param {Number} [a] - The left side operand. + * @param {String} [o] - The operator. + * @param {Number} [b] - The right side operand. + */ + Owl.prototype.op = function(a, o, b) { + var rtl = this.settings.rtl; + switch (o) { + case '<': + return rtl ? a > b : a < b; + case '>': + return rtl ? a < b : a > b; + case '>=': + return rtl ? a <= b : a >= b; + case '<=': + return rtl ? a >= b : a <= b; + default: + break; + } + }; + + /** + * Attaches to an internal event. + * @protected + * @param {HTMLElement} element - The event source. + * @param {String} event - The event name. + * @param {Function} listener - The event handler to attach. + * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not. + */ + Owl.prototype.on = function(element, event, listener, capture) { + if (element.addEventListener) { + element.addEventListener(event, listener, capture); + } else if (element.attachEvent) { + element.attachEvent('on' + event, listener); + } + }; + + /** + * Detaches from an internal event. + * @protected + * @param {HTMLElement} element - The event source. + * @param {String} event - The event name. + * @param {Function} listener - The attached event handler to detach. + * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not. + */ + Owl.prototype.off = function(element, event, listener, capture) { + if (element.removeEventListener) { + element.removeEventListener(event, listener, capture); + } else if (element.detachEvent) { + element.detachEvent('on' + event, listener); + } + }; + + /** + * Triggers a public event. + * @todo Remove `status`, `relatedTarget` should be used instead. + * @protected + * @param {String} name - The event name. + * @param {*} [data=null] - The event data. + * @param {String} [namespace=carousel] - The event namespace. + * @param {String} [state] - The state which is associated with the event. + * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not. + * @returns {Event} - The event arguments. + */ + Owl.prototype.trigger = function(name, data, namespace, state, enter) { + var status = { + item: { count: this._items.length, index: this.current() } + }, handler = $.camelCase( + $.grep([ 'on', name, namespace ], function(v) { return v }) + .join('-').toLowerCase() + ), event = $.Event( + [ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(), + $.extend({ relatedTarget: this }, status, data) + ); + + if (!this._supress[name]) { + $.each(this._plugins, function(name, plugin) { + if (plugin.onTrigger) { + plugin.onTrigger(event); + } + }); + + this.register({ type: Owl.Type.Event, name: name }); + this.$element.trigger(event); + + if (this.settings && typeof this.settings[handler] === 'function') { + this.settings[handler].call(this, event); + } + } + + return event; + }; + + /** + * Enters a state. + * @param name - The state name. + */ + Owl.prototype.enter = function(name) { + $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { + if (this._states.current[name] === undefined) { + this._states.current[name] = 0; + } + + this._states.current[name]++; + }, this)); + }; + + /** + * Leaves a state. + * @param name - The state name. + */ + Owl.prototype.leave = function(name) { + $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { + this._states.current[name]--; + }, this)); + }; + + /** + * Registers an event or state. + * @public + * @param {Object} object - The event or state to register. + */ + Owl.prototype.register = function(object) { + if (object.type === Owl.Type.Event) { + if (!$.event.special[object.name]) { + $.event.special[object.name] = {}; + } + + if (!$.event.special[object.name].owl) { + var _default = $.event.special[object.name]._default; + $.event.special[object.name]._default = function(e) { + if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) { + return _default.apply(this, arguments); + } + return e.namespace && e.namespace.indexOf('owl') > -1; + }; + $.event.special[object.name].owl = true; + } + } else if (object.type === Owl.Type.State) { + if (!this._states.tags[object.name]) { + this._states.tags[object.name] = object.tags; + } else { + this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags); + } + + this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) { + return $.inArray(tag, this._states.tags[object.name]) === i; + }, this)); + } + }; + + /** + * Suppresses events. + * @protected + * @param {Array.} events - The events to suppress. + */ + Owl.prototype.suppress = function(events) { + $.each(events, $.proxy(function(index, event) { + this._supress[event] = true; + }, this)); + }; + + /** + * Releases suppressed events. + * @protected + * @param {Array.} events - The events to release. + */ + Owl.prototype.release = function(events) { + $.each(events, $.proxy(function(index, event) { + delete this._supress[event]; + }, this)); + }; + + /** + * Gets unified pointer coordinates from event. + * @todo #261 + * @protected + * @param {Event} - The `mousedown` or `touchstart` event. + * @returns {Object} - Contains `x` and `y` coordinates of current pointer position. + */ + Owl.prototype.pointer = function(event) { + var result = { x: null, y: null }; + + event = event.originalEvent || event || window.event; + + event = event.touches && event.touches.length ? + event.touches[0] : event.changedTouches && event.changedTouches.length ? + event.changedTouches[0] : event; + + if (event.pageX) { + result.x = event.pageX; + result.y = event.pageY; + } else { + result.x = event.clientX; + result.y = event.clientY; + } + + return result; + }; + + /** + * Determines if the input is a Number or something that can be coerced to a Number + * @protected + * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested + * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number + */ + Owl.prototype.isNumeric = function(number) { + return !isNaN(parseFloat(number)); + }; + + /** + * Gets the difference of two vectors. + * @todo #261 + * @protected + * @param {Object} - The first vector. + * @param {Object} - The second vector. + * @returns {Object} - The difference. + */ + Owl.prototype.difference = function(first, second) { + return { + x: first.x - second.x, + y: first.y - second.y + }; + }; + + /** + * The jQuery Plugin for the Owl Carousel + * @todo Navigation plugin `next` and `prev` + * @public + */ + $.fn.owlCarousel = function(option) { + var args = Array.prototype.slice.call(arguments, 1); + + return this.each(function() { + var $this = $(this), + data = $this.data('owl.carousel'); + + if (!data) { + data = new Owl(this, typeof option == 'object' && option); + $this.data('owl.carousel', data); + + $.each([ + 'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove' + ], function(i, event) { + data.register({ type: Owl.Type.Event, name: event }); + data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) { + if (e.namespace && e.relatedTarget !== this) { + this.suppress([ event ]); + data[event].apply(this, [].slice.call(arguments, 1)); + this.release([ event ]); + } + }, data)); + }); + } + + if (typeof option == 'string' && option.charAt(0) !== '_') { + data[option].apply(data, args); + } + }); + }; + + /** + * The constructor for the jQuery Plugin + * @public + */ + $.fn.owlCarousel.Constructor = Owl; + +})(window.Zepto || window.jQuery, window, document); + +/** + * AutoRefresh Plugin + * @version 2.3.4 + * @author Artus Kolanowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the auto refresh plugin. + * @class The Auto Refresh Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var AutoRefresh = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Refresh interval. + * @protected + * @type {number} + */ + this._interval = null; + + /** + * Whether the element is currently visible or not. + * @protected + * @type {Boolean} + */ + this._visible = null; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoRefresh) { + this.watch(); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + */ + AutoRefresh.Defaults = { + autoRefresh: true, + autoRefreshInterval: 500 + }; + + /** + * Watches the element. + */ + AutoRefresh.prototype.watch = function() { + if (this._interval) { + return; + } + + this._visible = this._core.isVisible(); + this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval); + }; + + /** + * Refreshes the element. + */ + AutoRefresh.prototype.refresh = function() { + if (this._core.isVisible() === this._visible) { + return; + } + + this._visible = !this._visible; + + this._core.$element.toggleClass('owl-hidden', !this._visible); + + this._visible && (this._core.invalidate('width') && this._core.refresh()); + }; + + /** + * Destroys the plugin. + */ + AutoRefresh.prototype.destroy = function() { + var handler, property; + + window.clearInterval(this._interval); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Lazy Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the lazy plugin. + * @class The Lazy Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var Lazy = function(carousel) { + + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Already loaded items. + * @protected + * @type {Array.} + */ + this._loaded = []; + + /** + * Event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) { + if (!e.namespace) { + return; + } + + if (!this._core.settings || !this._core.settings.lazyLoad) { + return; + } + + if ((e.property && e.property.name == 'position') || e.type == 'initialized') { + var settings = this._core.settings, + n = (settings.center && Math.ceil(settings.items / 2) || settings.items), + i = ((settings.center && n * -1) || 0), + position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i, + clones = this._core.clones().length, + load = $.proxy(function(i, v) { this.load(v) }, this); + //TODO: Need documentation for this new option + if (settings.lazyLoadEager > 0) { + n += settings.lazyLoadEager; + // If the carousel is looping also preload images that are to the "left" + if (settings.loop) { + position -= settings.lazyLoadEager; + n++; + } + } + + while (i++ < n) { + this.load(clones / 2 + this._core.relative(position)); + clones && $.each(this._core.clones(this._core.relative(position)), load); + position++; + } + } + }, this) + }; + + // set the default options + this._core.options = $.extend({}, Lazy.Defaults, this._core.options); + + // register event handler + this._core.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + */ + Lazy.Defaults = { + lazyLoad: false, + lazyLoadEager: 0 + }; + + /** + * Loads all resources of an item at the specified position. + * @param {Number} position - The absolute position of the item. + * @protected + */ + Lazy.prototype.load = function(position) { + var $item = this._core.$stage.children().eq(position), + $elements = $item && $item.find('.owl-lazy'); + + if (!$elements || $.inArray($item.get(0), this._loaded) > -1) { + return; + } + + $elements.each($.proxy(function(index, element) { + var $element = $(element), image, + url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset'); + + this._core.trigger('load', { element: $element, url: url }, 'lazy'); + + if ($element.is('img')) { + $element.one('load.owl.lazy', $.proxy(function() { + $element.css('opacity', 1); + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this)).attr('src', url); + } else if ($element.is('source')) { + $element.one('load.owl.lazy', $.proxy(function() { + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this)).attr('srcset', url); + } else { + image = new Image(); + image.onload = $.proxy(function() { + $element.css({ + 'background-image': 'url("' + url + '")', + 'opacity': '1' + }); + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this); + image.src = url; + } + }, this)); + + this._loaded.push($item.get(0)); + }; + + /** + * Destroys the plugin. + * @public + */ + Lazy.prototype.destroy = function() { + var handler, property; + + for (handler in this.handlers) { + this._core.$element.off(handler, this.handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy; + +})(window.Zepto || window.jQuery, window, document); + +/** + * AutoHeight Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the auto height plugin. + * @class The Auto Height Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var AutoHeight = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + this._previousHeight = null; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight) { + this.update(); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position'){ + this.update(); + } + }, this), + 'loaded.owl.lazy': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight + && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) { + this.update(); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + this._intervalId = null; + var refThis = this; + + // These changes have been taken from a PR by gavrochelegnou proposed in #1575 + // and have been made compatible with the latest jQuery version + $(window).on('load', function() { + if (refThis._core.settings.autoHeight) { + refThis.update(); + } + }); + + // Autoresize the height of the carousel when window is resized + // When carousel has images, the height is dependent on the width + // and should also change on resize + $(window).resize(function() { + if (refThis._core.settings.autoHeight) { + if (refThis._intervalId != null) { + clearTimeout(refThis._intervalId); + } + + refThis._intervalId = setTimeout(function() { + refThis.update(); + }, 250); + } + }); + + }; + + /** + * Default options. + * @public + */ + AutoHeight.Defaults = { + autoHeight: false, + autoHeightClass: 'owl-height' + }; + + /** + * Updates the view. + */ + AutoHeight.prototype.update = function() { + var start = this._core._current, + end = start + this._core.settings.items, + lazyLoadEnabled = this._core.settings.lazyLoad, + visible = this._core.$stage.children().toArray().slice(start, end), + heights = [], + maxheight = 0; + + $.each(visible, function(index, item) { + heights.push($(item).height()); + }); + + maxheight = Math.max.apply(null, heights); + + if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) { + maxheight = this._previousHeight; + } + + this._previousHeight = maxheight; + + this._core.$stage.parent() + .height(maxheight) + .addClass(this._core.settings.autoHeightClass); + }; + + AutoHeight.prototype.destroy = function() { + var handler, property; + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] !== 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Video Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the video plugin. + * @class The Video Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var Video = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Cache all video URLs. + * @protected + * @type {Object} + */ + this._videos = {}; + + /** + * Current playing item. + * @protected + * @type {jQuery} + */ + this._playing = null; + + /** + * All event handlers. + * @todo The cloned content removale is too late + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace) { + this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] }); + } + }, this), + 'resize.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.video && this.isInFullScreen()) { + e.preventDefault(); + } + }, this), + 'refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.is('resizing')) { + this._core.$stage.find('.cloned .owl-video-frame').remove(); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name === 'position' && this._playing) { + this.stop(); + } + }, this), + 'prepared.owl.carousel': $.proxy(function(e) { + if (!e.namespace) { + return; + } + + var $element = $(e.content).find('.owl-video'); + + if ($element.length) { + $element.css('display', 'none'); + this.fetch($element, $(e.content)); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, Video.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + + this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) { + this.play(e); + }, this)); + }; + + /** + * Default options. + * @public + */ + Video.Defaults = { + video: false, + videoHeight: false, + videoWidth: false + }; + + /** + * Gets the video ID and the type (YouTube/Vimeo/vzaar only). + * @protected + * @param {jQuery} target - The target containing the video data. + * @param {jQuery} item - The item containing the video. + */ + Video.prototype.fetch = function(target, item) { + var type = (function() { + if (target.attr('data-vimeo-id')) { + return 'vimeo'; + } else if (target.attr('data-vzaar-id')) { + return 'vzaar' + } else { + return 'youtube'; + } + })(), + id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'), + width = target.attr('data-width') || this._core.settings.videoWidth, + height = target.attr('data-height') || this._core.settings.videoHeight, + url = target.attr('href'); + + if (url) { + + /* + Parses the id's out of the following urls (and probably more): + https://www.youtube.com/watch?v=:id + https://youtu.be/:id + https://vimeo.com/:id + https://vimeo.com/channels/:channel/:id + https://vimeo.com/groups/:group/videos/:id + https://app.vzaar.com/videos/:id + + Visual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F + */ + + id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/); + + if (id[3].indexOf('youtu') > -1) { + type = 'youtube'; + } else if (id[3].indexOf('vimeo') > -1) { + type = 'vimeo'; + } else if (id[3].indexOf('vzaar') > -1) { + type = 'vzaar'; + } else { + throw new Error('Video URL not supported.'); + } + id = id[6]; + } else { + throw new Error('Missing video URL.'); + } + + this._videos[url] = { + type: type, + id: id, + width: width, + height: height + }; + + item.attr('data-video', url); + + this.thumbnail(target, this._videos[url]); + }; + + /** + * Creates video thumbnail. + * @protected + * @param {jQuery} target - The target containing the video data. + * @param {Object} info - The video info object. + * @see `fetch` + */ + Video.prototype.thumbnail = function(target, video) { + var tnLink, + icon, + path, + dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '', + customTn = target.find('img'), + srcType = 'src', + lazyClass = '', + settings = this._core.settings, + create = function(path) { + icon = '
'; + + if (settings.lazyLoad) { + tnLink = $('
',{ + "class": 'owl-video-tn ' + lazyClass, + "srcType": path + }); + } else { + tnLink = $( '
', { + "class": "owl-video-tn", + "style": 'opacity:1;background-image:url(' + path + ')' + }); + } + target.after(tnLink); + target.after(icon); + }; + + // wrap video content into owl-video-wrapper div + target.wrap( $( '
', { + "class": "owl-video-wrapper", + "style": dimensions + })); + + if (this._core.settings.lazyLoad) { + srcType = 'data-src'; + lazyClass = 'owl-lazy'; + } + + // custom thumbnail + if (customTn.length) { + create(customTn.attr(srcType)); + customTn.remove(); + return false; + } + + if (video.type === 'youtube') { + path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg"; + create(path); + } else if (video.type === 'vimeo') { + $.ajax({ + type: 'GET', + url: '//vimeo.com/api/v2/video/' + video.id + '.json', + jsonp: 'callback', + dataType: 'jsonp', + success: function(data) { + path = data[0].thumbnail_large; + create(path); + } + }); + } else if (video.type === 'vzaar') { + $.ajax({ + type: 'GET', + url: '//vzaar.com/api/videos/' + video.id + '.json', + jsonp: 'callback', + dataType: 'jsonp', + success: function(data) { + path = data.framegrab_url; + create(path); + } + }); + } + }; + + /** + * Stops the current video. + * @public + */ + Video.prototype.stop = function() { + this._core.trigger('stop', null, 'video'); + this._playing.find('.owl-video-frame').remove(); + this._playing.removeClass('owl-video-playing'); + this._playing = null; + this._core.leave('playing'); + this._core.trigger('stopped', null, 'video'); + }; + + /** + * Starts the current video. + * @public + * @param {Event} event - The event arguments. + */ + Video.prototype.play = function(event) { + var target = $(event.target), + item = target.closest('.' + this._core.settings.itemClass), + video = this._videos[item.attr('data-video')], + width = video.width || '100%', + height = video.height || this._core.$stage.height(), + html, + iframe; + + if (this._playing) { + return; + } + + this._core.enter('playing'); + this._core.trigger('play', null, 'video'); + + item = this._core.items(this._core.relative(item.index())); + + this._core.reset(item.index()); + + html = $( '' ); + html.attr( 'height', height ); + html.attr( 'width', width ); + if (video.type === 'youtube') { + html.attr( 'src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id ); + } else if (video.type === 'vimeo') { + html.attr( 'src', '//player.vimeo.com/video/' + video.id + '?autoplay=1' ); + } else if (video.type === 'vzaar') { + html.attr( 'src', '//view.vzaar.com/' + video.id + '/player?autoplay=true' ); + } + + iframe = $(html).wrap( '
' ).insertAfter(item.find('.owl-video')); + + this._playing = item.addClass('owl-video-playing'); + }; + + /** + * Checks whether an video is currently in full screen mode or not. + * @todo Bad style because looks like a readonly method but changes members. + * @protected + * @returns {Boolean} + */ + Video.prototype.isInFullScreen = function() { + var element = document.fullscreenElement || document.mozFullScreenElement || + document.webkitFullscreenElement; + + return element && $(element).parent().hasClass('owl-video-frame'); + }; + + /** + * Destroys the plugin. + */ + Video.prototype.destroy = function() { + var handler, property; + + this._core.$element.off('click.owl.video'); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Video = Video; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Animate Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the animate plugin. + * @class The Navigation Plugin + * @param {Owl} scope - The Owl Carousel + */ + var Animate = function(scope) { + this.core = scope; + this.core.options = $.extend({}, Animate.Defaults, this.core.options); + this.swapping = true; + this.previous = undefined; + this.next = undefined; + + this.handlers = { + 'change.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name == 'position') { + this.previous = this.core.current(); + this.next = e.property.value; + } + }, this), + 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) { + if (e.namespace) { + this.swapping = e.type == 'translated'; + } + }, this), + 'translate.owl.carousel': $.proxy(function(e) { + if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) { + this.swap(); + } + }, this) + }; + + this.core.$element.on(this.handlers); + }; + + /** + * Default options. + * @public + */ + Animate.Defaults = { + animateOut: false, + animateIn: false + }; + + /** + * Toggles the animation classes whenever an translations starts. + * @protected + * @returns {Boolean|undefined} + */ + Animate.prototype.swap = function() { + + if (this.core.settings.items !== 1) { + return; + } + + if (!$.support.animation || !$.support.transition) { + return; + } + + this.core.speed(0); + + var left, + clear = $.proxy(this.clear, this), + previous = this.core.$stage.children().eq(this.previous), + next = this.core.$stage.children().eq(this.next), + incoming = this.core.settings.animateIn, + outgoing = this.core.settings.animateOut; + + if (this.core.current() === this.previous) { + return; + } + + if (outgoing) { + left = this.core.coordinates(this.previous) - this.core.coordinates(this.next); + previous.one($.support.animation.end, clear) + .css( { 'left': left + 'px' } ) + .addClass('animated owl-animated-out') + .addClass(outgoing); + } + + if (incoming) { + next.one($.support.animation.end, clear) + .addClass('animated owl-animated-in') + .addClass(incoming); + } + }; + + Animate.prototype.clear = function(e) { + $(e.target).css( { 'left': '' } ) + .removeClass('animated owl-animated-out owl-animated-in') + .removeClass(this.core.settings.animateIn) + .removeClass(this.core.settings.animateOut); + this.core.onTransitionEnd(); + }; + + /** + * Destroys the plugin. + * @public + */ + Animate.prototype.destroy = function() { + var handler, property; + + for (handler in this.handlers) { + this.core.$element.off(handler, this.handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Animate = Animate; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Autoplay Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author Artus Kolanowski + * @author David Deutsch + * @author Tom De Caluwé + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the autoplay plugin. + * @class The Autoplay Plugin + * @param {Owl} scope - The Owl Carousel + */ + var Autoplay = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * The autoplay timeout id. + * @type {Number} + */ + this._call = null; + + /** + * Depending on the state of the plugin, this variable contains either + * the start time of the timer or the current timer value if it's + * paused. Since we start in a paused state we initialize the timer + * value. + * @type {Number} + */ + this._time = 0; + + /** + * Stores the timeout currently used. + * @type {Number} + */ + this._timeout = 0; + + /** + * Indicates whenever the autoplay is paused. + * @type {Boolean} + */ + this._paused = true; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name === 'settings') { + if (this._core.settings.autoplay) { + this.play(); + } else { + this.stop(); + } + } else if (e.namespace && e.property.name === 'position' && this._paused) { + // Reset the timer. This code is triggered when the position + // of the carousel was changed through user interaction. + this._time = 0; + } + }, this), + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoplay) { + this.play(); + } + }, this), + 'play.owl.autoplay': $.proxy(function(e, t, s) { + if (e.namespace) { + this.play(t, s); + } + }, this), + 'stop.owl.autoplay': $.proxy(function(e) { + if (e.namespace) { + this.stop(); + } + }, this), + 'mouseover.owl.autoplay': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.pause(); + } + }, this), + 'mouseleave.owl.autoplay': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.play(); + } + }, this), + 'touchstart.owl.core': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.pause(); + } + }, this), + 'touchend.owl.core': $.proxy(function() { + if (this._core.settings.autoplayHoverPause) { + this.play(); + } + }, this) + }; + + // register event handlers + this._core.$element.on(this._handlers); + + // set default options + this._core.options = $.extend({}, Autoplay.Defaults, this._core.options); + }; + + /** + * Default options. + * @public + */ + Autoplay.Defaults = { + autoplay: false, + autoplayTimeout: 5000, + autoplayHoverPause: false, + autoplaySpeed: false + }; + + /** + * Transition to the next slide and set a timeout for the next transition. + * @private + * @param {Number} [speed] - The animation speed for the animations. + */ + Autoplay.prototype._next = function(speed) { + this._call = window.setTimeout( + $.proxy(this._next, this, speed), + this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read() + ); + + if (this._core.is('interacting') || document.hidden) { + return; + } + this._core.next(speed || this._core.settings.autoplaySpeed); + } + + /** + * Reads the current timer value when the timer is playing. + * @public + */ + Autoplay.prototype.read = function() { + return new Date().getTime() - this._time; + }; + + /** + * Starts the autoplay. + * @public + * @param {Number} [timeout] - The interval before the next animation starts. + * @param {Number} [speed] - The animation speed for the animations. + */ + Autoplay.prototype.play = function(timeout, speed) { + var elapsed; + + if (!this._core.is('rotating')) { + this._core.enter('rotating'); + } + + timeout = timeout || this._core.settings.autoplayTimeout; + + // Calculate the elapsed time since the last transition. If the carousel + // wasn't playing this calculation will yield zero. + elapsed = Math.min(this._time % (this._timeout || timeout), timeout); + + if (this._paused) { + // Start the clock. + this._time = this.read(); + this._paused = false; + } else { + // Clear the active timeout to allow replacement. + window.clearTimeout(this._call); + } + + // Adjust the origin of the timer to match the new timeout value. + this._time += this.read() % timeout - elapsed; + + this._timeout = timeout; + this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed); + }; + + /** + * Stops the autoplay. + * @public + */ + Autoplay.prototype.stop = function() { + if (this._core.is('rotating')) { + // Reset the clock. + this._time = 0; + this._paused = true; + + window.clearTimeout(this._call); + this._core.leave('rotating'); + } + }; + + /** + * Pauses the autoplay. + * @public + */ + Autoplay.prototype.pause = function() { + if (this._core.is('rotating') && !this._paused) { + // Pause the clock. + this._time = this.read(); + this._paused = true; + + window.clearTimeout(this._call); + } + }; + + /** + * Destroys the plugin. + */ + Autoplay.prototype.destroy = function() { + var handler, property; + + this.stop(); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Navigation Plugin + * @version 2.3.4 + * @author Artus Kolanowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + 'use strict'; + + /** + * Creates the navigation plugin. + * @class The Navigation Plugin + * @param {Owl} carousel - The Owl Carousel. + */ + var Navigation = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Indicates whether the plugin is initialized or not. + * @protected + * @type {Boolean} + */ + this._initialized = false; + + /** + * The current paging indexes. + * @protected + * @type {Array} + */ + this._pages = []; + + /** + * All DOM elements of the user interface. + * @protected + * @type {Object} + */ + this._controls = {}; + + /** + * Markup for an indicator. + * @protected + * @type {Array.} + */ + this._templates = []; + + /** + * The carousel element. + * @type {jQuery} + */ + this.$element = this._core.$element; + + /** + * Overridden methods of the carousel. + * @protected + * @type {Object} + */ + this._overrides = { + next: this._core.next, + prev: this._core.prev, + to: this._core.to + }; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'prepared.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.push('
' + + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
'); + } + }, this), + 'added.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.splice(e.position, 0, this._templates.pop()); + } + }, this), + 'remove.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.splice(e.position, 1); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name == 'position') { + this.draw(); + } + }, this), + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && !this._initialized) { + this._core.trigger('initialize', null, 'navigation'); + this.initialize(); + this.update(); + this.draw(); + this._initialized = true; + this._core.trigger('initialized', null, 'navigation'); + } + }, this), + 'refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._initialized) { + this._core.trigger('refresh', null, 'navigation'); + this.update(); + this.draw(); + this._core.trigger('refreshed', null, 'navigation'); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, Navigation.Defaults, this._core.options); + + // register event handlers + this.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + * @todo Rename `slideBy` to `navBy` + */ + Navigation.Defaults = { + nav: false, + navText: [ + '', + '' + ], + navSpeed: false, + navElement: 'button type="button" role="presentation"', + navContainer: false, + navContainerClass: 'owl-nav', + navClass: [ + 'owl-prev', + 'owl-next' + ], + slideBy: 1, + dotClass: 'owl-dot', + dotsClass: 'owl-dots', + dots: true, + dotsEach: false, + dotsData: false, + dotsSpeed: false, + dotsContainer: false + }; + + /** + * Initializes the layout of the plugin and extends the carousel. + * @protected + */ + Navigation.prototype.initialize = function() { + var override, + settings = this._core.settings; + + // create DOM structure for relative navigation + this._controls.$relative = (settings.navContainer ? $(settings.navContainer) + : $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled'); + + this._controls.$previous = $('<' + settings.navElement + '>') + .addClass(settings.navClass[0]) + .html(settings.navText[0]) + .prependTo(this._controls.$relative) + .on('click', $.proxy(function(e) { + this.prev(settings.navSpeed); + }, this)); + this._controls.$next = $('<' + settings.navElement + '>') + .addClass(settings.navClass[1]) + .html(settings.navText[1]) + .appendTo(this._controls.$relative) + .on('click', $.proxy(function(e) { + this.next(settings.navSpeed); + }, this)); + + // create DOM structure for absolute navigation + if (!settings.dotsData) { + this._templates = [ $('").addClass(this._triggerClass). + html(!buttonImage ? buttonText : $("").attr( + { src:buttonImage, alt:buttonText, title:buttonText }))); + input[isRTL ? "before" : "after"](inst.trigger); + inst.trigger.click(function() { + if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) { + $.datepicker._hideDatepicker(); + } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) { + $.datepicker._hideDatepicker(); + $.datepicker._showDatepicker(input[0]); + } else { + $.datepicker._showDatepicker(input[0]); + } + return false; + }); + } + }, + + /* Apply the maximum length for the date format. */ + _autoSize: function(inst) { + if (this._get(inst, "autoSize") && !inst.inline) { + var findMax, max, maxI, i, + date = new Date(2009, 12 - 1, 20), // Ensure double digits + dateFormat = this._get(inst, "dateFormat"); + + if (dateFormat.match(/[DM]/)) { + findMax = function(names) { + max = 0; + maxI = 0; + for (i = 0; i < names.length; i++) { + if (names[i].length > max) { + max = names[i].length; + maxI = i; + } + } + return maxI; + }; + date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? + "monthNames" : "monthNamesShort")))); + date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? + "dayNames" : "dayNamesShort"))) + 20 - date.getDay()); + } + inst.input.attr("size", this._formatDate(inst, date).length); + } + }, + + /* Attach an inline date picker to a div. */ + _inlineDatepicker: function(target, inst) { + var divSpan = $(target); + if (divSpan.hasClass(this.markerClassName)) { + return; + } + divSpan.addClass(this.markerClassName).append(inst.dpDiv); + $.data(target, "datepicker", inst); + this._setDate(inst, this._getDefaultDate(inst), true); + this._updateDatepicker(inst); + this._updateAlternate(inst); + //If disabled option is true, disable the datepicker before showing it (see ticket #5665) + if( inst.settings.disabled ) { + this._disableDatepicker( target ); + } + // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements + // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height + inst.dpDiv.css( "display", "block" ); + }, + + /* Pop-up the date picker in a "dialog" box. + * @param input element - ignored + * @param date string or Date - the initial date to display + * @param onSelect function - the function to call when a date is selected + * @param settings object - update the dialog date picker instance's settings (anonymous object) + * @param pos int[2] - coordinates for the dialog's position within the screen or + * event - with x/y coordinates or + * leave empty for default (screen centre) + * @return the manager object + */ + _dialogDatepicker: function(input, date, onSelect, settings, pos) { + var id, browserWidth, browserHeight, scrollX, scrollY, + inst = this._dialogInst; // internal instance + + if (!inst) { + this.uuid += 1; + id = "dp" + this.uuid; + this._dialogInput = $(""); + this._dialogInput.keydown(this._doKeyDown); + $("body").append(this._dialogInput); + inst = this._dialogInst = this._newInst(this._dialogInput, false); + inst.settings = {}; + $.data(this._dialogInput[0], "datepicker", inst); + } + datepicker_extendRemove(inst.settings, settings || {}); + date = (date && date.constructor === Date ? this._formatDate(inst, date) : date); + this._dialogInput.val(date); + + this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); + if (!this._pos) { + browserWidth = document.documentElement.clientWidth; + browserHeight = document.documentElement.clientHeight; + scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; + scrollY = document.documentElement.scrollTop || document.body.scrollTop; + this._pos = // should use actual width/height below + [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; + } + + // move input on screen for focus, but hidden behind dialog + this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px"); + inst.settings.onSelect = onSelect; + this._inDialog = true; + this.dpDiv.addClass(this._dialogClass); + this._showDatepicker(this._dialogInput[0]); + if ($.blockUI) { + $.blockUI(this.dpDiv); + } + $.data(this._dialogInput[0], "datepicker", inst); + return this; + }, + + /* Detach a datepicker from its control. + * @param target element - the target input field or division or span + */ + _destroyDatepicker: function(target) { + var nodeName, + $target = $(target), + inst = $.data(target, "datepicker"); + + if (!$target.hasClass(this.markerClassName)) { + return; + } + + nodeName = target.nodeName.toLowerCase(); + $.removeData(target, "datepicker"); + if (nodeName === "input") { + inst.append.remove(); + inst.trigger.remove(); + $target.removeClass(this.markerClassName). + unbind("focus", this._showDatepicker). + unbind("keydown", this._doKeyDown). + unbind("keypress", this._doKeyPress). + unbind("keyup", this._doKeyUp); + } else if (nodeName === "div" || nodeName === "span") { + $target.removeClass(this.markerClassName).empty(); + } + }, + + /* Enable the date picker to a jQuery selection. + * @param target element - the target input field or division or span + */ + _enableDatepicker: function(target) { + var nodeName, inline, + $target = $(target), + inst = $.data(target, "datepicker"); + + if (!$target.hasClass(this.markerClassName)) { + return; + } + + nodeName = target.nodeName.toLowerCase(); + if (nodeName === "input") { + target.disabled = false; + inst.trigger.filter("button"). + each(function() { this.disabled = false; }).end(). + filter("img").css({opacity: "1.0", cursor: ""}); + } else if (nodeName === "div" || nodeName === "span") { + inline = $target.children("." + this._inlineClass); + inline.children().removeClass("ui-state-disabled"); + inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). + prop("disabled", false); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value === target ? null : value); }); // delete entry + }, + + /* Disable the date picker to a jQuery selection. + * @param target element - the target input field or division or span + */ + _disableDatepicker: function(target) { + var nodeName, inline, + $target = $(target), + inst = $.data(target, "datepicker"); + + if (!$target.hasClass(this.markerClassName)) { + return; + } + + nodeName = target.nodeName.toLowerCase(); + if (nodeName === "input") { + target.disabled = true; + inst.trigger.filter("button"). + each(function() { this.disabled = true; }).end(). + filter("img").css({opacity: "0.5", cursor: "default"}); + } else if (nodeName === "div" || nodeName === "span") { + inline = $target.children("." + this._inlineClass); + inline.children().addClass("ui-state-disabled"); + inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). + prop("disabled", true); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value === target ? null : value); }); // delete entry + this._disabledInputs[this._disabledInputs.length] = target; + }, + + /* Is the first field in a jQuery collection disabled as a datepicker? + * @param target element - the target input field or division or span + * @return boolean - true if disabled, false if enabled + */ + _isDisabledDatepicker: function(target) { + if (!target) { + return false; + } + for (var i = 0; i < this._disabledInputs.length; i++) { + if (this._disabledInputs[i] === target) { + return true; + } + } + return false; + }, + + /* Retrieve the instance data for the target control. + * @param target element - the target input field or division or span + * @return object - the associated instance data + * @throws error if a jQuery problem getting data + */ + _getInst: function(target) { + try { + return $.data(target, "datepicker"); + } + catch (err) { + throw "Missing instance data for this datepicker"; + } + }, + + /* Update or retrieve the settings for a date picker attached to an input field or division. + * @param target element - the target input field or division or span + * @param name object - the new settings to update or + * string - the name of the setting to change or retrieve, + * when retrieving also "all" for all instance settings or + * "defaults" for all global defaults + * @param value any - the new value for the setting + * (omit if above is an object or to retrieve a value) + */ + _optionDatepicker: function(target, name, value) { + var settings, date, minDate, maxDate, + inst = this._getInst(target); + + if (arguments.length === 2 && typeof name === "string") { + return (name === "defaults" ? $.extend({}, $.datepicker._defaults) : + (inst ? (name === "all" ? $.extend({}, inst.settings) : + this._get(inst, name)) : null)); + } + + settings = name || {}; + if (typeof name === "string") { + settings = {}; + settings[name] = value; + } + + if (inst) { + if (this._curInst === inst) { + this._hideDatepicker(); + } + + date = this._getDateDatepicker(target, true); + minDate = this._getMinMaxDate(inst, "min"); + maxDate = this._getMinMaxDate(inst, "max"); + datepicker_extendRemove(inst.settings, settings); + // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided + if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) { + inst.settings.minDate = this._formatDate(inst, minDate); + } + if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) { + inst.settings.maxDate = this._formatDate(inst, maxDate); + } + if ( "disabled" in settings ) { + if ( settings.disabled ) { + this._disableDatepicker(target); + } else { + this._enableDatepicker(target); + } + } + this._attachments($(target), inst); + this._autoSize(inst); + this._setDate(inst, date); + this._updateAlternate(inst); + this._updateDatepicker(inst); + } + }, + + // change method deprecated + _changeDatepicker: function(target, name, value) { + this._optionDatepicker(target, name, value); + }, + + /* Redraw the date picker attached to an input field or division. + * @param target element - the target input field or division or span + */ + _refreshDatepicker: function(target) { + var inst = this._getInst(target); + if (inst) { + this._updateDatepicker(inst); + } + }, + + /* Set the dates for a jQuery selection. + * @param target element - the target input field or division or span + * @param date Date - the new date + */ + _setDateDatepicker: function(target, date) { + var inst = this._getInst(target); + if (inst) { + this._setDate(inst, date); + this._updateDatepicker(inst); + this._updateAlternate(inst); + } + }, + + /* Get the date(s) for the first entry in a jQuery selection. + * @param target element - the target input field or division or span + * @param noDefault boolean - true if no default date is to be used + * @return Date - the current date + */ + _getDateDatepicker: function(target, noDefault) { + var inst = this._getInst(target); + if (inst && !inst.inline) { + this._setDateFromField(inst, noDefault); + } + return (inst ? this._getDate(inst) : null); + }, + + /* Handle keystrokes. */ + _doKeyDown: function(event) { + var onSelect, dateStr, sel, + inst = $.datepicker._getInst(event.target), + handled = true, + isRTL = inst.dpDiv.is(".ui-datepicker-rtl"); + + inst._keyEvent = true; + if ($.datepicker._datepickerShowing) { + switch (event.keyCode) { + case 9: $.datepicker._hideDatepicker(); + handled = false; + break; // hide on tab out + case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." + + $.datepicker._currentClass + ")", inst.dpDiv); + if (sel[0]) { + $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); + } + + onSelect = $.datepicker._get(inst, "onSelect"); + if (onSelect) { + dateStr = $.datepicker._formatDate(inst); + + // trigger custom callback + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); + } else { + $.datepicker._hideDatepicker(); + } + + return false; // don't submit the form + case 27: $.datepicker._hideDatepicker(); + break; // hide on escape + case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, "stepBigMonths") : + -$.datepicker._get(inst, "stepMonths")), "M"); + break; // previous month/year on page up/+ ctrl + case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, "stepBigMonths") : + +$.datepicker._get(inst, "stepMonths")), "M"); + break; // next month/year on page down/+ ctrl + case 35: if (event.ctrlKey || event.metaKey) { + $.datepicker._clearDate(event.target); + } + handled = event.ctrlKey || event.metaKey; + break; // clear on ctrl or command +end + case 36: if (event.ctrlKey || event.metaKey) { + $.datepicker._gotoToday(event.target); + } + handled = event.ctrlKey || event.metaKey; + break; // current on ctrl or command +home + case 37: if (event.ctrlKey || event.metaKey) { + $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D"); + } + handled = event.ctrlKey || event.metaKey; + // -1 day on ctrl or command +left + if (event.originalEvent.altKey) { + $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, "stepBigMonths") : + -$.datepicker._get(inst, "stepMonths")), "M"); + } + // next month/year on alt +left on Mac + break; + case 38: if (event.ctrlKey || event.metaKey) { + $.datepicker._adjustDate(event.target, -7, "D"); + } + handled = event.ctrlKey || event.metaKey; + break; // -1 week on ctrl or command +up + case 39: if (event.ctrlKey || event.metaKey) { + $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D"); + } + handled = event.ctrlKey || event.metaKey; + // +1 day on ctrl or command +right + if (event.originalEvent.altKey) { + $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, "stepBigMonths") : + +$.datepicker._get(inst, "stepMonths")), "M"); + } + // next month/year on alt +right + break; + case 40: if (event.ctrlKey || event.metaKey) { + $.datepicker._adjustDate(event.target, +7, "D"); + } + handled = event.ctrlKey || event.metaKey; + break; // +1 week on ctrl or command +down + default: handled = false; + } + } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home + $.datepicker._showDatepicker(this); + } else { + handled = false; + } + + if (handled) { + event.preventDefault(); + event.stopPropagation(); + } + }, + + /* Filter entered characters - based on date format. */ + _doKeyPress: function(event) { + var chars, chr, + inst = $.datepicker._getInst(event.target); + + if ($.datepicker._get(inst, "constrainInput")) { + chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat")); + chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode); + return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1); + } + }, + + /* Synchronise manual entry and field/alternate field. */ + _doKeyUp: function(event) { + var date, + inst = $.datepicker._getInst(event.target); + + if (inst.input.val() !== inst.lastVal) { + try { + date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), + (inst.input ? inst.input.val() : null), + $.datepicker._getFormatConfig(inst)); + + if (date) { // only if valid + $.datepicker._setDateFromField(inst); + $.datepicker._updateAlternate(inst); + $.datepicker._updateDatepicker(inst); + } + } + catch (err) { + } + } + return true; + }, + + /* Pop-up the date picker for a given input field. + * If false returned from beforeShow event handler do not show. + * @param input element - the input field attached to the date picker or + * event - if triggered by focus + */ + _showDatepicker: function(input) { + input = input.target || input; + if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger + input = $("input", input.parentNode)[0]; + } + + if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here + return; + } + + var inst, beforeShow, beforeShowSettings, isFixed, + offset, showAnim, duration; + + inst = $.datepicker._getInst(input); + if ($.datepicker._curInst && $.datepicker._curInst !== inst) { + $.datepicker._curInst.dpDiv.stop(true, true); + if ( inst && $.datepicker._datepickerShowing ) { + $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] ); + } + } + + beforeShow = $.datepicker._get(inst, "beforeShow"); + beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; + if(beforeShowSettings === false){ + return; + } + datepicker_extendRemove(inst.settings, beforeShowSettings); + + inst.lastVal = null; + $.datepicker._lastInput = input; + $.datepicker._setDateFromField(inst); + + if ($.datepicker._inDialog) { // hide cursor + input.value = ""; + } + if (!$.datepicker._pos) { // position below input + $.datepicker._pos = $.datepicker._findPos(input); + $.datepicker._pos[1] += input.offsetHeight; // add the height + } + + isFixed = false; + $(input).parents().each(function() { + isFixed |= $(this).css("position") === "fixed"; + return !isFixed; + }); + + offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; + $.datepicker._pos = null; + //to avoid flashes on Firefox + inst.dpDiv.empty(); + // determine sizing offscreen + inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"}); + $.datepicker._updateDatepicker(inst); + // fix width for dynamic number of date pickers + // and adjust position before showing + offset = $.datepicker._checkOffset(inst, offset, isFixed); + inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? + "static" : (isFixed ? "fixed" : "absolute")), display: "none", + left: offset.left + "px", top: offset.top + "px"}); + + if (!inst.inline) { + showAnim = $.datepicker._get(inst, "showAnim"); + duration = $.datepicker._get(inst, "duration"); + inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 ); + $.datepicker._datepickerShowing = true; + + if ( $.effects && $.effects.effect[ showAnim ] ) { + inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration); + } else { + inst.dpDiv[showAnim || "show"](showAnim ? duration : null); + } + + if ( $.datepicker._shouldFocusInput( inst ) ) { + inst.input.focus(); + } + + $.datepicker._curInst = inst; + } + }, + + /* Generate the date picker content. */ + _updateDatepicker: function(inst) { + this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) + datepicker_instActive = inst; // for delegate hover events + inst.dpDiv.empty().append(this._generateHTML(inst)); + this._attachHandlers(inst); + + var origyearshtml, + numMonths = this._getNumberOfMonths(inst), + cols = numMonths[1], + width = 17, + activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" ); + + if ( activeCell.length > 0 ) { + datepicker_handleMouseover.apply( activeCell.get( 0 ) ); + } + + inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); + if (cols > 1) { + inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em"); + } + inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") + + "Class"]("ui-datepicker-multi"); + inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") + + "Class"]("ui-datepicker-rtl"); + + if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) { + inst.input.focus(); + } + + // deffered render of the years select (to avoid flashes on Firefox) + if( inst.yearshtml ){ + origyearshtml = inst.yearshtml; + setTimeout(function(){ + //assure that inst.yearshtml didn't change. + if( origyearshtml === inst.yearshtml && inst.yearshtml ){ + inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml); + } + origyearshtml = inst.yearshtml = null; + }, 0); + } + }, + + // #6694 - don't focus the input if it's already focused + // this breaks the change event in IE + // Support: IE and jQuery <1.9 + _shouldFocusInput: function( inst ) { + return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" ); + }, + + /* Check positioning to remain on screen. */ + _checkOffset: function(inst, offset, isFixed) { + var dpWidth = inst.dpDiv.outerWidth(), + dpHeight = inst.dpDiv.outerHeight(), + inputWidth = inst.input ? inst.input.outerWidth() : 0, + inputHeight = inst.input ? inst.input.outerHeight() : 0, + viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()), + viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop()); + + offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0); + offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0; + offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; + + // now check if datepicker is showing outside window viewport - move to a better place if so. + offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? + Math.abs(offset.left + dpWidth - viewWidth) : 0); + offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? + Math.abs(dpHeight + inputHeight) : 0); + + return offset; + }, + + /* Find an object's position on the screen. */ + _findPos: function(obj) { + var position, + inst = this._getInst(obj), + isRTL = this._get(inst, "isRTL"); + + while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) { + obj = obj[isRTL ? "previousSibling" : "nextSibling"]; + } + + position = $(obj).offset(); + return [position.left, position.top]; + }, + + /* Hide the date picker from view. + * @param input element - the input field attached to the date picker + */ + _hideDatepicker: function(input) { + var showAnim, duration, postProcess, onClose, + inst = this._curInst; + + if (!inst || (input && inst !== $.data(input, "datepicker"))) { + return; + } + + if (this._datepickerShowing) { + showAnim = this._get(inst, "showAnim"); + duration = this._get(inst, "duration"); + postProcess = function() { + $.datepicker._tidyDialog(inst); + }; + + // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed + if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { + inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); + } else { + inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : + (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); + } + + if (!showAnim) { + postProcess(); + } + this._datepickerShowing = false; + + onClose = this._get(inst, "onClose"); + if (onClose) { + onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); + } + + this._lastInput = null; + if (this._inDialog) { + this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); + if ($.blockUI) { + $.unblockUI(); + $("body").append(this.dpDiv); + } + } + this._inDialog = false; + } + }, + + /* Tidy up after a dialog display. */ + _tidyDialog: function(inst) { + inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); + }, + + /* Close date picker if clicked elsewhere. */ + _checkExternalClick: function(event) { + if (!$.datepicker._curInst) { + return; + } + + var $target = $(event.target), + inst = $.datepicker._getInst($target[0]); + + if ( ( ( $target[0].id !== $.datepicker._mainDivId && + $target.parents("#" + $.datepicker._mainDivId).length === 0 && + !$target.hasClass($.datepicker.markerClassName) && + !$target.closest("." + $.datepicker._triggerClass).length && + $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) || + ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) { + $.datepicker._hideDatepicker(); + } + }, + + /* Adjust one of the date sub-fields. */ + _adjustDate: function(id, offset, period) { + var target = $(id), + inst = this._getInst(target[0]); + + if (this._isDisabledDatepicker(target[0])) { + return; + } + this._adjustInstDate(inst, offset + + (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning + period); + this._updateDatepicker(inst); + }, + + /* Action for current link. */ + _gotoToday: function(id) { + var date, + target = $(id), + inst = this._getInst(target[0]); + + if (this._get(inst, "gotoCurrent") && inst.currentDay) { + inst.selectedDay = inst.currentDay; + inst.drawMonth = inst.selectedMonth = inst.currentMonth; + inst.drawYear = inst.selectedYear = inst.currentYear; + } else { + date = new Date(); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + } + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Action for selecting a new month/year. */ + _selectMonthYear: function(id, select, period) { + var target = $(id), + inst = this._getInst(target[0]); + + inst["selected" + (period === "M" ? "Month" : "Year")] = + inst["draw" + (period === "M" ? "Month" : "Year")] = + parseInt(select.options[select.selectedIndex].value,10); + + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Action for selecting a day. */ + _selectDay: function(id, month, year, td) { + var inst, + target = $(id); + + if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { + return; + } + + inst = this._getInst(target[0]); + inst.selectedDay = inst.currentDay = $("a", td).html(); + inst.selectedMonth = inst.currentMonth = month; + inst.selectedYear = inst.currentYear = year; + this._selectDate(id, this._formatDate(inst, + inst.currentDay, inst.currentMonth, inst.currentYear)); + }, + + /* Erase the input field and hide the date picker. */ + _clearDate: function(id) { + var target = $(id); + this._selectDate(target, ""); + }, + + /* Update the input field with the selected date. */ + _selectDate: function(id, dateStr) { + var onSelect, + target = $(id), + inst = this._getInst(target[0]); + + dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); + if (inst.input) { + inst.input.val(dateStr); + } + this._updateAlternate(inst); + + onSelect = this._get(inst, "onSelect"); + if (onSelect) { + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback + } else if (inst.input) { + inst.input.trigger("change"); // fire the change event + } + + if (inst.inline){ + this._updateDatepicker(inst); + } else { + this._hideDatepicker(); + this._lastInput = inst.input[0]; + if (typeof(inst.input[0]) !== "object") { + inst.input.focus(); // restore focus + } + this._lastInput = null; + } + }, + + /* Update any alternate field to synchronise with the main field. */ + _updateAlternate: function(inst) { + var altFormat, date, dateStr, + altField = this._get(inst, "altField"); + + if (altField) { // update alternate field too + altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat"); + date = this._getDate(inst); + dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); + $(altField).each(function() { $(this).val(dateStr); }); + } + }, + + /* Set as beforeShowDay function to prevent selection of weekends. + * @param date Date - the date to customise + * @return [boolean, string] - is this date selectable?, what is its CSS class? + */ + noWeekends: function(date) { + var day = date.getDay(); + return [(day > 0 && day < 6), ""]; + }, + + /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. + * @param date Date - the date to get the week for + * @return number - the number of the week within the year that contains this date + */ + iso8601Week: function(date) { + var time, + checkDate = new Date(date.getTime()); + + // Find Thursday of this week starting on Monday + checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); + + time = checkDate.getTime(); + checkDate.setMonth(0); // Compare with Jan 1 + checkDate.setDate(1); + return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; + }, + + /* Parse a string value into a date object. + * See formatDate below for the possible formats. + * + * @param format string - the expected format of the date + * @param value string - the date in the above format + * @param settings Object - attributes include: + * shortYearCutoff number - the cutoff year for determining the century (optional) + * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + * dayNames string[7] - names of the days from Sunday (optional) + * monthNamesShort string[12] - abbreviated names of the months (optional) + * monthNames string[12] - names of the months (optional) + * @return Date - the extracted date value or null if value is blank + */ + parseDate: function (format, value, settings) { + if (format == null || value == null) { + throw "Invalid arguments"; + } + + value = (typeof value === "object" ? value.toString() : value + ""); + if (value === "") { + return null; + } + + var iFormat, dim, extra, + iValue = 0, + shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff, + shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp : + new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)), + dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, + dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, + monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, + monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, + year = -1, + month = -1, + day = -1, + doy = -1, + literal = false, + date, + // Check whether a format character is doubled + lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); + if (matches) { + iFormat++; + } + return matches; + }, + // Extract a number from the string value + getNumber = function(match) { + var isDoubled = lookAhead(match), + size = (match === "@" ? 14 : (match === "!" ? 20 : + (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), + minSize = (match === "y" ? size : 1), + digits = new RegExp("^\\d{" + minSize + "," + size + "}"), + num = value.substring(iValue).match(digits); + if (!num) { + throw "Missing number at position " + iValue; + } + iValue += num[0].length; + return parseInt(num[0], 10); + }, + // Extract a name from the string value and convert to an index + getName = function(match, shortNames, longNames) { + var index = -1, + names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { + return [ [k, v] ]; + }).sort(function (a, b) { + return -(a[1].length - b[1].length); + }); + + $.each(names, function (i, pair) { + var name = pair[1]; + if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) { + index = pair[0]; + iValue += name.length; + return false; + } + }); + if (index !== -1) { + return index + 1; + } else { + throw "Unknown name at position " + iValue; + } + }, + // Confirm that a literal character matches the string value + checkLiteral = function() { + if (value.charAt(iValue) !== format.charAt(iFormat)) { + throw "Unexpected literal at position " + iValue; + } + iValue++; + }; + + for (iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !lookAhead("'")) { + literal = false; + } else { + checkLiteral(); + } + } else { + switch (format.charAt(iFormat)) { + case "d": + day = getNumber("d"); + break; + case "D": + getName("D", dayNamesShort, dayNames); + break; + case "o": + doy = getNumber("o"); + break; + case "m": + month = getNumber("m"); + break; + case "M": + month = getName("M", monthNamesShort, monthNames); + break; + case "y": + year = getNumber("y"); + break; + case "@": + date = new Date(getNumber("@")); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case "!": + date = new Date((getNumber("!") - this._ticksTo1970) / 10000); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case "'": + if (lookAhead("'")){ + checkLiteral(); + } else { + literal = true; + } + break; + default: + checkLiteral(); + } + } + } + + if (iValue < value.length){ + extra = value.substr(iValue); + if (!/^\s+/.test(extra)) { + throw "Extra/unparsed characters found in date: " + extra; + } + } + + if (year === -1) { + year = new Date().getFullYear(); + } else if (year < 100) { + year += new Date().getFullYear() - new Date().getFullYear() % 100 + + (year <= shortYearCutoff ? 0 : -100); + } + + if (doy > -1) { + month = 1; + day = doy; + do { + dim = this._getDaysInMonth(year, month - 1); + if (day <= dim) { + break; + } + month++; + day -= dim; + } while (true); + } + + date = this._daylightSavingAdjust(new Date(year, month - 1, day)); + if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) { + throw "Invalid date"; // E.g. 31/02/00 + } + return date; + }, + + /* Standard date formats. */ + ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601) + COOKIE: "D, dd M yy", + ISO_8601: "yy-mm-dd", + RFC_822: "D, d M y", + RFC_850: "DD, dd-M-y", + RFC_1036: "D, d M y", + RFC_1123: "D, d M yy", + RFC_2822: "D, d M yy", + RSS: "D, d M y", // RFC 822 + TICKS: "!", + TIMESTAMP: "@", + W3C: "yy-mm-dd", // ISO 8601 + + _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), + + /* Format a date object into a string value. + * The format can be combinations of the following: + * d - day of month (no leading zero) + * dd - day of month (two digit) + * o - day of year (no leading zeros) + * oo - day of year (three digit) + * D - day name short + * DD - day name long + * m - month of year (no leading zero) + * mm - month of year (two digit) + * M - month name short + * MM - month name long + * y - year (two digit) + * yy - year (four digit) + * @ - Unix timestamp (ms since 01/01/1970) + * ! - Windows ticks (100ns since 01/01/0001) + * "..." - literal text + * '' - single quote + * + * @param format string - the desired format of the date + * @param date Date - the date value to format + * @param settings Object - attributes include: + * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + * dayNames string[7] - names of the days from Sunday (optional) + * monthNamesShort string[12] - abbreviated names of the months (optional) + * monthNames string[12] - names of the months (optional) + * @return string - the date in the above format + */ + formatDate: function (format, date, settings) { + if (!date) { + return ""; + } + + var iFormat, + dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, + dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, + monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, + monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, + // Check whether a format character is doubled + lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); + if (matches) { + iFormat++; + } + return matches; + }, + // Format a number, with leading zero if necessary + formatNumber = function(match, value, len) { + var num = "" + value; + if (lookAhead(match)) { + while (num.length < len) { + num = "0" + num; + } + } + return num; + }, + // Format a name, short or long as requested + formatName = function(match, value, shortNames, longNames) { + return (lookAhead(match) ? longNames[value] : shortNames[value]); + }, + output = "", + literal = false; + + if (date) { + for (iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !lookAhead("'")) { + literal = false; + } else { + output += format.charAt(iFormat); + } + } else { + switch (format.charAt(iFormat)) { + case "d": + output += formatNumber("d", date.getDate(), 2); + break; + case "D": + output += formatName("D", date.getDay(), dayNamesShort, dayNames); + break; + case "o": + output += formatNumber("o", + Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); + break; + case "m": + output += formatNumber("m", date.getMonth() + 1, 2); + break; + case "M": + output += formatName("M", date.getMonth(), monthNamesShort, monthNames); + break; + case "y": + output += (lookAhead("y") ? date.getFullYear() : + (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100); + break; + case "@": + output += date.getTime(); + break; + case "!": + output += date.getTime() * 10000 + this._ticksTo1970; + break; + case "'": + if (lookAhead("'")) { + output += "'"; + } else { + literal = true; + } + break; + default: + output += format.charAt(iFormat); + } + } + } + } + return output; + }, + + /* Extract all possible characters from the date format. */ + _possibleChars: function (format) { + var iFormat, + chars = "", + literal = false, + // Check whether a format character is doubled + lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); + if (matches) { + iFormat++; + } + return matches; + }; + + for (iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !lookAhead("'")) { + literal = false; + } else { + chars += format.charAt(iFormat); + } + } else { + switch (format.charAt(iFormat)) { + case "d": case "m": case "y": case "@": + chars += "0123456789"; + break; + case "D": case "M": + return null; // Accept anything + case "'": + if (lookAhead("'")) { + chars += "'"; + } else { + literal = true; + } + break; + default: + chars += format.charAt(iFormat); + } + } + } + return chars; + }, + + /* Get a setting value, defaulting if necessary. */ + _get: function(inst, name) { + return inst.settings[name] !== undefined ? + inst.settings[name] : this._defaults[name]; + }, + + /* Parse existing date and initialise date picker. */ + _setDateFromField: function(inst, noDefault) { + if (inst.input.val() === inst.lastVal) { + return; + } + + var dateFormat = this._get(inst, "dateFormat"), + dates = inst.lastVal = inst.input ? inst.input.val() : null, + defaultDate = this._getDefaultDate(inst), + date = defaultDate, + settings = this._getFormatConfig(inst); + + try { + date = this.parseDate(dateFormat, dates, settings) || defaultDate; + } catch (event) { + dates = (noDefault ? "" : dates); + } + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + inst.currentDay = (dates ? date.getDate() : 0); + inst.currentMonth = (dates ? date.getMonth() : 0); + inst.currentYear = (dates ? date.getFullYear() : 0); + this._adjustInstDate(inst); + }, + + /* Retrieve the default date shown on opening. */ + _getDefaultDate: function(inst) { + return this._restrictMinMax(inst, + this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); + }, + + /* A date may be specified as an exact value or a relative one. */ + _determineDate: function(inst, date, defaultDate) { + var offsetNumeric = function(offset) { + var date = new Date(); + date.setDate(date.getDate() + offset); + return date; + }, + offsetString = function(offset) { + try { + return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), + offset, $.datepicker._getFormatConfig(inst)); + } + catch (e) { + // Ignore + } + + var date = (offset.toLowerCase().match(/^c/) ? + $.datepicker._getDate(inst) : null) || new Date(), + year = date.getFullYear(), + month = date.getMonth(), + day = date.getDate(), + pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, + matches = pattern.exec(offset); + + while (matches) { + switch (matches[2] || "d") { + case "d" : case "D" : + day += parseInt(matches[1],10); break; + case "w" : case "W" : + day += parseInt(matches[1],10) * 7; break; + case "m" : case "M" : + month += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + case "y": case "Y" : + year += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + } + matches = pattern.exec(offset); + } + return new Date(year, month, day); + }, + newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : + (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); + + newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); + if (newDate) { + newDate.setHours(0); + newDate.setMinutes(0); + newDate.setSeconds(0); + newDate.setMilliseconds(0); + } + return this._daylightSavingAdjust(newDate); + }, + + /* Handle switch to/from daylight saving. + * Hours may be non-zero on daylight saving cut-over: + * > 12 when midnight changeover, but then cannot generate + * midnight datetime, so jump to 1AM, otherwise reset. + * @param date (Date) the date to check + * @return (Date) the corrected date + */ + _daylightSavingAdjust: function(date) { + if (!date) { + return null; + } + date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); + return date; + }, + + /* Set the date(s) directly. */ + _setDate: function(inst, date, noChange) { + var clear = !date, + origMonth = inst.selectedMonth, + origYear = inst.selectedYear, + newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); + + inst.selectedDay = inst.currentDay = newDate.getDate(); + inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); + inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); + if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) { + this._notifyChange(inst); + } + this._adjustInstDate(inst); + if (inst.input) { + inst.input.val(clear ? "" : this._formatDate(inst)); + } + }, + + /* Retrieve the date(s) directly. */ + _getDate: function(inst) { + var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null : + this._daylightSavingAdjust(new Date( + inst.currentYear, inst.currentMonth, inst.currentDay))); + return startDate; + }, + + /* Attach the onxxx handlers. These are declared statically so + * they work with static code transformers like Caja. + */ + _attachHandlers: function(inst) { + var stepMonths = this._get(inst, "stepMonths"), + id = "#" + inst.id.replace( /\\\\/g, "\\" ); + inst.dpDiv.find("[data-handler]").map(function () { + var handler = { + prev: function () { + $.datepicker._adjustDate(id, -stepMonths, "M"); + }, + next: function () { + $.datepicker._adjustDate(id, +stepMonths, "M"); + }, + hide: function () { + $.datepicker._hideDatepicker(); + }, + today: function () { + $.datepicker._gotoToday(id); + }, + selectDay: function () { + $.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); + return false; + }, + selectMonth: function () { + $.datepicker._selectMonthYear(id, this, "M"); + return false; + }, + selectYear: function () { + $.datepicker._selectMonthYear(id, this, "Y"); + return false; + } + }; + $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]); + }); + }, + + /* Generate the HTML for the current state of the date picker. */ + _generateHTML: function(inst) { + var maxDraw, prevText, prev, nextText, next, currentText, gotoDate, + controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin, + monthNames, monthNamesShort, beforeShowDay, showOtherMonths, + selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate, + cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows, + printDate, dRow, tbody, daySettings, otherMonth, unselectable, + tempDate = new Date(), + today = this._daylightSavingAdjust( + new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time + isRTL = this._get(inst, "isRTL"), + showButtonPanel = this._get(inst, "showButtonPanel"), + hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"), + navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"), + numMonths = this._getNumberOfMonths(inst), + showCurrentAtPos = this._get(inst, "showCurrentAtPos"), + stepMonths = this._get(inst, "stepMonths"), + isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1), + currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : + new Date(inst.currentYear, inst.currentMonth, inst.currentDay))), + minDate = this._getMinMaxDate(inst, "min"), + maxDate = this._getMinMaxDate(inst, "max"), + drawMonth = inst.drawMonth - showCurrentAtPos, + drawYear = inst.drawYear; + + if (drawMonth < 0) { + drawMonth += 12; + drawYear--; + } + if (maxDate) { + maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), + maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); + maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); + while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { + drawMonth--; + if (drawMonth < 0) { + drawMonth = 11; + drawYear--; + } + } + } + inst.drawMonth = drawMonth; + inst.drawYear = drawYear; + + prevText = this._get(inst, "prevText"); + prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), + this._getFormatConfig(inst))); + + prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? + "" + prevText + "" : + (hideIfNoPrevNext ? "" : "" + prevText + "")); + + nextText = this._get(inst, "nextText"); + nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), + this._getFormatConfig(inst))); + + next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? + "" + nextText + "" : + (hideIfNoPrevNext ? "" : "" + nextText + "")); + + currentText = this._get(inst, "currentText"); + gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today); + currentText = (!navigationAsDateFormat ? currentText : + this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); + + controls = (!inst.inline ? "" : ""); + + buttonPanel = (showButtonPanel) ? "
" + (isRTL ? controls : "") + + (this._isInRange(inst, gotoDate) ? "" : "") + (isRTL ? "" : controls) + "
" : ""; + + firstDay = parseInt(this._get(inst, "firstDay"),10); + firstDay = (isNaN(firstDay) ? 0 : firstDay); + + showWeek = this._get(inst, "showWeek"); + dayNames = this._get(inst, "dayNames"); + dayNamesMin = this._get(inst, "dayNamesMin"); + monthNames = this._get(inst, "monthNames"); + monthNamesShort = this._get(inst, "monthNamesShort"); + beforeShowDay = this._get(inst, "beforeShowDay"); + showOtherMonths = this._get(inst, "showOtherMonths"); + selectOtherMonths = this._get(inst, "selectOtherMonths"); + defaultDate = this._getDefaultDate(inst); + html = ""; + dow; + for (row = 0; row < numMonths[0]; row++) { + group = ""; + this.maxRows = 4; + for (col = 0; col < numMonths[1]; col++) { + selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); + cornerClass = " ui-corner-all"; + calender = ""; + if (isMultiMonth) { + calender += "
"; + } + calender += "
" + + (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") + + (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") + + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, + row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers + "
" + + ""; + thead = (showWeek ? "" : ""); + for (dow = 0; dow < 7; dow++) { // days of the week + day = (dow + firstDay) % 7; + thead += ""; + } + calender += thead + ""; + daysInMonth = this._getDaysInMonth(drawYear, drawMonth); + if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) { + inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); + } + leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; + curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate + numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) + this.maxRows = numRows; + printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); + for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows + calender += ""; + tbody = (!showWeek ? "" : ""); + for (dow = 0; dow < 7; dow++) { // create date picker days + daySettings = (beforeShowDay ? + beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]); + otherMonth = (printDate.getMonth() !== drawMonth); + unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || + (minDate && printDate < minDate) || (maxDate && printDate > maxDate); + tbody += ""; // display selectable date + printDate.setDate(printDate.getDate() + 1); + printDate = this._daylightSavingAdjust(printDate); + } + calender += tbody + ""; + } + drawMonth++; + if (drawMonth > 11) { + drawMonth = 0; + drawYear++; + } + calender += "
" + this._get(inst, "weekHeader") + "= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + + "" + dayNamesMin[day] + "
" + + this._get(inst, "calculateWeek")(printDate) + "" + // actions + (otherMonth && !showOtherMonths ? " " : // display for other months + (unselectable ? "" + printDate.getDate() + "" : "" + printDate.getDate() + "")) + "
" + (isMultiMonth ? "
" + + ((numMonths[0] > 0 && col === numMonths[1]-1) ? "
" : "") : ""); + group += calender; + } + html += group; + } + html += buttonPanel; + inst._keyEvent = false; + return html; + }, + + /* Generate the month and year header. */ + _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, + secondary, monthNames, monthNamesShort) { + + var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, + changeMonth = this._get(inst, "changeMonth"), + changeYear = this._get(inst, "changeYear"), + showMonthAfterYear = this._get(inst, "showMonthAfterYear"), + html = "
", + monthHtml = ""; + + // month selection + if (secondary || !changeMonth) { + monthHtml += "" + monthNames[drawMonth] + ""; + } else { + inMinYear = (minDate && minDate.getFullYear() === drawYear); + inMaxYear = (maxDate && maxDate.getFullYear() === drawYear); + monthHtml += ""; + } + + if (!showMonthAfterYear) { + html += monthHtml + (secondary || !(changeMonth && changeYear) ? " " : ""); + } + + // year selection + if ( !inst.yearshtml ) { + inst.yearshtml = ""; + if (secondary || !changeYear) { + html += "" + drawYear + ""; + } else { + // determine range of years to display + years = this._get(inst, "yearRange").split(":"); + thisYear = new Date().getFullYear(); + determineYear = function(value) { + var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) : + (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) : + parseInt(value, 10))); + return (isNaN(year) ? thisYear : year); + }; + year = determineYear(years[0]); + endYear = Math.max(year, determineYear(years[1] || "")); + year = (minDate ? Math.max(year, minDate.getFullYear()) : year); + endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + inst.yearshtml += ""; + + html += inst.yearshtml; + inst.yearshtml = null; + } + } + + html += this._get(inst, "yearSuffix"); + if (showMonthAfterYear) { + html += (secondary || !(changeMonth && changeYear) ? " " : "") + monthHtml; + } + html += "
"; // Close datepicker_header + return html; + }, + + /* Adjust one of the date sub-fields. */ + _adjustInstDate: function(inst, offset, period) { + var year = inst.drawYear + (period === "Y" ? offset : 0), + month = inst.drawMonth + (period === "M" ? offset : 0), + day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0), + date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day))); + + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + if (period === "M" || period === "Y") { + this._notifyChange(inst); + } + }, + + /* Ensure a date is within any min/max bounds. */ + _restrictMinMax: function(inst, date) { + var minDate = this._getMinMaxDate(inst, "min"), + maxDate = this._getMinMaxDate(inst, "max"), + newDate = (minDate && date < minDate ? minDate : date); + return (maxDate && newDate > maxDate ? maxDate : newDate); + }, + + /* Notify change of month/year. */ + _notifyChange: function(inst) { + var onChange = this._get(inst, "onChangeMonthYear"); + if (onChange) { + onChange.apply((inst.input ? inst.input[0] : null), + [inst.selectedYear, inst.selectedMonth + 1, inst]); + } + }, + + /* Determine the number of months to show. */ + _getNumberOfMonths: function(inst) { + var numMonths = this._get(inst, "numberOfMonths"); + return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths)); + }, + + /* Determine the current maximum date - ensure no time components are set. */ + _getMinMaxDate: function(inst, minMax) { + return this._determineDate(inst, this._get(inst, minMax + "Date"), null); + }, + + /* Find the number of days in a given month. */ + _getDaysInMonth: function(year, month) { + return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); + }, + + /* Find the day of the week of the first of a month. */ + _getFirstDayOfMonth: function(year, month) { + return new Date(year, month, 1).getDay(); + }, + + /* Determines if we should allow a "next/prev" month display change. */ + _canAdjustMonth: function(inst, offset, curYear, curMonth) { + var numMonths = this._getNumberOfMonths(inst), + date = this._daylightSavingAdjust(new Date(curYear, + curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); + + if (offset < 0) { + date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); + } + return this._isInRange(inst, date); + }, + + /* Is the given date in the accepted range? */ + _isInRange: function(inst, date) { + var yearSplit, currentYear, + minDate = this._getMinMaxDate(inst, "min"), + maxDate = this._getMinMaxDate(inst, "max"), + minYear = null, + maxYear = null, + years = this._get(inst, "yearRange"); + if (years){ + yearSplit = years.split(":"); + currentYear = new Date().getFullYear(); + minYear = parseInt(yearSplit[0], 10); + maxYear = parseInt(yearSplit[1], 10); + if ( yearSplit[0].match(/[+\-].*/) ) { + minYear += currentYear; + } + if ( yearSplit[1].match(/[+\-].*/) ) { + maxYear += currentYear; + } + } + + return ((!minDate || date.getTime() >= minDate.getTime()) && + (!maxDate || date.getTime() <= maxDate.getTime()) && + (!minYear || date.getFullYear() >= minYear) && + (!maxYear || date.getFullYear() <= maxYear)); + }, + + /* Provide the configuration settings for formatting/parsing. */ + _getFormatConfig: function(inst) { + var shortYearCutoff = this._get(inst, "shortYearCutoff"); + shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + return {shortYearCutoff: shortYearCutoff, + dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"), + monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")}; + }, + + /* Format the given date for display. */ + _formatDate: function(inst, day, month, year) { + if (!day) { + inst.currentDay = inst.selectedDay; + inst.currentMonth = inst.selectedMonth; + inst.currentYear = inst.selectedYear; + } + var date = (day ? (typeof day === "object" ? day : + this._daylightSavingAdjust(new Date(year, month, day))) : + this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst)); + } +}); + +/* + * Bind hover events for datepicker elements. + * Done via delegate so the binding only occurs once in the lifetime of the parent div. + * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. + */ +function datepicker_bindHover(dpDiv) { + var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; + return dpDiv.delegate(selector, "mouseout", function() { + $(this).removeClass("ui-state-hover"); + if (this.className.indexOf("ui-datepicker-prev") !== -1) { + $(this).removeClass("ui-datepicker-prev-hover"); + } + if (this.className.indexOf("ui-datepicker-next") !== -1) { + $(this).removeClass("ui-datepicker-next-hover"); + } + }) + .delegate( selector, "mouseover", datepicker_handleMouseover ); +} + +function datepicker_handleMouseover() { + if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) { + $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); + $(this).addClass("ui-state-hover"); + if (this.className.indexOf("ui-datepicker-prev") !== -1) { + $(this).addClass("ui-datepicker-prev-hover"); + } + if (this.className.indexOf("ui-datepicker-next") !== -1) { + $(this).addClass("ui-datepicker-next-hover"); + } + } +} + +/* jQuery extend now ignores nulls! */ +function datepicker_extendRemove(target, props) { + $.extend(target, props); + for (var name in props) { + if (props[name] == null) { + target[name] = props[name]; + } + } + return target; +} + +/* Invoke the datepicker functionality. + @param options string - a command, optionally followed by additional parameters or + Object - settings for attaching new datepicker functionality + @return jQuery object */ +$.fn.datepicker = function(options){ + + /* Verify an empty collection wasn't passed - Fixes #6976 */ + if ( !this.length ) { + return this; + } + + /* Initialise the date picker. */ + if (!$.datepicker.initialized) { + $(document).mousedown($.datepicker._checkExternalClick); + $.datepicker.initialized = true; + } + + /* Append datepicker main container to body if not exist. */ + if ($("#"+$.datepicker._mainDivId).length === 0) { + $("body").append($.datepicker.dpDiv); + } + + var otherArgs = Array.prototype.slice.call(arguments, 1); + if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) { + return $.datepicker["_" + options + "Datepicker"]. + apply($.datepicker, [this[0]].concat(otherArgs)); + } + if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") { + return $.datepicker["_" + options + "Datepicker"]. + apply($.datepicker, [this[0]].concat(otherArgs)); + } + return this.each(function() { + typeof options === "string" ? + $.datepicker["_" + options + "Datepicker"]. + apply($.datepicker, [this].concat(otherArgs)) : + $.datepicker._attachDatepicker(this, options); + }); +}; + +$.datepicker = new Datepicker(); // singleton instance +$.datepicker.initialized = false; +$.datepicker.uuid = new Date().getTime(); +$.datepicker.version = "1.11.2"; + +var datepicker = $.datepicker; + + +/*! + * jQuery UI Draggable 1.11.2 + * http://jqueryui.com + * + * Copyright 2014 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/draggable/ + */ + + +$.widget("ui.draggable", $.ui.mouse, { + version: "1.11.2", + widgetEventPrefix: "drag", + options: { + addClasses: true, + appendTo: "parent", + axis: false, + connectToSortable: false, + containment: false, + cursor: "auto", + cursorAt: false, + grid: false, + handle: false, + helper: "original", + iframeFix: false, + opacity: false, + refreshPositions: false, + revert: false, + revertDuration: 500, + scope: "default", + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + snap: false, + snapMode: "both", + snapTolerance: 20, + stack: false, + zIndex: false, + + // callbacks + drag: null, + start: null, + stop: null + }, + _create: function() { + + if ( this.options.helper === "original" ) { + this._setPositionRelative(); + } + if (this.options.addClasses){ + this.element.addClass("ui-draggable"); + } + if (this.options.disabled){ + this.element.addClass("ui-draggable-disabled"); + } + this._setHandleClassName(); + + this._mouseInit(); + }, + + _setOption: function( key, value ) { + this._super( key, value ); + if ( key === "handle" ) { + this._removeHandleClassName(); + this._setHandleClassName(); + } + }, + + _destroy: function() { + if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) { + this.destroyOnClear = true; + return; + } + this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); + this._removeHandleClassName(); + this._mouseDestroy(); + }, + + _mouseCapture: function(event) { + var o = this.options; + + this._blurActiveElement( event ); + + // among others, prevent a drag on a resizable-handle + if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { + return false; + } + + //Quit if we're not on a valid handle + this.handle = this._getHandle(event); + if (!this.handle) { + return false; + } + + this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); + + return true; + + }, + + _blockFrames: function( selector ) { + this.iframeBlocks = this.document.find( selector ).map(function() { + var iframe = $( this ); + + return $( "
" ) + .css( "position", "absolute" ) + .appendTo( iframe.parent() ) + .outerWidth( iframe.outerWidth() ) + .outerHeight( iframe.outerHeight() ) + .offset( iframe.offset() )[ 0 ]; + }); + }, + + _unblockFrames: function() { + if ( this.iframeBlocks ) { + this.iframeBlocks.remove(); + delete this.iframeBlocks; + } + }, + + _blurActiveElement: function( event ) { + var document = this.document[ 0 ]; + + // Only need to blur if the event occurred on the draggable itself, see #10527 + if ( !this.handleElement.is( event.target ) ) { + return; + } + + // support: IE9 + // IE9 throws an "Unspecified error" accessing document.activeElement from an +
+ ); +}; + +export default YouTubeEmbed; diff --git a/src/context/SidebarContext.tsx b/src/context/SidebarContext.tsx new file mode 100644 index 0000000..c377119 --- /dev/null +++ b/src/context/SidebarContext.tsx @@ -0,0 +1,84 @@ +"use client"; +import React, { createContext, useContext, useState, useEffect } from "react"; + +type SidebarContextType = { + isExpanded: boolean; + isMobileOpen: boolean; + isHovered: boolean; + activeItem: string | null; + openSubmenu: string | null; + toggleSidebar: () => void; + toggleMobileSidebar: () => void; + setIsHovered: (isHovered: boolean) => void; + setActiveItem: (item: string | null) => void; + toggleSubmenu: (item: string) => void; +}; + +const SidebarContext = createContext(undefined); + +export const useSidebar = () => { + const context = useContext(SidebarContext); + if (!context) { + throw new Error("useSidebar must be used within a SidebarProvider"); + } + return context; +}; + +export const SidebarProvider: React.FC<{ children: React.ReactNode }> = ({ + children, +}) => { + const [isExpanded, setIsExpanded] = useState(true); + const [isMobileOpen, setIsMobileOpen] = useState(false); + const [isMobile, setIsMobile] = useState(false); + const [isHovered, setIsHovered] = useState(false); + const [activeItem, setActiveItem] = useState(null); + const [openSubmenu, setOpenSubmenu] = useState(null); + + useEffect(() => { + const handleResize = () => { + const mobile = window.innerWidth < 768; + setIsMobile(mobile); + if (!mobile) { + setIsMobileOpen(false); + } + }; + + handleResize(); + window.addEventListener("resize", handleResize); + + return () => { + window.removeEventListener("resize", handleResize); + }; + }, []); + + const toggleSidebar = () => { + setIsExpanded((prev) => !prev); + }; + + const toggleMobileSidebar = () => { + setIsMobileOpen((prev) => !prev); + }; + + const toggleSubmenu = (item: string) => { + setOpenSubmenu((prev) => (prev === item ? null : item)); + }; + + return ( + + {children} + + ); +}; diff --git a/src/context/ThemeContext.tsx b/src/context/ThemeContext.tsx new file mode 100644 index 0000000..1e6cc7d --- /dev/null +++ b/src/context/ThemeContext.tsx @@ -0,0 +1,58 @@ +"use client"; + +import type React from "react"; +import { createContext, useState, useContext, useEffect } from "react"; + +type Theme = "light" | "dark"; + +type ThemeContextType = { + theme: Theme; + toggleTheme: () => void; +}; + +const ThemeContext = createContext(undefined); + +export const ThemeProvider: React.FC<{ children: React.ReactNode }> = ({ + children, +}) => { + const [theme, setTheme] = useState("light"); + const [isInitialized, setIsInitialized] = useState(false); + + useEffect(() => { + // This code will only run on the client side + const savedTheme = localStorage.getItem("theme") as Theme | null; + const initialTheme = savedTheme || "light"; // Default to light theme + + setTheme(initialTheme); + setIsInitialized(true); + }, []); + + useEffect(() => { + if (isInitialized) { + localStorage.setItem("theme", theme); + if (theme === "dark") { + document.documentElement.classList.add("dark"); + } else { + document.documentElement.classList.remove("dark"); + } + } + }, [theme, isInitialized]); + + const toggleTheme = () => { + setTheme((prevTheme) => (prevTheme === "light" ? "dark" : "light")); + }; + + return ( + + {children} + + ); +}; + +export const useTheme = () => { + const context = useContext(ThemeContext); + if (context === undefined) { + throw new Error("useTheme must be used within a ThemeProvider"); + } + return context; +}; diff --git a/src/data/kecamatan.tsx b/src/data/kecamatan.tsx new file mode 100644 index 0000000..7ebd537 --- /dev/null +++ b/src/data/kecamatan.tsx @@ -0,0 +1,301 @@ +export const Kecamatan = [ + { + name: "Binakal", + title: "Kecamatan Binakal", + deskripsi: "Binakal adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 7 Km dari ibu kota Kabupaten Bondowoso ke arah barat. Pusat pemerintahannya berada di Desa Binakal.", + laju: "-2,12", + gambar: "/kecamatan/binakal.jpg", + komoditastertinggi: "Padi
(11.842 ton)", + path: "M262.77 393.327h3.12v.24h2.88l1.92.24 1.92.24h1.92l2.16.24.48-.24h1.44l1.199-.24h1.92l1.2-.24.72.24h1.92v.24h-.48l-.24.24v.96h.48l.48.24v.24l.24.48v.48l.24.24.48.48h.24l.48.72.48.72.48.48.239.48.24.24.48.72v.959l-.24.24h.24v.24h.96v-.96l.24-.24h.48l.48.24.48.72.24.48.24.24v.72l.24.24.48.24.48.24.24.24.24.24v.48h.72l.24.24.24.24v.96l-.24.24-.48.24v.48l.24.24v.48l-.24.48v.24h.24l.48.24h.72l.24.24v.24l-.24.24-.24.48h-.24l-.24.24v.24l-.24.24v1.2l-.24.24v.239l-.24.48.24.24.24.72v.96l.24.72.48 1.2v1.92l-.48 1.2-.24.48-.24.48h-.24v.48l-.24.24-.24.24.24.24h-.24v.24h-.24v.24l-.24.24v.24h-.24v.24h-.24v.48l-.24.24v.719h-.24l.24.24-.24.24-.24.48v.96h-.24v.24l-.24.24v.48l.24.48v.24h-.24v1.2l-.24.24.24.24-.24.24v.24l-.24.72v.24l-.24.48h-.24l-.24.24v.48l.24.24-.24.48.24.72v1.44l-.24.24v.479h-.24l-.24.24h-.24v.24h-.24v.24h-.24v.96h-.24v.24l-.24-.24h-.72v.24h-.24v.24h-.24v.24h-.48v-.24h-.96v-.48h-.24v-.24h-1.68l.24.24v.48l-.24.72.48.48.48.48.24.24v1.92l-.24.24v1.2l-.24.24v.72l-.24.48v.48h.48v.48l.24.24h.24v.48h.24v.48h-.24l-.24.24-.24.479h-.24l-.24.24-.48-.24h-.48v.72h-.48l-.72-.24-.48.24-.96.24-.24.24-.24-.24h-.24v-.48l-.24-.24h-.479l-.24-.48h-.48l-1.2.24-.72.24h-1.2l-.24-.24h-.96l-.48.24-.48.24h-.48l-.48.24h-1.68l-.239-.24-.24-.24-.96-.24-.24-.24-.24.24-.48.24v.24l-.24.24v1.44l.24.24-.24.24h-.48l-.72-.24h-.72v.24h-.24v.24l-.48.24-.48.24-.48.24h-1.2l-.48-.24-.72-.24-1.199.24h-.24l-1.2.24-1.44.48-.72.48-.72.24.24.24v.24l-.24.24-.24.48h-.24l-.72.48-.24.24-.24.24v.24l.24.72v.72l-.24.24h-.24l-.48.24h-.72l-.72.24h-.239l-.48.24-.24.48-.96.72-.48.48-.24.24h-.48l-1.2-.48h-.24l-.24.24h-.48l-.24.24h-1.44l-.48.239-.24.24h-.24l-.96.72-.479.24-.48.24-.48.24-.72.48-.24.24-.48.48-.48.48-.48.24-.48.24-.72.24-.24.48-.48.48-.48.24-.24.48-.48.48-.48.48-.48.48-.48.48-.48.24-.48.24h-.479l-.48.48h-1.68l-.48.24v.24l-.24.48-.48.48v.24l-.48.24v.24l-.48.24-.24.48-.24.24-.24.239-.24.48v.24l-.24.48-.24.24-.24.24h-1.2l-.48.24h-.24l-.24.24h-.24l-.239.24-.24.24-.48.24-.72.24h-1.2l-.48.24-.24.24-.48.72-.72.48-.96.96-.96 1.2-1.2.96-1.2.96-1.199 1.2-.24.24-.96.72-.96 1.199h-.24l-.96.96-.48.48h-.24l-.24.24-.24.24-.24.24-.24.48-.24.48-.48.24v.24l-.72.48-.48.48h-.48l-.48.24-1.199.24-.48.24h-.48l-.48.24-.24-.24h-.24v.24h-.24l-.24-.24h-.48l-.72-.24-.72-.24-.72-.24-.96-.24h-1.68l-.719.24-.48.24-.48.48-.48.72-.48.72-.72.96-.48.72-.48.72-.24.48-.72.24-.96.48-1.2.24-1.2.24-.719.24-1.2.479-.96.48-.96.72-.48.48-.48.48-.24.72-.48.96-.24.96-.24.96-.48.72-.24.72-.72.72-.72.72-.72.72-.48.96-.719.96-.48.959-.48.96-.24.72-.96.72-.72.72-.96.72-.96.72-1.44.72-.96.72-1.439.72-.48.24-1.44.48-1.44.24-1.68.48-1.92.24-.72.24h-.24l-.24.24h-.24l-.24.24h-.24l-.239.24h-.24l-.48.24-.24.24h-.48l-.24.24-.24.24-.48.24h-.24l-.24.24-.24.24h-.48v.239h-.24l-.24.24v.24h-.24l-.24.24-.24.24h-.24v.24h-.24l-.24.24h-.96l-.48.24-.72.48-1.199.72-1.44.48-1.2.24-.48-.24h-.72l-1.2-.48-.96-.48-1.2-.72-.72-.24H144.705l-.96.24-.96.48-.48.24-.96.72-.72.48-.48.48-.24.24-.24.24v.24l-.24.24-.24.24h-.72l-.96.24h-.24l-.24.24h-.24l-.24.24v.24h-.24v.24l-.24.24-.239.24-.24.24v.24l-.24.24-.24.48-.24.24-.24.24-.24.48-.24.48v.24l-.48.48-.24.72-.72.719-.48.96.24-1.2.24-1.2.24-.72v-.24h.24l.48-1.44.48-1.2.48-1.44.48-1.2.24-.48.72-1.2.24-1.2.48-1.439.72-.96.48-1.2 1.2-1.44v-.24l.96-1.2.96-.96 1.2-.96 1.2-1.2v-.24l1.199-.96.96-.72.96-.48.96-.479.24-.24 1.2-.24.72-.24 1.2-.48 1.2-.48 1.679-.72 1.2-.96 1.2-.96 1.2-.96.96-1.2 1.44-1.68.72-.96.96-.96.959-.96.48-.719.72-.96 1.2-1.2.96-1.2.96-1.2.96-1.2.96-.96.48-.72.48-.72.24-.96.24-.48v-.48l.48-.48.479-.48.24-.24v-.719l-.24-.72v-.48l.24-.72 1.2-2.88.24-.72.24-.24.24-.72.48-.48.24-.48h.24l.48-.24v-.24l.72-.72v-.24l.48-.72.24-.48.48-.48.24-.24.24-.479v-.24l.48-.48.24-.24.24-.48.48-.24.72-.24h.959l.72-.24.48-.24.96.24h.24l.24-.24.24-.24.48-.96v-.24l.24-.48.72-1.2.24-.24.24-.48.96-1.2.96-1.44h.24l.96-1.2v-.24h.24l.24-.24.719-.96.24-.479.24-.24.72-.72.72-.96v-.24l.96-.72.72-.72.24-.48.72-.72.96-.72.24-.48.72-.48.24-.24.24-.24.72-.72h.24l.72-.72h.239l.72-.48h.24l.24-.24.24-.24.48-.24h.24l.24-.24.24-.24.24-.24.72-.72v-.24h.24v-.24l.24-.239v-.24l.48-.96.24-.24.48-.96.48-.96v-.24l.48-.72.48-.24v-.24l.24-.24.24-.24h1.2l.48.24h.719l.48-.24.48-.24.72-.96.24-.24.48-1.68.24-2.16.48-1.199.24-.72v-.48l.24-.96v-1.44l.48-1.2v-1.2l.24-.96V426.924l.24-.72.72-.959v-1.2l.48-.48v-.72l.48-.72.96-.48h2.399l.72.48.72.48H221.496l.72-.24.24-.24.72.24.24.24.24.24h.96l.719-.24h.48l.48.24h.24v-.24h.24l.72-.48.48-.48.24-.24v-.24l.24-.48.48-.48.24-.24.48-.24h1.44l.24-.24.48-.48.24-.24.24-.48h.24v-.24h1.2l.24-.24.479-.24h.72l.24-.24.48-.24.24-.24.24-.24h1.92l.96.24.48.24.96.48.24.24.24.24.48.96.48.72v.48l-.24.48v1.2l-.24.24h-.24l-.24.24-.24.24.24.24v1.68h.24l.24.24.48.24.24.48v.24h.959l.48-.24.72-.48h.24l.48.24.48.24h.24l.48.24.48-.24h.24l.24-.24v-.24l.24-.48V421.884h.24l.24-.96.24-.96.96-.72.72-.24.72.24 1.44.96.239.24h.48l.96-.24h.72l.24-.24v-.24l.48-.72.48-.96.48-.72v-.72l-.24-.24-.72-.24-.24-.24v-.24l.24-.96.48-1.679.96-2.64-.24-.24-.48-.48-1.44.72-.96-.24v-.72h-.96v-1.92l.24-.72.48-.96.72-.72v-.24l.24-2.4.24-.24v-.959l.24-.96.48-2.4v-.48l.48-1.68.72-.24.24-.24 1.68-.72h.24l.24-.24.48-.96h1.44l.719-.24.24-.24h.24l.24.24.48.24z", + center: [230, 450], + population: 17.066, + area: "39,039 ha", + defaultColor: "#D0EA89" + }, + { + name: "Bondowoso", + title: "Kecamatan Bondowoso", + deskripsi: "Bondowoso adalah ibu kota Kabupaten Bondowoso yang sekaligus menjadi pusat pemerintahan dan perekonomian dari Kabupaten Bondowoso. Bondowoso juga merupakan sebuah kecamatan yang berada di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. ", + laju: "-1,22%", + gambar: "/kecamatan/bondowoso.jpg", + komoditastertinggi: "Padi
(16.156 ton)", + path: "M377.478 427.404v.48l-.48.72v.24l.24.24.24.24h.48l.24-.24v-.96l-.24-.24.24-.48.24-.24h.24l.24.24.48.24.48.48.24.24.24.24.48.24h.48l.24-.24.24-.24.24-.24.24-.24.24-.24h.24l.96-.24.48.24h.72l.24.24.24.24v.48l.24.48.48.24h.48l.24-.24.48-.48.24-.24h.479v.24l.48.24.24.24-.24.24-.24.24-.48.48-.24.24v.24l.24.24.24.24h.24l.24-.24.24-.24.72-.72.48.24.24.24.24.48.24.48.24.24.24.24.24-.24.24-.24.24-.24h.24l.48.24.24.24.72.48h.48l.24-.24.72-.48.48.24.48.24.24.48.24.24.479.24.24.24h.24l1.2.48h.24l.96.48 1.68.24v.24l.24.24-.24.48-.72.48-.48.24-.72.48h-1.2l-.24.239v.72l.24.24.24.48.24.48.24.48v.72l-.24.48-.24.24-.24.24-.24.48-.24.48h-1.44l-.48-.24-.72-.24-.24-.24h-.48l-.48.24h-1.92l-.24.24-.48.48-.48.48-.48.24-.48.24-1.2.24-1.199.24-.72.24h-.24l-.24.24-.48.24-.24.48v.72l-.48.48-.24.72h-.24l-.24.48-.48.48-.72.24v.24l-.48.24-.72.239-.48.24h-.24l-.48.24h-.24l-.72.24-.959.72-.72.72h-.24l-.24.24-.72.48-.72.48-.72.24-.72.24h-.48l-.24.24-.48.48-.48.24-.96.48-.24.24-.48.24-.24.24v.72l-.24.24-.479.24-.96.48-.48.24v.24l.24.24h.24v.48h-.48l-.48.24-.24.24v.24l-.24.24-.24.48-.24.24-.24.24v.24l.24.48v.239h-.24v.24h-.48l-.24.24v.24l-.24.48-.24.48-.24.48-.72.96-.48.72-.24.48-.48.72-.48.72-.48.48-.24.24-.24.24v.24l-.24.24v.48l-.24.48v.24l-.24.24-.479.24-.48.48-.24.24-.96.48-1.44.72-.72.48-.48.24-.24.24-.48.239-.24.24h-1.44l-.24.24v.24l-.24.48v.24h-.72l-.24-.24h-.48l-.479.72-.72.96-.48.48-.48.48-.24.24-.48.48-.72.48-.24.24v.48l-.24.72v.24l-.24.24h-.24v.24l-.72.24v.24l-.24.24-.24.48-.24.24-.24.24h-1.92l-.48.24-.48.48-.719.48-.48.24-.48.24-.24.48V484.278l-.24.48-.48.72v.24l-.48.72v.48l-.24.48.24.72.24.48.48.72v.72l.24.48.24.24v.96l.24.48.24.72.24.48v.96l-.24.48-.72.24-.72.719-.24.48v2.16h.24v.24l-.48.48-.24.48-.24.48.48.48.48.96.48.48-.24.48-.24.48-.48-.24-.24.24v1.68l-.48.24-.48.24v.48l.24.96.72.959v2.16l-.48 1.2v.72l-.48.48v.24h-.24l-.48.48-.72.72-.48.24-.96.96v.24h-.24v.48h.48l.48-.48.24-.24.24.24v.72l-.24.24-.24.48v.24l.48.48v.72l-.24.24-.24.24v.24l.24.48.24.239h.48l.24.48.24.24v.48l-.24.24.24.24.48.24v.24l-.24.24h-.24l-.48.24h-1.2l-.24.24-.24.24-.24.24v.24l-.24.48-1.2 1.44v.72l.48 1.2v.24l-.719.48v.24l-.24.24-.24.24h.24v.48l.24.24v.24l-.72.24-.24.24-.48.24-.24.24v.48l-.48.24-.48.239-.24.24-.24.24v-.24l-.24-.24-.24-.24-.96-.24v-.24h-.96l-.48-.24h-.72l-.48-.24-.72-.24-.48.48h-.959l-.24-.24h-.24l-.48.48h-.24l-.48.48h-.24l-.24.24-.24-.24h-.96l-.24-.24-.24-.24v.24l-.24-.24h-.72v.24h-.48l-.48-.24h-.48l-.24.24h-.24v.24h-.24l-.24.24h-.72l-.24.24v.24H315.566l-.72-.24h-1.2l-.24.24v.48l-.24-.24h-.24l-.24-.24h-.24l-.24.24h-.24v.24l-.24.48-.24.24-.24.24h-.72l-.24.24h-.48l-.48-.24-.24.24-.24.24v.48h-.48v.72h-.24l-.24.24v.24h-.24l-.239-.24-.24.24v.24l-.72-.24v.24l-.48-.24v.24l-.24-.24h-.72v-.24.24l-.48-.24-.24-.24h-.24l-.24-.24h-.48l-.24-.24-1.2-.48h-.24l.72-1.68 2.4 1.2.24-.48.48-.96v-.24l.72-1.92.48-.96v-.48h.24v-.24l1.2-2.64.96-2.16.72-1.68.24-.24v-.24l.48-.72.96-2.159.48-.96v-.24l.48-.96.24-.48.24-.72h.24l.24.24.24-.72.24-.48v-.24l.24-.72v-.48l.24-.72v-.48h-.24v-.48l.24-.48v-.72l.24-.72.24-.719.24-.72v-.24l.24-.48v-1.2l.239-.24v-.48l-.48-.24v-.24h-.24v-.24h-.24l.24-.24.24-.24-.24-.24v-.24l-1.44-.96h-.24l-.24.24h-.96l-.48.24h-.48l-.24-.24h-.48v.48h-.24v.24h-.24l-.24.24v.48l-.24.24-.24.24-.72.24h-.24l-.24-.24-.24-.24h-.479l-.72.24h-.24l-.24-.24-.24.24h-.96l-.24-.24-.72-.48-.48-.48-.24-.24-.72-.72-.24-.24-1.2-.72-.72-.24-.72-.24v-.48l-.24-.72-.24-.96v-.96l-.24-1.679v-.96l.24-.72.24-.72.24-.72.48-1.2.72-1.44.24-.24v-.48l-.24-.24h.24v-.24h.72l.24.24h.24l.48.24h.48v-.48h.96l.24-.24h1.44v-.24l.24-.24h.96l.24.24.24-.24h.72l.24.24h.24v-.24h.48v.48h.24l.24.24h.24v-.48h-.24v-.48l.24-.24h.72v-.24h.24l.48-.48h.24l.24-.24h.72l.48-.24.24-.24v-.48h.24l.24-.24v-.719l.24-.24h.72l.24-.24v-.72l.24-.48v-1.2h.24l.239-.48.24-.24v-.48l.24-.48v-2.16h-.24v-.24l.24-.24v-.96l.24-.24v-.96h-.48l.24-.24v-.24h-.24v-2.159l-.24-.24h-.24l.24-.48.24-.24v-.72l.24-.96v-.24l.48-1.68.48.24v-.48h.24v-.72l.48.24v-.24l.24-.48v-1.92l.24-.24v-.72h.48v-.48l-.72-.24h-.72l-.72-.24.24-.96.24-.48h.24l.24.24v-.24h.24l.24-1.199v-.24l.24-.48v-.48l.24-.48v-.48l.24-.96h2.16v-.48h.24v-2.16h-.24l-.24-.24v-.72h.24v-1.2h.24v-.48l-.24-.24v-.48h-.24l-.24-.24v-.48l-.24-.24h.24v-.48h.24V448.523l.24-.24v-.24l.48-1.92v-.72l.24-.72v-.72l.24-.72.24-.48v-.72l.24-.48.24-.24.24-.72v-.24l.24-.96v-.24h1.2l.719.24.48.24.72.96.48.48h.96l.48.24v.24h.24l.48.48.48.24.48.24.72.48.48.24h.96l.48-.24H333.562l.72-.24.48.24h.24v.24h.24l.24-.24.24-.24h.24l.48.24h.24l.24.24.24.24v1.2-.24h.96l.24-.24.72-.72.48-1.2.24-.24h.24l.96-.48h.48l.24.24v.48l.24.72.24.96.24.24.239.72.48.48h.72l.48.24 1.44.24h1.44l.24-.24h1.44l.48.24h.72l.72.48.24.24h.719l.24.24.72.48.72.24.72.24.24.24h1.68l.48.24v1.2l.48.24h.96v.48l.24.24h.96l.72.24.24.24v1.44h-.24v.72l.24.24.24.24h.719l.72.96h1.44l.24-.24h.48l.24.24v.24l.24.24h1.2v-.24l-.72-.72v-.24h.48l.24-.24.24.24h.24l.24-.48.24-.72v-1.92l-.24-.72v-1.2h2.16l.72-.48.24-.48v-.24l.719-.96.24-.24.24-.24v-.72l-.72-.72v-2.16l.24-.48v-.24h.24v-.24h.24l.96-.24h.24v-.24l.24-.72.24-.48.24-.48.24-.24.24-1.2v-1.439l.48-2.4v-.24l.24-.48-.96-.48v-.96l.24-1.2v-.72l.24-.72v-.72l.24-.48.24-.24.48-.48h.48l.24.24.48-.24 1.68-.24.24.24z", + center: [327, 485], + population: 76.805, + area: "23,158 ha", + defaultColor: "#9F1D1B" + }, + { + name: "Botolinggo", + title: "Kecamatan Botolinggo", + deskripsi: "Botolinggo adalah sebuah desa di Kecamatan Botolinggo, Kabupaten Bondowoso, Provinsi Jawa Timur.", + laju: "-2,19%", + gambar: "/kecamatan/botolinggo.jpg", + path: "M574.736 287.496h.48l1.44.24.48.24.96.24V290.616l-.24.72.24.48v1.2l-.24.24v2.159l.24.48.24.24v.72h.24v.24l.24.24h.48l.24.48.24.24.24.24-.24.24v1.92h.24v.24h.24l.24.24v.24h.24v.24h.48l.48.24.24.24.24.24.24.24h.24l.24.24.24.48.48.24.72.48h.24l.48.24h.48v.24l.48.24h.24l.239.48h.24l.48.24.72.24v.24l.24.24.48.479h.72l.24.24v.24h.96l.96.24h.24l.96.24H595.373v.72l.24.24.24.24-.96.24v.72l.96.96-.48.24v.24l.24.24.24.24h.24l.72.24v.48l-.24-.24-.48.24v.96l-.24.24h-.72v.96l-.24.24-.24.72-.72.72-.24.24-.48.24v.24l-.24.48-.24.48v.24l-.24.24-.24.239v.24l-.24.48-.24.24-.24.24-.24.24.24.24.24.24.48.24v.48h-.24v.48h-.24v.24l-.24.48v.24h.72l.24-.24.24.24.24.24v.24h-.24v.24h-.24l-.24.24v.24l.24.48v.96l.24.24.24.24v.72l-.24.24-.24.24-.24.24v.72l-.24.24h-.48v.24l.24.24h.72v2.399l-.24.24-.24.24v1.2l-.24.48v.72l.24.48.24.48v.72l.24.24v.48l.72 1.44.48.48.48.48.72 2.16.24.48.24.48v.479l.24 1.2.24.72v.24h.24l.72-.48.96-.48.72-.48.24-.24.96-.48.96-.24h.48l.24-.24h1.44l1.44-.24H605.452l1.2.24h.72l.96.24 1.44.24.96.24.96.24 1.2.24.959.24.24.48.48.48.96.72.24.48.24.24v.48h-.24l-.24.72v1.68h-.24v.72l.24.72v.96l-.24.24h-.96l-.24.24v1.44l-.24.24.24.24.72.719.48.48.24.24.72.48.24.24.24.24-.24.24v.48l1.2.72.24.24v.96l-.24.72v.48l.24.48.24.24v.96l.24.24h1.2l.48.24.72 1.44.24.24.96-.24h.24v.96h.719l.72.24.48.24v.24l.48.24.48.719 1.2.72h.24l.72.48.96.96.24.24.48.24h.48l.48.24.24.48.48.72.48.48.479.48.48.72.48.48.48.48.48.48.72.48.48.24.48.48.48.48.24.24.24.24v1.68l.72.719.24.24v.24l.24.24.96 1.2.72.48v.48l.24.24v.24h.24l.24.24h.24v.24l.24.72.479.24.24.24v.24h-.24l-.24.24v1.44l.24.24.24.24-.48.72v.96l.24.48.48.24.24.24.24.24h.48l.48.24.24.24.48.24h.24l.24.48.48.239.24.24.24.48v.24l.24.24h.48v.24l.24.72-.48.48v.24l.48.48.24.24v.96l.48.24.48.24.24.24.24.24v.24l.24.48.24.24.48.24.72.72.24.24v.72l.239.24v1.68l.48.24.24.24h.48v.72l.24.239h.24l.24.24.24.24.24.48.24.24h.24l.72.48.48.48.24.24h.24v.48l.24.72.24.72.48.72.48.24h.24l.72.24.24.48.48 1.68v.48l.24.48h.24l.48.24.239.24.72.72v1.919l.24.48.24.48h.24v.24l.24.48v.72l.48.48.24.72v.72h.24v.72l.24.96h.24v.24l.24.48v.24l.24.96.24.72.24.48.24.48.24.24.72.96.48.24.24.48.24.479.24.24.24.24v.24l-.24.48v.48l.24.24.24.24v.96l.24.24v.24l.24.48.48.72v.48l.24.72.24.96.24.72v1.44l-.48 1.44.24.24.959.959 2.4 2.16 1.68 1.68 4.32 1.92-.24.48v.72l.719.96.48.72.48.72.24.48v.24l.48.24.24.48h.24V449.001l-.24 1.2.24.48.48.72.24.24.24.24v.72l3.6 1.92 2.159.96.24.24 6.96 3.36.24.24h.48v.24l-.24.719.24.24-.24.72.24.48.48.72v1.68l-.48.72-.24.72-.72 1.44-.72 2.4.96 1.68.24.24.24.24.48.719.72 1.92.959 1.44.72 1.68-.24.96.24.96.48.96v.24l.24.48.24.72v.96l.24.24.24.72.24.719v.96l.24.48.24.48.48.24.24 1.2v.48l.72.96.24.48-.24.72v1.44l.24.48.72.24.48.24-.24.48v.24l-.48.48v.72l.24.24 1.44 1.439-.24.24v1.2l.24.72.24.24.24.24.72.24.719.24.24.24h.96l.72-.24h.72v.24l.24.24v.48h.24l.24.48.24.48.24.24 1.2 1.2v.24l.24.24.24.24h.72v.24l.24.24v.48l.24.24.24.48v.24l.24.48.24.24.24.24.24.24.48.48v.239l.239.24h.24l1.44.24h.72l.48.72.48.48v.24l.48.48.24.96v.72l.24.48v.72l.48.24.24.24.24.24.96.24.24.24.24.24.24.24v.72l.24.24v.96h.24l.24.48v.24l.24-.24.72.24h.479l.24.24.24.48.72.24.48.48.24.24h.24l.96.719v.24h.96l.24.24h.24l.72.48h.24l.48.72.48.24.48.72v.24l.48.24 2.159 1.44 2.16 1.44 1.68 1.44.24.24h.72l.48.48.24.48v.48l.24.48.24.48.24.48.24.24v.959l-.24.72-.24.48-.24.48v.48l.24 1.2.24.48.48.48v.24l.24.48.24.48.48.96.24.24.479.24.72.48v.24l.48.72.24.48.24.48.24.48.24.48.24.72h.24l.24.24.48.719v2.4l.24.24v.96l.48.72.24.72v.24l.24.48.48.48.48.72.96.96.72.48v.48l.24-.24.48-.48h.96v-.24h.719v.24h.48l.48.24.48.24h.48l.24.48 6.479 5.999v.72l.96 6 .48 2.159v1.2l.48.96.72 2.16 1.44 4.56-.96.24-2.64 1.68-1.2 1.199-.48.24-1.2 1.44-1.2.96-.72 1.2-.48 1.2-.24.24v.48h-.24l-.24.96-.48.48-.96 1.68-.72 1.2-.48.959-.959 1.2-.24.24-.96.72-.96.72-.96.96-1.2 1.2-.96.72v.24l-1.2 1.2-.72.72-.48.48-.24.24-.719.48-.96.72-.48.48-.24.24-.72 1.199-1.68 1.92-.24.48v.24l-.72.96-.24.96-.72 1.2-1.68 2.4-.72 1.2-.479.96-.72.96-.24.479-.48.24-.48.48-2.64.72-1.68.48h-.96l-3.119 1.44v-2.16l.24-.72.24-.96.48-.96.24-.96v-2.88l-.24-.72-.24-.72v-.24l-.24-.48-.48-.48v-.24l-.72-.72-.48-.72-.48-.96-.48-.959-.24-1.2v-.72l.24-.72v-.96l-.24-.96v-.96l-.24-.72v-.24l-.24-.48v-.24l-.48-.96-.48-.72-.72-.96-.72-.72-.72-.959-.72-.96-.24-.24-.48-.72-1.439-1.2.24-1.92.24-2.16h-.24l-.24-.24-.24-.24h-.24v-.24l-.48-.24-.24-.48-.24-.24-.48-.24-.24-.48-.24-.24-.48-.48v-.24l-.24-.24-.24-.479-.48-.48-.96-.96-.24-.72-.24-.48-.72-.72-.48-.72-.72-.72-1.439-.72-.72-.24-.48-.24-.24-.24-.24-.48-.72-.96-.24-.96-.24-.24-.72-.24-.48-.24h-.48v-.24l-.48-.48-.24-.24-.96-.24-.48-.24h-.48l-.48.24-.24.24-.479.24v-.24h-.24v-.24l.24-.48v-.48l-.24-.24-.48-.479-.48-.48-.48-.24-.96-.24-.72-.48-.24-.24-.72-.48-.96-1.2-.48-.48-.48-.24-.72-.24-.48-.48h-.24l-.24-.24-.72-.48-.479-.48-.24-.24-.24-.24h-.96l-.48-.48-.24-.24v-.24l-.24-.24-.24-.24-.24-.24-.24-.24h-.24l-.24-.24-.48-.48v-.72l-.24-.48-.24-.48-.24-.959-.48-.72v-.24l-.72-.48-.24-.48-.24-.24-.24-.72v-.48l-.24-.48v-.72l.24-.24v-.96l-.24-.24-.72-.24-.48-.48v-.24l-.24-.24-.24-.24-1.199-.24-.24-.24-.24-.24-.72-.48-.24-.24h-.24l-.48.24h-.48l-.72-.48-.24-.24-.72-.72-.24-.24-.48-.72-.24-.24-.24.24-.96.24h-.72l-.48.24h-.719l-.24-.24v-.48l.24-.24.24-.479-.24-.24-.24-.24-.48-.48-.48-.96-.24-.48-.24-.24-.48-.96-.48-1.2v-.96l-.24-.24-.96-.24v-.24l-.24-.24-.72-.72-.24-.72v-.24l-.24-1.44-.24-.24-.48-.48-.24-.24-.72-.48-.72-.719-.48-.24H658.248l-.24-.24-.24-.48-.48-.96-.24-.24h-.48l-.96-.24-.48-.48-.24-.24v-.96l-.24-.24-.24-.72-.24-.48h-.48l-.72.24v-.96l-.24-.24-.24-.24-.24-.24h-.24l-.24-.24-.24-.24v-.96l-.48-.48-.24-.24-.719-.72-.24-.48-.48-1.439-.24-.48-.24-.24-.72-.48v-.24l-.24-.24v-1.2l-1.2-.48-.48-.24-.48-.24h-.24l-.72.72h-.48l-.48-.24-.24-.24-.72-.48-.24-.48-.24-.24-.24-.48v-.96l.24-.24-.24-.48-.48-.24-.959-.48h-.72l-.24-.24h-.24l-.24-.24v-.24l-.24-.24h-.24l-.48.24h-.24l-.24-.24-.24-.24-.24-.48-.24-.24h-.48l-.96-.24-.24-.24h-1.44l-.96-.48-.24-.24-.479-.959-.24-.24-.72-.24-.48-.24-.24-.24-.24-.24-.24-.96-.72-1.2-.24-.48v-.24l-.24-.24-.24-.24h-1.68l-.96.24-.24.24h-.24l-.48-.24-.48-.24v-.24l-.24-.48-.24-.24-.24-.24-.959-.48-.48-.48-.48-.48-.24-.72-.24-.48-.96-.72v-.24l-.48-.72-.48-1.679-.24-.48-.24-.48-.24-.48-.24-.24-.48-.24-.24-.24v-.96l-.24-.24-.24-.48v-.24l-.48-.48v-1.44l.24-.24.24-1.68v-1.92l-.24-.72v-.24l-.24-.24-.24-.479h-.24l-.48-.72h-.24l-.24.24-.96.24-.719-.24h-.24l-.48-.24-.24-.48-.24-.24v-.72l.24-.24.24-.72-.24-.24v-.24l-.24-.24-.24-.24h-.48l-.24.24-.48.24-.48.24h-.48l-.48-.48-.48-.48-.24-.24V477.32l-.48-.48-.72-.96-.72-.72-.72-.96v-.48l.24-.48.24-.239.72-.48v-1.2l-.24-.48-.48-.24-.48-.48-.48-.24-.24-.48h-.24v-.24l-.24-.72-.479-.48-.24-.24-.24-.24h-.96l-.72-.24V467l-.24-.24v-.24l.24-.72.24-.48.48-.72.48-.24.72-.72v-.48l-.24-1.44-.48-1.439-.48-.72-.24-.48-.24-.48-.48-.24h-.48l-.24-.24h-.24v-1.44l-.24-.72v-.24l-.48-.48v-.24l-.24-.48-.48-.24-.24-.72-.24-.72-.24-.72-.24-.48-.48-.24-.24-.48-.48-.48V449.243l.24-.48v-.96l.24-.24-.48-.24-.72-.48-.72-.24h-.239l-.24-.24-.24-.24v-.48l-.96-.72-.48-.72h-.24l-.24-.48-.24-.24h-1.68l-.96-.72-.24-.48-.24-.48-.24-.48h-.24l-.24-.24h-.24l-.48-.24h-.24v-.24l-.24-.48v-.72h-.24l-.24-.24-.48-.24-.479-.48-.48-.48-.48-.479v-.24l-.24-.24.24-.48h.24l.24-.24.48-.48v-.48l-.24-.72-.24-.48-.48-.24-.24-.24v-1.2l-.48-.24h-.24l-.24.24-.96.24v.24h-.48l-.24-.24-.48-.24-.48-.24-.48-.48-.24-.24v-.24l.48-.96.24-.24v-.72l-.24-1.2-.24-.24-.48-1.2-.48-.959v-.24l-.48-1.2-.72-.96-.72-.96-.48-.48-.479-1.44-.24-.48v-.48l-.24-.48v-.96l-.24-.24-.24-.24v-1.2l-.48-.24v-1.2l-.24-.48-.24-.24-.24-.479-.24-.24v-.24l-.24-.48v-.24l-.24-.24-.24-.24-.24-.24-.48-.48-.24-.24-.24-.48v-.24l-.24-.48v-.48l-.24-.24v-.48l-.24-.24h-.24l-.24-.24-.48-.48-.24-.24h-1.92l-.24-.24h-.479v-.24l-.24-.48-.24-.24v-.48l.24-.24-.24-.24v-.48l-.24-.24-.48-.24-.24-.24v-.48l-.24-.48-.24-.24h-.96v-.24l-.24-.24v-.24h-.24l-.72-.239h-.24l-.24-.24h-.24v-.24l-.24-.96-.24-.24-.24-.24-.48-.48h-.96l-.48-.24-.24-.24-.24-.24-.24-.48v-.96h-.24v-.96l-.24-.48v-1.44l.24-.24.24-.24.24-.24h.24v-.72l-.24-.24v-.96l-.24-.24-.48-.24h-.24l-.239-.72-.24-.24h-.24v-.239l-.72-.24-.72-.48-.72-.24-.72-.24-.48-.24-.48-.24-.24-.24-.24-.24v-.72l-.24-.24-.24-.24h-.24l-.24-.48v-.24l-.24-.24v-.96l-.24-.24-.24-.24h-.72v-.24l-.24-.48-.24-.24v-.48l-.24-.24v-.48l-.48-.24-.24-.24v-.24l-.239-.24v-.24h.24v-.48l-.24-.24v-.72l-.24-.48-.24-.48-.24-.479h-.24l-.24-.24v-.24l.24-.24v-.48l.24-.24-.24-.24v-.24h-.48l-.24-.24.24-.24v-.48l-.24-.48v-.24l-.24-.48v-2.16l-.24-.24v-.48h-.96l-.24-.24-.24-.24h-.24l-.24-.24v-.24l.24-.72h.48v-.96l-.24-.24-.24-.48-.48-.24-.24-.24v-.72h-.24V365.25l-.24-.24h-.48l-.48.48h-.24l-.24-.48-.24-.24h-.24l-.24-.24h-.24l-.24-.24v-.48l.24-.48v-.24l.24-.24-.24-.24v-.72l-.24-.48-.24-1.2v-1.44l-.24-.48v-.24h-.48l-.719-.24-.48-.48-.24-.24.24-.72-.48-.72-.24-.48-.24-.239-.24-.24v-.24l.48-.24.24-.24v-.48h-.48l-.48-.24h-.48l-.24-.24.48-.48.24-.24v-.96l-.24-.24v-.24l.24-.48-.24-.48.24-.48v-.72l.24-.24.24-.24.72-.48.48-.48v-.48l-.48-.48.24-.48.24-.24.24-.24v-.72l-.24-.24-.24.24h-.24v-.72h.48l.72-.24.24-.48.24-.959.24-.24h.24-.24l.24-.24.24-.48.48-.48.24-.24h.24v.96h.48v-.72l-.24-.24-.24-.48-.24-.48v-.72l.24-.24h.72l.48.24.48-.24.48-.24.48.24.72-.24.24-.24-.24-.48-.24-.48v-1.2h1.2l-.24-.48v-.24l-.24-.24v-.48l-.24-.24v-.24l-.96.24h-.24l-.24-.24-.48-.48v-.24l-.24-.24.24-.24.24-.48v-.96l-.48-.479-.24-.24v-.48l.72-.48.24-.24v-.48l.24-.48v-.24l-.24-.24.24-.72-.24-.48v-.48l-.24-.24.24-.48v-.72l-.72-.48h-.24v-1.2l-.48-.72-.72-1.92v-.24h.24v-.24h.24l.48-1.199v-.24l.24-.24v-.24l-.24-.48.24-.96.24-.96.24-.48.24-.72v-.24l-.24-.48-.24-.24-.24-.24v-.24l-.24-.24.72-.24.96-.24.24.24.48.24.24.24.72.24.48.24.24.24.24.24.24.24.24.24.479.24v.24l.48.72.24.24.24.24.24.24.72.24.24.24h.24l.48.24h.48l.48-.24h.48l.24-.24v-1.68l.24-1.92v-1.44l-.24-.24-.24-.24-.48.24v-.24l-.24-.24v-.24l-.24-.72-.48-.48-.48-1.44v-.959l1.44-2.16 1.68.96 1.44.48.72.24h.72l.719-.24h.24l3.84 1.2.24.24.48.24h.24l.72.24.48.24.48.24.96.24 2.159.48.24-.24.24-.24h.24v-.48l.24-.48.24-.48h-.48v-1.2l-.24-.24-.24-.48-.24-.72v-.24l.24-.96v-.72l-.48-1.44-.24-.48-.72-.72-.24-.24-.24-.48v-.48l-.24-.48v-.72l.24-.24.24-.48.48-.72v-.959l-.24-.48.24-.48-.24-.24v-.24l-.24-.24-.24-.24v-.24l.24-.48.48-.72v-.24l.24-.24h.96l.48.24.96.24.24-1.2h.48l.24.24h.48v.24h.24v-.24l.24-.96.24-.96v-.48l.24-.24.24-1.44.96.24z", + center: [640, 455], + population: 29110, + area: "127,41 ha", + komoditastertinggi: "Tebu
(11.997,61 ton)", + defaultColor: "#A7D45F" + }, + { + name: "Cermee", + title: 'Kecamatan Cerme', + path: "M604.493 246.22h1.68l.96-.48.96-.72.72-.72.24-.24h1.68l1.44-.24h.72l.719-.48 2.4-.24 1.44-.24h1.44l1.92-.24h.96l2.159.24h4.8l.72.24.96-.24h3.359l4.08-.48h.48l2.879-.48h3.6l2.4-.48h.24l1.68-.72.719-.24H655.368l.48.24h3.359l.24.24h1.68l.24.24h1.44v.24h.24l.24-.24H666.407v-.24h3.359l.72.24 1.44.24 1.44.24 1.2.24v-.48l.24-.48h.72l.24.24H677.204l.48.24h1.2l.72.24h1.2l.48.24.72.24h.48l.24.24h.24l.24.24h.48l.24.24h.24l.48.24.96.24h.239l.48.24.72.48.48.24.24.24v.24l.24.24v.72l.24.24.24.24.24.24.24.24v2.639h.72l.48 1.44v1.44h.24l-.24.24.24.24h.24l.24.24.72.24.48.24v1.2h.24v.24l.24.48v.24h-.24l-.24.24.24.24v.24h.48l.48-.24h.24l.72.24H696.162l.48.24.48.24.24.24h.96l.24.24.24.24v1.2l-.24.479-.24.96v.24l.24.48.24.48v.48h-.24v.24l-.24.48h-.24l-.24.48v.48l-.24.24v.72l-.24.24-.24.24v.24l-.24.24v.48h-.24l-.24.24v.24h.24l.24.24h-.72l-.24.24-.24.24-.24.24-.24.48v.48l-.24.48v.72l-.24.24-.72.72v.24l-.24.479h-.24v2.16l-.24.24v.24l-.24.48-.48.48.24.24.72.24.24.48.24.24v.72l.24.24v.24l-.24.24v.24l.24.24.24.24.72.48v.48l.24.48.24.48v.24l.24.72.48 1.2.24.24h.72l.48.24h.48l.24.239.24.48.24.48v2.4l.24.72.24 1.2v.24l.24.96.24.72.24.48v.48l.24.48v.48l.48.24v.24h1.92l.48.24.239.24.24.24.48.72h.24l1.2.959.72.48.24.24.24.24.48.24.48.24.96.72.48.24v1.2l.24.24.24.24v.72h.24l.24.24h.24l.24.24v1.2l.24.24.24.24h.24v.24l-.24.24-.24.24.24.24v.24l.24.48h-.24v.24l.24.24v1.68l.24.24.24.24h.24l.479.24v1.439h.24v.72l-.72.72v.24l.24.24.24.24h-.24v.24l-.48.48h.24l.24.48v.24l-.48.48v1.2l.24.24v.72l-.48.96v.24l.24.96v.24h-.24l-.72.48v.24l-.24.24v1.439l-.24.24.24.48v.24h.24l.72.24.24.24.24.48v.48l-.24.48.24.96-.24.24h-.24v.24l.24.48.48.24.72.24v2.16h-.24v.24l.48.48.24.48-.24.24-.48.24v.72l-.24.24-.24.24-.24.24v.48l.24.239v1.68h.48l.24.24v.24l.24.48.72.24v.72l-.24.48v.48h.48l-.24.24v.48h.24l.48.24v.48l-.24.24v.24l.24.24.72.48h-.24l-.24.24.24.48v.24l.24.24h.24v.96l.24.24.24.24h.24v.24h-.48l-.24.24.24.24v.24l.24.48.24.24v.719l.24.48.24.96.48.24.24.24v1.2l.48.48.48.72.24.24.24.24-.24.48.24.24v1.2l.24.48.24.24.24.48.48 1.68.24.48.24.24v.48l-.24.48v.239l.48.24.24.24v.24h-.48l-.24.24-.24.24.24.24.24.24h.24v.48h-.24l-.72-.24h-.72v.72l.48.24.24.24v.24l-.24.24v.24l.24.24h.24v1.68l-.72.24-.24.24-.24.24-.24.24-.24.24H718v.48l.48 1.2v.48l.24.48-.24.24-.24.24v.24H718v.24l.48.48h.24v.24l-.48.479H718v.24l.24.48-.24.24v.72h.24v.96l-.24.24-.24.96-.24.24v.24l.24.24h.24v.24l.24.24v1.2l.24.48.24.48-.24.24v.48l.48.48v.96l-.24.72v.96l-.24.48-.24.239.48.48.24.24v.72l-.24 1.2v.24H718l-.24.24h-.24l-.24.72-.24.24v.72l.24.24v.48l-.72.72v.24l-.24.24v1.44l.24.48.24.48h.24l.48.24.24.24h.24l.24.48.24.24v.48l-.72.48h-.24l-.24.479-.24.48v.48l-.24.48v.96l.24.48.24.24.24.48.72.96v.96l-.24.48v1.68l.72.96.24.48v.72h-.24l-.48.24-.24.24-.24.48-.48.72v1.679l-.24.24v.24l.24.24.48.24.24.24h.24l.24.72.24.72v.24l-.24.48-.48.72v.24l.24.24.24.48.48.48.24 1.44.24.72v.48l-.24.24v.48l-.24.24.24.24.48.24h.24l.24.24.48.24h.96l.239.239.24.24.48.72v.96l.24.48.24.72v.24l.24.48.48.48.48.72.48.24v.24l.48.48v.24l.24.48.24.48.24.48-.24.24v.72l.24.24.48.96h.24l.48.24.48.24h.48l.48.24.24.24.24.48.24.479.48.72.72.96.24.48v.72l-.24.72v.96l.24.48v1.2l.239.72.24 1.2.24.72.24.48v.48l-.24.48-.24.48v.72l.24.24v.239l.48.24.72.48 1.2 1.44.24.24.48 1.2.24.48.24.48.48.48.24.48.48.24.48.48.24.24.24.48.72.96v.96l.48.24.24.24.72.24.24.24v.48l.479.72h.24l.24.24.48.479.96.72.72.48.24.96-.24.24h-.24l-.24.24h-.24v.24l.24.48.24.48.24.72.24.24.48.24v.48l-.24.48v.96l.24.48v2.88l.24.24.24.72.48.719v1.44l.24 1.44-.24.72-.24.48-.48 1.2v.72l.24.48.24.48-.24.24v.24h.24l.48.24.24.48.48.72v.24l.48.48.24.48h.24l.24.48v1.439l.24.48v.72l-.24.24v.24l-.24.24v.48l.24.24.24.48v1.2l-.24.72v.48l.24.96-.24.24.24.24.24.24v.72l-.24.72-.24.96v.72l.24.24h.24l.24.24.24.48.24.239-.24.48-.24.48.24.24.48.48.24.48.719.48.24.48v.24l-.24.48-.24.48-.24.48-.48.24-.48.48-.24.24-.24.24h.24l.24.48-.24.24h-.48l-.48.24v.24h-.24v.24l.24.24.48.48-.24.48v.48l.24.24.24.24.48.24v1.2l-.24.24h-.24l-.72.24v.239l.24.48v.48l.48.72.48.72v.48h.24l.48.24.24.24.24.48.24.72v.96l.24.48v.72l.24.48v.24h.24l.24.24v.96l.24.24.24.72v.24l-.24.24-.48.48v.24l.24.24.24.24.48.24.24.479v.24l-.24.48-.24.24.24.24v.24l.24.24.24.24v.96l.24.24v.48l-.24.48v.48l.24.24.48.48.48.24.48.72.24.48v.72l.24.48.24.48.24.72.24.24.48.48.48.48.24.24h.48l.24.24.48.24v.48l-.24.719v.48l.24.24.24.24h.72v1.2h.24l.479.24v.72l.24.24.24.24.48.48.24.24v.24l.48.48.24.24v.72l.48.96-.24.96v.96l-.24.72.24.72v.959l.24.48.24.48h.24l.24.24.24.24.24.24v.48l.24.48-.24.96v.48l-.72 1.2-.24.24v.24l.48.48.48.48.48.24 2.4 1.68 1.2 1.44.48 1.2-.24.24h-.24v.239h-.24v.72l-.48.48-.48.48-.24.24-.24.72-.24.48v.72l.24.96-.24.48-.24.24.24.48v1.44l-.48 2.64.96 1.919 1.92 2.64v.96l.24 3.12-.48 3.6-.24.96-.72.479-.48.48-.72.24h-.24l-.24.24h-.48l-.24.24-1.2.72-1.44.72-.48-.96v-1.2l-.48-2.16-.96-6v-.72l-6.48-5.999-.24-.48h-.48l-.48-.24-.48-.24h-.479v-.24h-.72v.24h-.96l-.48.48-.24.24v-.48l-.72-.48-.96-.96-.48-.72-.48-.48-.24-.48v-.24l-.24-.72-.48-.72v-.96l-.24-.24v-2.399l-.48-.72-.24-.24h-.24l-.24-.72-.24-.48-.24-.48-.24-.48-.24-.48-.479-.72v-.24l-.72-.48-.48-.24-.24-.24-.48-.96-.24-.48-.24-.48v-.24l-.48-.48-.24-.48-.24-1.2v-.48l.24-.48.24-.479.24-.72v-.96l-.24-.24-.24-.48-.24-.48-.24-.48v-.48l-.24-.48-.48-.48h-.72l-.24-.24-1.68-1.44-2.159-1.44-2.16-1.44-.48-.24v-.24l-.48-.72-.48-.24-.48-.72h-.24l-.72-.479h-.24l-.24-.24h-.96v-.24l-.96-.72h-.24l-.24-.24-.48-.48-.719-.24-.24-.48-.24-.24h-.48l-.72-.24-.24.24v-.24l-.24-.48h-.24v-.96l-.24-.24v-.72l-.24-.24-.24-.24-.24-.24-.96-.24-.24-.24-.24-.24-.48-.24v-.72l-.24-.48v-.72l-.24-.96-.48-.48v-.24l-.48-.48-.48-.719h-.72l-1.439-.24h-.24l-.24-.24v-.24l-.48-.48-.24-.24-.24-.24-.24-.24-.24-.48v-.24l-.24-.48-.24-.24v-.48l-.24-.24v-.24h-.72l-.24-.24-.24-.24v-.24l-1.2-1.2-.24-.24-.24-.48-.24-.48h-.24v-.48l-.24-.24v-.24h-.72l-.72.24h-.959l-.24-.24-.72-.24-.72-.24-.24-.24-.24-.24-.24-.72V496.519l.24-.24-1.44-1.44-.24-.24v-.72l.48-.48v-.24l.24-.48-.48-.24-.72-.24-.24-.48v-1.44l.24-.72-.24-.48-.72-.96v-.48l-.24-1.2-.48-.24-.24-.48-.24-.48v-.959l-.24-.72-.24-.72-.24-.24v-.96l-.24-.72-.24-.48v-.24l-.48-.96-.24-.96.24-.96-.719-1.68-.96-1.44-.72-1.919-.48-.72-.24-.24-.24-.24-.96-1.68.72-2.4.72-1.44.24-.72.48-.72v-1.68l-.48-.72-.24-.48.24-.719-.24-.24.24-.72v-.24h-.48l-.24-.24-.48-.48-.24-.72-.24-.24v-.24l-.24-.24-.24-.24v-.72l-.24-.24-.24-.48v-.48l-.24-.24-.24-.24-.24-.24-.24-.96v-.72h-.48l-.24-.24-.48-.96-.24-.24v-.48l-.24-.48v-.24l.24-.48-.24-.239-.24-.24v-.24l.24-.24v-.24l-.24-.24-.72-.72v-.48l-.24-.24-.959-.72-.24-.24v-.48l-.24-.24-.24-.24-.48-.96v-.24l-.72-.48h-.24l-.48-.24-.24-.24h-.24l-.24-.24-.24-.24-.24-.24-.24-.24v-1.44l-.24-.24-.96-.48-.24-.48-.24-.24-.24-.24-.48-.24v-.24l-.24-.719v-.96l-.24-.24-.24-.48v-.48l-.24-.24-.24-.72-.24-.24h-.48l-.959-.24h-.72l-.24.24-.24-.24h-.24l-.24-.24v-.24l.24-.24v-.24l.24-.24v-3.84l-.24-.48-.72-.72v-.48l-.24-.48v-.48l-.24-.479-.24-.24-.96-.24-.24-.24-.24-.24-.96-.96-.72-.48-.48-.72v-1.2l-.24-.72v-.48l.24-.48.24-.24.24-.24v-.48l-.24-.24-.48-.72-.24-.24-.48-.24-.48-.48-.479-.24v-.24l.24-.24.24-.24.48-.96v-.48l-.24-.479v-.72l-.48-.24-1.2-1.44h-.24l-.96-.24-.24-.24v-.48l-.24-.72v-.72l-.48-.96v-.96l.24-.24-.24-.48-.24-.96-.48-.72v-2.4l-.24-.719-.48-.96-.48-1.92-.48-.96-.24-.72-.48-.72-.72-1.2v-.24l-.24-.24v-.24l-.24-.24-.24-.24v-.48l-.96-.96-.24-.24-.239-.72-.24-.24v-1.679l-.48-.72-.24-.48v-.48l-.48-.48-.24-.72-.24-.24-.24-.48-.24-.72v-2.16l.24-1.2v-.24l-.24-.24.24-.48h.24l.24-.72v-.96l-.24-.719-.48-1.2-.24-.24-.24-.24-.24-.72-.24-.48v-.24l.48-.24v-.72l.24-.72v-.24l.24-.24v-.48l-.24-.48-.24-.24-.24-.24-.24-.48-.48-.48-.48-.24-.24-.48-.48-.72-.24-.96v-.48l-.24-.24-.24-.72-.24-.959v-.24l-.24-.48-.48-.24-.24-.48-.48-.48-.48-.24-.24-.48v-1.68l.24-.72v-.24l-.24-.24-.24-.24-.479-1.2-.24-.48v-.48l-.24-.72-.72-1.2-.24-.48v-2.159l-.24-.48.24-.96v-.96l.24-.96-.24-.96v-.48l-.24-.48v-2.4l.24-.24.24-1.2-.72-2.159-.24-.48v-.24l-.24-.24-.72-.24-.72-.48-.24-.24-.24-.24v-1.44l-.24-.24-.24-.48-.48-.24-.48-.24h-.96l-.72.24h-1.2l-.479-.48-1.44-.96-.48-.24-.24-.24h-.24l-.24-.72-.24-.96.24-.24.24-.24v-.48l.24-.72v-.24l.24-.48.48-.719.24-.48.24-.24v-.24l-.48-.96v-1.68l.24-.48v-.96l-.24-1.2v-1.92l.24-.48v-.24l-.48-.72v-.24l.48-.72v-.48h-.24l-.24.24h-.48l-.24-.24-.24-.24V317.734l-.72-.24h-1.2l-.72.24h-1.92l-.96-.24h-.24l-.479-.24-.48-.24-.24-.24-.24-.24v-.24h-.72v-.24h-.24l-.24-.24-.24-.24-.24-.24-.24-.48-.24-.24-.24-.48v-.24l-.24-.24v-.24l-.48-.72-.24-.24-.48-.72h-.24l-.24-.24-.24-.48h-.24l-.24-.24v-.48l.24-1.68v-.24l-.24-.24-1.2-.479-.24-.24-.48-1.68-.24-.72v-.24l-.24-.24.24-.24v-.24l-.48-.48-.719-.96-.48-.48-.48-.24h-2.64l-.72-.24h-.24l-.48-.48v-.72l.24-.96.24-.72-.24-.24v-.24l-.24-.24-.96-.48h-.48l-.24-.24-.48-.24-.24-.24-.24-.24v-.48l.24-1.439.24-.48v-.48l.48-1.2.24-1.44.24-.72.24-.72v-.48l-.24-.24-.48-.24v-1.2l-.24-.96h-2.399l-.72-.24-.24-.24-.48-.24-.48-.72-.72-.96-.48-1.199-.72-.48-.72-.24-1.2-.24-.96-.24-1.44-.24-.959-.24-.48-.24-.24-.48-.48-.48-.48-.96-.48-.96-.72-.48-.72-.24h-.48v-1.68l-.24-.72v-.48l-.24-.24h-1.92l-1.68-.24-.479-.24h-.48l-.96-.24-.72-.48h-.24l-2.4-1.199-.96-.72-.24-.24-.48-.24-.24-.24h-.48l-.96-.48-.479-.48h-.48l-.48-.96v-.24l-.24-.72v-.24l-.24-.24v-.96h.48l.24-.24v-1.2l-.24-.24v-.48l.48-.96.24-.48v-.48l-.24-.24v-.24l-.24-.24.24-.72h.24l.48-.479 1.2-.72v-.24l.24-1.68 1.2-.48.24-.24.48-.72.24-.72.48-.48.24-.72.72-.96.24-.48.24-.48.48-1.2.48-1.2h.24l.48-.96.48-1.439h.239l.48-1.2v-1.2l.24-.48.24-.72v-.48l.24-1.2v-2.16l.24-.72v-.72l.24-.24h.48l.24-.24.48.24-.24.24v1.92l.24.72.24.48.24.72h.24l.24.24.48.24v.24h.24v.24l.24.24.24.24.24.24.24.48.24.24.72.48.72.48.48.24h.72l.719.24z", + center: [685, 375], + deskripsi : "Cermee adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak 33 Km dari ibu kota Kabupaten Bondowoso dan merupakan salah satu wilayah kecamatan paling timur. Ibu kotanya berada di Desa Cermee", + population: 46353, + laju: "-1,49%", + gambar : "/kecamatan/cermee.jpg", + area: "129,204 ha", + komoditastertinggi:"Tebu
(32.686,42 ton)", + defaultColor: "#468135" + }, + { + name: "Curahdami", + title: "Kecamatan Curahdami", + deskripsi: "Curahdami adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 3 Km dari ibu kota Kabupaten Bondowoso ke arah barat. Pusat pemerintahannya berada di Kelurahan Curahdami. ", + laju: "-0,73%", + gambar: "/kecamatan/curahdami.jpg", + komoditastertinggi: "Padi
(14.191 ton)", + path: "M302.606 407.725l.48.72h.96l.48-.48h1.92l.96.24.24.24.24.24.24.24h1.44l.48.24.48.24h.24v.24h.24v.48l.24.24.24.24h1.68l.48-.24.72-.24.48-.24.48-.24.479.24.24.24.48.48h.48l.48.24h.96l.48.24v.72l.24.96v.48l-.24.48h-.72v.48l.24.24v.48l.24.24.24.48v.96l.24.24.48.24.24.24.24.24.24.24.24.24v.24l.24 1.2v.24l.24.24v1.68l.24.72v.48l.24.48-.24.96v.239h.24v.24l.24.24-.24.72v.24l-.24.48v1.2l-.24.24-.72.72-.72.72-.24.24-.24.24-.24.48v.48l-.24 1.2.24.72.72 1.2.96.96.48.72.24.24.48.48.24.479-.24.72v.24l-.24.72.24.24h.24l.48.24.48.24v.24l-.24.96v.24l-.24.72-.24.24-.24.48v.72l-.24.48-.24.72v.72l-.24.72v.72l-.48 1.92v.239l-.24.24v1.2h-.24v.48h-.24l.24.24v.48l.24.24h.24v.48l.24.24v.48h-.24v1.2h-.24v.72l.24.24h.24v2.16h-.24v.48h-2.16l-.24.96v.48l-.24.48v.48l-.24.479v.24l-.24 1.2h-.24v.24l-.24-.24h-.24l-.24.48-.24.96.72.24h.72l.72.24v.48h-.48v.72l-.24.24v1.92l-.24.48v.24l-.48-.24v.72h-.24v.48l-.48-.24-.48 1.68v.24l-.24.96v.719l-.24.24-.24.48h.24l.24.24v2.16h.24v.24l-.24.24h.48v.96l-.24.24v.96l-.24.24v.24h.24v2.16l-.24.48v.48l-.24.24-.24.48h-.24v1.2l-.24.48v.719l-.24.24h-.72l-.24.24v.72l-.24.24h-.24v.48l-.24.24-.48.24h-.72l-.24.24h-.24l-.48.48h-.24v.24h-.72l-.24.24v.48h.24v.48h-.24l-.24-.24h-.24v-.48h-.48v.24h-.24l-.24-.24h-.719l-.24.24-.24-.24h-.96l-.24.24v.24h-1.44l-.24.24h-.96v.48h-.48l-.48-.24h-.24l-.24-.24h-.72v.24h-.24l.24.24v.48l-.24.24-.72 1.44-.48 1.2-.24.72-.24.72-.24.72v.959l.24 1.68v.96l.24.96.24.72v.48l.72.24.72.24 1.2.72.24.24.72.72.24.24.48.48.72.48.24.24h.96l.24-.24.24.24h.24l.72-.24h.48l.24.24.24.24h.24l.72-.24.24-.24.24-.24v-.48l.24-.24h.24v-.24h.24v-.48h.48l.24.24h.48l.48-.24h.96l.24-.24h.24l1.44.96v.24l.24.24-.24.24-.24.24h.24v.24h.24v.24l.479.24v.48l-.24.24v1.2l-.24.48v.239l-.24.72-.24.72-.24.72v.72l-.24.48v.48h.24v.48l-.24.72v.48l-.24.72v.24l-.24.48-.24.72-.24-.24h-.24l-.24.72-.24.48-.48.96v.24l-.48.96-.96 2.159-.48.72v.24l-.24.24-.72 1.68-.96 2.16-1.199 2.64v.24h-.24v.48l-.48.96-.72 1.919v.24l-.48.96-.24.48-2.4-1.2-.72 1.68-.72-.24-1.92-.96-1.199-.48-.96-.24-3.36-1.44-1.2-.48h-.24l-.24-.24-1.2-.48h-.24l-1.199-.48-.72-.24-.24.24-.24.24-.48.96-.72-.48v.24l-.24-.24h-.24l-.72-.24-.48-.48h-.72l-.24-.24h-.24l-.48-.24-.24-.24-1.44-.48h-.96v-2.16h.24v-.72h.24l.24-.48.24-.24v-1.92h.24v-1.2h.24-.24v-.24l.24-.24v-.479h.24V515.236l-.24-.24v-.24l-.24-.72h-.24v.24h-.72v.24l-.24-.24h-.24v.24l-.24.24v.72l-.239.24v.24h-.24v.24h.24v1.2l-.24-.24h-.72l-.24.24h-.24l-.24.24h-.24l-.24.24h-.24l-.24.24h-.24v.24l-.24.24h-.24l-.24-.24-.24-.24v-.24h.24l-.24-.24h-.24v.24h-.48v.24h-.48v.24h-.24l-.24.24h-.48l-.24.24h-.24l-.24.24h-.24v.72l-.24.24-.24.24v.24h-.48v.24h-.48l-.24.24v.48h.24l-.24.72-.239.24h-.24v-.24h-.96v.24h-.24v.24h-.24v.24h-.24l-.24.24h-.48v.48l-.24.24v.48h-.24v.24h.24v.24l.24.24-.48.24v.24l-.24.48h-.72l-.48.24v-.24h-.24v.24h-1.44v.24l-.24.24v.24h-.24v.24l-.24.24v.24h-.24l-.24-.24-.24.24h-.48l-.24.24v.24h-.48v.24h-.239v.24l-.24.24v.24h-.24v.24h-.24l-.24.24h-.24l-.24-.24h-1.2v.24l-.24.24h-.24v-.24h-.24l-.24-.24h-.24v.24-.24l-.24.24-.24.24v.24l-.24.24v.24h-.24v.24h-.72l-.24-.24h-.24l-.24.24h-.24v.239h-.24v.24h-.96v.24h-.24v-.24l-.24-.24-.48-.24v.24h-.719v.24h-.24l-.24.24h-.24v.24h-.48l-.48.24h-.24v-.24h-.24v-.24h-.24l-.24-.24h-.24l-.24-.24-.24-.24h-.24l-.24-.24v-.48h-.24v-.24h-.72v-.48l-.24-.24h-.24l-.24-.24v-.48l-.48-.24v-.24h-.48l-.24-.24v-.24h-.24v-.24h-.24l-.24.24v-.24h-.24l-.24-.24v-.24h-.48v-.24h-.239l-.24-.24v-.48h-.24v-.24h-.24l-.24-.24v.24h-.24l-.48-.48h-.24l-.24-.24-.24-.24h-.24l-.24-.24h-.24v-.24h-.48v-.24h-.24v-.24l-.24-.24h-1.2v.24h-1.44l-.24-.24h-.24l-.24-.24h-.24v-.24h-.48v-.24h-.48v-.24h-.24v-.24h-.959l-.24-.48v-.96h-.24v-.24l-.24-.24v-.239l-.24-.24-.24-.24-.24-.48-.24-.24-.24-.24h-.24l-.24-.24-.24-.24h-.24l-.24-.24h-.24l-.24-.24-.48-.24h-.48v-.24h-.48l-.24-.24h-.48l-.24-.24h-.48l-.24-.24h-.24l-.24-.24h-.24l-1.199-.24h-.96l-.96-.24-.48-.24-.24-.24-.24.24h-.48l-.24-.48-.24-.24v-.24l-.24-.24h-.24v-.24l-.48-.24-.48-.24h-.48l-.24-.24-.48-.48-.72-.24v-.72l-.24-.24-.24-.48-.24-.72-.719-.48h-1.2l-.24-1.2-.24-.479-.48-.24-.48-.48-.48-.24-.48-.72-.72-.72-.48-.96-.24-.24v-.24h-.24l-.24-.24v-1.68l.24-.72.24-.96.72-.72.96-.72 1.2-.48.24-.24.24-.48.48-.48.24-.24h-.72l-.24-.24v-.24l-.24-.24h.24v-.239h-.72l-.24-.24h-.24l-.24-.24h-.48l-.24-.24-.48-.72-.24-.24-.24-.24-.24-.24h-.24v.24l-.24-.24h-.24l-.24-.24-.24-.24h-.72l-.72.24h-.959l-.72-.24h-.24l-.24-.24h-.48v-.24h-.48l-.48-.24v-.72h-.24v-.48h-.24v-.24l-.24-.24h-.24v-.24l-.24-.24-.24-.24v-.48h-.24l-.24-.24v-.24h.24l.24-.24h.48l.24.24h.24v-.24h.24l.24.24.48-.24h.48l.48-.24 1.2-.24.48-.24h.48l.48-.48.72-.48v-.24l.48-.24.24-.48.24-.48.24-.24.24-.24.24-.24h.24l.48-.48.96-.959h.24l.96-1.2.96-.72.24-.24 1.199-1.2 1.2-.96 1.2-.96.96-1.2.96-.96.72-.48.48-.72.24-.24.48-.24h1.2l.719-.24.48-.24.24-.24.24-.24h.24l.24-.24h.24l.48-.24h1.2l.24-.24.24-.24.24-.479v-.24l.24-.48.24-.24.24-.24.24-.48.48-.24v-.24l.48-.24v-.24l.48-.48.24-.48v-.24l.48-.24H234.213l.48-.48h.48l.48-.24.48-.24.48-.48.48-.48.48-.48.48-.48.24-.48.48-.24.48-.48.24-.48.72-.24.48-.24.48-.24.48-.48.48-.48.24-.24.72-.48.479-.24.48-.24.48-.239.96-.72h.24l.24-.24.48-.24h1.44l.24-.24h.48l.24-.24h.24l1.2.48h.48l.24-.24.48-.48.959-.72.24-.48.48-.24h.24l.72-.24h.72l.48-.24h.24l.24-.24v-.72l-.24-.72v-.24l.24-.24.24-.24.72-.48h.24l.24-.48.24-.24v-.24l-.24-.24.72-.24.72-.48 1.44-.48 1.199-.24h.24l1.2-.24.72.24.48.24h1.2l.48-.24.48-.24.48-.24v-.24h.24v-.24h.72l.72.24h.48l.24-.24-.24-.24v-1.439l.24-.24v-.24l.48-.24.24-.24.24.24.959.24.24.24.24.24h1.68l.48-.24h.48l.48-.24.48-.24h.96l.24.24h1.2l.72-.24 1.2-.24h.479l.24.48h.48l.24.24v.48h.24l.24.24.24-.24.96-.24.48-.24.72.24h.48v-.72h.48l.48.24.24-.24h.24l.24-.48.24-.24h.24v-.48h-.24v-.48h-.24l-.24-.24v-.48h-.48v-.48l.24-.48v-.72l.24-.24v-1.2l.24-.24v-1.92l-.24-.24-.48-.48-.48-.48.24-.72v-.48l-.24-.24h1.68v.24h.24v.48h.96v.24h.48v-.24h.24v-.24h.24v-.24h.719l.24.24v-.24h.24v-.959h.24v-.24h.24v-.24h.24l.24-.24h.24v-.48l.24-.24v-1.44l-.24-.72.24-.48-.24-.24v-.48l.24-.24h.24l.24-.48v-.24l.24-.72v-.24l.24-.24-.24-.24.24-.24v-1.2h.24v-.24l-.24-.48v-.48l.24-.24v-.24h.24v-.96l.24-.479.24-.24-.24-.24h.24v-.72l.24-.24v-.48h.24v-.24h.24v-.24l.24-.24v-.24h.24v-.24h.24l-.24-.24.24-.24.24-.24v-.48h.24l.24-.48.24-.48.48-1.2v-1.92l-.48-1.2-.24-.72v-.96l-.24-.719-.24-.24.24-.48v-.24l.24-.24v-1.2l.24-.24v-.24l.24-.24h.24l.24-.48.24-.24v-.24l-.24-.24h.96l.24-.48h.239l.24-.24v-.24h1.68l.24-.24h.24l.48.24.24-.24.48-.24.72-.24.72.24z", + center: [275, 480], + population: 34.889, + area: "50,285 ha", + defaultColor: "#ECD184" + }, + { + name: "Grujugan", + title: "Kecamatan Grujugan", + deskripsi: "Grujugan adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 7 Km dari ibu kota Kabupaten Bondowoso ke arah barat daya. Pusat pemerintahannya berada di Desa Taman. ", + laju: "-0,28", + gambar: "/kecamatan/grujugan.jpg", + komoditastertinggi: "Padi
(21.452 ton)", + path: "M203.497 490.039l.24.24h.24v.48l.24.24.24.24v.24h.24l.24.24v.24h.24v.48h.24v.72l.48.24h.48v.24h.48l.24.24h.24l.72.24h.96l.72-.24h.72l.24.24.24.24h.24l.24.24v-.24h.24l.24.24.24.24.24.24.48.719.24.24h.48l.24.24h.24l.24.24h.72v.24h-.24l.24.24v.24l.24.24h.72l-.24.24-.48.48-.24.48-.24.24-1.2.48-.96.72-.72.72-.24.96-.24.72v1.68l.24.24h.24v.24l.24.24.48.96.72.72.48.719.48.24.48.48.48.24.24.48.24 1.2H216.935l.72.48.24.72.24.48.24.24v.72l.72.24.48.48.24.24h.48l.48.24.48.24v.24h.24l.24.24v.24l.24.24.24.48h.48l.24-.24.24.24.48.24.96.24h.959l1.2.24h.24l.24.24h.24l.24.24h.48l.24.24h.48l.24.24h.48v.24h.48l.48.24.24.24h.24l.24.24h.24l.24.24.24.24h.24l.24.24.24.24.24.479.24.24.24.24v.24l.24.24v.24h.24v.96l.239.48h.96v.24h.24v.24h.48v.24h.48v.24h.24l.24.24h.24l.24.24h1.44v-.24h1.2l.24.24v.24h.24v.24h.48v.24h.24l.24.24h.24l.24.24.24.24h.24l.48.48h.24v-.24l.239.24h.24v.24h.24v.48l.24.24h.24v.24h.48v.24l.24.24h.24v.24l.24-.24h.24v.24h.24v.24l.24.24h.48v.24l.48.24v.48l.24.24h.24l.24.24v.48h.72v.24h.24v.48l.24.24h.24l.24.239.24.24h.24l.24.24h.24v.24h.24v.24h.24l.48-.24h.48v-.24h.24l.239-.24h.24v-.24h.72v-.24l.48.24.24.24v.24h.24v-.24h.96v-.24h.24v-.24h.24l.24-.24h.24l.24.24h.72v-.24h.24v-.24l.24-.24v-.24l.24-.24.24-.24v.24-.24h.24l.24.24h.24v.24h.24l.24-.24v-.24h1.2l.24.24h.24l.24-.24h.239v-.24h.24v-.24l.24-.24v-.24h.24v-.24h.48v-.24l.24-.24h.48l.24-.24.24.24h.24v-.24l.24-.24v-.24h.24v-.24l.24-.24v-.24h1.44v-.24h.24v.24l.48-.24h.72l.24-.48v-.24l.48-.24-.24-.24v-.24h-.24v-.24h.24v-.48l.24-.24v-.48h.48l.24-.24h.24v-.24h.24v-.24h.24v-.24h.959v.24h.24l.24-.24.24-.72h-.24v-.48l.24-.24h.48v-.24h.48v-.24l.24-.239.24-.24v-.72h.24l.24-.24h.24l.24-.24h.48l.24-.24h.24v-.24h.48v-.24h.48v-.24h.24l.24.24h-.24v.24l.24.24.24.24h.24l.24-.24v-.24h.24l.24-.24h.24l.24-.24h.24l.24-.24h.24l.24-.24h.719l.24.24v-1.2h-.24v-.24h.24v-.24l.24-.24v-.72l.24-.24v-.24h.24l.24.24v-.24h.72v-.24h.24l.24.72v.24l.24.24V519.796h-.24v.48l-.24.24v.24h.24-.24v1.2h-.24v1.92l-.24.24-.24.48h-.24v.72h-.24v2.16h.96l1.44.48.24.24.48.24h.24l.24.24h.72l.48.48.72.24h.24l.24.24v-.24l.72.48.48-.96.24-.24.24-.24.719.24 1.2.48h.24l1.2.48.24.24h.24l1.2.48 3.36 1.439.959.24 1.2.48 1.92.96.72.24h.24l1.2.48.24.24h.48l.24.24h.24l.24.24.48.24v-.24.24h.72l.24.24v-.24l.48.24v-.24l.719.24v-.24l.24-.24.24.24h.24v-.24l.24-.24h.24v-.72h.48v-.48l.24-.24.24-.24.48.24h.48l.24-.24h.72l.24-.24.24-.24.24-.48v-.24h.24l.24-.24h.24l.24.24h.24l.24.24v-.48l.24-.24h1.2l.719.24h1.2v-.24l.24-.24h.72l.24-.24h.24v-.24h.24l.24-.24h.48l.48.24h.48v-.24h.72l.24.24v-.24l.24.24.24.24h.96l.24.24.24-.24h.24l.48-.48h.24l.48-.48h.239l.24.24h.96l.48-.48.72.24.48.24h.72l.48.24h.96v.24l.96.24.24.24.24.24v.24l.24-.24.24-.24.48-.24.48-.24v-.48l.24-.24.48-.24.239-.24.72-.24v-.24l-.24-.24v-.48h-.24l.24-.24.24-.24v-.24l.72-.48v-.24l-.48-1.2v-.72l1.2-1.44.24-.48v-.24l.24-.24.24-.24.24-.24h1.2l.48-.24h.24l.24-.24v-.24l-.48-.24-.24-.24.24-.24v-.479l-.24-.24-.24-.48h-.48l-.24-.24-.24-.48v-.24l.24-.24.24-.24v-.72l-.48-.48v-.24l.24-.48.24-.24v-.72l-.24-.24-.24.24-.48.48h-.48v-.48h.24v-.24l.96-.96.48-.24.72-.72.48-.48h.24v-.24l.48-.48v-.72l.48-1.2v-2.159l-.72-.96-.24-.96v-.48l.48-.24.48-.24v-1.68l.24-.24.48.24.24-.48.24-.48-.48-.48-.48-.96-.48-.48.24-.48.24-.48.48-.48v-.24.48h.24l.24.48.48.48v.24h.24l.24.24.24.24.479.48h.24l.48.24.48.48.24.24v.48l.24.72v1.44l-.24.24-.24.24v.72l.24.24.48.96.24.48v.72l-.24.48v.48l.24.24.24.48.24.24h.72v1.44l-.24.24v.24l.24.24v.48l.48.48v1.2l-.24.24-.24.48-.48.96v.24l.24.24h.48l.48-.24.48-.48.48-.24.96-.48.72-.24h.24l.24.24h.24v.48h.24v.24l.24.48v.96l-.48.72-.48.96-.48.719-.24.24-.72.24v.24l-.24.24v.48l.24.48v.24l-.48.48-.24.48-.24.96v.24l-.48.72-.24.24-.72.48-.24.24.24.24.24.24h.24l.72.48h.24l.24.24.24.48.24.48h.24v.48l-.48.48-.72.72v.24l.24.96v3.359h.24l1.44.48.72.24.48.48.24.24v1.44l.24.48v.24l-.48 1.44-.24 1.2v1.44l.48.959v.72l.24.72v.24l.24.48.24.24.24.24v.24h.239l.24.96v.24h-.72v.24h-.96l-.24-.24v-.24l-.24-.24v-.24h-.72l-.48.48-.24.24-.48.48h-1.2l-.24.24h-1.2v.24l-.48.24h-.72l-.719-.24h-.48l-.24.48-.24.48-.48 1.2.24.24.24 1.44v.96l-.24.72v.72l-.24.24v1.679h.24l.24.24v.24h.24v.48l-.24.48v.96l-.24.48v.24l-.24 1.2-.24.48v.72l-.24.72.24.24.48.24v.24l.24.24v.48l-.24.48v.72l-.24 1.2v.239l-.72-.24-1.92-.24h-2.4l-1.92-.24-3.359-.96h-.48l-1.44-.24h-.24l-.48-.24-1.2-.24-1.44-.24h-.24l-1.439-.24-1.2-.24-.96-.24h-.24l-.48-.24h-.24v1.2l-.24.24h-1.2l-.48.24-.24.24v.24l-.24.48-.24.24-.24.48v.24l.48.48v.24l.24.24v.24l-.48.72v.48h-1.68l-.72-.24v.48l-.479.24-.48.48-.48.48h-.24v.48l.24.48v1.92l-.24.24h-.48l-.72.24h-.48l-.48.24-.24.24v3.12l.24.48v.959l.24.72v.48l-.24.48v.48l-.48.24-.72.24-.24.24h-.72v.24l-.24.24-.24.24v.24h-.24v.48l-.24.24h-.48l-.24-.24-.24-.24h-.24l-.24.24v.24l.24.24-.24.48-.24.24-.24.24v.24l-.239.24h-.24v-.24l-.24.24v-.24l-.24-.24h-.24l-.24.24-.24.24-.24.24v.24l-.24.24h-.96v.24l-.24.24-.24.24h-.48l-.24.24-.24.48-.48.48h-1.68l-.24-.24v-.24h-.24l-.24.24-.24.24-.24.24-.24-.24-.24-.24.24-.24v-.24l-.24-.24v-.24h-.24v-.48h-.24v.24H297.568v-.24h-.24l.24-.24v-.48h-.96l-.24.24v-.24h-.48v.24h-.24v-.24h-.24v-.24h-.24v-.48h-.24v-.24h-.24v-.24h-.24l-.24-.24v-.24h-.48v-.24h-.24l-.48-.24-.24-.24v-.24l-.48-.48-.48-.24h-.72l-.48.24-.48.48-.48.48-.719.48h-1.68v-.24h-.72l-.24-.24h-.48v-.24h-.24v-.24h-.96l-.24-.24h.24v-.24h-.48l-.24.24h-.24v.24h-.48v-.72h-.72v.24h-.48l-.24.24-.24.24h-.24l-.24-.24h-.72l-.239.24h-.48l-.24-.24-.24-.24-.24-.24h-.72l-.24-.24-.24-.24-.72.24h-.72l-.48.24-.48.48h-.24l-.48.24-.48.48-.48.48h-.96l-.48.48-.24-.24h-.48l-.719.24-.48-.24h-1.2v.48l-.24.24-.48.24-.72.24h-.24l-.48-.24-.24.48-.48-.24-.48-.24-.24-.48-.72.24-.24.24h-1.2v.48l-.24.24h-.24l-.48.24-.239.24-.24.24-.48-.24h-.48l-.24.24.24.24H255.811l-.24.48-.48.24h-2.639l-.48-.24-.48-.48h-.24l-.24-.24h-1.2l-.48-.24h-.48l-.24-.24-.48-.24h-.48l-.48-.24-.48-.48-.48-.24h-.24l-.24-.24-.24-.24-.24-.24h-.72l-.24-.24h-.239l-.72-.24h-2.16l-.96-.48-.96-.24-.48-.24-.48-.24h-.72l-.24-.24h-.48l-.72.24-.72-.24h-.479l-.48-.24-.24-.24-.48-.24-.24-.24-.24-.24h-.24v-.24h-1.68l-.48-.24h-.24l-.48-.48-.72-.24-.48-.24-.24-.24-1.44-.48-.48-.24h-.719l-1.2-.24-.48-.24-.72-.24-.48-.48-1.2-.48-.96-.48h-.24l-.24-.24-1.2-.48h-1.44l-.24-.24-.24-.48-.24-.24-.479-.24-.48-.24h-2.16l-1.2-.24-1.2-.24h-1.68l-.96-.24h-.24l-.24-.24-.719-.48-.72-.48-.48-.24-.72-.48-.24-.24-.24-.24-.24-.48v-1.44l-.24-.48-.24-.24h-.24l-.48-.24h-.48l-.48.24-.96.48-.48.24h-.72l-.24-.24-.24-.24-.24-.24-.24-.48-.48-.239-.479-.24-.72-.48-.48-.24-.72-.24-.24-.24h-.48l-.24-.24-.48-.24-.48-.48h-.24l-.48-.24-.24-.24-.48-.24h-.72l-.48-.24h-1.2l-.48-.24-.48.24-.239.24h-.72l-.48-.24-.48.24h-1.2l-.72-.24h-.48l-.48-.24h-.72l-.24-.24-.48.24-.48-.24-.96-.48h-.24l-.48-.24-.48-.24h-.24l-.719-.24-.72-.24h-.48l-.48-.24-.72.24-.24-.24v-.24l-.24-.24h-.24l-.24-.48v-.24l-.24-.48-.24-.24-.24-.48h-.24l-.48-.48-.24-.48v-.24l-.24-.24h-.48l-.48-.24h-.96l-.24-.24h-.72v-.48h-.959l-.24-.24-.24-.24h-.48l-.24-.24h-.48l-.24-.24h-.24l-.24-.24h-.48l-.24-.239h-.24l-.24-.24h-.72l-.48.24-.48.24h-.96l-.96-.96-.24-.24h-.24l-.24-.24-.24-.24-.24-.24v-.24l-.239-.24-.24-.24-.24-.24-.24-.24h-.24l-.48-.24-.24-.24-.24-.48-.24-.24v-.24l-.24-.24-.48-.24h-.72l-.48-.48-.72-.24-.72-.24h-.24l-.96-.48-1.44-1.2-.719-.96-1.44-1.92v-.24l-.96-1.439-.72-1.44-1.44-1.68-1.44-1.2-.96-.96-.96-.72-1.679-1.44-1.68-1.2-.24-.24-1.68-.96-.24-.24-1.2-.48-.24-.24-1.44-.48-1.679-.479-1.44-.24-2.16.48.48-.96.72-.72.24-.72.48-.48v-.24l.24-.48.24-.48.24-.24.24-.24.24-.48.24-.24v-.24l.24-.24.24-.24.24-.24v-.24h.24v-.24l.24-.24h.24l.24-.24h.24l.96-.24h.72l.24-.24.24-.24v-.24l.24-.24.24-.24.48-.48.72-.48.96-.72.48-.24.96-.48.959-.24h1.2l.72.24 1.2.72.96.48 1.2.48h.72l.48.24 1.2-.24 1.439-.48 1.2-.72.72-.48.48-.24h.96l.24-.24h.24v-.24h.24l.24-.239.24-.24h.24v-.24l.24-.24h.24v-.24h.48l.24-.24.24-.24h.24l.48-.24.24-.24.24-.24h.48l.24-.24.479-.24h.24l.24-.24h.24l.24-.24h.24l.24-.24h.24l.72-.24 1.92-.24 1.68-.48 1.44-.24 1.439-.48.48-.24 1.44-.72.96-.72 1.44-.72.96-.72.96-.72.72-.72.96-.72.24-.72.48-.959.479-.96.72-.96.48-.96.72-.72.72-.72.72-.72.24-.72.48-.72.24-.96.24-.96.48-.96.24-.72.48-.48.48-.48.96-.719.96-.48 1.199-.48.72-.24 1.2-.24 1.2-.24.96-.48.72-.24.24-.48.48-.72.48-.72.72-.96.48-.72.48-.72.48-.48.479-.24.72-.24h1.68l.96.24.72.24.72.24.72.24-.24.24h-.24v.24z", + center: [250, 555], + population: 38.165, + area: "74,447 ha", + defaultColor: "#A7D45F" + }, + { + name: "Jambesari", + title: "Kecamatan Jambesari", + deskripsi: "Jambesari Darus Sholah adalah sebuah kecamatan yang berada di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 10 Km dari ibu kota Kabupaten Bondowoso ke arah selatan. Pusat pemerintahannya berada di Desa Jambesari.", + laju: "-2,10%", + gambar: "/kecamatan/jambesari.jpg", + komoditastertinggi: "Padi
(19.792 ton)", + path: "M353 506.117h1.2v-.72l.96.24h.48v.48h.24v.24l.24.24-.24.24h-.24.24-.24v.48l.48.72.24.24h.72l.72-.24.48-.24h.24l.48.24v.96l.24.72v.48l.24.96.24 1.2.72.96.24.48 1.44.48h.48l.48.48.48.24.48 1.2.24.72v2.639l.24.72.24.96v.72l.24.48.96.72.72.48.96.72.96 1.2.48.48.48.48 2.879-1.68.72-.24.96-1.2h1.92v-13.92l.24.24h.72l.24.24.48.24.24.24h.48l.959.24 1.2.72.96.48.96.24h.96l1.2.24.72.24.96.72.72 1.2.48.24.479.48.72.72.24.24.48.72.48.48.24.48.48.72v.24h.24l.24.96.48.72v.96l.24.96v.96l.24.72v2.16l.24.72.24.48v.48l.24.96v.96l-.24.72V532.034l.24.24.24.48-.24.48v.72l.24.24.24.48v.24l.24 1.2v.48h.24l.24.24.72.72.24.24.24.24V540.674l.24.24.48.72.48.24.24.24.239.48.24.479.24.24.24.24.24.24.48.24.72.72.24.24h.24l.24.24h.24l.24.48.48.48.24.24v.96l-.24.48v.72l.48.72.48.48.24.48v.24l.24.48.48.48v.72l.48.72.72.72.48.72.48.959.72.48.24.24.239.24.48.24.48.24-.96.48-.72.48-1.2.72-.72.48-.96.24-.24.24-.72.24h-.24l-.48.48-.96.24-.48.24-1.2.72-.719.24h-.24l.24.24.48.24h.24l.24.24h.24l.24.24.24.48v.96l.24.24.72.72v.24l.24.24v.48l.24.479.24.24h.24l.48.24h.48l.72.24.96.72.72.72.24.24.24.72.24.48v2.4l.24.24.24.24h.24v.24H407.234l.24.24.24.24.48.48.24.48.24.48.48.96.24.24.24.24v.24l.96.96.24.48.24.479v.24h.48l.48.24h.24l.72.48.96.24.24.24.24.24v.24l.24.24v1.44l.239.48v1.44l.24.48h.24v.24l.24.24v.48l.24.24.24.24h.24v.24l.24.24v1.2l.48.24.48.24.48.24.96.24.24.24.24.48v.24l.24.24.24.239h.24l.24.24.48.24.24.48.24.24.24.48.24.24v.24l.24.24h.48l.24-.24h.48l.24.24.24.24v.48l.239.24h.24l.24.24h.24l.24-.24.48-.24h1.92l.24.24h1.2l.24-.24.24-.24h1.2l.48.24.48.24.72.24-.24.48v.24h.72l.239-.24.48.48.24.24h.24v.72h.24v.24l.24.24-.24.72h-1.92l-.48-.48h-.72l-.24.96.48.96.48.24v.24l-.24.96v.48l-.48.24v.72l-.48.48h-.96l-.48.239-.24.48-.24.72-.48.24.24.48v1.68l-.24.48v1.92l-.24.72-.24.48v.24l-.48.96v.48l1.92.96 1.44.72h.24l-.48 1.439-.24.48-.48.96-.72 2.16h-.72l-2.16-.48-1.679-.24v.48l-.48 1.2-.96-.24v.24h-1.68l-2.4-.48-2.64-.48-1.439-.24h-3.12l-1.92 1.2-1.68.72v1.44l-.24.24-.24.72-.24 1.44-.24 1.68-.479.72-.48.239h-.96l-.72-.24-1.2-.72-2.16-1.92-.96-.72-1.44-1.44-2.159-1.92v-.24l-.72-.72 2.4-5.039 1.2-3.12.24-.72h-.24l-.24-.24.24-.72v-.96h.24V603.549l.72-1.439.48-.96h-.24.24l-.24-.24h-.72l.96-2.16.24-.72-.48-.24h-.24l-.24-.24h-.48l-.24-.24h-.48l-.48-.24-.48-.24-.72-.24-.96-.24-.48-.24.24-.72.24-.72.24-.48.24-.48.24-.72h-.24l-.48-.24-.48-.24h-.24l-.24-.24-.96-.96-.24-.24-.24-.239-.24-.24-.48-.24-.24-.24-.48-.24v-.24l-.24-.24v-.24l-.72-.72-.48-.24-.72-.24-.96-.48h-.24l-.24-.24h-.239l-1.2-.24v-.48l-.48-.24h-.24l-.72-.24-.24-.24h-.24l-.24-.48-.72-.24-.24-.24-.96-.24h-.24l-.96.24v-.24l-.24-.24v-.24l-.48-.48-.24-.24h-.24l-.24.48h-.48l-.24-.48-.24-.72h-.239v-.24l-.72-.48-.48-.24h-.24l-1.44-.48-.48-.24v-2.159l-.48-.24-.48-.72-.24-.24h-.24l-.24-.24-.48-.24h-.72l-.72-.24-.48-.48.24-.48v-.48l.24-.48v-.72l.24-.24h-.48v-.24l-.48-.24-.24-.24h-.48l-.959-.24h-.24l-.96-.24-.48-.24h-.72l-.24-.24-.24-.24-.24-.24h-.72l-.72-.24-1.2-.24h-1.92l-.959-.48h-.48l-1.2-.24h-.96l-.24-.24-.48-.24-.24-.24v.24l-.24-.24v1.2l-.24.24v.24l-2.64-.48h-.24l.24-.24.24-.48.24-.72v-.24l.24-.24v-.24h-.24v-.48h-.48l-.24-.24h-.24l-.48.24-.24.24v.24l-.24.24v.24l-.719-.24-.96-.24h-.48v-.48h-.48l-.72-.24h-.72l-.48-.24h-.24l-.24.24h-.48l-.48-.24-.48-.24-1.68-.24h-.24v-.239l-.96-.24h-.24v.96l-.719.24v-.48l-.24-.72-.72-.24v-.72l.24-1.2v-.72l.24-.48v-.48l-.24-.24v-.24l-.48-.24-.24-.24.24-.72v-.72l.24-.48.24-1.2v-.24l.24-.48v-.96l.24-.48v-.48h-.24v-.24l-.24-.24h-.24v-1.679l.24-.24v-.72l.24-.72v-.96l-.24-1.44-.24-.24.48-1.2.24-.48.24-.48h.48l.72.24h.72l.48-.24v-.24h1.2l.24-.24h1.2l.48-.48.24-.24.48-.48h.72v.24l.24.24v.24l.24.24h.96v-.24h.719v-.24l-.24-.96h-.24v-.24l-.24-.24-.24-.24-.24-.48v-.24l-.24-.719v-.72l-.48-.96v-1.44l.24-1.2.48-1.44v-.24l-.24-.48v-1.44l-.24-.24-.48-.48-.72-.24-1.44-.48h-.24v-3.359l-.24-.96v-.24l.72-.72.48-.48v-.48h-.24l-.24-.48-.24-.48-.24-.24h-.24l-.72-.48h-.24l-.24-.24-.24-.24.24-.24.72-.48.24-.24.48-.72v-.24l.24-.96.24-.48.48-.48v-.24l-.24-.48v-.48l.24-.24v-.24l.72-.239.24-.24.48-.72.48-.96.48-.72v-.96l-.24-.48v-.24h-.24v-.48h-.24l-.24-.24h-.24l-.72.24-.96.48-.48.24-.48.48-.48.24h-.48l-.24-.24v-.24l.48-.96.24-.48.24-.24v-1.2l-.48-.48v-.48l-.24-.24v-.24l.24-.24v-1.44h-.72l-.24-.24-.24-.48-.24-.24v-.48l.24-.479v-.72l-.24-.48-.48-.96-.24-.24v-.72l.24-.24.24-.24v-1.44l-.24-.72v-.48l1.44 1.2 1.68 1.2h1.92l1.44 1.2.96.24h.72l.48.24z", + center: [375, 555], + population: 36.076, + area: "30,11 ha", + defaultColor: "#A7D45F" + }, + { + name: "Klabang", + title: "Kecamatan Klabang", + deskripsi: "Klabang adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 19 Km dari ibu kota Kabupaten Bondowoso ke arah timur laut. Pusat pemerintahannya berada di Desa Klabang.", + laju: "-1,26%", + gambar: "/kecamatan/klabang.jpg", + komoditastertinggi: "Padi
(23,498 ton)", + path: "M477.547 282.696h1.68l.24.24h1.2l.72.24.48.24h.48l.48.24.24.24.72.48h.48l.24.24h1.68l.24.24h1.199l1.44.24h.72l.72.48.24.48.24.72v1.2h.24v.24l.72-.24.48-.24h.48l.48-.24h.72l.24.24.24.72.24.24.24.24h.72l.479-.48.24-.24.24-.24h.48l.48.24h.48l.24-.24.48-.48.24-.48h.48l.48-.24h.96l.24 1.68.24.24v.48l.24.48.24.24v.96l.24.48v.24h.24l.72.48h.48v.24l.24.24.24-.24.24-.24h.24l.24-.24H506.343l.48.48v.24l.48.24v.24h.24v.24h.24v.24l.24.24v.24h.24v.24l.24.24h.24v.239h.24v.24h.24v.24l.24.24v.48h.24v.48h.24v.24l.24.48v.24l.24.24v.48l.24.24.24.48v.24l.24.24v.48l.24.24v.24l.24.24v.24l.24.24.24.48v.24l.24.24.24.24v.24l.24.48v.24h.24v.48h.24v.48h.24v.24l.24.48.24.48.239.24v.24h.48v-.24h.48v-.24h.24l.24-.24h.24v-.24h.24l.24.24h3.12l.24.24.24.48.72.48v.24l.24.239.96.96.72.48.24.24.479.24.24.24.24.24 1.44.96h.48l.72.24.48.24 1.2.24 1.44.48.24.24h.48l.48.24h.24l1.439.24h.24l.48.24 1.44.24h2.4l.48.24h5.519l.24.24h1.92l.24.24v.24l.24.24.24.24.24.48v.24l-.24.72-.24.48-.24.96-.24.96.24.48v.239l-.24.24v.24l-.48 1.2h-.24v.24h-.24v.24l.72 1.92.48.72v1.2h.24l.72.48v.72l-.24.48.24.24v.48l.24.48-.24.72.24.24v.24l-.24.48v.48l-.24.24-.72.479v.48l.24.24.48.48v.96l-.24.48-.24.24.24.24v.24l.48.48.24.24h.24l.96-.24v.24l.24.24v.48l.24.24v.24l.24.48h-1.2v1.2l.24.48.24.48-.24.24-.72.24-.48-.24-.48.24-.48.24-.48-.24h-.72l-.24.24v.72l.24.48.24.48.24.24v.72h-.48v-.96h-.24l-.24.24-.48.48-.24.48-.24.239h.24-.24l-.24.24-.24.96-.24.48-.72.24h-.48v.72h.24l.24-.24.24.24v.72l-.24.24-.24.24-.24.48.48.48v.48l-.48.48-.72.48-.24.24-.24.24v.72l-.24.48.24.48-.24.48v.24l.24.24v.96l-.24.24-.48.48.24.24h.48l.48.24h.48v.479l-.24.24-.48.24v.24l.24.24.24.24.24.48.48.72-.24.72.24.24.48.48.72.24h.48v.24l.24.48v1.44l.24 1.2.24.48v.72l.24.24-.24.24v.24l-.24.48v.48l.24.24h.24l.24.24h.24l.24.24.24.48h.24l.48-.48h.48l.24.24V366.688h.24v.72l.24.24.48.24.24.48.24.24v.96h-.48l-.24.72v.24l.24.24h.24l.24.24.24.24h.96v.48l.24.24v2.16l.24.48v.24l.24.48v.48l-.24.24.24.24h.48v.24l.239.24-.24.24v.479l-.24.24v.24l.24.24h.24l.24.48.24.48.24.48v.72l.24.24v.48h-.24v.24l.24.24v.24l.24.24.48.24v.48l.24.24v.48l.24.24.24.48v.24h.72l.24.24.24.24v.96l.24.24v.24l.24.48h.24l.24.24.24.24v.72l.24.24.24.24.48.24.48.24.72.239.72.24.72.48.719.24v.24h.24l.24.24.24.72h.24l.48.24.24.24v.96l.24.24v.72h-.24l-.24.24-.24.24-.24.24v1.44l.24.48v.96h.24v.96l.24.48.24.24.24.24.48.24h.96l.48.48.24.24.24.24.24.959v.24h.24l.24.24h.24l.72.24h.24v.24l.24.24v.24h.96l.24.24.24.48v.48l.24.24.48.24.239.24v.48l.24.24-.24.24v.48l.24.24.24.48v.24h.48l.24.24h1.92l.24.24.48.48.24.24h.24l.24.24v.48l.24.24v.48l.24.48v.24l.24.48.24.24.48.48.24.24.24.24.24.24v.239l.24.48v.24l.24.24.24.48.24.24.24.48v1.2l.48.24v1.2l.24.24.239.24v.96l.24.48v.48l.24.48.48 1.44.48.48.72.96.72.96.48 1.199v.24l.48.96.48 1.2.24.24.24 1.2v.72l-.24.24-.48.96v.24l.24.24.48.48.48.24.48.24.24.24h.48v-.24l.96-.24.24-.24h.24l.48.24v1.2l.24.24.479.24.24.48.24.72v.48l-.48.48-.24.239h-.24l-.24.48.24.24v.24l.48.48-.96-.24h-.48l-.72-.24-.96-.48-.96-.48h-.48l-.48-.24h-.96l-.48.24h-.96l-.48.24-.719.24-.48.24-.48.24-.48.24-.48.48h-.24l-.24-.24-.24-.24v-.96l-.24-.24-.24-.72h-.24l-.48-.24v-.24h-.24l-.24-.24-.24-.24-.24-.48-.72-.96h-2.4l-.48.24h-4.319l-.48.48-.48.72-.48.24-.24.24-.48.72-.72.48v.24l-.96.72-.72.48-.959.72-.72.72-.72.48-.24.24-.72.48-.72.48h-.24l-.96.72-.72.48-.24.24-.24.24-.24-.48-.48-.48-.24-.24-.24-.72-.24-.24-.48-1.2-.72-1.68-.24-.72-.479-1.2v-.48l-.48-1.2-.48-1.44-.24-1.68v-.24l-.24-.96-.48-.96-.48-.96-.24-.24-.24-.48-.48-.48-.72-.72-.72-.719-.24-.48-.48-.96-.48-1.2v-.24l-.24-.48-.72-.96v-.72l.24-.24v-.24l-.24-.48-.24-.24v-1.2l-.24-.72v-.48l-.24-.48-.24-.72-.24-1.2-.719-.959-.24-.96-.48-.96v-2.16l-1.44-.96-.48-.24v-.24l-.24-.48V403.886l-.72-.72-.48-.72v-.479l-.24-.96v-1.44l-.72-1.44-.24-.24-.72-.48-.72-.48-.24-.24-.24-.24-.24-.24-.48-.48-1.199-1.2v-.24l-.48-.48-.24-.96-.24-.24-.48-.24v-1.44l-.24-.24.24-.479v-.48l.24-.24v-.48l-.24-.24h-.48l-.24-.24-.24-.24v-.48l.48-.24.24-.48v-.24l-.48-.24v-.48h.24l.48-.48-.24-.24h-5.76l-4.559.24v-1.2l-.24-.48v-.72l.24-.24h.72l.24-.48.24-.24v-.72l-.24-.48-.48-.48v-.48l-.24-.24-.24-.48-.24-.24-3.12-3.599-.24-.24v-.24l-.24-.24-2.639-2.64-.24-.48-.24-.48-.24-.72v-.48l-.24-.48v-.24l-.24-.24v-.24l.24-.72v-.72l-.24-.24-.24-.24-.24-.479-.24-.24v-.48l-.24-.72-.24-.48.24-.48v-1.92l-.72-1.2v-.24l-.48-.24v-1.92l-.24-.24-.24-.24-.48-.48-.24-.48v-.24h-.24l-.24-.24-.24-.24v-.48l-.24-.48v-.24l-.24-.479v-.24l-.48-.48-.24-.72-.24-.24v-.48l-.24-.72v-1.2l-.24-.24v-.96l.24-.48v-.24l-.24-.24h.24v-.72l-.24-.48v-.72l-.24-.24v-2.16l-.24-.24-.719-.24v-.24l.24-.24h.24v-.239l.48-1.2v-.96l-.24-.48-.24-.72-1.2-.48-1.2-.96-.48-.48-.48-.24-.72-.48-.24-.72h-.24l-.24-.72v-.48l-.24-.48v-.48h-1.2l-.48.72-.48 2.64v.96l-.72.96-.24.48-.72 1.2-.719.24-.48.24-.48.24-.72.24-1.92.96-.24.24-.96.96h-.24l-.24.48-.48.48-.48.48-.48.96-.72 1.92-.48.48-.48.48-.24.24-.24.24H486.667l-.24.24-.24.24-.24.24-.24.24-.48-.24h-.24v-.24h-1.2l-.24.24h-.24l-.48-.24-.72-.24h-.24v-.48l-.48-.24-.72-.24-.48-.24-.24-.24h-.72l-.959.24-.72.24-.24.24-.24.24-.24.24-.72.72-.24.24-.48.24h-.72l-.48-.24h-.24v-.48l-.24-.24-.48-.24-.48-.24h-.72l-.24.24h-1.44l-.24-.24-.479-.24-.48-.24h-.48v.24l-.24.24v.24h-.24l-.48.24-.48.24-.24.24-.72.72h-.24l-.48-.24-.24.24h-.24l-.24.24h-.48l-.24-.24h-.24l-.96.48-.24.24-.72.72h-.48l-.24-.24h-.24l-.239-.24h-.48l-.24-.48-.48-.24H456.91l-.24-.24-.72-.24h-.72l-.96-.24-.48-.48-.48-.48-.72-.48h-.24l-.959-.24H448.03l-.48.24-.96.24-.48.24h-1.68l-.48.24h-.96l-1.199-.24-.48-.24-.24-.48-.24-.24-.24-.72-.24-.24-.24-.72-.24-.48-.24-.48-.24-.24h-.24l-.24-.24h-1.44l-.24-.24h-.24l-.24-.24-.24-.48-2.16-2.4-.959-.48-.96-.72-.48-.24-.24-.24-.24-1.44-.24-.48-.96-.72-.96-.72h-.24v-.96l-.72-.72-.72-.72-.72-.72-.48-.48-.48-.24-.24-.24-.24-.24-.24-.72-.24-.24-.24-.48-.479-.479-.24-.48-.24-.72.24-1.2.24-1.2.24-.48.48-.48v-.48l-.48-.72-.48-.96-.24-.24-.48-.24-.48-.24-.24-.24h-1.92l-.48.24h-.24l-.72.24h-.24v.24l-.24.48-.72.96-.24.48v.72l-.24.48-.24.96-.24.72-.48.96-.24.48-.24.24-.479.48-.48.24-.24.48h-.48l-.48.24-.24-.24h-.24l-.24-.24-.24-.24-.24-.24h-.24l-.24-.24h-.24v-.24l-.24-.24-.24-.48-.24-.24-.24-.24-.24-.24h-.48l-1.44-.24-.96.24-1.679.72-1.68.48-.48.24-2.16.72h-.24l-3.36.96-2.159.48-.72.24-.72.24h-3.84l-.48.48-.48.48v.24l-.24.24-.24.24-.48.48-.719.48-.48.24h-.48l-.24.24h-.48l-.24.24-.24.24v-1.2l.24-.24.24-.48.24-.24v-1.2l-.72-.48-.48-.24-.48-.24-.72-.24h-.72l-.48-.24-.72-.72-.48-.48h-.24l-.24-.24H378.679l-.96.24-.24.24h-.72l-.24.24-1.44.24h-.72l-.48.48-.24.24-.24.24v.24l-.24.24-.24.24h-.72l-.24.24-.72.48h-.24l-.959-.48-.24-.24-.24-.48v-1.44l.24-.24v-.48h.24v-.24l.24-.24v-.48l-.24-.48v-.96h-1.2l-.24-.48-.48-.48v-.24l-.24-.24v-.24h-.24v-.48h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.48-.48-.72h-.24l-.24-.48v-.24l-.24-.24-.24-.48v-.24l-.24-.48-.24-.48-.24-1.44v-.72l-.72-2.159-.96-2.16.24-.48.24-.24.96-.96 2.16-1.92 1.2-1.44.96-.96.48-.96.48-.959.72-2.4.96-2.16.72-.72.48-.48.24-.24.24-.24.24-.24v-.24h.48v-.24h.72l.24-.24.48-.24.48-.24.24-.24.24-.24.24-.24.24-.48.24-.24.24-.24.24-.24.24-.24v-.24l.24-.48v-.72l.24-.719.24-.48.72-1.44.719-.72.72-.72 1.2-.48 1.68-.72.72-.24 1.44-.24 1.68-.24 1.919-.24 1.68-.24 1.68-.24h5.039l1.44-.24h1.44l.48-.24h.48l.48.24.48.24h.24l.72 1.2.24.24.48.72h.48l.48.24.24.24h.24l.72.48.479.24.24.48v.24h.24l.72.24.24.24h2.88v.24l.24.24.72.24 1.2-.48.48-.24.24-.48v-.24h.24l.24-.24v-.48h.24l.24-.48v-.24l.24-.24.24-.24h.239l.24.24.24.24h.24l.24-.24h.24v-.24h.24v-.96l-.24-1.2V286.536l.24-.24v-.24h.24l.24-.24h1.44l.72.48h.72v.24l.24.24.24.24v.24l.24.24.72.72h.24v.24l.72.24v.24l.24.24v.24l.24.48.24.24h.96l.239.48v.24l-.24.48-.24.24v.72l.24.24.24.48h.96l.24.24.24.24.24.24.24.24.24.24h.24l.24-.24.48-.24.24-.24h.24l.24.24.48.24.72.48.96.48.24.24h.72l.96-.24.48-.24.479-.24h1.44l.72-.48v-.24h.72l.24.48.24.24h.24v.24l.24.24.24.24h.48l.48.24.96.48.48.24h1.92l.959-.24h.48l.24.24h.48l.72-.24h1.44l.24.24v.96l.24.24v.48l.24.24.24.24h.48l.72-.24.24-.24h.72l.48.24v.48l-.24.48-.24.48v.96l.24.24h1.68l.24.48v.24h.239l.24.24.48-.24h1.68v.24h.48v.24l.72.72.24-.48v-.48l.24-.24.24-.24.24-.24h.48l.24-.24h.24l.48-.24.24-.24v-.96l.24-.24.48-.72v-.48l-.24-.24-.24-.24h-.48l-.48-.48h-.24v-.48l.24-.24.24-.24v-.72l.24-.48.24-.48.24-.24v-.24l-.24-.48v-1.2h.24l.96-.24h.24l.24-.24.24-.24v-.48l.48-.24.239-.24 1.2-.24h.96l.48-.24.72-.48h2.88l.48-.24.96-.24.48.24h.48l.24-.24.239-.24h1.2l.72-.24.24.24.24-.24.72-.48h.48l.24-.24h.48v-.24l.24-.48.48-1.44.24-.24v-.48l.24-.959.24-.48.24-.72h.24l.72.24.24-.24h.96v-.24l.24.24z", + center: [475, 320], + population: 25644, + area: "91,204 ha", + defaultColor: "#6FAB49" + }, + { + name: "Maesan", + title: "Kecamatan Maesan", + deskripsi: "Maesan merupakan sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 13 Km dari ibu kota Kabupaten Bondowoso ke arah selatan. Pusat pemerintahannya berada di Desa Maesan. ", + laju: "-0,20%", + gambar: "/kecamatan/maesan.jpg", + komoditastertinggi: "Tebu
(17.331,94)", + path: "M158.622 550.273l.48.48h.72l.48.24.24.24v.24l.24.24.24.48.24.24.48.24h.24l.24.24.24.24.24.24.24.24v.24l.24.24.24.24.24.24h.24l.24.24.96.96h.96l.48-.24.48-.24h.72l.24.24h.24l.24.24h.48l.24.24h.24l.24.24h.48l.24.24h.48l.239.24.24.24h.96v.48h.72l.24.24h.96l.48.24h.48l.24.24v.24l.24.48.48.48h.24l.24.48.24.24.24.48v.24l.24.48h.24l.24.24v.24l.24.24.72-.24.48.24h.48l.719.24.72.24h.24l.48.24.48.24h.24l.96.48.48.24.48-.24.24.24h.72l.48.24h.48l.72.24h1.2l.48-.24.479.24h.72l.24-.24.48-.24.48.24h1.2l.48.24h.72l.48.24.24.24.48.24h.24l.48.48.48.24.24.24h.48l.24.24.72.239.479.24.72.48.48.24.48.24.24.48.24.24.24.24.24.24h.72l.48-.24.96-.48.48-.24h.48l.48.24h.24l.24.24.24.48v1.44l.24.48.24.24.24.24.72.48.48.24.719.48.72.48.24.24h.24l.96.24h1.68l1.2.24 1.2.24h2.159l.48.24.48.24.24.24.24.48.24.24h1.44l1.2.48.24.24h.24l.96.48 1.2.48.48.48.72.24.48.24 1.199.24h.72l.48.239 1.44.48.24.24.48.24.72.24.48.48h.24l.48.24h1.68v.24h.24l.24.24.24.24.479.24.24.24.48.24h.48l.72.24.72-.24h.48l.24.24h.72l.48.24.48.24.96.24.96.48h2.159l.72.24h.24l.24.24h.72l.24.24.24.24.24.24h.24l.48.24.48.48.48.24h.48l.48.24.24.24h.48l.48.24h1.2l.24.24h.24l.48.48.479.24h2.64l.48-.24.24-.48H260.852l-.24-.24.24-.24h.48l.479.24.24-.24.24-.24.48-.24h.24l.24-.24v-.48h1.2l.24-.24.72-.24.24.48.48.24.48.24.24-.48.48.24h.24l.72-.24.48-.24.24-.24v-.48h1.2l.479.24.72-.24h.48l.24.24.48-.48h.96l.48-.48.48-.48.48-.24h.24l.48-.48.48-.24h.72l.72-.24.24.24.24.24h.72l.24.24.24.24.239.24h.48l.24-.24h.72l.24.24h.24l.24-.24.24-.24h.48v-.24h.72v.72h.48v-.24h.24l.24-.24h.48v.24h-.24l.24.24h.96v.24h.24v.24h.48l.24.24h.72v.24H288.927l.72-.48.48-.48.48-.48.48-.24h.72l.48.24.48.48v.24l.24.24.48.24h.24v.24h.48v.24l.24.24h.24v.24h.24v.24h.24v.48h.24v.24h.24v.24h.24v-.24h.48v.24l.24-.24h.959v.48l-.24.24h.24v.24h1.2v-.24h.24v.48h.24v.24l.24.24v.24l-.24.24.24.24.24.24.24-.24.24-.24.24-.24h.24v.24l.24.24h1.68l.48-.48.24-.48.24-.24h.48l.24-.24.24-.24v-.24h.96l.24-.24v-.24l.24-.24.24-.24.24-.24h.239l.24.24v.24l.24-.24v.24h.24l.24-.24v-.24l.24-.24.24-.24.24-.48-.24-.24v-.24l.24-.24h.24l.24.24.24.24h.48l.24-.24v-.48h.24v-.24.24h.48l.24.24h.24l.24.24v1.44l-.24.24 1.2.24h.48l.24.24 1.2.24h.24l.48.24 1.439.48 1.2.48 1.2.48 1.2.24.96.24v.24h.48l-.24.48v.24l-.24.48h.24l.96.24 1.2.48h.24l1.199.479h.24l.72.24-.24.24-1.2 3.12-.48 1.2-.72 1.92-.72 1.92v.24l-.24.24v.72l-.48.72-.24.72-.24.479-1.44-.48h-.24v.48l-.24.48-.24.72-.24.72-.24.72v.24l-.48.72-.24.72-.48 1.44v.24l-.24.24v.24l-.24.48v.24l-.24.48-.719 1.44-.24.24v.24l-.48.72-.72 1.439-.24.24v.24l-.48-.24h-.24l-.24-.24h-.24l-.24-.24h-.24l.24-.72v-.24l-.72-.48h-.48v-.24l-.48-.24-.48-.24v.24h-.24l-.24.96h-.48l-.24.24v.24h-.24v.24l-.24.48-.24.72.24 1.44v.24l-.24.24v.72l.96.24v.48l-.24.48h-.24l-.24.24v.96l-.24.24.24.48v.48h.24l.48.48v-.24h.48l.24.24v.72l.24.24v.24l1.68.48.96.24.72.48.96.24.24.24.72.24h.24l.48.48 1.2.48h.24v.24l.96.239.72.24.48.24v.24l.48.24v.24h.24l.24.24h.24l.24.24.24.24h.24l.24.24v.24l.72.72h.24v.48l.24.48v.24l-.24.24.24.24v.24l-.24.24-.24.24-.24.24v.24h-.48v.24l-.24.72-.24.24-.24.48-.24.24v.24l-.24.24h-.24l-.24.24h-.24l-.24.24v.24l.24.24v.24l.24.24h.48l.24-.24h.24v-.24l.24-.24v-.24l.24.24h.24l.24.24v.24h.48l.24.24h1.439v.24l-.24.24v.72l-.24.479v.72h-.24l-.24.24h.24v.24l.24.24v.24l.24.24h.48l.24.24h.48l.24-.24h1.92v.24h.24v.96l-.24.24-.48.48-.48.48-.72.72-.48.24-.24.48-.24.24-.48-.24-.24.24v.72l.48.48v.48l-.24.24h-.96v-.48h-.48l-.48.24-.24.24-.72.24-.24.24v.24h-.24v.24l.24.24h.24v.48l-.24.24-.24.24v.48l-.24.72v.479l-.24.24-.24.48v.48h-.24v.24l.24.24.48.48v.24l-.24.24-.96.72-.24-.24h-.24v.72l-.24.24v.96l-.24.24-.24.24-.24.24h-.24l-.24.24h-.48l-.48.24v-.24l-.48-.48-.239-.24v.24h-.24l-.24.24-.24.24-.48.48-.72.48h-.48l-.48-.24-.24-.48-.24-.48.24-.24v-.24h-1.2l-.48-.24-.24-.24-.24-.24h.24v-.24l-.24-.24-.24-.24-.24.24-.24.24-.24.24h-1.92l-.719-.24h-.24v-1.2h-.24l-.24.24-.24.24-.24.48-.24.24h-.48l-.24-.24v-.24h-.24l-.24.24-.24-.24-.24-.24v-.96l-.24-.24-.24-.24-.24-.24v-.24l.24-.24-.24-.24v-.72l-.24.24-.24.24h-.48l-.24-.48-.48-.48-.48-.24-.72-.48-.72-.48h-.24l-.24-.24-.72-.24v-2.16h-.24l-.239-.24h-.48v-.48h-.72l-1.2.72-.24.24-.48-.48h-.72l-.72.24h-.72l-.48-.24-.48-.48h-.48l-.72.48h-.48l-.24.48-.48.48-.24.24v.24l-.239.24v.48l-.24.24v-.24l-.24-.48-.24-.24-.24-.24h-.72l-.96-.24h-.72l-.24-.48v-.96l-.24-.24-.24-.24v-2.16l.24-.48-.24-.48-.24-.48-.24-.24-.24-.24-.24-.24-.48-.48h-.24v-.24l-.24-.24v-.479l-.24-.24-.24-.48-.24-.24h-.24v-.24l-.24.24h-.48l-.24-.24-.24-.24-.24-.24h-.24l-.24-.24-.239-.24h-.24v-.24h-.24l-.24-.24-.72-.72-.24-.24-.72-.48h-.24l-.48-1.2-.24-.48-.24-.48h-.24l-.48-.24-.24-.24-.48-.24-1.68-1.44-.24-.24-.96-.48-.24.24h-.48l-.479.24h-.48l-.48.24v.24l-.24.24-.24.48-.24.72-.72 1.2-.96 2.16-.24.48-.24.24-.48.48-.24.72v.48l-.24.24-1.44 1.2h-.24l-.48.24h-.48l-1.2.48h-.479l-.48.48-.48.24-.48.24-.48.48-.24.24-.48.72v.48h-.24l-.48 1.44-.24 1.2v.96l-.24.48v.72l-.72 1.44-.48 1.439-.72.96-.24.24-.48.72-.48 1.2-.24.72-.48.96-1.199 1.44-.96-.24-.96-.72-1.2-1.44-.48-1.68-.72-1.92-1.68-2.16-.96-.48-.96-.48h-1.439l-.48.24v.24h-.24l-.48.72-.48.72.24 1.44.48 2.4.24 1.44.24.24.48 1.44.24.48.24.96.24 1.44v1.68l-.24.479-.24.48-.72 1.2h-.24l-.24.24v.24h-.24l-.24.24v.24l-.24.24h-.24v.24h-.24l-.24.48v.24l-.24.24-.24.24v.72l-.24.24-.24.48-.24-.24-.96-.24-.72-.24h-.24l-.24-.24v-.24l-.24-.48v-.72l.24-.96.24-.72.24-.72v-.48l-.24-.24v-.24h-1.2v-.72l.24-.48h.24l-.48-.72-.48-.48v-.96l-.24-.48-.48-.72-.24-.48v-.24l.24-.24v-.48l-.24-.48v-.96l.24-.24-.24-.24-.24-.48-.239-.24v-.48l.24-.48v-.72l.24-1.199v-.48l.72-1.2v-.72l-.48-.24-.48-.24-.72-.96-.24-.24v-.72l-.24-.24h-1.44l-.48-.48-.48-.48-.96-.48h-.24l-.48-.72-.24-.72-.48-.24-.24-.24h-.48l-.48.24-.24-.24h-.48v-.72h.24v-.24l-.24-.72v-.24l.24-.24.24-.24.24-.24v-.239h-.96l-.24-.24-.24-.48v-.24l-.24-.48v-.48l.24-.48v-.96l-.24-.48-.239-.24-.96-.24h-.48l-.24-.24-.72-.72-.24-.24v-.24l-.24-.48-.48-.72h-.24l-.72-.24h-.24l-.48-.72-.24-.72-.72-.72-.24-.24-.24-.48v-.72l.24-.48v-1.199l-.24-.48-.24-.48-.72-.72-.24-.48v-1.2l-.72-.24-.48-.24v-1.44h-.239l-.24-.24h-.24l-.24-.24v-.48l-.24-.24-.24-.24-.48-.48h-.24v-.96l-.24-.24h-.24l-.72.24-.24-.24h-.48l-.24-.24-.24-.48-.48-.48-.24-.24-.72-.72-.24-.24.24-.479.48-.24.24-.24v-.24l-.24-.48-.72-.48-.48-.24-.48-.24-.24-.24-.24-.24v-.72h-.24v-.72l-.24-.48-.24-.72v-.24l-.24-.24-.959-.24h-.72l-.24-.48-.48-.24-1.2-.72-.72-.24h-.72v.24l-.96-.24v-.24h-.48l-.24.24h-.24l-.24.24-.24.24v.72l-.24.24h-.24l-.24-.24v-.24l-.48-.48-.24-.24-.24-.24-.24-.24-.239.24h-.24l-.24-.24-.24-.24v-.24l-.24-.24v-.24h-.48v-.24l-.24-.24v-.72h-.24l-.24-.24-.24-.24h-.24v-.24l-.24-.24v-.24l-.48-.239-.24-.24h-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24.24-.24-.72-.48-1.2-.72-.72-.48-.96-.96-.719-1.2-.72-1.44-1.44-1.68-1.2-.96-1.68-1.2-1.2-.48-.72.24-.48-.24h-.72l-.959.24-.48.24h-.96l-.72.24h-1.2l-.96-.24h-.96l-.48-.24h-3.599l-.72-.24h-1.92l-.48-.24-1.2-.479-.96-.48h-.72l-.96.24h-.24l-.48.24-1.199.24v.24l-1.92.48-.48.24h-.48l-.24.24h-.72l-.48-.24h-2.16l-.72-.24h-.96l.24-.72v-1.44l-.24-.72v-.24l-.24-.72-.479-.72v-.72l-.24-.48-.24-.72v-.24l-.48-.24-.24-.24-.24-.24-.48-.48h-.24l-.24-.48-.24-.24v-.48l-.24-.24-.48-.72-.48-.72-.24-.48v-.48l-.48-.48v-.239h-.24l-.24-.24-.24-.48-.48-.24-.24-.24-.24-.24v-1.2l-.24-.24v-.24l-.24-.24h-.24v-.24l-.24-.24h-.24v-.72l-.24-.48v-1.68l-.24-.24h-.24l-.48-.24h-.479l-.24-.24h-.24l-.24-.24-.48-.24h-.24v-.24l-.24-.24h-.24l-.24-.24v-.24l-.24-.24v-.24l-.24-.24-.24-.24v-.24l-.24-.24v-.24l-.24-.48v-.48l-.24-.24-.24-.479-.24-.24v-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24h-.24v-.24l-.24-.24-.24-.24-.24-.24v-.48h-.24v-.24h-.24v-.24l-.24-.24-.24-.24-.24-.48-.48-.24-.24-.24-.24-.24-.48-.24v-.24l-.239-.24-.24-.48-.24-.24v-.24l-.24-.24v-.24h-.24v-.24h-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24v-.24h-.24v-.96l-.48-.48v-.72l-.48-.959-.24-.72v-.96l-.24-.96v-2.16l.24-.48-.24-.96-.24-1.44v-.72l-.48-1.2-.24-.48-.24-.96v-.239l-.24-.24-.72-.72-.24-.48-.24-.72v-.72l.24-.72.24-.72.24-.72.72-1.2.48-1.2.48-.96.48-1.44.24-.72v-.72l-.24-.24 2.16-.479 1.44.24 1.68.48 1.44.48.24.24 1.2.48.24.24 1.68.96.24.24 1.679 1.2 1.68 1.44.96.72.96.96 1.44 1.2 1.44 1.68.72 1.439.96 1.44v.24l1.439 1.92.72.96 1.44 1.2.96.48h.24l.72.24.72.24z", + center: [255, 612], + population: 42.212, + area: "56,083 ha", + defaultColor: "#A7D45F" + }, + { + name: "Pakem", + title: "Kecamatan Pakem", + deskripsi: "Pakem adalah sebuah kecamatan di Kabupaten Bondowoso, Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 18 Km dari ibu kota Kabupaten Bondowoso ke arah barat. Pusat pemerintahannya berada di desa Patemon. Pakem merupakan kecamatan paling barat di Kabupaten Bondowoso.", + laju: "-2,19%", + gambar: "/kecamatan/pakem.webp", + komoditastertinggi: "Padi
(13.308 ton)", + path: "M230.854 364.29h.96v.48h1.68l.24.24h.24v.48h.24l.24.239.24.24v-.24h.24l1.2-.48.48-.24h.72l.96.24h.24l.48.24.48.24.48.24.24.48.24-.48v-.24h.24v-.24h-.24l-.24-.72v-.24h.24l.72-.48.24-.24h.24l.24-.24H245.012l.72-.72.24-.24.48-.24h.72l.24-.24h.24l.24.24h.24l.24.48v.48l-.24.48v.48l-.24 1.44v.48l.24.48v.24h-.24l-.24.24v.24l-.48.24-.24.24-.48 1.44v.24l-.24 1.68v.48l-.24 1.2v.72l-.24.48h.96l.24-.24h.24l.24-.24.24-.24.24-.24.24-.24.24-.24.24-.24.24-.24.48.48.72.96v.24l.72-.48.48-.48.24-.24h.24l.48-.48.239-.24 1.68 1.2.48.72.48.24-.72.72-1.44.96v.72l-.24.24v.24l1.2.24 1.92.239 1.68.48 1.68.24 1.92.48.719.24 1.2.24.96.24h.24l.48.24h.48v.24l-.24.24.24.72v1.68l.24.24v.72l.24.24.24.24h.48v-.24h.72l.24-.24.24-.24.24-.24h.24l.72-.24.96-.24v-.24l.959-.24.72-.24v-.24l.72.48h.24l.72.24.96.48.72.24.48.48.72.48v1.2h-.24l-.48.96h-.24l-.48.48h-.24l-.24.48-.24.48v.24l-.24 1.679.24.96v.48l.48.48.48.72.72.24.24.24.96.72.72.72h-.24l-.48.24-2.16-.24h-1.92l-1.92-.24-1.92-.24h-2.88v-.24h-3.12l-.48-.24-.239-.24h-.24l-.24.24-.72.24h-1.44l-.48.96-.24.24h-.24l-1.68.72-.24.24-.72.24-.48 1.68v.48l-.48 2.4-.24.959v.96l-.24.24-.24 2.4v.24l-.72.72-.479.96-.24.72v1.92h.96v.72l.96.24 1.44-.72.48.48.24.24-.96 2.639-.48 1.68-.24.96v.24l.24.24.72.24.24.24v.72l-.48.72-.48.96-.48.72v.24l-.24.24h-.72l-.96.24h-.48l-.24-.24-1.44-.96-.72-.24-.72.24-.96.72-.24.96-.24.96h-.24V424.523l-.24.48v.24l-.24.24h-.24l-.48.24-.48-.24h-.24l-.48-.24-.48-.24h-.24l-.719.48-.48.24h-.96v-.24l-.24-.48-.48-.24-.24-.24h-.24v-1.68l-.24-.24.24-.24.24-.24h.24l.24-.24v-1.2l.24-.48v-.48l-.48-.72-.48-.96-.24-.24-.24-.24-.96-.48-.48-.24-.96-.24h-1.92l-.24.24-.24.24-.48.24-.24.24h-.719l-.48.24-.24.24h-1.2v.24h-.24l-.24.48-.24.24-.48.48-.24.24h-1.44l-.48.24-.24.24-.48.48-.24.48v.24l-.24.24-.48.48-.72.48h-.24v.24h-.24l-.479-.24h-.48l-.72.24h-.96l-.24-.24-.24-.24-.72-.24-.24.24-.72.24H218.855l-.72-.48-.72-.48h-2.399l-.96.48-.48.72v.72l-.48.48v1.2l-.72.96-.24.72V430.524l-.24.96v1.2l-.48 1.2v1.44l-.24.96v.479l-.24.72-.48 1.2-.24 2.16-.48 1.68-.24.24-.72.96-.48.24-.479.24h-.72l-.48-.24h-1.2l-.24.24-.24.24v.24l-.48.24-.48.72v.24l-.48.96-.48.96-.24.24-.48.959v.24l-.24.24v.24h-.24v.24l-.72.72-.24.24-.24.24-.24.24h-.24l-.48.24-.24.24-.24.24h-.239l-.72.48h-.24l-.72.72h-.24l-.72.72-.24.24-.24.24-.72.48-.24.48-.96.72-.72.72-.24.48-.72.72-.96.72v.24l-.72.959-.719.72-.24.24-.24.48-.72.96-.24.24h-.24v.24l-.96 1.2h-.24l-.96 1.44-.96 1.2-.24.48-.24.24-.72 1.2-.24.48v.24l-.48.96-.24.24-.24.24h-.24l-.96-.24-.479.24-.72.24h-.96l-.72.24-.48.24-.24.479-.24.24-.48.48v.24l-.24.48-.24.24-.48.48-.24.48-.48.72v.24l-.72.72v.24l-.48.24h-.24l-.24.48-.48.48-.24.72-.24.24-.24.72-1.199 2.88-.24.72v.48l.24.719v.72l-.24.24-.48.48-.48.48v.48l-.24.48-.24.96-.48.72-.48.72-.96.96-.96 1.2-.96 1.2-.96 1.2-1.2 1.2-.72.959-.479.72-.96.96-.96.96-.72.96-1.44 1.68-.96 1.2-1.2.96-1.2.96-1.199.96-1.68.72-1.2.48-1.2.479-.72.24-1.2.24-.24.24-.96.48-.96.48-.959.72-1.2.96v.24l-1.2 1.2-1.2.96-.96.96-.96 1.2v.24l-1.2 1.44-.48 1.2-.72.96-.48 1.439-.24 1.2-.719 1.2-.24.48-.48 1.2-.48 1.44-.48 1.2-.48 1.44h-.24v.24l-.24.72-.24 1.2-.24 1.199v-.24h-.96l-1.2.24-1.44.24-1.68.48-1.199.24-.96.24h-1.68l-.48-.24-.72-.48-.48-.24-.72-.24-.48.24-.48.24-.48.24-.48.48-.24.24-.48.24h-.479l-.72-.24h-2.16l-1.2.24-1.2.24-.96.24-.72.48-.72.24-.72.48-.479.72-.72.48-.48.96-.48.72-.48.48-.96.24-.96.48-1.2.24H100.789l-1.439-.24-1.92-.24-1.68-.24-1.44-.24-.48-.24-1.44-.48-.96-.72-1.199-.96-1.2-.96-1.2-1.68-.96-1.44-.96-1.68-.72-.96-.72-.96-.96-.48-.48-.24-1.2.24-.719.72-.96.96-.96 1.44-.72 1.2-.48.96-.72 1.44-.72 1.2-.48.48-.72.72-.48.24h-.48l-.24-.24-.48-.48-.24-.96-.24-.72-.24-.72v-.96l.24-.24v-.24l.48-.48.24-.72.24-.24v-.96l-.48-.24-.48-.24H71.513l-.72-.24-.48-.24-.24-.48-.24-.72v-1.92l-.24-.72-.48-.48-.48-.24-.48-.24-.72-.24-.72-.24-.72-.48-.24-.48v-.24l.24-.24v-.24l.24-.24h.24v-.24h.24v-.24h.24l.24-.24v-.24h.24l.24-.24.24-.24.24-.24.48-.24h.72v-.24h.72l.24-.239.48-.24.24-.24v-.24h.24l.24-.24v-.72l.24-.24h.24l.24-.24.24-.24h.24v-.48h.24l.24-.48.48-.48v-.48l.48-.24.24-.24.48-.24h.48l.48-.24h.48l.24-.24h.48v-.24h.24l.24-.24.24-.24h.24v-.24l.24-.24.24-.48v-.72l.24-.24v-.24l.24-.24v-.24l.24-.24v-.24h.24l.24-.24.24-.24h.24l.48-.24.239-.24h.48v-.24h.24l.24-.24.24-.24.48-.24.24-.24.48-.239v-.24l.24-.24h.24l.24-.24.24-.24v-.72l.24-.24v-.24l.48-.24.48-.24h.72l.24-.24.24-.24.24-.24h.24l.24-.24.48-.24h.48l.48-.24h.24l.24-.24h.24l.479-.24h1.44l.24-.24H94.31l.48-.24.48-.48.48-.48.24-.24.24-.24.24-.24h1.2l.48-.24h.48l.24-.24h.239l.24-.24h.24l.24-.24.24-.24h.24l.24-.24.48-.24v-.24l.24-.24v-.24l.24-.24.24-.24.24-.24.24-.24.24-.24v-.24h.24v-.48l.24-.24.24-.24.24-.239h.24l.24-.24v-.24l.24-.24v-.24h.24v-.24h.24l.24-.24v-.24h.24l.24-.24h.24l.24-.24h.72l.24-.24H107.987l.24-.24h.48l.24-.24h.48l.48-.24h.24l.24-.24.48-.24h.24l.48-.24v-.24l.24-.24.24-.24.24-.24h.24l.24-.24.24-.24h.24v-.24h.24v-.24h.48l.24-.24h1.68l.72-.24v.24h.719v-.24l.24-.24v-.24h.24V487.399l.24-.24v-1.44l.24-.48v-.24l.24-.239v-1.92h.24v-.96l.24-.48V475.88h-.24v-.24l-.24-.48-.24-.24-.24-.24v-.48l-.24-.48.24-.24.24-.479v-.48l.24-.24v-1.2h.24l.24-.96v-.24l.24-.24v-.48h.24v-.24l.24-.24v-.48l.24-.24.24-.24.24-.48.24-.24h.24l.24-.24h.48l.24-.24h.24l.48-.24h.24l.24-.24h.48v-.24h.48l.48-.24.48-.24h.48l.479-.24h1.44l.24.24h.24l.48.24.72-.24h.72l.96-.24h1.44l.48-.48.48-.24.24-.48h.48l1.199-.48.24-.24v-.96l.24-.48v-.24l.48-.24.24-.239.48-.24.72-.24h.24v.24h.48v-.24h.48v-.24h.24l.48-.24.72-.48.48-.48.24-.24v-1.44l.24-.48.24-.24.24-.24.72-.48.24-.24.72-.96.48-.24.239-.24h.48l.48-.24.48-.48.72-.24h.24l.48-.24.24-.24h.24l.48-.24h.24l.96.24.24-.24.72-.48.24-.24h.48l.48-.48.24-.24.72-1.2.48-.48.719-.479.24-.24.48-.96.24-.48.48-.48v-.48l.24-.24v-.96l.48-.24v-.48l.48-.72v-.48l.48-.48v-.72l.24-.24v-.24h.48v-.24h.48l.72-.24h.24v-.24h.24v-.24h.48v-.24h1.92l.24-.24.48-.24h.479v-.24h.48l.48-.24.24-.48.24-.48.24-.72h.72l.72.24.48.48h.48l.48-.24.96-.24h.24v-.24h.48l.24-.239h.24v-.24l.48.24h.72l.24-.24.24-.24h.239l.48-.24.24-.24.24-.24v-.48h.48v-.96h.24v-.48l.24-.24v-.24h.24v-.24h-.24v-.48l.48-.48v-.48h.24l.24-.48.72-.48.24-.24h.48v-1.92l.24-.48.24-.48.72-.96v-.72h.24l.48-.48.24-.479.48-.24.24-.24.48-.24.24-.24.48-.96h.24l.959-.48.24-.48.24-.48.24-.72v-.24h.72l.24-.24-.24-.24v-.24l-.24-.48v-.24l-.24-.72v-.72h.24v-.24l.24-.24h.24v-.72h.24v-.24l.24-.24v-.24h.24v-.24h.24v-.24h.72l.48.24h1.2l.24.24h.72l.24-.24h.48l.24.24h.24l.48.24h.24v-.24h.24v-.48h.239v-.48h.24v-.24l.24-.24h.48l.24-.24h.48v-.24h.24v-.24l.24-.24v-.239h.24l.48-.24.24-.24v-.72h.72l.24-.24h.24l.24-.24v-.48l.24-.24v-.24h.24v-.24h1.92l.24.24h.72v-.24h.24v-.48l.48-.24.479-.24.24-.24h.24l.24.24h1.92l.48-.24.24-.24h.24l.24-.24h.72-.24.24v-.72l.72-.48v-.24l-.24-.24v-.72l.24-.24v-.24l.24-.48v-.24l-.24-.24-.24-.48-.48-.72h-.24v-.48l-.24-.24v-.48l-.24-.24v-.24l.24-.24v-.479l.24-.24V397.886l.24-.24h.24l.24-.24v-.24h.24l.24-.24.48-.72h.24l.24-.24.24-.48.24-.24.24-.48V392.127l.24-.48v-1.439l.24-.24.24-.72.24-.48.24-.72.24-.48.24-.48.239-.24v-.24l.24-.72.24-.72.24-.48.24-.72.24-.24.48-.24v-.48l.24-.24h.48l.48-.24v-1.44l.48-.48.24-.24.24-.24.24-.24.24-.48.24-.24v-.48l-.24-.479-.24-.48V374.848l.24-.24v-.96l.24-.24-.24-.24-.24-.24-.48-.48v-.24h.24v-.24h.48l.24-.48v-1.44l.24-.24v-.24l.24-.24.24-.24v-.24l.24-.24v-.48l.24-.24v-.48l.24-.24v-.959l-.24-.48.24-.24v-.24l.48-.48.48-.48.24-.24v-.24l.24-.24.48-.72.24-.24v-.96l.24-.24v-.24l.24-.24v-.24l-.24-.48v-.72h.24v-3.12l.239-.72v-.959l.24-.24.48-.24v-.72h.24v-.72l.24-.24v-.24h.24v-1.2l.24-.24v-.24l.24-.24v-.96h.24v-.24h.48v-.24h.96l.24-.24.24-.24v-.24h.24v-.96l-.24-.24v-.24l-.24-.24-.24-.48-.24-.48h.24l.24.24.24.24h.24v.24h.24l.24.24h.24v.24h.24v.24h.24v.24h.24l.24.24h.24v.24h.24v.24h.24v.24h.48v.24h.24v.24h.24v.24h.24l.24.24h.24l.24.24h.24l.239.24h.24l.24.24h.24l.24.24h.48v.24h.24l.48.24h.48l.24.24h.48l.24.24h.48l.48.24.48.24v.96l-.24.48-.24.72-.24.96-.24.72v.48l.24.48v.72l.24.48v.72l.24.24.24.72v.96l.24.24v.72l.24.24h.24v.96l-.24.48v1.44z", + center: [180, 448], + population: 23.362, + area: "62,082 ha", + defaultColor: "#A7D45F" + }, + { + name: "Prajekan", + title: "Kecamatan Prajekan", + deskripsi: "Prajekan adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 24 Km dari ibu kota Kabupaten Bondowoso ke arah timur laut. Pusat pemerintahannya berada di Desa Prajekan Lor.", + path: "M523.382 252.459h.96l.24.24.24.24.48.24.48.24h.24l.24.24v.48h.96v-.48l.24.24v.24h.24v.48l.48.72h.24l.24-.24h.48v.72l.24.24.72.72.72.24.72.24.24.24h.24v.48l.479.48.24.24.24-.24.24-.48h.24l1.2.24.24.48h.72l.24-.24h.48v.24l-.24.479v.24h.24l.48.24-.24.24h-.24v.24h.48v.24l.24.24.24.48v.24h.72v-.48l.24-.24 1.68-.24h1.679l1.44-.24.48-.24h1.2l.48.24h.72l.48-.24.48-.24.72-.48h2.16l.719-.24h2.4l.72-.48h1.44l.48.24h.96l.24.24h.24l.48.48.48.24.24.48h.72l.24-.24h.959l.48-.24h.72v-.48l-.24-.24v-.24h.96v.24l.48.24.48.24.24.24.96.24.48.48h.72l1.44.48 1.44.24 1.199.48.48.24.48.48.72.48.48.48h.48l.24.24h.48l.24.24.72.24.48.24h.48v-.24l.48.24h.24l.48.48.24.24.24.24.24.24.24.24v.72l.24.24-.24.48v.48l-.24.48.24-.24h.479l1.44-.72.72-.72.96-.48.96-.48.48-.24.48-.24.96-.72.96-.48.96-1.2 1.199-1.2.24.24v.24l.24.24v.48l-.24.48-.48.96v.48l.24.24v1.2l-.24.24h-.48v.96l.24.24v.24l.24.72v.24l.48.96h.48l.48.48.96.48h.48l.24.24.48.24.24.239.96.72 2.4 1.2h.24l.72.48.959.24h.48l.48.24 1.68.24h1.92l.24.24v.48l.24.72v1.68h.48l.72.24.72.48.48.96.48.96.48.48.24.48.479.24.96.24 1.44.24.96.24 1.2.24.72.24.72.479.48 1.2.72.96.48.72.48.24.24.24.719.24H616.012l.24.96v1.2l.48.24.24.24v.48l-.24.72-.24.72-.24 1.44-.48 1.2v.48l-.24.479-.24 1.44v.48l.24.24.24.24.48.24.24.24h.48l.96.48.24.24v.24l.24.24-.24.72-.24.96v.72l.48.48h.24l.72.24H622.011l.479.24.48.48.72.96.48.48v.24l-.24.24.24.24v.24l.24.72.48 1.679.24.24 1.2.48.24.24v.24l-.24 1.68v.48l.24.24h.24l.24.48.24.24h.24l.48.72.24.24.48.72v.24l.24.24v.24l.24.48.24.24.24.48.24.24.24.24.24.24h.24v.24h.72v.24l.239.24.24.24.48.24.48.24h.24l.96.24h1.92l.72-.24h1.2l.72.24V319.652l.24.24.24.24h.48l.24-.24h.24v.48l-.48.72v.24l.48.72v.24l-.24.48v1.92l.24 1.2v.96l-.24.48v1.68l.48.96v.239l-.24.24-.24.48-.48.72-.24.48v.24l-.24.72v.48l-.24.24-.24.24.24.96.24.72h.24l.24.24.48.24 1.439.96.48.48h1.2l.72-.24h.96l.48.24.48.24.24.48.24.24v1.44l.24.24.24.24.72.48.72.24.24.24v.24l.24.479.72 2.16-.24 1.2-.24.24v2.4l.24.48v.48l.24.96-.24.96v.96l-.24.96.24.48v2.159l.24.48.719 1.2.24.72v.48l.24.48.48 1.2.24.24.24.24v.24l-.24.72v1.68l.24.48.48.24.48.48.24.48.48.24.24.479v.24l.24.96.24.72.24.24v.48l.24.96.48.72.24.48.48.24.48.48.24.48.24.24.24.24.24.48v.48l-.24.24v.24l-.24.72v.72l-.48.24v.24l.24.48.24.72.24.24.24.24.48 1.199.24.72v.96l-.24.72h-.24l-.24.48.24.24v.24l-.24 1.2v2.16l.24.72.24.48.24.24.24.72.48.48v.48l.239.48.48.719v1.68l.24.24.24.72.24.24.96.96v.48l.24.24.24.24v.24l.24.24v.24l.72 1.2.48.72.24.72.48.96.48 1.92.48.959.24.72v2.4l.48.72.24.96.24.48-.24.24v.96l.48.96v.72l.24.72v.48l.24.24.96.24h.24l1.199 1.439.48.24v.72l.24.48v.48l-.48.96-.24.24-.24.24v.24l.48.24.48.48.48.24.24.24.48.72.24.24v.48l-.24.24-.24.24-.24.48v.48l.24.72v1.2l.48.72.72.48.96.959.24.24.24.24.96.24.24.24.24.48v.48l.24.48v.48l.72.72.24.48v3.84l-.24.24v.24l-.24.24v.24l.24.24h.24l.24.24.24-.24h.719l.96.24h.48l.24.24.24.72.24.24v.48l.24.48.24.24v.959l.24.72v.24l.48.24.24.24.24.24.24.48.96.48.24.24v1.44l.24.24.24.24.24.24.24.24h.24l.24.24.48.24h.24l.72.48v.24l.48.96.24.24.239.24v.48l.24.24.96.72.24.24v.48l.72.72.24.239v.24l-.24.24v.24l.24.24.24.24-.24.48v.24l.24.48v.48l.24.24.48.96.24.24h.48v.72l.24.96.24.24.24.24.24.24v.48l.24.48.24.24v.72l.24.24.24.24v.24l.24.24.24.72.48.48-6.96-3.36-.24-.24-2.16-.96-3.6-1.92v-.72l-.24-.24-.24-.24-.48-.72-.24-.48.24-1.2v-1.68h-.24l-.24-.48-.48-.24v-.24l-.24-.48-.479-.72-.48-.72-.72-.96v-.72l.24-.48-4.32-1.92-1.68-1.68-2.399-2.159-.96-.96-.24-.24.48-1.44v-1.44l-.24-.72-.24-.96-.24-.72v-.48l-.48-.72-.24-.48v-.24l-.24-.24v-.96l-.24-.24-.24-.24v-.48l.24-.479v-.24l-.24-.24-.24-.24-.24-.48-.24-.48-.48-.24-.72-.96-.24-.24-.24-.48-.24-.48-.24-.72-.24-.96v-.24l-.24-.48v-.24h-.24l-.24-.96v-.72h-.24v-.72l-.24-.72-.48-.48v-.72l-.24-.48v-.239h-.24l-.24-.48-.239-.48v-1.92l-.72-.72-.24-.24-.48-.24h-.24l-.24-.48v-.48l-.48-1.68-.24-.48-.72-.24h-.24l-.48-.24-.48-.72-.24-.72-.24-.72v-.48h-.24l-.24-.24-.48-.48-.72-.48h-.24l-.24-.239-.24-.48-.24-.24-.24-.24h-.24l-.24-.24v-.72h-.479l-.24-.24-.48-.24v-1.68l-.24-.24v-.72l-.24-.24-.72-.72-.48-.24-.24-.24-.24-.48v-.24l-.24-.24-.24-.24-.48-.24-.48-.24v-.96l-.24-.24-.48-.48v-.24l.48-.48-.24-.72v-.24h-.48l-.24-.239v-.24l-.24-.48-.24-.24-.48-.24-.24-.48h-.24l-.48-.24-.24-.24-.48-.24h-.48l-.24-.24-.239-.24-.48-.24-.24-.48v-.96l.48-.72-.24-.24-.24-.24v-1.44l.24-.24h.24v-.24l-.24-.24-.48-.24-.24-.72v-.24h-.24l-.24-.24h-.24v-.24l-.24-.24v-.48l-.72-.48-.96-1.199-.24-.24v-.24l-.24-.24-.72-.72v-1.68l-.24-.24-.24-.24-.48-.48-.48-.48-.48-.24-.72-.48-.48-.48-.48-.48-.479-.48-.48-.72-.48-.48-.48-.48-.48-.72-.24-.48-.48-.24h-.48l-.48-.24-.24-.24-.96-.96-.72-.479h-.24l-1.2-.72-.48-.72-.48-.24v-.24l-.48-.24-.719-.24h-.72v-.96h-.24l-.96.24-.24-.24-.72-1.44-.48-.24h-1.2l-.24-.24v-.96l-.24-.24-.24-.48v-.48l.24-.72v-.96l-.24-.24-1.2-.72v-.48l.24-.24-.24-.24-.24-.24-.72-.479-.24-.24-.48-.48-.719-.72-.24-.24.24-.24v-1.44l.24-.24h.96l.24-.24v-.96l-.24-.72v-.72h.24v-1.68l.24-.72h.24v-.48l-.24-.24-.24-.48-.96-.72-.48-.48-.24-.48-.96-.239-1.2-.24-.96-.24-.96-.24-1.44-.24-.96-.24h-.72l-1.2-.24H604.254l-1.44.24h-1.44l-.24.24h-.48l-.96.24-.96.48-.24.24-.72.48-.96.48-.719.48h-.24v-.24l-.24-.72-.24-1.2v-.48l-.24-.48-.24-.48-.72-2.16-.48-.48-.48-.48-.72-1.44v-.48l-.24-.24v-.72l-.24-.48-.24-.48v-.72l.24-.48v-1.2l.24-.239.24-.24V328.532h-.72l-.24-.24v-.24h.48l.24-.24v-.72l.24-.24.24-.24.24-.24v-.72l-.24-.24-.24-.24v-.96l-.24-.48v-.24l.24-.24h.24v-.24h.24v-.24l-.24-.24-.24-.24-.24.24h-.72v-.24l.24-.48v-.24h.24v-.48h.24v-.48l-.48-.24-.24-.24-.24-.24.24-.24.24-.239.24-.24.24-.48v-.24l.24-.24.24-.24v-.24l.24-.48.24-.48v-.24l.48-.24.24-.24.72-.72.24-.72.24-.24v-.96h.72l.24-.24v-.96l.48-.24.24.24v-.48l-.72-.24h-.24l-.24-.24-.24-.24v-.24l.48-.24-.96-.96v-.72l.96-.24-.24-.24-.24-.24v-.719H592.734l-.96-.24h-.24l-.96-.24h-.96v-.24l-.24-.24h-.72l-.48-.48-.24-.24v-.24l-.719-.24-.48-.24h-.24l-.24-.48h-.24l-.48-.24v-.24h-.48l-.48-.24h-.24l-.72-.48-.48-.24-.24-.48-.24-.24h-.24l-.24-.24-.24-.24-.24-.24-.48-.24h-.48v-.24h-.24v-.24l-.24-.24h-.24v-.24h-.24v-1.92l.24-.24-.24-.24-.24-.24-.24-.48h-.48l-.24-.24v-.24h-.24v-.72l-.239-.24-.24-.479v-2.16l.24-.24v-1.2l-.24-.48.24-.72V288.215l-.96-.24-.48-.24-1.44-.24h-.48l-.96-.24-.24 1.44-.24.24v.48l-.24.96-.24.96v.24h-.24v-.24h-.48l-.24-.24h-.48l-.24 1.2-.96-.24-.48-.24h-.959l-.24.24v.24l-.48.72-.24.48v.24l.24.24.24.24v.24l.24.24-.24.48.24.48v.96l-.48.72-.24.48-.24.24v.72l.24.48v.48l.24.48.24.24.72.72.24.48.48 1.44v.72l-.24.96v.24l.24.72.24.48.24.24V307.653h.48l-.24.48-.24.48v.48h-.24l-.24.24-.24.24-2.16-.48-.96-.24-.48-.24-.48-.24-.72-.24h-.24l-.48-.24-.24-.24-3.839-1.2h-.24l-.72.24h-.72l-.72-.24-1.44-.48-1.68-.96-1.44 2.16v.96l.48 1.44.48.48.24.72v.24l.24.24v.24l.48-.24.24.24.24.24v1.44l-.24 1.92v1.68l-.24.24h-.48l-.48.24h-.48l-.48-.24h-.24l-.24-.24-.72-.24-.24-.24-.24-.24-.239-.24-.48-.72v-.24l-.48-.24-.24-.24-.24-.24-.24-.24-.24-.24-.48-.24-.72-.24-.24-.24-.48-.24-.24-.24-.96.24-.72.24h-1.92l-.24-.24h-5.519l-.48-.24h-2.4l-1.44-.24-.479-.24h-.24l-1.44-.24h-.24l-.48-.24h-.48l-.24-.24-1.44-.48-1.2-.24-.48-.24-.72-.24h-.48l-1.439-.96-.24-.24-.24-.24-.48-.24-.24-.24-.72-.48-.96-.96-.24-.24v-.24l-.72-.48-.24-.48-.24-.24H516.422l-.24-.24h-.24v.24h-.24l-.24.24h-.24v.24h-.479v.24h-.48v-.24l-.24-.24-.24-.48-.24-.48v-.24h-.24v-.48h-.24v-.48h-.24v-.24l-.24-.48v-.24l-.24-.24-.24-.24v-.24l-.24-.48-.24-.24v-.24l-.24-.24v-.24l-.24-.24v-.48l-.24-.24v-.24l-.24-.48-.24-.24v-.48l-.24-.24v-.24l-.24-.48v-.24h-.24v-.48h-.24v-.479l-.24-.24v-.24h-.24v-.24h-.24v-.24h-.24l-.24-.24v-.24h-.24v-.24l-.24-.24v-.24h-.24v-.24h-.24v-.24l-.48-.24v-.24l-.48-.48H504.905l-.24.24h-.24l-.24.24-.24.24-.24-.24v-.24h-.48l-.72-.48h-.24v-.24l-.24-.48v-.96l-.24-.24-.24-.48v-.48l-.24-.24-.24-1.68-1.2-1.92v-.48l.24-.479.24-.72.48-.72.48-.72.24-.24.24-.24.24-.48.24-.72v-1.2l-.24-.48-.48-.48-.48-.72-.24-.72v-.72l-.24-.24v-.24h.24l.48-.48.96-.72h-.48l-.24-.48-.24-.48v-.959l-.24-.72-.24-.48-.24-.24-.24-.24v-.48l.24-.48-.24-.48-.48-.48v-.48l-.24-1.44-.24-1.2.48.24h.24l.96.24h.72l.48-.24.72-.24 1.2-.48 1.2-.48h.72l.48-.24 2.64-3.12.48-.48.96-.719.72-.24.96-.48.72-.24.96-.48 1.439-1.92.96-1.44 1.2-1.68.48-.72 2.4-2.88.24.24.48.48h.24l.72.24.24.24.24.24.24.48.24.24.239.48z", + center: [542, 285], + population: 25644, + area: "56,642 ha", + gambar: "/kecamatan/prajekan.jpg", + defaultColor: "#468135", + komoditastertinggi: "Tebu
(7.483,32 ton)", + laju: "-1,07" + }, + { + name: "Pujer", + title: "Kecamatan Pujer", + deskripsi: "Pujer adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 12 Km dari ibu kota Kabupaten Bondowoso ke arah tenggara. Pusat pemerintahannya berada di Desa Kejayan.", + laju: "-1,63%", + gambar: "/kecamatan/pujer.jpg", + komoditastertinggi: "Padi
(39.051 ton)", + path: "M417.314 486.199h.24l1.2-.24.24-.24.48-.48h.48l.48-.24.48.72H423.553l.479.72.24.24h.24l.24.24h.24l.24.24h.24l.24-.24h.72l.24.72h.24l.24.24-.24.24-.24.48v.24l.24 1.2v.72l.24.24.48.48v.48l.24.24.96.48h.48l.24-.24.48.24h.48v.24l.24.24v.48l.24.48.24.24v2.159l.24 1.2v.24h.24l.24.24.24.24h.719v.24l.24.48.24.24.48.24v.24l.48.24v1.68l.24.72.24.24v.24h.24l.48.24.24.24.24.24v.24l-.24.48-.24.24h.24v.24h.24l.24.24.48.24v.24l.48.72.48.24.24.24.48.24h.72l.72.239h.24v1.2l.24.24.24.24.72.48.24.24.24.24v.48l.239.24h.48l.96.24.24.24.24.24v.48h1.2v.96l.24.24.24.24.24.24v.48h.24l.24.24.48.48.24.24v.48h.24l.72-.48v1.44l.24.24v1.44l.24.24h.72l.96.24.24.24-.96.479-.72.24-.48.24-1.2.48-.48.24-.24.24h-.48l-.48.24-.48.24-.72.24-.48.24-.24.24v3.12l.24.96v1.2l-.24.72v1.68l.24.24v.24l.48.24.72.48.48.479.72.24.48.24.24.48v2.16h-.24v1.2l.24 1.92v1.2l.24 2.16v2.399l.24 1.2v.24l2.4-.24 2.399-.24v.24l.72-.24h2.64l1.2-.24h1.68l2.159-.24h2.16-.24l.24 1.44h.48l.24.96v.24l.96.48.24.48h.24l.24.72v.24l.24.48.24 1.44.24.72v.48l.24.24v.72l1.44-.24.72 1.44v.48l.48 1.679v.48l.719.96.96.96.72.96v.24l.48 1.2.24.48.24.96.48.96.72.96.48.72v1.44l-.24.959v.24l.24.24.24.24.24.72.72 1.68v1.68l.72.48.48.48.96.96.24.24 1.199 1.92v.24l.24.24.24.24.72.24.48.72v2.159l-.24.48v1.68l-.24.24v.48l.24.72-.24.24h.24l1.44-.24.24 1.2v1.2l.24.72v2.4l-.24.24-.24.24V590.59l-.48 1.68-.24 1.44-.24 1.2-.24 1.68-.48 1.44-.24.72-.48 1.44.48.24.96.48v.72l-.24.959-.72 1.44-.24.96-.24.96-.24 1.68v.24l-.24 1.44-.48 1.44-1.2 1.68v-.24l-.48-.48-.24-.96-.48-.24h-.48l-.48.48h-.96l-.72-.48h-.48l-.24-.24h-.24l-.48.24H469.629l-.24-.24-.24-.24h-.48l-.24.24-.24-.24h-.48v-.48l-.24-.72v-.24l-.48-.24-.48-.48h-.48l-.24-.24-.48-.24-.96-.24-.48-.24-.96-.48-.24.24-.48.24-.48.24-.24.24-.24-.24-.479-.48-.72-.48v-.24h-.48l-.24-.24v-.48l.24-.72h-.96l-.24-.24-.24-.48h-.24l-.48.24-.48.24h-.48l-.48-.24h-.96v-1.92l-.24-.24h-.48l-.24-.24-.24-.48h-.48l-.24.24-.48.48-.48.48h-.24l-.239-.24h-.96l-.96.24h-.24v-.24l-.24-.48v-.24l-.24-.24h-.72l-.96-.24-.24-.24-.24.24h-.48l-.72.24h-1.44l-.24-.24-.24-.24-.24-.24v-.24h-.24v-.96l-.24-1.2h-.719l-.24.24-.24.24v.24h-.72l-.24-.24v-.48l-.24-.48-.24-.24h-.72v.24l-.24.72h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24-.48-.72-.24-.24-.24-.48h-.24l-.48-.24h-.72l-.48.24h-.72l-.24-.24v-.24h-.24v-.72h-.239l-.24-.24-.48-.48-.24.24h-.72v-.24l.24-.48-.72-.24-.48-.24-.48-.24h-1.2l-.24.24-.24.24h-1.2l-.24-.24h-1.92l-.48.24-.24.24h-.239l-.24-.24h-.24l-.24-.24v-.48l-.24-.24-.24-.24h-.48l-.24.24h-.48l-.24-.24v-.24l-.24-.24-.24-.48-.24-.24-.24-.479-.48-.24-.24-.24h-.24l-.24-.24-.24-.24v-.24l-.24-.48-.24-.24-.96-.24-.48-.24-.48-.24-.48-.24v-1.2l-.24-.24v-.24h-.24l-.24-.24-.239-.24v-.48l-.24-.24v-.24h-.24l-.24-.48v-1.44l-.24-.48v-1.44l-.24-.24v-.24l-.24-.24-.24-.24-.96-.24-.72-.479h-.24l-.48-.24h-.48v-.24l-.24-.48-.24-.48-.96-.96v-.24l-.24-.24-.24-.24-.48-.96-.24-.48-.24-.48-.48-.48-.24-.24-.24-.24H405.796v-.24h-.24l-.24-.24-.24-.24v-2.4l-.24-.48-.24-.72-.24-.24-.72-.72-.96-.719-.72-.24h-.48l-.48-.24h-.24l-.24-.24-.24-.48v-.48l-.24-.24v-.24l-.72-.72-.24-.24v-.96l-.24-.48-.24-.24h-.24l-.24-.24h-.24l-.479-.24-.24-.24h.24l.72-.24 1.2-.72.48-.24.96-.24.48-.48h.24l.72-.24.24-.24.96-.24.72-.48 1.2-.72.719-.48.96-.48-.48-.24-.48-.24-.24-.24-.24-.24-.72-.479-.48-.96-.48-.72-.72-.72-.48-.72v-.72l-.48-.48-.24-.48v-.24l-.24-.48-.48-.48-.48-.72v-.72l.24-.48v-.96l-.24-.24-.48-.48-.24-.48h-.24l-.24-.24h-.24l-.24-.24-.72-.72-.48-.24-.24-.239-.239-.24-.24-.24-.24-.48-.24-.48-.24-.24-.48-.24-.48-.72-.24-.24V538.034l-.24-.24-.24-.24-.72-.72-.24-.24h-.24v-.48l-.24-1.2v-.24l-.24-.48-.24-.24v-.72l.24-.48-.24-.48-.24-.24V530.596l.24-.72v-.96l-.24-.96v-.48l-.24-.48-.24-.72v-2.16l-.24-.72v-.96l-.24-.96v-.96l-.48-.719-.24-.96.72.48.24.24.48.72.48.72.24.48.24.24h.24v.24l-.24.48h.24l.24.72.24.72h2.88l1.92.48 1.44.24.96.48.48.48v.48l.24.48v3.6l.72-.24H407.474l.96-.24H412.755v2.159l1.44-.24h.48l.239.24h.24l.24.24h.96l.24.24h.24l.24.24.48.48.48.24v.24l.24.24.48.48h.24l-.24-.48-.24-.72v-.48l-.48-.96v-.24l.24-.48v-.96l-.48-.72-1.44-1.44-.24-.48-.24-.48-.48-.48-.24-.24v-.24l-.48-.24-.48-.24-.48-.24h-.24v-.24l-.24-.24-.48-.24-.24-.24v-.24h-.24v-.48l-.24-.24-.48-.48-.96-.96v-.72l-.24-.48-.24-.24v-.479l-.72-.96-.24-.72v-.48l-.24-.24v-.48l-.24-.24-.24-.24h-.96l-.24-.24-.24-.24-.24-.24h-.719l-.24-.48-.24-.48-.24-.24h-.96l-.48.48-.24-.24-.24-.24-.48-.24V511.156l.48-.48v-.48l-.48-.72-.24-.72h-.24l-1.2-.479v-.24l.24-.24.24-.24v-.72l-.24-.48v-.24l-.24-.48v-.48l-.24-.48v-.72l-.24-.24-.72-.96-.24-.48-.48-.48-.24-.48-.72-1.2v-.48l-.24-1.2-.24-.24-.24-.48-.239-.24-.48-.48-.24-.479-.24-.24-.24-.72-.48-.48-.48-.72-.48-.48v-.72l-.24-.24v-.24l.24-.24v-.24l.96-.96.48-.24.72-.24.72-.24.96-.24.24-.24.72-.24h.24l.96-.48 1.68-.48 1.44-.96.48-.24.24-.48v-1.2l-.24-1.199-.24-1.2.24-.72.48-.24.72.24 1.199.24h.72l.48.24h.96l1.2.24 1.68.24h1.2l.24.96h.48l.72.72h.24v.24h.959l.48.24h.24l.96.24z", + center: [435, 555], + population: 40.594, + area: "39,889 ha", + defaultColor: "#FDFFB6" + }, + { + name: "Ijen", + title: "Kecamatan Ijen", + path: "M835.107 534.195l2.88.72 2.4.96 6.48.96 1.679-.24 2.88-.24 5.04.72 1.679.72.96.72 1.92 1.44 1.2.96 1.44.24.48.48.24.24.24.24.48.24h3.839l.48-.24 1.68-.48h.24l.48.24.72.48h.24l.48.24h.24v.239l.24.24v.24l.96.48.48.24h.479l.24.24h2.4l.48.24h.72l.24.24h2.4l.48.24.48.24.48.24h.24l.479.24.24.24.48.24h.24l.48.48.24.24.48.24.72.48.72.24.48.24.24.24.48.24.48.24.48.24.72.48.72.48.48.24.24.24h.24l.24.24.48.24v.24l.239.24.24.48.24.72.48.72.24.24.24.48.48.479.72.48.48.48h.24l.24.24h.72l.48.24.48.24h.24l.24.48.24.24.48.24h.24v2.4l-.24.24v.72h.24v.96l.48.48h.24l.24.48.48.48.24.48.24.24.239.24.24.24.48.24.24.48h.48l.24.24.48.24.48.48.24.24.24.239.24.24.72.48.48.24.24.24.48.48.24.24.24.24.48.24.24.48.48.24.48.24.24.48h.24l.24.24.48.48.24.24.239.48.24.24.24.48.24.48.24.24.24.24.24.24.24.24.24.48v.24l.48.48.24.48v.24l.24.24.48.48.48.72.24.72.24.719.24.24.24 1.2.48 1.2.24.96.24.48.24.48.48.24.48.24.48.24.48.48.24.96v.96l-.24.96-.24.24v.96h-.24v1.2l-.24.24V592.99l.48.48.24.48.24.24v.24l.24.48h.24v.24l.959-.24.72-.24h.24l.72-.24v.72l-.24.24-.48.72v.24l-.24.48.24.48v.24l-.24.48-.24.24-.48.48-.72.24-.24.24-.24.24-.24.24v.72l.24.72v.24l-.24.719-.24.24-.24.48-.48.24v1.2l.24.48-.24.24-.24.24-.24.96v.24l-.24.24-.24.72-.24.24-.24.96v.48l-.24.48-.24.72v5.039l-.24.72v.48l-.24.24v.96l-.24.48v.96l.24.24v.24l.24.24.24.24.24.48.24.24v.24l.24.24v.48l.24.24v.48l.24.24v.48l.24.48v.24l.24.24v.24l.24.24v.24l.24.24v.24h.24v.239l.24.24.96 1.44.72.72.72.48 1.44.72.96.24.96.24.72.48.72.72.96 1.2.24.24.48.72.24.24.48.24h.719l.96.24.48.24 1.2 1.2.72.72.72.96.24 1.199v1.2l-.24.48-.72.48-.96 1.2-.72 1.2-.48 1.92-.24 1.44v.48l.48 1.92.24 1.439v1.44l-.24.48-.24.24-.48.72-1.2 1.2h-.24l-.24.24-1.2.48h-.24l-.96.48-.72.24h-.24l-.24.24-.96.96-1.2 1.2-.48 1.2-.24.24v.24l-.24.72-.24.48-.719 1.439-.48.48-.48.72h-.24v.24l-1.68 1.2-.24.24-.24.24v.24l-.24.24v.24h-.24l-.24.24-.24.24h-.24v.24l-.24.24h-.48v.48h-.24v.24h-.24v.24h-.24l-.24-.24-.24.24h.24v.24l-.24.24h-.96l-.24.24-.72.48-.24.24-.719.48h-.24l-.24.24-.24.24-.24.48v.48l-.24.24-.24.48v.48l-.48.239v.48h-.24v.48l-.24.24h-.48l-.24-.24h-.48l-.24.24h-.24l-.24.24-.48.48-.24.24-.24.24h-.72l-.72.24-.48.24h-.48l-.24.24H902.3l-.48.24-.24.24-.24.24v.24h-.24l-.48.24-.96.72-.48.24-.48.48h-.24v-.24l-.24-.24-1.2-1.2h-.72l-.96.72h-.24l-.48.24-.719.48h-.24l-.48.96v.48l.24.72.48 1.2v.24l-.24.48v.24l.24.48v1.44l.24.239v.48l-.24.24v.96l-.24.24-.72.24-.48.48v.24l.24.24.24.24v.48l-.24.24-.48.72h-.24l-.72.72-.48.48v.24l-.24.48v.72l.24.72h-.24.24v2.16l.24.48.24.48-.24.24v.479h-.24v.72l-.24.24v.48l-.24.24h-.24v.48l-.24.24v.72h-.24v.24l-.24.24v1.2l.24.96.24.24.72 1.2v.72l-.24.24-.24.24-.72.48-.24.24-.24.24v.96l-.24.96-.24.479v.48l-.24.48v.72h-.24l-.24.48v.24l-.48.48-.48.24-.24.72-.24.24v.96l-.48.48-.24.24-.24.24-.959.48-1.2.24-1.44.48-1.2.24h-.24v.24h-.48l-2.4.48-.96.24-2.639.48-1.2.24h-2.16l-.96.24-2.639.24h-.24l-.48.24h-1.2l-.24.24h-1.2l-.48.24h-.48l-.48.24h-.48l-.72.24h-.48l-1.2.959v.72h-.24l-.24.24v.24h-.719l-.24.24h-.24l-.48.24-.24.48-.24.24v.24l-.24.24-.24.24h-.24l-.48.24v.24l-.24.48-.24.24-.96 1.44-1.68 2.16-1.44 2.16-1.2 1.679-.48.96-.239.48-.24.72-.48.96v.72l-.24.48-.24.96-.48 1.44-.48 1.2v.24l-.24.96-.24.48v.24l-.48.72v.24l-.24.24-.24.24v.24h-.24l-.24.239h-1.92l-1.2-.24-1.44-.24h-.479l-.96-.24-1.2-.24h-2.88l-.96.24-.48-.48.24-.48v-.24l-.24-.96v-.96l-.48-.72-1.2-2.4-.719-.96-.48-.72v-1.92l.96-.959h.72l.24-.24v-.96l-1.2-.48-.24-.24h-.24v-.48l-.24-.24-.24-.24-.24-.48-.24-.48-.24-.24-.48-.48v-1.44l-.24-.96v-.24l-.24-.24h-1.2l-.24.48h-.24l-.48.24-.48.24-.24.24h-.48l-.72-.24h-1.44l-.24-.24-.48-.24-.719-.24-.96-.24-.96-.24h-1.68l-2.4-.24-.24-.48h-.48l-.72-.72-.48-.24-.48-.48h-1.439l-.96.24h-.24l-.96.24h-2.4l-1.2-.24h-.72l-.72-.24-.719-.24h-1.44l-1.2-.24h-.24l-.24-.24h-.48l-.48-.24h-.24l-.24-.24h-.24v-.719l.24-.24.24-.24v-.48h-.24l-.24-.24-1.68-.96-.24-.24-2.159-1.2-1.68-.48-1.2-.24h-.72l-.96.24-1.44.24h-.72l-1.2.24-.72.24-.479.48-.48.24-.48.72-1.2.24-.96.24-.72.24h-1.92l-.72-.24-1.2-.24h-.72l-.719-.24-.24.24-.72.48-.24.48-.24.48-.48.72-.48.72-.48.48-.72.72-.72.96-.24.48-1.44.96-.96.72h-.48v.24l-.24.24h-.24l-.24.24v.24l-.24.24v.24l-.24.24v.24h-.239v.24h-.24l-.24.24h-.48l-.24.24h-.72v.24h-.48v.24h-.24l-.24.24h-.24l-.48.24h-1.2l-.24-.24h-.48l-.96.24-1.2.24-1.439.48-.96.72-1.2.48-1.44.719-.96.72h-.24l-.96.48-1.2.72-1.2.48-1.199.24-.96.24h-.72l-.24.24h-.96l-.96-.24-1.2-.48-.48-.72-1.2-.72-.48-.48H740.319l-1.44.24-1.2.24-.96.24-1.2.24-1.44.48-1.2.24-1.679.72h-.24l-.96.24-1.68.24-.96.24h-.24l-.48-.24h-.24l-.96-.24h-.48v-.24h-1.2v.24l-.48.24-.24.24h-.719l-.96-.24h-.24l-.72.48h-.24l-.48.24-.72.48h-.48l-.72.48h-.96v-.24h-.72l-.48.24-.48.24-.48.24-.24.24-.48.24h-.479l-.24.24h-.24v.24l-.24.24-1.68.96v1.2l-.24.24-.96.24-.72.48-1.44.72-1.44.48-1.2.479-.48.48-.719.96-.72.96-.48.72-.48 2.64-.48.72-.48.24-.72.24-.24.24-.72.24h-.24l-.48.48h-.24l-.72.24h-.72l-.24.24h-.48l-.24-.24-.24-.48-.479-.24v-.24l-.24-.24-.48-.48-.24-.24-.24-.24-.24-.24h-.72v-.24h-.96l-.48-.24h-2.16l-.24-.24h-.48l-.24-.24h-.72l-.48-.24h-.48l-.24-.24H683.925l-.24-.24h-.48l-.24-.24-.48-.24h-.24l-.24-.24h-.24l-.24-.24h-.24v-.24l.24-.24.24-.24.24-.24.24-.24.48-.24h1.68l.48-.24v-.96l-.48-.48-.24-.48-.72-.72-.24-.24.24-.24.24-.48-.24-.24v-1.2l.24-.48-.24-.48v-.24l-.24-.24-.24-.48v-.72l.24-.48.24-.24v-.48l-.24-.48-.48-.48-.24-.24V732.419l-.48-.24h-.48l-.48-.48h-.24l-.48-.24.72-.96.24-.24.96-.72.48-.48.72-.72.72-.72.48-.72.48-.72v-.24l.48-.72.24-.96v-.96l.24-.48v-.48l.72-.96 1.68-.959.96-.24.96-.48.96-.24.72-.48.96-.48.96-.96 1.199-1.92.24-.24.24-.72.24-.48.24-.48v-.48l.24-1.2V708.9l.24-1.44v-1.2l.24-1.2v-1.2l.24-1.2V699.3l-.24-.72v-1.2l.24-.959.24-.72.48-.48.48-.96.72-.96.24-.96v-1.68l.24-.72v-1.44l.48-.72.24-.96.48-.72.48-.959.72-.72.72-.72h.24l.24-.24v-.24h.24l.239-.24h.24v-.24h.48v-.24h.24l.24-.24.24-.24 1.2-.96.72-1.44.72-.72.72-1.2.24-.72v-.48l.48-.72.24-.72.24-.96.48-1.199.48-1.68.24-.48.24-.72.24-.72.24-1.2.48-.48v-.24l.48-.72.719-1.2.72-1.2.72-.72.48-.72.72-.959.96-.96.96-1.2.72-.72.72-.96.72-.72.24-.48.24-.48.48-.48.48-.72.719-.96.48-1.2.72-.72.48-1.2.72-1.439.48-.96v-.48l.48-.72.24-1.44.24-.96.48-2.88v-2.88l-.24-.72V637.387l-.24-.96-.24-.96-.24-.96-.24-.72v-.48l-.24-.48-.48-1.2-.24-.96-.24-.24-.72-1.2-.48-.72-.24-.72-.72-1.2-.24-.719-.24-.48v-.48l-.24-.96V620.587l.24-1.2h-.24l.24-.96v-.72l-.24-.72 3.12-1.44h.96l1.68-.48 2.64-.719.48-.48.48-.24.24-.48.719-.96.48-.96.72-1.2 1.68-2.4.72-1.2.24-.96.72-.96v-.24l.24-.48 1.68-1.919.72-1.2.24-.24.48-.48.959-.72.72-.48.24-.24.48-.48.72-.72 1.2-1.2v-.24l.96-.72 1.2-1.2.96-.96.96-.72.96-.72.239-.24.96-1.199.48-.96.72-1.2.96-1.68.48-.48.24-.96h.24v-.48l.24-.24.48-1.2.72-1.2 1.2-.96 1.2-1.439.48-.24 1.199-1.2 2.64-1.68.96-.24-1.44-4.56-.72-2.16 1.44-.72 1.2-.72.24-.24h.48l.24-.239h.24l.72-.24.48-.48.72-.48h.24l.72-.48.239-.24.48-.24.48-.48.72-.96.48-.72h.24l.72-.48.24-.48.72-.48.24-.48.48-.24v-.96l.24-.24.72-.24.48-.48.96-.48.72-.48.24-.48.24-.24.24-.24.24-.72.239-.24.96-.24h.96l.48-.239.48-.48.48-.48.48-.48.48-.72.24-.48.24-.48.24-.24h.72l.48-.24h.24l.48-.48.72-.72.96-.72.479-.24.48-.24h1.44l.48-.48.48-.24.72-.48.72-.48.48-.48.48-.24h1.68l.72-.24h.24l.24-.48.48-.48.479-.24.48-.24.48-.24h.48l.24-.24.48-.48v-.24h.48l1.92-.24.96-.24 1.44-.239.48-.24 1.439-.96.24-.24h.24l.24-.24h1.2l.48-.24.96-.48 1.2-.48.48-.24h.24l.96-.48h.96l.48.24.48-.24h.24l.24-.24.719-.48.48-.48h.48l1.44-.24.24-.24h.24l.48-.24v-.24l.48-.24.24-.24.24-.24.24-.24.24-.24.96-.96.24-.24.48-.24.48-.24.72-.24h1.919l1.2-.24h1.2l.72-.24h.48l1.2.48h2.64l1.439-.48.72-.72 3.36.72z", + center: [825, 638], + deskripsi: "Ijen adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekira 53 Km dari ibu kota Kabupaten Bondowoso melalui Tapen dan Sukosari, dan merupakan kecamatan paling timur. Kecamatan Ijen adalah perubahan nama dari Kecamatan Sempol", + population: 12030, + laju: "-2,01", + gambar: "/kecamatan/ijen.jpg", + area: "207,20 ha", + komoditastertinggi: "Kopi
(853,4 ton)", + defaultColor: "#468135" + }, + { + name: "Sukosari", + title: "Kecamatan Sukosari", + deskripsi: "Sukosari adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 22 Km dari ibu kota Kabupaten Bondowoso ke arah timur. Pusat pemerintahannya berada di Desa Sukosari Lor.", + laju: "-0,73%", + gambar: "/kecamatan/sukosari.jpg", + komoditastertinggi: "Tebu
(42.814,05 ton)", + path: "M513.303 474.68h1.2l.72-.48h.24l.24.24.24.48.48.48.72.48.48.48.24.48.48.72.48.48h.48l.24.48.48.24.72.24.24.48v.96l.48.24v.48l-.24.48.24.72v.48l.24.48.48.719.24.96.48.72.479.24h.24v.48l.48.48.72.72.48.72v.72l.48.48.24.48.48.24h.48v.24l.48.24h.72l.48-.24.24.24v.48l.24.24.24.24h.24l.24.48.24.24 2.399-.72 1.2-.48h.48l.24-.24.72-.24h1.44v.48l.24.24v.48l.24 1.2v.24l.24.24.24.48.24.24.24.24h.24v.24h.48l.72.48.24.239.96.72.24.24v.24l.24.48.239.48h.24l.48.24h.24v1.2l.24.48v.24l.24.48.24.72v.24l.48.48.24.48.72.48.48.24.24.24v.24l.24.48v.24h.24v.48l-.24.72v.48l.24.24v.24l-.24.24v.48l-.24.239v.48l-.72.48.48.48v.24h.24-.24l.24.24v.72l.24.24h-.48l-.96.24-.72.24-.72.24-.72.48-.24-.24-.24.24h-.48l-.48.24h-.24l-.24.24h-.24l-.24.24-.72.24h-.72l-.48.24-.72.24-.96.48-.72.24h-.48l-.24.24-.48.24-.48.24-.479.24-.96.72h-.24l-.24.24h-.24l-.24-.24-.24-.24h-.96v.24h-.24v-.24l-.24-.24h-.24l-.24.24v.24l-.24-.24-.24-.48-.24-.24v-.24h-.48l-.24.24h-.72v-.24h-.72l-.24-.24v-.24l-.24.24h-.24l-.48-.24h-.24l-.24-.24-.24-.48-.239-.24h-.24v-.48l-.24-.24-.24-.24-.24-.24h-.96l-.48-.24-.48-.24-.96-.48-.24-.24-.48-.48-.24-.48-.48-.96-.48-.72v-.24l-.48-.24-.24-.24-.48-.24-.24-.72-.72-.72-.48-.48-.24-.72-.24-.24h-.239l-.24-.24-.48-.48-.24-.48h-.24v-.24l-1.92-.24v.72l.48.72.24.48-3.6 1.2-1.68.48-.24-.72-2.399.72h-.24l-.24-.48-.48-.72v-.24l.24-.48-.72-.72v-.48l-.24-.72-.24-.48-.48-.48-.48-.24-.48-.48-.48-.48-.48-.48-.48-.72-1.68.48-1.439.48-2.16.72-2.16.72-1.44.48.24 2.16.24.48.72.72h.48l.48.24 1.44.48.72.24.96.24.24.24.96.72h1.2l.24.24.24.48h.48l.96.24h.48v.24l1.2.48.24.48.24.24.24.24.24.48v.48l.24.24.24.24h.24l.48.48v.24l.24.24.24.24h.24l.479.24.24.48.24.24.24.48h.72l.48.24h.72v.24l.48.24v.24l.24.24.24-.24h.72l.24.24.48.24.24.24.24.48.48.24.24.72.72.72.24.48.72 1.2.24.719.24.24v.48l.719.96.24.48.24.24.24.48v.24l.48.96.24.72.24.24.48.96v.24l.24.24.48.24v.24h.24l.24.48v.24l.24.48.24.24.24.24.24.24.24.24.24.72-1.92.48-.24.24-.48.48-.24.239-.48 1.2v1.68l.24.24.24.48.24 1.68-.24 1.2-.48 2.64v.24-.24h-.96l-2.16 1.44-1.2.48h-.96l-.96.24h-.24l-.24-.48-.24-.24-.24-.24v-.24l-.24.24h-.24l-.24.24h-.96l-.24.24-.48.24-.24.24H504.425l-.24-.24h-.48l-.24.24h-.72l-.72.24-.72.479h-.24l-.24-.24v-.24l-.24-.48-.24-.48-.48-.24-.24-.48h-.24l-.24-.24-.24-.24-.24-.24-.48-.48-.24-.24v-.24h-.24v-.24l-.24-.24v-.72h-.24v-.72l-.24-.24v-.24l-.239-.24v-1.44l-.24-.24v-.96l-.24-.24-.24-.24-.24-.24h-.48l-.24-.24-.24-.24h-.24v-.24l-.24-.48h-.24l.24-.239-.24-.48v-.48l-.24-.48v-.72l-.24-.72v-.96l-.48-1.2v-.24l-.24-1.68v-1.68h-.24v-1.2l-.24-.24v-.48l-.24-.72.48-.719.48-.48.48-.72.24-.48v-1.2l-.24-.24h-.24l-.24-.24h-.72l-.48-.24h-.72v-.24l-.48.24-.48-.24-.48-.24h-.48l-.24-.24h-.24l-.959-.48h-.72l-1.68-.48h-.48l-.48-.24-.72.24-.24-.24-.24-.48-.24-.24h-.72l-.24-.24h-.24l-.48-.24h-.72l.24-.72.48-.72.48-1.44.24-.72.24-.72v-.24l.24-.239v-.48l.24-.24v-.24l.24-.24v-.24l.24-.48v-.48l.24-.24v-.48l.24-.24.24-.48-.24-.24h-.48l-.24-.24-.48-.24-.24-.24.24-.48v-.24l.24-.96v-.24l.24-.24v-.48l-.24-.24h-.24v-.24h-.72l-.24-.24-.72-.24v-.24h-.48l-.24-.24-.24-.24h-.48l-.48-.24-.479-.24h-.24l-.48-.48h-.24l-.24-.48-.48-.24-.48-.24v-.24l-.24-.479h-.24l-.24-.24-.24-.24-.24-.24v-.24l-.24-.24-.24-.24v-.48l-.24-.24h-.24l-.24-.24-.48-.24v-.24l-.24-.24-.24-.48h-.24l-.24-.24v-.24l-.24-.48-.24-.24-.48-.48-.24-.24-.24-.24-.24-.24v-.24h-.72l-.24-.24v-.24l.24-.72.24-.72.48-.96.48-.48v-.48h.24l.24-.48h.24l.24-.24.24-.24v-.24l.48-.24v-.959l.24-.48.24-.48v-.24l.24-.72h.48l.72-.24 1.44-.24-.72-1.68-1.2-3.36 2.16-.48 1.92-.24 2.16-.48.48 1.44.72 1.2.24 1.2.24.48.24-.24.72-.48h.24l3.12-.96h.479l.24-.24h1.2l.24-.24.48-.24v-.24h1.44l.24-.24.96.24.96.24.48-.24h.24l.48.24.48.24h1.2l.479.24.48.24h.96v-.48l.24-.24v-.24l.72.24h2.4v-.72l.48-.48h1.92l-.48-.24-.72-.96-.24-.72H512.583l.72.48zm14.399-32.637v.48l.24.24.72.24.96.24.24.24h.24v.24l.24.72.72.24.48.24.24.24v.24h-.24v.24l-.24.24v.72l.24.24.48.24.479.24h.48v.24h.24v.48l-.48.239v.48l.24.24.24-.24.48-.24h.24l.24.24v.96l.96.96 1.68.96v.96l-.24.48.48.48v.24l.24.48v.48l-.24.48v.24h.48l1.2.24 1.2.24v.48h-.24l-.24.24v.24h-.24v.24l.24.24.48.24.24.24.72-.24.24.24v.24l.239.48v.96h.24l.48.479.48.24.96-.24v.24l.48.72h.24l.24.24h1.44v.48l.24.72v.24l1.2 1.2 1.2.48h.24l1.439.48.48.48 2.64-.24 1.92.24 1.44.48.72.48 1.919.48h.48l3.12.72 3.84.96h.48l2.879.96.96.24 1.44.48v.24l.96 1.679v.24l1.2 1.2.24.72.48 1.92.48 1.92.48 1.2h.24l1.439.72.24.48 1.44 1.92 1.2 1.919h-.24l.48.72v1.44l-.48 2.88.72 1.68 1.2 2.4h-.24l-2.64.96-1.2.24-.72.24-1.44.48-.24-.24-.72-.24h-2.16l-.72.24-.72.24h-.96l-1.44.239-.959.24-1.2.24v1.68l.24.48 1.92 2.88h-.24V503.718l-.24.96-.24.48-.48.96v.48-.48l-2.4-1.92-1.44-1.2-.96-.72-2.64-2.4-.48-.48-6.478-4.56h-.24l-4.32-3.12-.48-.24-.24-.24-.72-.96-1.44-1.92-4.559-6.719-2.64.48-1.44-1.92h-1.2l-.24-.24-.24-.24-.48-.24h-.24v-.96l.24-.24-.24-.24-.24-.48v-.72l.24-.24.48-.48h-.24l-.48-.96-.24-.24-.24-.24v-.96l-.24-.24V473l-.24-.72v-.96l-.24-.24v-.48l.24-.24.48-.48.24-.24-.24-.48v-.96l.24-.48-.24-.48-.48-.24-.48-.24-.48-.24-.239-.24-.24-.48.48-.24v-.72l-.24-.24-.24-.24-.24-.24h-.48v-.72l.24-.24.48-.24v-.48l-.48-.24-.24-.24-.24-.24V460.522l-.24-.24-.48-.24h-.24v-.24l.24-.24-.24-.24-.48-.24v-.72l-.48-.24-.24-.24v-.48l.48-.24.24-.48v-.24l-.24-.48-.48-.72-.24-.24v-.48h.72v-.72l-.48-.48v-.48l.48-.24-.24-.24-.24-.24-.48-.24-.48-.48-.72-.24v-.72h.24v-.24l-.48-.24-.72-.24-.24-.24h-.24v-.239l.24-.24h.24l.24-.24v-.24l.24-.24v-.72l-.24-.24-.24-.24-.24-.24h-.24v-.24l.24-.24.24-.24h.48l.24-.24v-.24l-.24-.24h-.24l-.24-.24-.24-.48v-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24-.24-.24v-.24h.72v-.72l-.24-.24v-.24h-.24l-.24-.24v-.24h.24l.24-.24.24-.24v-.48l-.24-.24v-.72l.24-.24.48-.24h.24V437.484h.24v.24l.24.48v1.44l.24.24h.24v.72l-.24.24v.24l-.24.24.24.24v.48z", + center: [499, 490], + population: 15.553, + area: "23,172 ha", + defaultColor: "#468135" + }, + { + name: "Sumberwringin", + title: "Kecamatan Sumberwringin", + deskripsi: "Sumberwringin adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 27 Km dari ibu kota Kabupaten Bondowoso ke arah tenggara. Pusat pemerintahannya berada di Desa Sumberwringin. Sumberwringin terletak di lereng Pegunungan Ijen.", + laju: "-1,39%", + gambar: "/kecamatan/sumberwringin.jpg", + komoditastertinggi: "Tebu
(31.669,00 ton)", + path: "M572.337 433.403l.72.96.24.48.24.24.24.24h.24v.24l.48.24h.24l.24.72.24.24v.96l.24.24.24.24h.24l.48-.48.48-.24.479-.24.48-.24.72-.24.48-.24h.96l.48-.24h.96l.48.24h.48l.96.48.96.48.72.24h.48l.959.24.48.48.48.48.48.24.24.24h.24v.72l.24.48v.24h.24l.48.24h.24l.24.24h.24l.24.48.24.48.24.48.96.72h1.68l.24.24.24.48h.24l.48.72.959.72v.48l.24.24.24.24h.24l.72.24.72.48.48.24-.24.24v.959l-.24.48v1.2l.48.48.24.48.48.24.24.48.24.72.24.72.24.72.48.24.24.48v.24l.48.48v.24l.24.72v1.44h.24l.24.24h.48l.48.24.24.48.24.48.48.719.48 1.44.239 1.44v.48l-.72.72-.48.24-.48.72-.24.48-.24.72v.24l.24.24v.24l.72.24h.96l.24.24.24.24.48.48.24.72v.24h.24l.24.48.48.24.48.48.48.24.24.48V472.52l-.72.48-.24.24-.24.48v.48l.72.96.72.72.72.96.48.48V479.96l.24.24.48.48.48.48h.48l.48-.24.48-.24.24-.24h.48l.24.24.24.24v.24l.24.24-.24.72-.24.24v.72l.24.24.24.479.479.24h.24l.72.24.96-.24.24-.24h.24l.48.72h.24l.24.48.24.24v.24l.24.72v1.92l-.24 1.68-.24.24v1.44l.48.48v.24l.24.48.24.24v.96l.24.24.48.24.24.24.24.48.24.479.24.48.48 1.68.48.72v.24l.96.72.24.48.24.72.479.48.48.48.96.48.24.24.24.24.24.48v.24l.48.24.48.24h.24l.24-.24.96-.24h1.68l.24.24.24.24v.24l.24.48.72 1.2.24.96.24.24.24.24.48.239.719.24.24.24.48.96.24.24.96.48h1.44l.24.24.96.24h.48l.24.24.24.48.24.24.24.24h.24l.48-.24h.24l.24.24v.24l.24.24h.24l.24.24h.719l.96.48.48.24.24.48-.24.24v.96l.24.48.24.24.24.48.72.48.24.24.48.24h.48l.72-.72h.24l.48.24.48.24 1.2.48v1.2l.24.24v.24l.72.48.24.24.24.479.479 1.44.24.48.72.72.24.24.48.48v.96l.24.24.24.24h.24l.24.24.24.24.24.24v.96l.72-.24h.48l.24.48.24.72.24.24v.96l.24.24.48.48.96.24h.48l.24.24.48.96.24.48.24.239H659.686l.48.24.72.72.72.48.24.24.48.48.24.24.24 1.44v.24l.24.72.72.72.24.24v.24l.96.24.24.24v.96l.48 1.2.48.96.24.24.24.48.48.96.479.479.24.24.24.24-.24.48-.24.24v.48l.24.24h.72l.48-.24h.72l.96-.24.24-.24.24.24.48.72.24.24.72.72.24.24.72.48h.48l.48-.24h.24l.24.24.72.48.24.24.24.24 1.199.24.24.24.24.24v.24l.48.48.72.24.24.24v.96l-.24.24v.72l.24.48v.48l.24.72.24.24.24.48.72.48v.239l.48.72.24.96.24.48.24.48v.72l.48.48.24.24h.24l.24.24.24.24.24.24.24.24v.24l.24.24.48.48h.96l.239.24.24.24.48.48.72.48.24.24h.24l.48.48.72.24.48.24.48.48.96 1.2.72.48.24.24.72.48.96.239.48.24.48.48.479.48.24.24v.48l-.24.48v.24h.24v.24l.48-.24.24-.24.48-.24h.48l.48.24.96.24.24.24.48.48v.24h.48l.48.24.72.24.24.24.24.96.72.96.24.48.24.24.48.24.719.24 1.44.72.72.72.48.72.72.72.24.48.24.72.96.959.48.48.24.48.24.24v.24l.48.48.24.24.24.48.48.24.24.24.24.48.48.24v.24h.24l.24.24.24.24h.239l-.24 2.16-.24 1.92 1.44 1.2.48.72.24.24.72.959.72.96.72.72.72.96.48.72.48.96v.24l.24.48v.24l.24.72v.96l.24.96v.96l-.24.72v.72l.24 1.199.48.96.48.96.48.72.72.72v.24l.48.48.239.48v.24l.24.72.24.72v2.88l-.24.96-.48.96-.24.959-.24.72v2.16l.24.72v.72l-.24.96h.24l-.24 1.2v3.36l.24.96v.48l.24.479.24.72.72 1.2.24.72.48.72.72 1.2.24.24.24.96.48 1.2.24.48v.48l.24.72.24.96.24.96.24.959v1.2l.24.72v2.88l-.48 2.88-.24.96-.24 1.44-.48.72v.48l-.48.959-.72 1.44-.48 1.2-.72.72-.48 1.2-.72.96-.48.72-.48.48-.24.48-.24.48-.72.72-.72.96-.72.72-.96 1.199-.96.96-.72.96-.48.72-.72.72-.719 1.2-.72 1.2-.48.72v.24l-.48.48-.24 1.2-.24.72-.24.72-.24.48-.48 1.679-.48 1.2-.24.96-.24.72-.48.72v.48l-.24.72-.72 1.2-.72.72-.72 1.44-1.2.96-.24.24-.24.24h-.239v.24h-.48v.24h-.24l-.24.24h-.24v.24l-.24.24h-.24l-.72.72-.72.719-.48.96-.48.72-.24.96-.48.72v1.44l-.24.72v1.68l-.24.96-.72.96-.48.96-.48.48-.24.719-.24.96v1.2l.24.72v3.36l-.24 1.2v1.2l-.24 1.2v1.2l-.24 1.439v3.12l-.24 1.2v.48l-.24.48-.24.48-.239.72-.24.24-1.2 1.92-.96.96-.96.48-.72.48-.96.24-.96.479-.96.24-1.68.96-.719.96v.48l-.24.48v.96l-.24.96-.48.72v.24l-.48.72-.48.72-.72.72-.72.72-.48.48-.96.72-.24.24-.72.96-.24-.24-.72-.24v-.24l-.24-.24h-.24v-.24l.72-1.2-.24-.24-.48-.96-.24-.72-.72-.96v-.48l-.24-.48-.24-.48-.719-.72-.48-.48h-.48l-.48.24h-.96l-.48-.24v-.48h-.24l-.24-.24h-.96l-.24.24h-.72v.24l-.24-.24h-.96l-.48-.24-.72-.48h-.24l-.479-.24h-.24l-.24-.24-.24-.24h-.72l-.24.24-.24.48v.24l-.24.24-.24.24-.24.24v-.24l-.24-.24v-.48l-.24-.24-.24-.24-.24-.48h-.24v-.48l.24-.24v-.24l-.24-.24-.24-.48h-.24l-.48-.72v-1.92h-.24v-.24l-.24-.24v-.24l-.24-.24v-.24l-.24-.24v-1.2l.24-.48v-2.16l.24-.48.24-.24-.24-.24v-.48l-.48-.24-.24-.48-.24-.24-.24-.24-.48-.239-.24-.48-.24-.24v-.24l-.24-.48h-.24l-.48-.72-.48-.48-.239-.24v-.24h-.24l-.24-.24-.24-.48-.24-.24v-.24l-.24-.24v-.48l-.24-.24v-.24l-.24-.48-.24-.72v-.24l.48-.72v-.24l-.72-.72-.24-.24-.24-.24h-1.2l-.24-.24h-.48l-.48-.24-.24-.24h-.24l-.48-.48-.24-.24-.24-.24-.48-.48-.48-.479-.24-.48v-.24l-.48-.24-.24-.48-.479-.48-.48-.24-.48-.24-.24-.24-.24-.48-.48-.24-.48-.72-.48-.24-.48-.24-.48-.24h-.72v-.24h-.48l-.24-.24-.24-.24-.48-.48-.24-.24-.24-.48v-.24h-.24l-.24-.24-.24-.48-.24-.48-.48-.48-.72-.48v-.48l-.24-.24-.239-.48V684.183l-.24-.48v-.48l-.48-.48-.72-.96-.48-.96-.24-.72-.48-1.2-.24-.48.24-.48v-.72l.24-.24v-.96l-.24-.48-.24-.24-.24-.48-.48-.96v-.239l-.24-.24-.48-.24h-.24v-.48l-.24-.24v-1.68l-.24-.48-.24-.48-.24-.72-.48-.48-.24-.48v-.48l-.24-.48v-1.2l-.72-.48-.24-.24-.24-.96-.24-.72v-.48l-.24-.72-.48-.719v-.24l-.479-.48-.48-.24-.72-.48-.48-.24-.24-.24-.24-.72v-1.44l.24-.48-.24-.48v-.24l-.24-.48-.48-.24-.24-.24-.48-.24-.72-.72-.24-.24-.72-.48h-.48l-.24-.24-.48-.96-.24-.48-.48-.72-.72-.72-.48-.24h-.479l-.24-.24-.24-.719-.24-.48-.48-.24-.24-.72-.72-1.2v-1.44l.48-.72v-.96l.24-.72.24-.24-.24-.24v-.24l-.24-.24-.24-.24.24-1.2.24-.48v-.24l-.48-.72-.48-.48-.72-.479-.48-.48-.24-.72-.24-.96v-.72l-.24-.48-.24-.24h-.24v-.24l-.24-.72-.24-.24-.24-.24v-.72h-.24v-.24h-.24l-1.2-.24h-.96l-.24.24-.24-.48-.24-.24-.239-1.2-.24-.48v-.48l-.24-.24-.24-.24-.48-.48-.48-.24h-.48l-.96-.24-.48-.24-.24-.24-.48-.48-.24-.479-.24-.24v-.72l-.24-.24v-.24l-.48-.24-.48-.24-.72-.48-.72-.72-.72-.96-.24-.72-.48-.72v-.72l-.239-.24-.24-.72v-.48l-.48-.48-.24-.24-.24-.48-.24-.24h-.48l-.24-.24h-.24v-.24l-.24-.48v-.48l-.24-.48h-.24.24l-.72-.719-.48-.48-.48-.24h-.72l-.48-.48-.24-.24-.72-.24-.48-.24.24-.48-.24-.96v-.48l-.48-.96-.24-.96-.72-.96-.479-.72-.24-.96v-1.68l-.24-.48v-.48l-.24-.24v-.479h-.24v-.48h-.24v-.24l-.24-.24v-.24h-.24v-.24h-.96v-.24h-.24v-.72h-.24l-.24-.24-.24-.24h-.24v-.72h-.24v-.24h-.24v-.24l-.24-.24-.24-.24v-.24h-.24v-.24h-.48l-.24-.24v-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24v-.24l-.24-.24h-.48l-.24-.24h-.24v-.24h-.24v-.24h-.239v-.24h-.48v-.24h-.24v-1.68h-.24l.24-.24-.24-.24v-.24h-.48l-.24.24h-.48l-.24-.24-.24-.24-.24-.24v-.24l-.24-.24h-.24l-.24-.24h-.24v-.479h-.24v-.24h-.24l-.24.24h-.24v-.24l-.24-.24v-.24l-.24-.24h-.24v-.24h-.72l-.24.24h-.24v-.24h-.24v-.24l-.24-.24v-.48l-.24-.24-.24-.24v-.72l.24-.24h-.24v-.72l.24-.24v-.48l-.24-.24-.24-.24h-.96v-.24h-.239v-.72h.24v-.48l-.24-.24-.24-.24h-.96l-.24.24-.24-.24-.24-.24v-.72h.24v-.24h.24v-1.44h-.24v-.24l-.48-.24-.48-.24-.48.24h-.24l-.24-.24v-.719l.24-.48-.48-.48v-.24l-.24-.24v-.24h-1.2v.24l-.24-.24v-.24l-.24-.24v-.24l-.24-.24-.24-.24-.24.24-.24.24-.48-.24-.24-.24-.24-.24-.24-.24v-.24l-.24-.24v-.48l-.24-.24v-.24l-.24-.24h-.24l-.239-.24v-.24h-.24v-.24h-.24l-.24-.48v-.24l-.48-.48h-.96l-.24-.24v-.48h-.24l-.24-.24h-.24l-.24-.24v-.24l.24-.24v-1.44l-.24-.24h-.48l-.24.48v.24h-.24l-.24.24h-.24l-.24-.24v-.24h-.24l-.24-.24-.24-.24-.24-.24-.24-.24-.24-.24v-.24l-.24-.48h-.72l-.24.24-.24.24h-.24v-.24h-.24v-.479l.24-.24v-.72h-.959l-.24-.24-.24-.24h-.72l-.24-.24-.48-.24v-.24h-.24l-.72-.48-.48-.24-.96-.48-.24-.24v-.24l-.24-.24-.24-.48-.24-.24-.72-.24v-.24l-.24-.24v-.24l-.24-.24h-.24l-.24-.24-.24-.24-.48-.24v-.24h-.24v-.24h-.72l-.239-.24.24-.24-.24-.24v-.24h-.24v-.72h-.24l-.48-.24h-.48l-.24-.24v-.24l-.48-.24-.24-.24-.48-.24-.24-.48-.24-.24h-.24l-.24-.24-.24-.24-.24-.239-.24-.24-.48-.24-.48-.24-.24-.24-.24-.48-.48-.72-.48-.48v-.24h-.24l-.24-.24-.48-.24-.72-.48-.479-.48-.24-.24-.48-.24v-.24l-.72-1.44h-.48l-.96-.24-.24-.24v-.24l-.24-.24-.24-.48-.48-.48h-.72l-.48-.24-.72-.24-.48-.48-.48-.24h-.24l-.72-.24-.24-.24-.48-.48h-.239l-.48-.24-.24-.24-.24-.48-.24-.479v-1.68h-.24l-.24.24-.24.48v.24h-.24l-.24-.24h-.24v-.24l-.24-.24-.24-.24v-.24l.24-.48v-.96l-.24-.24-.96-.72-.48-.72-.48-.24h-.24l-.24-.24v-.24l-.72-.24v-1.44l-.24-.48v-.96l-.24-.24-.96-.48-.24-.24-.48-.24h-.959l-.24-.24-.48-.24-.24-.24-.24-.24-.24-.48-.72-.479-.24-.24-.48-.24-.48-.48-.48-.24-.24-.24-.24-.24v-.24l-.24-.72-.24-.24-.24-.24-.24-.24-.24-.24-.24-.48v-.24l-.24-.48h-.24v-.24l-.48-.24-.24-.24v-.24l-.48-.96-.24-.24-.24-.72-.48-.96v-.24l-.24-.48-.239-.24-.24-.48-.72-.96v-.479l-.24-.24-.24-.72-.72-1.2-.24-.48-.72-.72-.24-.72-.48-.24-.24-.48-.24-.24-.48-.24-.24-.24h-.72l-.24.24-.24-.24v-.24l-.48-.24v-.24h-.72l-.48-.24h-.72l-.239-.48-.24-.24-.24-.48-.48-.24h-.24l-.24-.24-.24-.24v-.24l-.48-.48h-.24l-.24-.24-.24-.24v-.48l-.24-.48-.24-.24-.24-.24-.24-.48-1.2-.479v-.24h-.48l-.96-.24h-.48l-.24-.48-.24-.24h-1.2l-.959-.72-.24-.24-.96-.24-.72-.24-1.44-.48-.48-.24h-.48l-.72-.72-.24-.48-.24-2.16 1.44-.48 2.16-.72 2.16-.72 1.44-.48 1.68-.48.48.72.48.48.48.48.48.48.48.24.48.48.24.48.24.72v.48l.72.72-.24.48v.24l.48.72.24.48h.24l2.399-.72.24.72 1.68-.48 3.6-1.2-.24-.48-.48-.72v-.72l1.92.24v.24h.24l.24.48.479.48.24.24h.24l.24.24.24.72.48.48.72.72.24.72.48.24.24.24.48.24v.24l.48.72.48.96.24.48.48.48.24.24.96.48.48.24.48.24h.96l.24.24.239.24.24.24v.48h.24l.24.24.24.48.24.24h.24l.48.24h.24l.24-.24v.24l.24.24h.72v.24h.72l.24-.24h.48v.24l.24.24.24.48.24.24v-.24l.24-.24h.24l.24.24v.24h.24v-.24h.96l.24.24.24.24h.24l.24-.24h.24l.959-.72.48-.24.48-.24.48-.24.24-.24h.48l.72-.24.96-.48.72-.24.48-.24h.72l.72-.24.24-.24h.24l.24-.24h.24l.48-.24h.479l.24-.24.24.24.72-.48.72-.24.72-.24.96-.24h.48l-.24-.24v-.72l-.24-.24h.24-.24v-.24l-.48-.48.72-.48v-.48l.24-.24v-.48l.24-.24v-.24l-.24-.24v-.48l.24-.72v-.48h-.24v-.24l-.24-.48v-.24l-.24-.24-.48-.24-.72-.48-.24-.48-.48-.48v-.24l-.24-.72-.24-.48v-.24l-.24-.48v-1.2h-.24l-.48-.24h-.24l-.24-.48-.24-.48v-.239l-.24-.24-.96-.72-.24-.24-.72-.48h-.48v-.24h-.24l-.24-.24-.24-.24-.24-.48-.24-.24v-.24l-.24-1.2v-.48l-.24-.24v-.48l.24-.24v-1.2l-.48-.72v-.48l.24-.24-.24-.24-.24-.48-.48-.48-.24-.48-.48-.72-.24-.24v-.719l.48-.48.24-.24v-.24h-.24l-.24-.24-.24-.24-.24-.72-.24-.96-1.199-1.68V479l.48.24.24-.24h1.2l.24-.24.24.24v.48h.24l.48.24.24.24.24.24h1.2l1.44 1.92 2.639-.48 4.56 6.72 1.44 1.92.72.96.24.24.48.24 4.319 3.12h.24l6.479 4.559.48.48 2.64 2.4.96.72 1.44 1.2 2.4 1.92v.48-.48l.479-.96.24-.48.24-.96V501.077h.24l-1.92-2.88-.24-.48v-1.68l1.2-.24.96-.24 1.44-.24h.96l.72-.24.72-.24h2.16l.72.24.24.24 1.439-.48.72-.24 1.2-.24 2.64-.96h.24l-1.2-2.4-.72-1.68.48-2.88v-1.44l-.48-.719h.24l-1.2-1.92-1.44-1.92-.24-.48-1.44-.72h-.24l-.48-1.2-.48-1.92-.48-1.92-.24-.72-1.2-1.199v-.24l-.96-1.68v-.24l-.24-.72-1.44-1.68-1.2-.96-.48-.48-1.439-1.2-1.68-1.2-1.2-1.92-.48-.959-.96-1.44-.48-.24-.48-.48h-.24l-.24-.48-2.639-3.12-.96-.72-.24-.48h.24l-.24-.24v-.24h-.24l-.24-.24-.72-.24-.96-.72-.72-.48-.24-.24v-.24l-.24-1.68v-.719l.24-.48.24-.48v-.24l-.24-.24-.24-.24v-.24l-.24-.24v-.24l-.24-.48-.48-1.2v-1.68l.24-.24v-.24l.24-.24.24-.24.72-.48.96-.72h.24l.72-.48.72-.48.24-.24.72-.48.72-.72.96-.72.72-.479.96-.72v-.24l.72-.48.48-.72.24-.24.48-.24.48-.72.48-.48h4.319l.48-.24H572.337z", + center: [640, 585], + population: 35.127, + area: "137,947 ha", + defaultColor: "#468135" + }, + { + name: "Taman Krocok", + title: "Kecamatan Taman Krocok", + deskripsi: "Taman Krocok adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 12 Km dari ibu kota Kabupaten Bondowoso ke arah timur laut. Pusat pemerintahannya berada di Desa Taman. Kecamatan ini memiliki jumlah penduduk terkecil di kabupaten Bondowoso.", + laju: "-1,19%", + gambar: "/kecamatan/tamankrocok.jpg", + komoditastertinggi: "Tebu
(32.091,12)", + path: "M353 316.533h5.76l2.16-.72 1.2-.48h.24l.96 2.16.72 2.16v.72l.24 1.44.24.48.24.48v.24l.24.48.24.24v.24l.24.48h.24l.48.72.24.48h.24l.24.24h.24l.24.24h.24v.48h.24v.24l.24.24v.24l.48.48.24.48H370.038v.96l.24.48v.479l-.24.24v.24h-.24v.48l-.24.24v1.44l.24.48.24.24.96.48h.24l.72-.48.24-.24h.72l.24-.24.24-.24v-.24l.24-.24.24-.24.48-.48h.72l1.44-.24.24-.24h.72l.24-.24.959-.24h2.88l.24.24h.24l.48.48.72.72.48.24h.72l.72.24.48.24.48.24.72.48v1.2l-.24.24-.24.48-.24.24v1.2l.24-.24.24-.24h.48l.24-.24h.479l.48-.24.72-.48.48-.48.24-.24.24-.24v-.24l.48-.48.48-.48h3.84l.72-.24.72-.24 2.159-.48 3.36-.96h.24l2.16-.72.48-.24 1.679-.48 1.68-.72.96-.24 1.44.24h.48l.24.24.24.24.24.24.24.48.24.24v.24h.24l.24.24h.24l.24.24.24.24.24.24h.24l.24.24.48-.24h.479l.24-.48.48-.24.48-.48.24-.24.24-.48.48-.96.24-.72.24-.96.24-.48v-.72l.24-.48.72-.96.24-.48v-.24h.24l.72-.24h.24l.48-.24h1.92l.24.24.48.24.479.24.24.24.48.96.48.72v.48l-.48.48-.24.48-.24 1.2-.24 1.2.24.72.24.48.48.48.24.48.24.24.24.72.24.24.24.24.48.24.48.48.72.72.72.72.72.72v.96h.24l.96.72.96.72.24.48.24 1.44.24.24.48.24.959.719.96.48 2.16 2.4.24.48.24.24h.24l.24.24h1.44l.24.24h.24l.24.24.24.48.24.48.24.72.24.24.24.72.24.24.24.48.48.24 1.199.24h.96l.48-.24h1.68l.48-.24.96-.24.48-.24h3.359l.96.24h.24l.72.48.48.48.48.48.96.24h.72l.72.24.24.24H459.55l.479.24.24.48h.48l.24.24h.24l.24.24h.48l.72-.72.24-.24.96-.48h.24l.24.24h.48l.24-.24h.24l.24-.24.48.24h.24l.72-.72.24-.24.48-.24.48-.24h.24v-.24l.24-.24v-.24h.479l.48.24.48.24.24.24h1.44l.24-.24h.72l.48.24.48.24.24.24v.48h.24l.48.24h.72l.48-.24.24-.24.72-.72.24-.24.24-.24.24-.24.719-.24.96-.24h.72l.24.24.48.24.72.24.48.24v.48h.24l.72.24.48.24h.24l.24-.24h1.2v.24h.24l.48.24.24-.24.24-.24.24-.24.24-.24H487.865l.24-.24.24-.24.48-.48.48-.48.24.72v2.88l-.48.72-.48.72-.72.24-.48.719-.24.24-.24.24V357.33l-.24.48-.48 1.2-.72.48-.72.24-.96.24-.48.24v.72l.24.24h.24l.72.24.24.48v.48l-.24.48-.48.48-.72.96-.96.72h-.24l-.72.48-.96.719-.48.24-.24.48-.48.24-.719.48v.24l-.24.24-.24.72-.96 1.2-.72.72-.24.24-.48.48-.24.24-.24.48h.24l.24.24h.24l.24.24v.48l-.72.48-.72.24-1.68.48-.96.48h-2.399l-.96.48-.96.96-.96.24-.48.24h-.48l-.24.24h-.48l-.48.24-.24.239h-.24v1.68l.48.72.48.72v.96l-.24.48-.24.24-.96.24h-.24l-.48.24-.24.24v.24l-.24.48v.24l-.24.24-.96.24H460.03l-.24-.24-.48-.24-.24-.48-.24-.24-.24-.24-.72-.24h-.48l-.48.24h-.24l-.24.48-.48.24-.72.72h-.24l-.48.48-.24.24v.48l-.48.48v.24l-.48.48h-.96l-.48-.24-1.199-.48h-.48l-.96-.24-1.68-.24-1.44.48-.48.48-.24.48v1.68l.24.24v.719l.72.96.24.24.48.24v.24l.48.24v.72l-.48.72v.24l-.48.24v.72l-.24.96-.24.72-.48.72-.24.24-.48.24h-.72l-.24-.24-.24-.24-.24-.48-.24-.24H442.032l-.72.24v.24l-.96.24-.24.24-.24.24-.48.72-.72.24h-.48l-.72.24h-.96l-.72.48h-1.68v.24l-.24.48.24.48v.48l-.479.719v.48l-.24.48-.24.24-.24.24-.48.24-.48.24-.96.48-.72.24-.48.24h-.24l-.48.24h-.24v.96l-.24.72-.24.72-.24.72-.24 1.2-.72.72-.24.24-.48.24-.48.24-.24.24v.24l.24.48v.48l.24.72.24.24V413.724l.24.48.24.72v1.44l-.24.72-.24.48-.48.72v.24l-.48.48-.719.48-.72.24-.72.24-1.2-.24h-.96l-.48-.24h-.72l-.48.48-.24.24-.24.24v.96l-.48.72-.24.96v.72l-.24.24-.24.24h-.96l-.24.239-.48.24-.959.48-.96.24h-1.2l-.96.24-.48.24-.48.24-.24.24v.96l-.24.48v.72l-.24.24-.24.48-.24.48-.48.48-.24.24h-.48l-.72-.24-.24-.24H406.516l-.24.24-.24.24-.24.72-.24.96-.48.96-.48.48-.48.24h-.24l-.72.24-.72.48h-.72l-.24-.24v-.24l-1.68-.24-.96-.48h-.24l-1.199-.48h-.24l-.24-.24-.48-.24-.24-.24-.24-.48-.48-.24-.48-.24-.72.48-.24.24h-.48l-.72-.48-.24-.24-.48-.24h-.24l-.24.24-.24.24-.24.24-.24-.24-.24-.24-.24-.48-.24-.48-.24-.24-.48-.24-.72.72-.239.24-.24.24h-.24l-.24-.24-.24-.24v-.24l.24-.24.48-.48.24-.24.24-.24-.24-.24-.48-.24v-.24h-.48l-.24.24-.48.48-.24.24h-.48l-.48-.24-.24-.48v-.48l-.24-.24-.24-.24h-.72l-.48-.24-.96.24v-.72h-.24v-1.68l.24-1.2.24-2.16.24-3.12v-.72h.72v-.24h-.24l-.48-.24v-.24l-.24-.24-.24-.24h.24v-.24l.24-.72.24-.96v-1.439l.24-.96v-2.88l.24-.48V405.565h-.72l-1.92-.24-1.919-.24h-1.2l-.24-.24-.24-.96v-.24h-.24l-.72.48-.48.48-.24.72-.24.24-.24.24.24.96-.24.48-.24.24v.24l.24.48v.48l-.24-.48-.96-.96-.48-.48-.24-.24v-.72h-.24l-.24-.24-.48-.24h-.72l-.24-.24-.24-.24-.24-.48h-.24l-.479-.24h-.24v.24l-.24.24v.96h-1.2l.24-.72.48-1.2.24-.48.24-.96h.24l-.24-.719v-.24l-.48-.24-.24-.48v-1.2l-.48-1.44-.24-.72-.24-.48-.48-.96-.72-1.68-.24-.48-.24-.96-.72-2.16-.48-1.679-.72-1.44-.48-.96-.96-1.92-.24-.72-.24-.48v-.48l-.24-.24-.48-1.2-.719-1.92-.24-.24v-.48l-.24-.719-.24-.24v-.48l.24-.72v-.24l.24-1.68-.24-1.2-.24-1.2-.24-.48-.24-.24-.48-.24h-.24l-.48-.72v-.72l.48-1.2v-.96l-.24-.24-.72-.959-.24-.72-.24-.24-.24-.96-.24-.72-.24-.72v-.48l.24-.24v-2.64l.24-.24-.24-.48v-.48l-.24-.24v-.48l-.24-.24v-.24l-.24-.48-.24-.48v-2.879l-.24-.24v-.48l-.24-.48v-1.68l-.72-1.2v-.48l-1.2-1.68-.96-.72-.719-.96-2.16-1.92-1.2-.719-.72-.72h-.24l-.24-.24-1.44-1.2-1.68-1.2-.24-.24-.96-.72-.959-.72h-.72l-1.68-.24h-2.16l-.96-.24-.48-.24-1.44-.24-.72-.24h-.719l-.48-.24h-.96l.24-.24v-.24l.24-.24v-.24l.24-.24v-.48l.24-.48v-.24l.48-.24v-.72l-.48-.48v-1.2l-.24-.479v-.96l-.24-.72-.48-.48v-.48l.24-.24.24-.24v-.96l-.48-.48-.24-.24-.24-.24v-.24l.24-.48h.72v-.24l.24-.24-.24-.24-.24-.48v-.48h1.44l.24.48.24.24h.24l.24-.24v-.72l.24-.24h.24l.48-.72.24-.24h.72l.48.24h.24l.72-.24h.24v-.24l.48-.48v-.24l.24-.24.48-.48.24-.72.24-.239.24-.24h.24l.48-.96.72-.96 1.199-1.2 1.92-1.68.48-.72.72.48.48.48.24.24.24.24.48.24.72.24.72.24.72.48h1.2l.719.24h1.2z", + center: [410, 375], + population: 16.654, + area: "53,003 ha", + defaultColor: "#468135" + }, + { + name: "Tamanan", + title: "Kecamatan Tamanan", + deskripsi: "Tamanan adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kata Tamanan sendiri berawal dari sebuah kisah kuno yang konon diambil dari sebuah Taman yang ada di desa tersebut. Taman tersebut merupakan sebuah peninggalan Belanda yang pada akhir Tahun 1998 masih bisa dipakai.", + laju: "0,31", + gambar: "/kecamatan/tamanan.jpg", + komoditastertinggi: "Padi
(26.097 ton)", + path: "M329.004 564.192l.48.24h.24l1.44.24h.48l3.359.96 1.92.24h2.4l1.92.24.72.24v.48l.719.24.24.72v.48l.72-.24v-.96h.24l.96.24v.24h.24l1.68.24.48.24.48.24h.48l.24-.24h.24l.48.24h.72l.72.24h.48v.48h.48l.959.24.72.24v-.24l.24-.24v-.24l.24-.24.48-.24h.24l.24.24h.48v.48h.24v.24l-.24.24v.24l-.24.72-.24.48-.24.24h.24l2.64.48v-.24l.24-.24v-1.2l.24.24v-.24l.24.24.48.24.24.24h.96l1.199.24h.48l.96.48h1.92l1.2.24.72.24h.72l.24.24.24.24.24.24h.72l.48.24.959.24h.24l.96.24h.48l.24.24.48.24v.24h.48l-.24.24v.72l-.24.48v.48l-.24.48.48.48.72.24h.72l.48.24.24.24h.24l.24.24.48.719.48.24v2.16l.48.24 1.44.48h.24l.479.24.72.48v.24h.24l.24.72.24.48h.48l.24-.48h.24l.24.24.48.48v.24l.24.24v.24l.96-.24h.24l.96.24.24.24.72.24.24.48h.24l.24.24.72.24h.24l.48.24v.48l1.199.24h.24l.24.24h.24l.96.48.72.24.48.24.72.72v.24l.24.24v.24l.48.239.24.24.48.24.24.24.24.24.24.24.96.96.24.24h.24l.48.24.48.24h.239l-.24.72-.24.48-.24.48-.24.72-.24.72.48.24.96.24.72.24.48.24.48.24h.48l.24.24h.48l.24.24h.24l.48.24-.24.72-.96 2.16h.72l.24.24h-.24.24l-.48.959-.72 1.44V606.909h-.24v.96l-.24.72.24.24h.24l-.24.72-1.2 3.12-2.4 5.039-.48-.48-.24-.48-1.68-1.92-.48-.48-.96-1.44h-.24l-1.44-1.92-1.2-1.68v-.24l-.719-1.2-.24-.96-.72-.24h-.48l-.24-.24-.96 1.68-.24.48-.24.48v.24h-.24l-.24.72-1.92 2.4-.24.48-.24.48h-.48l-.96-.24-.96-.24-.479-.72-.48-.72-.72-.72-.48-.48-.96-.48-.96-.24-1.2-.24h-.48v1.92l.24.72.48.48.24.48.48 1.44.24.72.24.96.48 1.44.24.48v.24l.24.24h4.8l.24.24h.48l.72.24.72.24v.24l.72 1.2.24.72.24.24.24.24.48.24v.96l-.24.48-.24.48v.48l.24.24.24.72.24.239v.24l.24 1.2.24 1.44v.96l.48.96-.24 1.44v2.88l-.24 1.2.24 1.199v1.68l-.24.24-.24.24-.24.24-.48-.24-.48-.24h-.24l-.24-.24-.72-.48-.48-.24h-.48l-.24.24-.24.48-.24.72v.24l-.48.24-.48.48-.72.72-.96.24-1.2-.48h-1.2l-.48.24h-.24l-.48.72h-.72l-.24.24-.48.24-.48.24-1.68.24-.96.48h-.72l-.719-.24h-.48l-.96.48-.72-.24-.96-.72h-.96l-.72-.48v-.72l.24-.48.24-.72h-.48l-.72.24h-.96l-.24.24-.24.24h-.48l-.24-.24-.24-.24-.24-.24h-.479l-.24-.24-.72-.24h-.48l-.48.48v.24h-.24l-.72.24-.72.24h-.24l-.24-.24-.72-.24-.24-.24h-.48v.24l-.24.24-.48.24-.24.24-.24.24h-1.2l-.48.48-.24.24h-.239v.24l-.48-.24h-.24l-.48-.24-.24-.48h-.24l-.24-.24-.24-.24-.48-.24v-.24h-1.44l-.24-.24h-.24l-.96-.24-.24-.24h-.48l-.24-.24-.72-.24-.24-.24-.24-.24h-.24l-.48.72h-.719v-.72h-.48v.24l-.24.24-.24.24h-.48l-.72-.24v.24l-.24.24v.24h-.24l-.48-.24h-4.08v-.24l-.24-.48h-.96l-.719-.24v.24h-.24l-.48.24h-.48l-.48.48-.24.24-.72.48v.24l-.24-.24-.48-.72h-.72v1.2h-.48v-.24h-.24l-.24-.48v-.24l-.48-.24h-.24l-.24.24h-.24v.24-.96h-.24v-.24h-1.92l-.24.24h-.479l-.24-.24h-.48l-.24-.24v-.24l-.24-.24v-.24h-.24l.24-.24h.24v-.72l.24-.48v-.72l.24-.24v-.24h-1.44l-.24-.24h-.48v-.24l-.24-.24h-.24l-.24-.24v.24l-.24.24v.24h-.24l-.24.24h-.48l-.24-.24v-.24l-.24-.24v-.24l.24-.24h.24l.24-.24h.24l.24-.24v-.24l.24-.24.24-.48.24-.24.24-.72v-.24h.48v-.24l.24-.24.24-.24.24-.24v-.24l-.24-.24.24-.24v-.24l-.24-.48v-.48h-.24l-.72-.72v-.24l-.24-.24h-.24l-.24-.24-.24-.24h-.24l-.24-.24h-.24v-.24l-.48-.239v-.24l-.48-.24-.72-.24-.96-.24v-.24h-.24l-1.2-.48-.479-.48h-.24l-.72-.24-.24-.24-.96-.24-.72-.48-.96-.24-1.68-.48v-.24l-.24-.24v-.72l-.24-.24h-.48v.24l-.48-.48h-.24v-.48l-.24-.48.24-.24v-.96l.24-.24h.24l.24-.48v-.48l-.96-.24v-.72l.24-.24v-.24l-.24-1.439.24-.72.24-.48v-.24h.24v-.24l.24-.24h.48l.24-.96h.24v-.24l.48.24.48.24v.24h.48l.72.48v.24l-.24.72h.24l.24.24h.24l.24.24h.24l.48.24v-.24l.24-.24.72-1.44.48-.72v-.24l.24-.24.72-1.44.24-.48v-.24l.24-.48v-.24l.24-.24v-.24l.48-1.44.24-.72.48-.72v-.24l.24-.72.24-.72.24-.719.24-.48v-.48h.24l1.44.48.24-.48.24-.72.48-.72v-.72l.24-.24v-.24l.72-1.92.72-1.92.48-1.2 1.199-3.119.24-.24-.72-.24h-.24l-1.2-.48h-.24l-1.2-.48-.96-.24h-.24l.24-.48v-.24l.24-.48h-.48v-.24l-.96-.24-1.2-.24-1.2-.48-1.199-.48-1.44-.48-.48-.24h-.24l-1.2-.24-.24-.24h-.48l-1.2-.24.24-.24v-1.44l-.24-.24h-.24l-.24-.24h-.48v-.24l.24-.24.24-.24v-.24h.72l.24-.24.72-.24.48-.24v-.48l.24-.48v-.479l-.24-.72v-.96l-.24-.48v-3.12l.24-.24.48-.24h.48l.72-.24h.48l.24-.24v-1.92l-.24-.48v-.48h.24l.48-.48.48-.48.48-.24v-.48l.72.24h1.68v-.48l.48-.72v-.239l-.24-.24v-.24l-.48-.48v-.24l.24-.48.24-.24.24-.48v-.24l.24-.24.48-.24h1.2l.24-.24v-1.2h.24l.48.24h.24l.96.24 1.199.24 1.44.24h.24l1.44.24 1.2.24z", + center: [348, 605], + population: 39.535, + area: "28,151 ha", + defaultColor: "#A7D45F" + }, + { + name: "Tapen", + title: "Kecamatan Tapen", + deskripsi: "Tapen adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 16 Km dari ibu kota Kabupaten Bondowoso ke arah timur. Pusat pemerintahannya berada di Desa Tapen. ", + laju: "-1,32%", + gambar: "/kecamatan/tapen.jpg", + komoditastertinggi: "Tebu
(109.407,36 ton)", + path: "M505.144 339.091l1.2.48.24.72.24.48v.96l-.48 1.2v.24h-.24l-.24.24v.24l.72.24.24.24v2.16l.24.24v.72l.24.48v.72h-.24l.24.24v.24l-.24.48v.96l.24.24v1.2l.24.72v.48l.24.24.24.719.48.48v.24l.24.48v.24l.24.48v.48l.24.24.24.24h.24v.24l.24.48.48.48.24.24.24.24v1.92l.48.24v.24l.72 1.2v1.92l-.24.48.24.48.24.719v.48l.24.24.24.48.24.24.24.24v.72l-.24.72v.24l.24.24v.24l.24.48v.48l.24.72.24.48.239.48 2.64 2.64.24.24v.24l.24.24 3.12 3.599.24.24.24.48.24.24v.48l.48.48.24.48v.72l-.24.24-.24.48h-.72l-.24.24v.72l.24.48v1.2l4.559-.24h5.76l.24.24-.48.48h-.24v.48l.48.24v.24l-.24.48-.48.24v.48l.24.24.24.24h.48l.24.24v.479l-.24.24v.48l-.24.48.24.24v1.44l.48.24.24.24.239.96.48.48v.24l1.2 1.2.48.48.24.24.24.24.24.24.72.48.72.48.24.24.72 1.44v1.439l.24.96v.48l.48.72.72.72V407.246l.24.48v.24l.48.24 1.439.96v2.16l.48.96.24.959.72.96.24 1.2.24.72.24.48v.48l.24.72v1.2l.24.24.24.48v.24l-.24.24v.72l.72.96.24.48v.24l.48 1.2.48.959.24.48.72.72.72.72.48.48.24.48.24.24.48.96.48.96.24.96v.24l.24 1.68.479 1.44.48 1.2v.48l.48 1.199.24.72.72 1.68.48 1.2.24.24.24.72.24.24.48.48.24.48v.24l-.24.24v1.68l.48 1.2.24.48v.24l.24.24v.24l.24.24.24.24v.24l-.24.479-.24.48v.72l.24 1.68v.24l.24.24.72.48.96.72.72.24.24.24h.24v.24l.24.24h-.24l.24.48.959.72 2.64 3.12.24.48h.24l.48.48.48.24.96 1.439.48.96 1.2 1.92 1.68 1.2 1.439 1.2.48.48 1.2.96 1.44 1.68.24.72-1.44-.48-.96-.24-2.88-.96h-.48l-3.84-.96-3.119-.72h-.48l-1.92-.48-.72-.48-1.44-.48-1.92-.24-2.639.24-.48-.48-1.44-.48h-.24l-1.2-.48-1.2-1.2v-.24l-.24-.72v-.48h-1.44l-.24-.24h-.24l-.48-.72v-.24l-.96.24-.479-.24-.48-.48h-.24v-.96l-.24-.48v-.24l-.24-.24-.72.24-.24-.24-.48-.24-.24-.24v-.24h.24v-.24l.24-.24h.24v-.48l-1.2-.24-1.2-.24h-.48v-.24l.24-.48v-.48l-.24-.48v-.24l-.48-.48.24-.48v-.96l-1.68-.96-.96-.96v-.959l-.24-.24h-.24l-.48.24-.239.24-.24-.24v-.48l.48-.24v-.48h-.24v-.24h-.48l-.48-.24-.48-.24-.24-.24v-.72l.24-.24v-.24h.24v-.24l-.24-.24-.48-.24-.72-.24-.24-.72v-.24h-.24l-.24-.24-.96-.24-.72-.24-.24-.24v-.96l-.24-.24.24-.24v-.24l.24-.24v-.72h-.24l-.24-.24v-1.44l-.24-.48v-.239h-.24v1.2h-.24l-.48.24-.24.24v.72l.24.24v.48l-.24.24-.24.24h-.24v.24l.24.24h.24v.24l.24.24v.72h-.72v.24l.24.24.24.24.24.24v.24l.24.24.24.24v.24l.24.48.24.24h.24l.24.24v.24l-.24.24h-.48l-.24.24-.24.24v.24h.24l.24.24.24.24.24.24v.719l-.24.24v.24l-.24.24h-.24l-.24.24v.24h.24l.24.24.72.24.48.24v.24h-.24v.72l.72.24.48.48.48.24.24.24.24.24-.48.24v.48l.48.48v.72h-.72v.48l.24.24.48.72.24.48v.24l-.24.48-.48.24v.48l.24.24.48.24v.72l.48.24.24.24-.24.24v.239h.24l.48.24.24.24v1.2l.24.24.24.24.48.24v.48l-.48.24-.24.24v.72h.48l.24.24.24.24.24.24v.72l-.48.24.24.48.24.24.48.24.48.24.48.24.24.48-.24.48v.96l.24.48-.24.24-.48.48-.24.24v.48l.24.24v.959l.24.72v.48l.24.24v.96l.24.24.24.24.48.96h.24l-.48.48-.24.24v.72l.24.48.24.24-.24.24v.48l-.24-.24-.24.24h-1.2l-.24.24-.48-.24v.72l1.2 1.68.24.96.24.72.24.24.24.24h.24v.239l-.24.24-.48.48v.72l.24.24.48.72.24.48.48.48.24.48.24.24-.24.24v.48l.48.72v1.2l-.24.24h-1.44l-.72.24-.24.24h-.48l-1.2.48-2.4.72-.24-.24-.24-.48h-.24l-.24-.24-.24-.24v-.48l-.24-.24-.48.24h-.72l-.48-.24v-.24h-.48l-.48-.24-.24-.48-.48-.48v-.72l-.48-.72-.72-.72-.479-.48v-.48h-.24l-.48-.24-.48-.72-.24-.96-.48-.72-.24-.48v-.48l-.24-.72.24-.48v-.48l-.48-.24v-.96l-.24-.48-.72-.24-.48-.24-.24-.48h-.48l-.48-.48-.48-.72-.24-.48-.48-.48-.72-.48-.48-.48-.24-.48-.24-.24h-.24l-.719.48h-1.2l-.72-.48H501.784l-1.2-1.439-.96-1.2-.24-2.16-.24-5.52-.24-2.64v-.239l-.72-1.92-.24-.96-1.199.24v-1.68l-.48-.24-.96-3.6-.72-.24-.48-2.88-.48.24h-1.2l-.24.24-.72.24h-.72l-1.2.24-.96.24-.719.24h-.24v-.24l.24-.24-.24-.24-.24-.24-.72-.24-.24-.24-.24-.24-.48-.479-.48-.48-.72-.72-.24-.72h-.24l.24-.24-.24-.24v-.48l-.48-1.2-.48-.72v-.96l-.24-.48v-.24l-.48-.96v-.96l-.72-1.2-.24-.48-.24-.48V436.764l-.24-.48-.72-.48-.24-.24-.24-.48v-.48l-.72-.24h-.479l-1.44.72-1.2.48-.96.24-.96.24-.96.24h-.24l-.48.24-1.68.72-.24.24-1.439.48-1.2.48-.48.24-.48-1.2-.24-.48-.72-1.44-.48.48h-.24v.24l-.24.48-.24.72v.24l-.72.72v1.68h-.48l-.48.48-.72.24h-.24l-.72.24-.479-.24-.24-.24-.24-.24v-1.2h.48v-.96l-.24-.96V431.003l.24-.24v-.96h-.96l-.24-.24-.24-.24v-.24H456.91l-.24-.24v-.48l-.24-.24-.24-.24h-.48v-.24l-.24-.24v-.72h-.72l-.24-.48v-.24l-.48-.719h-.24v-.48l-.24-.24v-.24l-.48-.72-.48-.48v-.24l-.24-.24v-.24l-.24-.24v-.72l-.24-.24v-.96h-.239v-.48l.24-.96v-.72l-.24-.96-.24-.72v-1.2l-.48-.48v-.24l-.24-.24V412.526l.24-.24-.24.24-.72.24-.48.48-.72.48-.48.24h-.24l-.72.48h-.24l-.24.24-.24.24-.72.48-.96.24-.72.48-.24-.24v-.48l-.24-.24v-.72l-.24-.48v-.24l.24-.48V410.605l-.24-.48v-1.92l.24-.48.24-.24v-.72l-.24-.24v-.24l.24-.24v-.24l.24-.24v-1.2h1.44l.24-.24h.48v-.24l.24-.24v-.48l.24-.24.24-.72h.24v-.239l.48-1.44.24-.48v-1.44l.24-.72v-.48l-.24-.48-.24-.24-.24-.72-.24-.48-.24-.72-.24-.72v-.24l-.24-.24.48-.24v-.24l.48-.72v-.72l-.48-.24v-.24l-.48-.24-.24-.24-.72-.959v-.72l-.24-.24v-1.68l.24-.48.48-.48 1.44-.48 1.68.24.96.24h.48l1.2.48.48.24h.96l.48-.48v-.24l.48-.48v-.48l.24-.24.48-.48h.24l.72-.72.48-.24.24-.48h.24l.48-.24h.48l.72.24.24.24.24.24.24.48.48.24.239.24h1.2l.96-.24.24-.24v-.24l.24-.48v-.24l.24-.24.48-.24h.24l.96-.24.24-.24.24-.48v-.96l-.48-.72-.48-.72V377.489h.24l.24-.24.48-.24h.48l.24-.24h.48l.48-.24.96-.24.96-.96.959-.48H472.028l.96-.48 1.68-.48.72-.24.72-.48v-.48l-.24-.24h-.24l-.24-.24h-.24l.24-.48.24-.24.48-.48.24-.24.72-.72.959-1.2.24-.72.24-.24v-.24l.72-.48.48-.24.24-.479.48-.24.96-.72.72-.48h.24l.96-.72.72-.96.48-.48.24-.48v-.48l-.24-.48-.72-.24h-.24l-.24-.24v-.72l.48-.24.96-.24.72-.24.72-.48.48-1.2.24-.48v-2.399l.239-.24.24-.24.48-.72.72-.24.48-.72.48-.72v-2.88l-.24-.72.72-1.92.48-.96.48-.48.48-.48.24-.48h.24l.96-.96.24-.239 1.92-.96.72-.24.479-.24.48-.24.72-.24.72-1.2.24-.48.72-.96v-.96l.48-2.64.48-.72h1.2v.48l.24.48v.48l.24.72h.24l.24.72.72.48.48.24.48.48 1.199.96z", + center: [495, 410], + population: 34003, + area: "157,042 ha", + defaultColor: "#468135" + }, + { + name: "Tegalampel", + title: "Kecamatan Tegalampel", + deskripsi: "Tegalampel adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini hanya berjarak sekitar 2 Km dari ibu kota Kabupaten Bondowoso ke arah utara. Pusat pemerintahannya berada di Desa Sekarputih.", + laju: "-0,81", + gambar: "/kecamatan/tegalampel.jpg", + komoditastertinggi: "Padi
(13.700 ton)", + path: "M356.12 351.57v.72l.24.48v.48l.24.24v2.88l.24.48.24.48v.24l.24.24v.48l.24.24v.48l.24.48-.24.24V362.37l-.24.24v.48l.24.72.24.72.24.96.24.239.24.72.72.96.24.24v.96l-.48 1.2v.72l.48.72h.24l.48.24.24.24.24.48.24 1.2.24 1.2-.24 1.68v.24l-.24.72v.479l.24.24.24.72v.48l.24.24.72 1.92.48 1.2.24.24v.48l.24.48.24.72.96 1.92.48.96.72 1.44.48 1.679.72 2.16.24.96.24.48.72 1.68.48.96.24.48.24.72.48 1.44v1.2l.24.479.479.24v.24l.24.72h-.24l-.24.96-.24.48-.48 1.2-.24.72h1.2v-.96l.24-.24v-.24h.24l.48.24h.24l.24.48.24.24.24.24h.72l.48.24.24.24h.24v.72l.24.24.48.48.96.96.24.48v-.48l-.24-.48v-.24l.24-.24.24-.48-.24-.96.24-.24.24-.24.24-.72.48-.48.72-.48h.24v.24l.24.96.24.24h1.199l1.92.24 1.92.24h.72V409.166l-.24.48v2.88l-.24.959v1.44l-.24.96-.24.72v.24h-.24l.24.24.24.24v.24l.48.24h.24v.24h-.72v.72l-.24 3.12-.24 2.16-.24 1.199v1.68h.24v.72h-.24l-.24.24-.24.24-.24.24-.24.24-.24.24h-.48l-.48-.24-.24-.24-.24-.24-.48-.48-.48-.24-.24-.24h-.24l-.24.24-.24.48.24.24v.96l-.24.24h-.48l-.24-.24-.24-.24v-.24l.48-.72v-.48l-.24-.24-1.68.24-.48.24-.24-.24h-.48l-.48.48-.24.24-.24.48v.72l-.24.72v.72l-.24 1.2v.96l.96.48-.24.48v.24l-.48 2.399v1.44l-.24 1.2-.24.24-.24.48-.24.48-.24.72v.24h-.24l-.96.24h-.239v.24h-.24v.24l-.24.48v2.16l.72.72v.72l-.24.24-.24.24-.72.96v.24l-.24.479-.72.48h-2.16v1.2l.24.72v1.92l-.24.72-.24.48h-.24l-.24-.24-.24.24H365v.24l.72.72v.24h-1.2l-.24-.24v-.24l-.24-.24h-.48l-.24.24h-1.44l-.719-.96h-.72l-.24-.24-.24-.24v-.72h.24v-1.44l-.24-.24-.72-.24h-.96l-.24-.24v-.48h-.96l-.48-.24v-1.2l-.48-.24h-1.68l-.24-.24-.72-.24-.72-.24-.719-.48-.24-.24h-.72l-.24-.24-.72-.48h-.72l-.48-.24h-1.44l-.24.24h-1.44l-1.44-.24-.48-.24h-.719l-.48-.48-.24-.72-.24-.24-.24-.96-.24-.72v-.48l-.24-.24h-.48l-.96.48h-.24l-.24.24-.48 1.2-.72.72-.24.24h-.96v.24-1.2l-.24-.24-.24-.24h-.24l-.48-.24h-.24l-.24.24-.24.24h-.24v-.24h-.24l-.479-.24-.72.24h-1.2l-.48.24h-.96l-.48-.24-.72-.48-.48-.24-.48-.24-.48-.48h-.24v-.24l-.48-.24h-.96l-.48-.48-.719-.96-.48-.24-.72-.24h-1.2l-.48-.24-.48-.24h-.24l-.24-.24.24-.72v-.239l.24-.72-.24-.48-.48-.48-.24-.24-.48-.72-.96-.96-.72-1.2-.24-.72.24-1.2v-.48l.24-.48.24-.24.24-.24.72-.72.72-.72.24-.24v-1.2l.24-.48v-.24l.24-.719-.24-.24v-.24h-.24v-.24l.24-.96-.24-.48v-.48l-.24-.72v-1.68l-.24-.24v-.24l-.24-1.2v-.24l-.24-.24-.24-.24-.24-.24-.24-.24-.48-.24-.24-.24v-.96l-.24-.48-.24-.24v-.48l-.24-.24v-.479h.72l.24-.48v-.48l-.24-.96v-.72l-.48-.24h-.96l-.48-.24h-.48l-.479-.48-.24-.24-.48-.24-.48.24-.48.24-.72.24-.48.24h-1.68l-.24-.24-.24-.24v-.48h-.24v-.24h-.24l-.48-.24-.48-.24h-1.44l-.24-.24-.24-.24-.239-.24-.96-.24h-1.92l-.48.48h-.96l-.48-.72-.72-.24-.72.24-.48.24-.24.24-.48-.24h-.24l-.24.24H297.808v.24l-.24.24h-.24l-.24.48h-1.68l-.48-.24h-.24v-.24l.24-.48v-.48l-.24-.24v-.48l.48-.24.24-.24v-.96l-.24-.24-.24-.24h-.72v-.48l-.24-.24-.24-.24-.48-.24-.48-.24-.24-.24v-.72l-.24-.24-.24-.479-.48-.72-.48-.24h-.48l-.24.24v.96h-.96v-.24h-.239l.24-.24v-.96l-.48-.72-.24-.24-.24-.48-.48-.48-.48-.72-.48-.72h-.24l-.48-.48-.24-.24v-.48l-.24-.48v-.24l-.48-.24h-.48v-.72h.48l.72.24h1.92l.48-.24H297.328l.239-.24h.96v-.24h.24l.24-.24h.24l.24.24h.96l.24.24v.24h.72l.24-.24h.48l.24-.24.24-.24h.24v-3.599l.48-.48.48-.48h.72v-.24l.48.24v-.24l.24-.48.24-.24v-.48l.24-.48-.24-.48-.24-.96v-.24l-.24-.72v-1.44l.24-.72.24-.48.24-.96.24-.24v-1.44l-.24-.72v-.24l-.24-.479v-.24l.24-.24h.48v-1.2l.24-.24h.719l.48.72.24-.24.48.24.48.24.24.48.48-.24.96-.24.72.24h1.2l1.92-.24 1.199.96.72.24.96.24.96-.24.96.24.48.48h1.2l.48.96h.24v-1.2l.24-.96v-1.2h.24v-.96l.24-.24.24-.24v-.48h.24l1.68-.72 1.199-.72.48-.48.72-.96-.72-.48h-.24v-.24l-.24-.48-.48-.24-.24-.24-.24-.48-.24-.48-.24-.24-.24-.48v-.96l.24-.24-.96-1.199-.24-.48v-.96l.24-.48v-.24l.24-.48v-.48l.24-.24.24-.24-.24-.72v-.24l.72-.24.48-.24h.24l.24-.48.24-.24-1.44-.48h-.24l-.24-.24-.24-.24v-1.2h1.68v-.24h.24v-.48l-.48-.24h-.24l-.24-.24-.24-.24-.24-.48-.24-.24.24-.24h1.2l.48.24h.24l.24-.24v-.959l.24-.24.24-.24v-.24l-.24-1.2v-.24h-.24l.24-.48v-.48l.72.24.24.24.24-.24.24-.72v-.72l.24-.24.72-1.2v-1.2l-.24-.48v-.24l-.24-.48-.24-1.2-.48-.96v-.48l.72-1.199.24-.48.48-.24.48-.24h.48v-.24l.24-.24v-.48l.24-.48.24-.72v-.24l.24-.72v-.72l.24-.48.48-.24.48-.48.48-.24h.24-.24l-.24-.24h.96l.479.24h.72l.72.24 1.44.24.48.24.96.24h2.16l1.68.24h.719l.96.72.96.72.24.24 1.68 1.2 1.44 1.2.24.24h.24l.72.72 1.2.72 2.159 1.92.72.96.96.72 1.2 1.68v.48l.72 1.2v.96z", + center: [335, 400], + population: 26.571, + area: "37,027 ha", + defaultColor: "#6FAB49" + }, + { + name: "Tenggarang", + title: "Kecamatan Tenggarang", + deskripsi: "Tenggarang adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia.", + laju: "-0,76%", + gambar: "/kecamatan/tenggarang.jpg", + komoditastertinggi: "Padi
(27.299 ton)", + path: "M404.595 440.843v1.2l-.24.48-.24.24-.72 1.2.24.24.24.48v1.2l.96.96h.24v.24l-.24.48v.48h.24v.239h.24l.48.24.24.48.48.48.48.96.24.24-.24.96-.24.48.24.48v.72l.24.48v.96l-.24.72v.96l-.24.24.24.24.48.72.24.48v.24l.24.96V461l-.24.24v.24l.24.24v.72l-.24.48v.24l-.24.48-.24.48v.48l-.48.48h-.24l-.24.48v1.68h.24l-.24.24v.48l.24.24v.48l-.24.24v.24l.24.24.24.24-.24.48v.72l.48.24h.24V473l.48.48.24.24.48.24.24.24.24.48.48.96.24.24v.48h.24v.48l.24.24v.24l.48.48.48.24.24.48.48.24.48.24.24.48v.48l.24.48v.72l.72.48.24.24.24.24v.48l-.96.959v.24h-1.2l-1.68-.24-1.2-.24h-.96l-.48-.24h-.72l-1.2-.24-.72-.24-.48.24-.24.72.24 1.2.24 1.2v1.2l-.24.48-.48.24-1.44.96-1.68.48-.96.48h-.24l-.72.24-.24.24-.96.24-.719.24-.72.24-.48.24-.96.96v.24l-.24.24v.24l.24.24v.72l.48.48.48.72.48.479.24.72.24.24.24.48.48.48.24.24.24.48.24.24.24 1.2v.48l.72 1.2.24.48.48.48.24.48.72.96.24.24v.72l.24.48v.48l.24.48v.24l.24.48v.719l-.24.24-.24.24v.24l1.2.48h.24l.24.72.48.72v.48l-.48.48v3.12l.48.24.24.24.24.24.48-.48h.96l.24.24.24.48.239.48h.72l.24.24.24.24.24.24h.96l.24.24.24.24v.48l.24.24v.48l.24.72.72.959v.48l.24.24.24.48v.72l.96.96.48.48.24.24v.48h.24v.24l.24.24.48.24.24.24v.24h.24l.48.24.48.24.479.24v.24l.24.24.48.48.24.48.24.48 1.44 1.44.48.72v.96l-.24.479v.24l.48.96v.48l.24.72.24.48h-.24l-.48-.48-.24-.24v-.24l-.48-.24-.48-.48-.24-.24h-.24l-.24-.24h-.96l-.24-.24h-.24l-.24-.24h-.48l-1.44.24v-2.16h-4.32l-.96.24H402.676l-.72.24v-3.6l-.24-.48v-.48l-.48-.48-.96-.48-1.44-.24-1.919-.48h-2.88l-.24-.72-.24-.72h-.24l.24-.48v-.24h-.24l-.24-.24-.24-.48-.48-.72-.48-.719-.24-.24-.72-.48h-.24v-.24l-.48-.72-.24-.48-.48-.48-.48-.72-.24-.24-.719-.72-.48-.48-.48-.24-.72-1.2-.96-.72-.72-.24-1.2-.24h-.96l-.96-.24-.96-.48-1.199-.72-.96-.24h-.48l-.24-.24-.48-.24-.24-.24h-.72l-.24-.24v13.92h-1.92l-.96 1.2-.72.24-2.879 1.68-.48-.48-.48-.48-.96-1.2-.96-.72-.72-.48-.96-.72-.24-.48v-.72l-.24-.96-.24-.72v-2.64l-.24-.72-.48-1.2-.48-.24-.48-.48h-.48l-1.439-.48-.24-.48-.72-.96-.24-1.2-.24-.96v-.48l-.24-.72v-.959l-.48-.24h-.24l-.48.24-.72.24h-.72l-.24-.24-.48-.72v-.48h.24-.24.24l.24-.24-.24-.24v-.24h-.24v-.48h-.48l-.96-.24v.72H353l-.479-.24h-.72l-.96-.24-1.44-1.2h-1.92l-1.68-1.2-1.44-1.2-.24-.24-.48-.48-.479-.24h-.24l-.48-.48-.24-.24-.24-.24h-.24v-.24l-.48-.48-.24-.48h-.24v-.48h-.24v-2.159l.24-.48.72-.72.72-.24.24-.48v-.96l-.24-.48-.24-.72-.24-.48v-.96l-.24-.24-.24-.48v-.72l-.48-.72-.24-.48-.24-.72.24-.48v-.48l.48-.72v-.24l.48-.719.24-.48v-1.2l.24-.48.48-.24.48-.24.72-.48.48-.48.48-.24h1.92l.24-.24.24-.24.24-.48.24-.24v-.24l.72-.24V479h.24l.24-.24v-.24l.24-.72v-.48l.24-.24.72-.48.48-.48.24-.24.48-.48.48-.48.719-.96.48-.72h.48l.24.24h.72v-.24l.24-.479v-.24l.24-.24h1.44l.24-.24.48-.24.24-.24.48-.24.72-.48 1.44-.72.959-.48.24-.24.48-.48.48-.24.24-.24v-.24l.24-.48v-.48l.24-.24v-.24l.24-.24.24-.24.48-.48.48-.72.48-.72.24-.48.48-.72.72-.96.24-.48.24-.48.24-.479v-.24l.24-.24h.48v-.24h.24v-.24l-.24-.48v-.24l.24-.24.24-.24.24-.48.24-.24v-.24l.24-.24.48-.24h.48v-.48h-.24l-.24-.24v-.24l.48-.24.959-.48.48-.24.24-.24v-.72l.24-.24.48-.24.24-.24.96-.48.48-.24.48-.48.24-.24h.48l.72-.24.72-.24.72-.48.72-.48.24-.24h.24l.719-.72.96-.719.72-.24h.24l.48-.24h.24l.48-.24.72-.24.48-.24v-.24l.72-.24.48-.48.24-.48h.24l.24-.72.48-.48v-.72l.24-.48.48-.24.24-.24h.24l.72-.24 1.199-.24 1.2-.24.48-.24.48-.24.48-.48.48-.48.24-.24h1.92l.48-.24h.48l.24.24.72.24.48.24H397.875l.24-.48.24-.48.24-.24.24-.24.24-.48v-.72l-.24-.48-.24-.48-.24-.479-.24-.24v-.72l.24-.24h1.2l.72-.48.48-.24.72-.48.24-.48h.72l.72-.48v.48l.24.48v1.2l.24 2.16v.48h.24v.24l.24.48.24.48v.72h.24z", + center: [375, 482], + population: 43.973, + area: "25,795 ha", + defaultColor: "#BD5538" + }, + { + name: "Tlogosari", + title: "Kecamatan Tlogosari", + deskripsi: "Tlogosari adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 17 Km dari ibu kota Kabupaten Bondowoso ke arah tenggara. Pusat pemerintahannya berada di Desa Pakisan. Wilayah bagian selatan kecamatan Tlogosari terdapat Gunung Raung.", + laju: "-0,80%", + gambar: "/kecamatan/tlogosari.jpg", + komoditastertinggi: "Tebu
(31.669,00 ton)", + path: "M460.269 509.477h1.44l.48.24.24.24h1.92l.72-.24h.24l.72-.24h.48l.72.24h2.159l.48.72h.24l.24.24.24.24h.48l1.44.48.48.24h1.44l.48.24.48.24.48-.24h.48l.24.24.48.24h.72l1.439.48h.48l.96.24h.72l.48.24h.24l.24.24h.72l.24.24.24.48.24.24.72-.24.48.24h.48l1.679.48h.72l.96.48h.24l.24.24h.48l.48.24.48.24.48-.24v.24h.72l.48.24h.72l.24.24h.24l.24.24v1.2l-.24.48-.48.719-.48.48-.48.72.24.72v.48l.24.24v1.2h.24v1.68l.24 1.68v.24l.48 1.2v.96l.24.72v.72l.24.48v.479l.24.48-.24.24h.24l.24.48v.24h.24l.24.24.24.24h.48l.24.24.239.24.24.24v.96l.24.24v1.44l.24.24v.24l.24.24v.72h.24v.72l.24.24v.24h.24v.24l.24.24.48.48.24.24.24.24.24.24h.24l.24.48.48.24.24.48.24.48v.239l.24.24h.24l.72-.48.72-.24h.72l.24-.24h.48l.24.24H506.103l.24-.24.48-.24.24-.24h.96l.24-.24h.24l.24-.24v.24l.24.24.24.24.24.48h.24l.96-.24h.96l1.2-.48 2.159-1.44h.96v.24-.24l.48-2.64.24-1.2-.24-1.68-.24-.48-.24-.24v-1.68l.48-1.199.24-.24.48-.48.24-.24 1.92-.48v.24l.24.24.24.24.48.24.48.48.48.24.24.24.72.48.24.48.24.24.24.24.479.24.24.24h.96l.48.24.24.24.96.48.24.24v.96l.24.48v1.44l.72.24v.24l.24.24h.24l.48.24.48.72.96.72.24.24v.96l-.24.48v.24l.24.24.24.24v.24h.24l.24.239h.24v-.24l.24-.48.24-.24h.24v1.68l.24.48.239.48.24.24.48.24h.24l.48.48.24.24.72.24h.24l.48.24.48.48.72.24.48.24h.72l.48.48.24.48.24.24v.24l.24.24.96.24h.48l.719 1.44v.24l.48.24.24.24.48.48.72.48.48.24.24.24h.24v.24l.48.48.48.72.24.479.24.24.48.24.48.24.24.24.24.24.24.24.24.24h.24l.24.24.24.48.48.24.24.24.48.24v.24l.24.24h.48l.479.24h.24v.72h.24v.24l.24.24-.24.24.24.24h.72v.24h.24v.24l.48.24.24.24.24.24h.24l.24.24v.24l.24.24v.24l.72.24.24.24.24.48.24.24v.24l.24.24.96.48.48.24.72.48h.24v.24l.48.24.24.24h.719l.24.24.24.239h.96v.72l-.24.24v.48h.24v.24h.24l.24-.24.24-.24h.72l.24.48v.24l.24.24.24.24.24.24.24.24.24.24h.24v.24l.24.24h.24l.24-.24h.24v-.24l.24-.48h.48l.24.24v1.44l-.24.24v.24l.24.24h.24l.24.24h.24v.48l.24.24h.96l.48.48v.24l.239.48h.24v.24h.24v.24l.24.24h.24l.24.24v.24l.24.24v.48l.24.24v.24l.24.24.24.24.24.24.48.24.24-.24.24-.24.24.24.24.24v.24l.24.24v.24l.24.24v-.24h1.2v.24l.24.24v.239l.48.48-.24.48v.72l.24.24h.24l.48-.24.48.24.48.24v.24h.24v1.44h-.24v.24h-.24v.72l.24.24.24.24.24-.24h.959l.24.24.24.24v.48h-.24v.72h.24v.24h.96l.24.24.24.24v.48l-.24.24v.72h.24l-.24.24v.72l.24.24.24.24v.48l.24.24v.24h.24v.24h.24l.24-.24h.72v.24h.24l.24.239v.24l.24.24v.24h.24l.24-.24h.24v.24h.24v.48h.24l.24.24h.24l.24.24v.24l.24.24.24.24.24.24h.48l.24-.24h.48v.24l.239.24-.24.24h.24v1.68h.24v.24h.48v.24h.24v.24h.24v.24h.24l.24.24h.48l.24.24v.24l.24.24h.24l.24.24h.24l.24.24v.24l.24.24h.48v.24h.24v.24l.24.24.24.24v.24h.24v.24h.24v.72h.24l.24.24.24.24h.24v.72h.24v.24h.96v.24h.24v.239l.24.24v.24h.24v.48h.24v.48l.239.24v.48l.24.48v1.68l.24.96.48.72.72.96.24.96.48.96v.48l.24.96-.24.48.48.24.72.24.24.24.48.479h.72l.48.24.48.48.72.72h-.24.24l.24.48v.48l.24.48v.24h.24l.24.24h.48l.24.24.24.48.24.24.479.48v.48l.24.72.24.24v.72l.48.72.24.72.72.96.72.72.72.48.48.24.48.24v.24l.24.24v.719l.24.24.24.48.48.48.24.24.48.24.96.24h.48l.48.24.479.48.24.24.24.24v.48l.24.48.24 1.2.24.24.24.48.24-.24h.96l1.2.24h.24v.24h.24v.72l.24.24.24.24.24.72v.24h.24l.24.24.24.48v.72l.24.96.24.719.48.48.72.48.48.48.48.72v.24l-.24.48-.24 1.2.24.24.24.24v.24l.24.24-.24.24-.24.72v.96l-.48.72v1.44l.72 1.2.24.72.479.239.24.48.24.72.24.24h.48l.48.24.72.72.48.72.24.48.48.96.24.24h.48l.72.48.24.24.72.72.48.24.24.24.48.24.24.48v.24l.24.48-.24.48v1.44l.24.72.24.24.48.24.719.48.48.239.48.48v.24l.48.72.24.72v.48l.24.72.24.96.24.24.72.48v1.2l.24.48v.48l.24.48.48.48.24.72.24.48.24.48v1.68l.24.239v.48h.24l.48.24.24.24v.24l.48.96.24.48.24.24.24.48v.96l-.24.24v.72l-.24.48.24.48.48 1.2.24.72.48.96.72.96.479.48v.48l.24.48v2.639l.24.48.24.24v.48l.72.48.48.48.24.48.24.48.24.24h.24v.24l.24.48.24.24.48.48.24.24.24.24h.48v.24h.72l.48.24.48.24.48.24.48.72.48.24.24.48.24.24.479.24.48.24.48.48.24.48.48.239v.24l.24.48.48.48.48.48.24.24.24.24.48.48h.24l.24.24.48.24h.48l.24.24h1.2l.24.24.24.24.72.72v.24l-.48.72v.24l.24.72.24.48v.24l.24.24v.48l.24.24v.24l.239.24.24.48.24.24h.24v.24l.24.24.48.48.48.72h.24l.24.48v.239l.24.24.24.48.48.24.24.24.24.24.24.48.48.24v.48l.24.24-.24.24-.24.48v2.16l-.24.48v1.2l.24.24v.24l.24.24v.24l.24.24v.24h.24v1.92l.48.72h.24l.24.479.24.24v.24l-.24.24v.48h.24l.24.48.24.24.24.24v.48l.24.24v.24l.24-.24.24-.24.24-.24v-.24l.24-.48.24-.24h.719l.24.24.24.24h.24l.48.24h.24l.72.48.48.24h.96l.24.24v-.24h.72l.24-.24h.96l.24.24h.24v.48l.48.24h.96l.48-.24h.48l.479.48.72.72.24.48.24.48v.48l.72.96.24.72.48.96.24.24-.72 1.2v.24h.24l.24.24v.24l.72.24.24.24.48.239h.24l.48.48h.48l.48.24V735.058l.24.24.48.48.24.48v.48l-.24.24-.24.48v.72l.24.48.24.24v.24l.24.48-.24.48v1.2l.24.24-.24.48-.24.24.24.24.72.72.24.479.48.48v.96l-.48.24h-1.68l-.48.24-.24.24-.24.24-.24.24-.24.24-.24-.24h-.48v-.24h-.48l-.24-.24h-.24l-.24-.24h-.24v-.24h-.24l-.24-.24H675.045l-.72.24-.72.24-.96.24-.72.24-.48.48-.72.72-.96 2.16-.24.24-.24.24-.24.48-.24.48-.24.24-.239.24-.24.48-.24.48-.48.24-.24.72-.48.48-.24.24-.24.48-.24.24-.48.24-.48.479-.24.48-.48.24-.24.48-.48.24-.24.48-.48.24-.48.48-.24.24-.24.24-.48.24-.48.24-.24.24-.24.24-.48.48h-.24l-.24.24-.479.24h-1.92l-.48-.24h-.48l-.72-.24-.72.24h-.96l-.48.24-.48-.24h-1.2l-.24.24h-.959l-.48.24h-.48l-.24.24h-.24v.72V758.576l-.72-.48H645.528l-1.44-.48-.72-.48-.96-.72-.24-.24-.24-.24-.24-.48v-.24l-.24-.24-.479-.24v-.24h-.48l-.24-.24h-.24l-.24.24h-.48l-.24.24h-.24l-.24.24h-1.68l-.24-.24v-.24l.24-.24v-.24l1.2-1.44.24-.24.24-.24v-.24l.24-.24v-.48l.24-.24v-.48l.24-.24v-.24l.24-.24.24-.24v-.72l-.24-.24-.24-.24-.24-.48-.48-.48-.24-.24-.24-.24v-1.44l.24-.24v-.479h.96l.24.24.48.24.24.24.48.24h.24l.24-.24-.24-.24.24-.24h.24l.24-.24.24-.24.24-.48v-.96l-.24-.24h-.24l-.24-.24h-.24l-.24-.24-5.04.48-1.2-1.44-1.2-.72-.72-1.2-.479-.72-1.44-1.92-.72-.24-.48-.96v-.72l.24-1.2v-.24l-.24-.48V730.979l-.24-.48-.24-1.2V726.658l-.48-.96-.24-1.68.24-.72-.24-.96v-.72l-.24-.959-.24-.72-.24-.96v-4.08l-.24-.96.24-.72v-1.2l.24-1.92v-.96l-.24-1.199-.96-.24h-.24v-.24l-.48-.24v-.24l-.24-.24-.72-.24-.24-.24h-.24l-.24.24-.24-.24h-.48l-.479-.24-.48-.24-.96-.24h-.24l-.72-.24-.48-.48-.24-.24h-.72l-.24-.24-.48-.48-.24-.24v-.48h-.24l-.48-.48v-.72h-.24v-.48h-.24v-.48l-.24-.48v-.24l-.24-.24v-.24h-.24v-.24l-.24-.24-.48-.48v-.48l-.24-.72-.24-.479v-.24h-.48l-.48-.24h-.239l-.48-.48-.24-.24h-.24l-.96-.24-.48-.24-.72-.24-.96-.72h-.24l-.24-.24v-.24h-.48l-.48-.24-.48-.48-.48-.48-.24-.48v-1.44l-.24-.48-.24-.48h-.24v-.48l-.72-.72v-.48l-.72-.96-.479-.24-.24-.24h-.48l-1.92-6.479-.24-.24v-.24l-.48-.24-.24-.24-.48-.24-.72-.24-.24-.24-.48-.48v-.24h-.24l-.24-.24-.48-.48-.24-.48-.24-.24-.24-.24-.48-.24-.72-.24-.239-.24-.24-.48-.48-.24-.72-.24h-.72l-.24-.24-1.2-.959-.48-.24h-.48l-.48-.24-.24-.24-.24-.24-.72-.48h-1.2l-.48.24H586.976l-.96.24H582.655l-.24-.24-.48-.24-.24-.24h-.24l-.48-.24h-.96l-.48-.24-.48-.24-.24-.24-.24-.72-.479-.48h-.24l-.24-.24h-.72l-.24.24-.24.24-.24-.24h-.24v-.24h-.24l-.24-.24-.48-.48-.72-.24-.24.24-.24.48-.24-.24H570.896l-1.68-.96-.239-.24-.48-.24-1.2-.48-.48-.48-.24-.24h-.48l-.24-.24-.72-.48v-.24l-.24-.24h-.24l-.72-.48-.24-.24-.48-.48h-.96l-.24-.24-.48-.24-.48-.24-1.199-.48-.72-.24-.48-.479-.48-.24-.48-.72-1.2-1.2-.96-.72-.72-.72-.48-.24-.24-.48-.24-.24-.48-.48-.24-.48-.24-.24-.24-.48h-.48l-.72-.24-.24-.24-.239-.24-.48-.48v-.24l-.96-.96-.72-.48-.72-.24-.72-.48h-.48l-.48.24-.48-.24h-.48l-.48.24-.72.24-.48.48-.24.24-.24.24h-.96l-1.199.24-.48-.24h-.48l-.96-.24h-.72l-.72.24h-.48l-.72.24h-.48l-.96-.24h-.72l-.72-.24h-.48l-.479-.48-.48-.24-.48-.24h-.48l-.24-.24-.48-.48h-.24v-.24l-.72-.48-.24-.24-.72-.479-.48-.48h-.24l-.72-.24h-.24l-.48-.24v-.96h-.24l-.24-.24h-.72l-.72.24-.24-.24-.479-.24v-.24l-.48-.96-.24-.24-.24-.24-.24-.72-.48-.24-.72-.72v-.24l-.48-.48-.48-.48v-.48l.24-.24.24-.24-.24-.24v-.24l-.48-.24-.24-.48-.24-.24h-.48v-.24l-.24-.24h-.24l-.48-.24-.24-.24-.24-.48-.24-.24-.24-.24h-.48l-.24-.24-.24-.479h-.48l-.48-.24-.48-.24h-.959l-1.44-.24h-.72l-.48-.24-.48-.24h-.24l-.48-.24-.48-.24-.48-.24h-.96l-.72-.72-.24-.24h-2.159l-.24-.24-.72-.24h-.72v-1.44l-.48-.96-.24-.96v-.48l-.24-.24-.24-.24-.24-.24h-.24l-.24.24h-.24l-.48-.24v-.24l-.24-.24v-.24l-.24-.48h-.72l-.48-.24-.96-.96-.24-.24h-.96l-.719.24v-.24l-.24-.24-.24-.24v-.24h-.72l-.48-.24-.24-.239-.48-.48h-.48l-.48-.24h-.48l-.24-.24-.24-.24-.24-.48v-.24l-.24-.72-.24-.24-.24-.24h-.24l-.24.24-.72.24v-.24l-.24-1.2.24-.96v-.48l-.24-.24h-.24l-.24-.24-.96-.48-.24.24h-.239l-.48.48h-.24l-.24-.24-.48-.24-.72-.48-.48-.24-.24-.24-.24-.24-.24-.48-.24-.48-.24-.24-.96-.72-.24-.48v-.48l-.24-.24v-.24h-1.44l-.24-.24v-.719l-.24-.24-.24-.24-.48-.24-1.199-.48h-.24l-.48-.48-.96-.48 1.2-1.68.48-1.44.24-1.44v-.24l.24-1.68.24-.96.24-.96.72-1.439.24-.96v-.72l-.96-.48-.48-.24.48-1.44.24-.72.48-1.44.24-1.68.24-1.2.24-1.44.48-1.679v-1.2l.24-.24.24-.24v-2.4l-.24-.72v-1.2l-.24-1.2-1.44.24h-.24l.24-.24-.24-.72v-.48l.24-.24v-1.68l.24-.48v-2.159l-.48-.72-.72-.24-.24-.24-.24-.24v-.24l-1.2-1.92-.24-.24-.96-.96-.48-.48-.72-.48v-1.68l-.72-1.68-.24-.72-.24-.24-.24-.239v-.24l.24-.96v-1.44l-.48-.72-.72-.96-.48-.96-.24-.96-.24-.48-.48-1.2v-.24l-.72-.96-.959-.96-.72-.96v-.48l-.48-1.679v-.48l-.72-1.44-1.44.24v-.72l-.24-.24v-.48l-.24-.72-.24-1.44-.24-.48v-.24l-.24-.72h-.24l-.24-.48-.96-.48v-.24l-.24-.96h-.48l-.24-1.439h.24-2.159l-2.16.24h-1.68l-1.2.24h-2.64l-.72.24v-.24l-2.399.24-2.4.24v-.24l-.24-1.2v-2.4l-.24-2.16v-1.2l-.24-1.92v-1.2h.24v-2.16l-.24-.479-.48-.24-.72-.24-.48-.48-.72-.48-.48-.24v-.24l-.24-.24v-1.68l.24-.72v-1.2l-.24-.96v-3.12l.24-.24.48-.24.72-.24.48-.24.48-.24h.48l.24-.24.48-.24 1.2-.479.48-.24.72-.24.96-.48-.24-.24-.96-.24h-.72l-.24-.24v-1.44l-.24-.24.48-.48.48-.24.48-.24.48-.48.48.24h.24l.96-.96 1.2-.48.48-.48v-.24l1.2-.48 1.2-.48h.24l.48.24.48.24.24-.24h.24l.48-.24.48-.24.72.24.24-.72.24.24.479-1.92.24-.48v.24z", + center: [540, 610], + population: 47.078, + area: "110,92 ha", + defaultColor: "#E0A257" + }, + { + name: "Wonosari", + title: "Kecamatan Wonosari", + deskripsi: "Wonosari adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 10 Km dari ibu kota Kabupaten Bondowoso ke arah timur. Pusat pemerintahannya berada di Desa Wonosari.", + laju: "-1,28", + gambar: "/kecamatan/wonosari.jpg", + komoditastertinggi: "Tebu
(50.754,73 ton)", + path: "M448.03 396.926l.24.48v.48l-.24.72v1.44l-.24.48-.48 1.44v.24h-.24l-.24.72-.24.24v.48l-.24.24v.24h-.48l-.24.24h-1.44v1.2l-.24.24v.24l-.24.24v.24l.24.24v.72l-.24.24-.24.48v1.92l.24.48v2.639l-.24.48v.24l.24.48v.72l.24.24v.48l.24.24.72-.48.96-.24.72-.48.24-.24.24-.24h.24l.72-.48h.24l.48-.24.72-.48.48-.48.72-.24.24-.24-.24.24v1.68l.24.24v.24l.48.48v1.2l.24.72.24.96v.72l-.24.96v.48h.24v.96l.24.24v.72l.24.24v.24l.24.24v.24l.48.48.48.72v.239l.24.24v.48h.24l.48.72v.24l.24.48h.72v.72l.24.24v.24h.48l.24.24.24.24v.48l.24.24H459.31v.24l.24.24.24.24h.959v.96l-.24.24V437.242l.24.96v.96h-.48v1.2l.24.24.24.24.48.24.72-.24h.24l.72-.24.48-.48h.48v-1.68l.72-.72v-.24l.24-.72.24-.48v-.24h.24l.48-.48.72 1.44.24.48.48 1.2.48-.24 1.199-.48 1.44-.48.24-.24 1.68-.72.48-.24h.24l.96-.24.96-.24.96-.24 1.2-.48 1.439-.72h.48l.72.24v.48l.24.48.24.24.72.48.24.48v1.68l.24.48.24.48.72 1.2v.96l.48.96v.24l.24.48v.96l.48.72.48 1.2v.48l.24.24-.24.24h.24l.24.72.72.719.48.48.48.48.24.24.24.24.719.24.24.24.24.24-.24.24v.24h.24l.72-.24.96-.24 1.2-.24h.72l.72-.24.24-.24h1.2l.48-.24.48 2.88.72.24.959 3.6.48.24v1.68l1.2-.24.24.96.72 1.919v.24l.24 2.64.24 5.52.24 2.16.96 1.199 1.2 1.44h.24l.24.72.72.96.48.24h-1.92l-.48.48v.72h-2.4l-.72-.24v.24l-.24.24v.48h-.96l-.48-.24-.48-.24h-1.2l-.48-.24-.48-.24h-.24l-.48.24-.96-.24-.96-.24-.24.24h-1.44v.24l-.48.24-.24.24H487.387l-.24.24h-.48l-3.12.96h-.24l-.72.48-.24.24-.24-.48-.24-1.2-.72-1.2-.48-1.44-2.159.48-1.92.24-2.16.48 1.2 3.36.72 1.68-1.44.24-.72.24h-.48l-.24.72v.24l-.24.48-.24.479v.96l-.48.24v.24l-.24.24-.24.24h-.24l-.24.48h-.24v.48l-.48.48-.48.96-.24.72-.24.72v.24l.24.24h.72v.24l.24.24.24.24.24.24.48.48.24.24.24.48v.24l.24.24h.24l.24.48.24.24v.24l.48.24.24.24h.24l.24.24v.48l.24.24.24.239v.24l.24.24.24.24.24.24h.24l.24.48v.24l.48.24.48.24.24.48h.24l.48.48h.24l.48.24.48.24h.48l.24.24.24.24h.48v.24l.72.24.24.24h.72v.24h.24l.24.24v.48l-.24.24v.24l-.24.96v.24l-.24.48.24.24.48.24.24.24h.48l.24.24-.24.48-.24.24v.48l-.24.24v.48l-.24.48v.24l-.24.239v.24l-.24.24v.48l-.24.24v.24l-.24.72-.24.72-.48 1.44-.48.72-.24.72-.96-.24h-.48l-1.44-.48h-.72l-.48-.24-.24-.24h-.48l-.48.24-.48-.24-.48-.24h-1.44l-.48-.24-1.44-.48h-.48l-.24-.24-.24-.24h-.24l-.479-.72h-2.16l-.72-.24h-.48l-.72.24h-.24l-.72.24h-1.92l-.24-.24-.48-.24h-1.439v-.24l-.24.48-.48 1.92-.24-.24-.24.72-.72-.24-.48.24-.48.24h-.24l-.24.24-.48-.24-.48-.24h-.24l-1.2.48-1.2.48v.24l-.48.48-1.199.48-.96.96h-.24l-.48-.24-.48.48-.48.24-.48.24-.48.48v-1.44l-.72.48h-.24v-.48l-.24-.24-.48-.48-.24-.24h-.24v-.48l-.24-.24-.24-.24-.24-.24v-.96h-1.2v-.48l-.24-.24-.24-.24-.959-.24h-.48l-.24-.24v-.48l-.24-.24-.24-.24-.72-.48-.24-.24-.24-.24v-1.2h-.24l-.72-.24h-.72l-.48-.24-.24-.24-.48-.24-.48-.72v-.24l-.48-.24-.24-.24h-.24v-.24h-.24l.24-.24.24-.48v-.24l-.24-.24-.24-.24-.48-.24h-.24v-.24l-.24-.24-.24-.72v-1.68l-.48-.24v-.24l-.479-.24-.24-.24-.24-.48v-.24h-.72l-.24-.24-.24-.24h-.24v-.24l-.24-1.199v-2.16l-.24-.24-.24-.48v-.48l-.24-.24v-.24h-.48l-.48-.24-.24.24h-.48l-.96-.48-.24-.24v-.48l-.48-.48-.24-.24v-.72l-.24-1.2v-.24l.24-.48.24-.24-.24-.24h-.24l-.24-.72h-.72l-.24.24h-.24l-.24-.24h-.24l-.239-.24h-.24l-.24-.24-.48-.72H420.913l-.48-.72-.48.24h-.48l-.48.48-.24.24-1.2.24h-.24l-.96-.24h-.24l-.479-.24h-.96v-.24h-.24l-.72-.719h-.48l-.24-.96v-.24l.96-.96v-.48l-.24-.24-.24-.24-.72-.48v-.72l-.24-.48v-.48l-.24-.48-.48-.24-.48-.24-.24-.48-.48-.24-.48-.48v-.24l-.24-.24v-.48h-.24v-.48l-.24-.24-.48-.96-.24-.48-.24-.24-.48-.24-.24-.24-.48-.479v-1.92h-.24l-.479-.24v-.72l.24-.48-.24-.24-.24-.24v-.24l.24-.24v-.48l-.24-.24v-.48l.24-.24h-.24v-1.68l.24-.48h.24l.48-.48v-.48l.24-.48.24-.48v-.24l.24-.48v-.72l-.24-.24v-.24l.24-.239v-1.68l-.24-.96v-.24l-.24-.48-.48-.72-.24-.24.24-.24v-.96l.24-.72v-.96l-.24-.48v-.72l-.24-.48.24-.48.24-.96-.24-.24-.48-.96-.48-.479-.24-.48-.48-.24h-.24v-.24h-.24v-.48l.24-.48v-.24h-.24l-.96-.96v-1.2l-.24-.48-.24-.24.72-1.2.24-.24.24-.48v-1.2h-.24v-.72l-.24-.48-.24-.48v-.24h-.24v-.48l-.24-2.159v-1.2l-.24-.48v-.48l.72-.24h.24l.48-.24.48-.48.48-.96.24-.96.24-.72.24-.24.24-.24h1.2l.24.24.72.24h.48l.24-.24.48-.48.24-.48.24-.48.24-.24v-.72l.24-.48v-.96l.24-.24.48-.24.48-.24.96-.239h1.2l.959-.24.96-.48.48-.24.24-.24h.96l.24-.24.24-.24v-.72l.24-.96.48-.72v-.96l.24-.24.24-.24.48-.48h.72l.48.24h.96l1.2.24.719-.24.72-.24.72-.48.48-.48v-.24l.48-.72.24-.48.24-.72v-1.44l-.24-.72-.24-.479v-1.2l-.24-.24-.24-.72v-.48l-.24-.48v-.24l.24-.24.48-.24.48-.24.24-.24.72-.72.24-1.2.24-.72.24-.72.24-.72v-.96h.24l.48-.24h.24l.48-.24.72-.24.96-.48.48-.24.479-.24.24-.24.24-.24.24-.479v-.48l.48-.72v-.48l-.24-.48.24-.48v-.24h1.68l.72-.48h.96l.72-.24h.48l.72-.24.48-.72.24-.24.24-.24.96-.24v-.24l.719-.24h1.2l.24.24.24.48.24.24.24.24h.72l.48-.24.24-.24.48-.72.24-.72.24-.96v-.72l.24.24v.24l.24.72.24.72.24.48.24.72.24.24z", + center: [450, 462], + population: 40.674, + area: "42,277 ha", + defaultColor: "#468135" + }, + { + name: "Wringin", + title: "Kecamatan Wringin", + deskripsi: "Wringin adalah sebuah kecamatan di Kabupaten Bondowoso, Provinsi Jawa Timur, Indonesia. Kecamatan ini berjarak sekitar 16 Km dari ibu kota Kabupaten Bondowoso ke arah barat laut. Pusat pemerintahannya berada di Desa Wringin.", + laju: "-1.04%", + gambar: "/kecamatan/wringin.jpg", + komoditastertinggi: "Ubi Kayu
(20.440 ton)", + path: "M229.175 283.416h1.68l.48-.24h.48l.24.24h.24l.24.24h.48l.24.24.24.24v.72l.24.24.24.24v.96h.239l.24.24h.24l.24.24h.24l.48.24.24.24.24.48v.24l.24.24v.96l-.24.24-.24.72v.24h-.24l-.48.48v.48l.48.48.24.24h.24l.48.24h.48l.24.24.24.24.24.24h.72l.24-.24.48-.24v-.24l.72.24.24.24h.48l.24-.24h1.44l.24-.24H243.812l.24-.24h.48l.48.24.24.24h.24l.24.48.24.24h.24l.48-.48.48-.48h.24l.72.24h.24l.72-.24h.48l.48-.24h.96l.24.24h1.679l1.68.72.48.24v.24l.72.24h.72l1.68.959.24.24h.72l.48.24h.96l.24-.24.48-.24h.479l.48.24h.24l.72.24.48.24.48.24v.24h.48l.48-.48.48-.48h.24l.24-.24.24-.24v-1.92l.24-.48v-.24l.24-.24v-.24l.24-.24.48.24.24.24h.24v.24h.24l.24.24.24.24.48.24.72.48.24.24h.719l.24.24h.48l.72.24h1.92l.24.24h.48l1.2.24h.72l.48.24.48.24.96.48.959.24.24.24.72.24h.24l.96.24.24.48.96.72h.96l.24.24v.24l.48.48.24.24h.72l.24-.24.24-.24.24-.48.48-.72H288.687l.72.72 1.92.48.24.48h.24v.24l.24.24.24.24v1.2l.24.24.48.48.96 1.2.96-.24h1.2l.48-.24.48-.24h.479l.96.24h2.88l.48.24.24.24.24.48.72.48.24.24.72.72.24.24.96.96.48.24.959.48.72.24 1.68.479.24.24.24.48.72.96.72.48.72 1.68.24 1.92.24 3.12v.48l.24 1.44.24 1.919.24.96v.24h.24v.24l.48.24h.48l.96-.24h.719l.48.24h.48l.48-.24.72-.24 1.44-1.2.96-.96.96-.72.72-.72.96-.72.72-.24h.959l1.2.24h2.88l1.92.24h2.64l.959-.48.72-.24.24-.48.48-.24.24-.48.48-.24.24-.24h.24l.48-.24 1.2-.48h1.92l.24-.24.24.24h.24l.48-.24h.959l.24-.24h.96l.48.24h.72l.24.24h.24l-.48.72-1.92 1.68-1.2 1.2-.72.96-.48.96h-.24l-.24.24-.24.24-.24.72-.48.48-.24.24v.24l-.48.48v.24h-.24l-.72.24h-.24l-.48-.24h-.72l-.24.24-.48.72h-.24l-.24.24v.72l-.24.24h-.24l-.239-.24-.24-.48h-1.44v.48l.24.48.24.24-.24.24v.24h-.72l-.24.48v.24l.24.24.24.24.48.48v.96l-.24.24-.24.24v.48l.48.48.24.72v.959l.24.48v1.2l.48.48v.72l-.48.24v.24l-.24.48v.48l-.24.24v.24l-.24.24v.24l-.24.24.24.24h.24-.24l-.48.24-.48.48-.48.24-.24.48v.72l-.24.72v.24l-.24.72-.24.48v.48l-.24.24v.239h-.48l-.48.24-.48.24-.24.48-.72 1.2v.48l.48.96.24 1.2.24.48v.24l.24.48v1.2l-.72 1.2-.24.24v.72l-.24.72-.24.24-.24-.24-.72-.24v.48l-.24.48h.24v.24l.24 1.199v.24l-.24.24-.24.24v.96l-.24.24h-.24l-.479-.24h-1.2l-.24.24.24.24.24.48.24.24.24.24h.24l.48.24v.48h-.24v.24h-1.68v1.2l.24.24.24.24h.24l1.44.48-.24.24-.24.48h-.24l-.48.24-.72.24v.24l.24.72-.24.24-.24.24v.48l-.24.48v.24l-.24.48v.959l.24.48.96 1.2-.24.24v.96l.24.48.24.24.24.48.24.48.24.24.48.24.24.48v.24h.24l.72.48-.72.96-.48.48-1.2.72-1.68.72h-.24v.48l-.24.24-.24.24v.96h-.24V377.967l-.24.96v1.2h-.24l-.48-.96h-1.2l-.48-.48-.96-.24-.96.24-.959-.24-.72-.24-1.2-.96-1.92.24h-1.2l-.72-.24-.96.24-.48.24-.24-.48-.48-.24-.48-.24-.24.24-.479-.72h-.72l-.24.24v1.2h-.48l-.24.24v.24l.24.48v.24l.24.72v1.44l-.24.24-.24.96-.24.48-.24.72v1.44l.24.72v.24l.24.96.24.48-.24.48v.48l-.24.24-.24.48v.239l-.48-.24v.24h-.72l-.48.48-.48.48V393.807h-.24l-.24.24-.24.24h-.48l-.24.24h-.72v-.24l-.24-.24h-.96l-.24-.24h-.24l-.24.24h-.24v.24h-.959l-.24.24h-8.879l-.48.24h-1.92l-.72-.24h-.48v-.24l.24-.24h.48v-.24h-1.92l-.72-.24-1.2.24h-1.919l-1.2.24h-1.2l-.72-.72-.96-.72-.24-.24-.72-.24-.48-.72-.48-.48v-.48l-.24-.96.24-1.68v-.24l.24-.48.24-.48h.24l.48-.48h.24l.48-.96h.24v-1.2l-.72-.48-.48-.48-.72-.24-.96-.48-.72-.24h-.24l-.72-.48v.24l-.719.24-.96.24v.24l-.96.24-.72.24h-.24l-.24.24-.24.24-.24.24h-.72v.24h-.48l-.24-.24-.24-.24v-.72l-.24-.24v-1.68l-.24-.72.24-.24v-.24h-.48l-.48-.24h-.24l-.96-.24-1.199-.24-.72-.24-1.92-.479-1.68-.24-1.68-.48-1.92-.24-1.199-.24v-.24l.24-.24v-.72l1.44-.96.72-.72-.48-.24-.48-.72-1.68-1.2-.24.24-.48.48h-.24l-.24.24-.48.48-.72.48v-.24l-.72-.96-.48-.48-.24.24-.24.24-.24.24-.24.24-.24.24-.24.24-.24.24h-.24l-.24.24h-.96l.24-.48v-.72l.24-1.2v-.48l.24-1.68v-.24l.48-1.44.24-.24.48-.24v-.24l.24-.24h.24v-.24l-.24-.479v-.48l.24-1.44v-.48l.24-.48v-.48l-.24-.48h-.24l-.24-.24h-.24l-.24.24h-.72l-.48.24-.24.24-.72.72H241.894l-.24.24h-.24l-.24.24-.72.48h-.24v.24l.24.72h.24v.24h-.24v.24l-.24.48-.24-.48-.48-.24-.48-.24-.48-.24h-.24l-.96-.24h-.72l-.48.24-1.199.48h-.24v.24l-.24-.24-.24-.24h-.24v-.48h-.24l-.24-.24h-1.68v-.48h-.96v-1.44l.24-.48v-.96h-.24l-.24-.24v-.72l-.24-.24v-.96l-.24-.72-.24-.24v-.72l-.24-.48v-.72l-.24-.48v-.48l.24-.719.24-.96.24-.72.24-.48v-.96l-.48-.24-.48-.24h-.48l-.24-.24h-.48l-.24-.24h-.48l-.48-.24h-.24v-.24h-.48l-.239-.24h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24h-.24v-.24h-.24v-.24h-.24v-.24h-.48v-.24h-.24v-.24h-.24v-.24h-.24l-.24-.24h-.24v-.24h-.24v-.24h-.24v-.24h-.24l-.24-.24h-.24v-.24h-.24l-.24-.24-.24-.24h-.24l-.48-.48h-.48l-.48-.24h-.96l-.239.24v-.48l.24-.24.72-.48.24-.48.24-.24.24-.239.24-.48.24-.24v-.48l-.24-.24-.24-.48v-.24l-.24-.48v-.72l-.24-.72v-.72l-.24-.72v-1.68l-.24-.24-.24-.24v-.72l-.24-.72v-1.68l-.24-.48-.24-.719-.24-.96-.24-.96v-.72l-.24-.96-.24-.96v-.96l.48-.72.24-.72.24-.48.24-.48.48-.48.48-.72.24-.48.48-.48.24-.48v-.48l.24-.24v-.479l-.24-.48v-.48l-.24-1.2v-.72l.24-.72V311.013h.48l.24-.24.72-.24h.48l.72-.24h.72l.24-.24h.24l.24-.24.24-.48.24-.24v-.48l.24-.48v-.719l.24-.24.24-.48.24-.24.72-.48.479-.24.48-.48.48-.24.24-.48v-.24l.24-.24v-2.16l-.24-.48.24-.72v-.24l.24-.24.24-.48v-2.88l-.24-.72v-.719l-.24-.48-.24-.48v-1.2l.24-.24v-.48l-.24-.48-.48-.48-.24-.24v-.24l-.24-.48.24-.48.48-.96v-1.2l-.48-.96-.24-.72-.24-.48.24-.48.24-.96.24-.479.24-.24.24-.48h.24v-.24l.24-.24h.96l.24.24.72.48z", + center: [275, 342], + population: 40.755, + area: "58,01 ha", + defaultColor: "#6FAB49" + } +]; \ No newline at end of file diff --git a/src/data/komoditas.tsx b/src/data/komoditas.tsx new file mode 100644 index 0000000..3bf3139 --- /dev/null +++ b/src/data/komoditas.tsx @@ -0,0 +1,403 @@ +export const dataKomoditas: PinData[] = [ + // JAGUNG (CORN) DATA + { + id_panen: 'jagung-maesan', + position: [283, 610], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-grujugan', + position: [191, 553], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-tamanan', + position: [326, 632], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-jambesari', + position: [372, 568], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-pujer', + position: [427, 500], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-tlogosari', + position: [565, 633], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-sukosari', + position: [490, 480], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-sumberwringin', + position: [600, 502], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-tapen', + position: [472, 413], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-wonosari', + position: [448, 495], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-tenggarang', + position: [378, 469], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-bondowoso', + position: [325, 519], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-curahdami', + position: [290, 477], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-binakal', + position: [200, 472], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-pakem', + position: [215, 400], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-wringin', + position: [253, 345], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-tegalampel', + position: [332, 433], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-tamankrocok', + position: [412, 352], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-klabang', + position: [392, 322], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-botolinggo', + position: [600, 352], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-prajekan', + position: [544, 263], + title: 'Jagung', + category: 'jagung' + }, + { + id_panen: 'jagung-cermee', + position: [672, 398], + title: 'Jagung', + category: 'jagung' + }, + + // KAYU (CASSAVA) DATA + { + id_panen: 'tembakau-maesan', + position: [300, 634], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-grujugan', + position: [226, 536], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-tamanan', + position: [351, 627], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-jambesari', + position: [400, 585], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-pujer', + position: [433, 569], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-tlogosari', + position: [600, 668], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-sukosari', + position: [500, 530], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-sumberwringin', + position: [642, 667], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-tapen', + position: [530, 411], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-wonosari', + position: [473, 464], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-tenggarang', + position: [371, 512], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-bondowoso', + position: [329, 500], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-curahdami', + position: [243, 499], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-binakal', + position: [245, 449], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-pakem', + position: [170, 460], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-wringin', + position: [284, 380], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-tegalampel', + position: [326, 419], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-tamankrocok', + position: [406, 399], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-klabang', + position: [550, 400], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-botolinggo', + position: [615, 407], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-prajekan', + position: [519, 289], + title: 'Tembakau', + category: 'tembakau' + }, + { + id_panen: 'tembakau-cermee', + position: [687, 333], + title: 'Tembakau', + category: 'tembakau' + }, + + // PADI (RICE) DATA + { + id_panen: 'padi-maesan', + position: [221, 600], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-grujugan', + position: [294, 557], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-tamanan', + position: [344, 580], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-jambesari', + position: [373, 540], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-pujer', + position: [449, 575], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-tlogosari', + position: [500, 570], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-sukosari', + position: [540, 500], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-sumberwringin', + position: [600, 573], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-tapen', + position: [492, 380], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-wonosari', + position: [437, 438], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-tenggarang', + position: [379, 493], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-bondowoso', + position: [326, 453], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-curahdami', + position: [271, 500], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-binakal', + position: [261, 430], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-pakem', + position: [177, 435], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-wringin', + position: [276, 354], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-tegalampel', + position: [347, 421], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-tamankrocok', + position: [420, 384], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-klabang', + position: [495, 323], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-botolinggo', + position: [667, 500], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-prajekan', + position: [544, 300], + title: 'Padi', + category: 'padi' + }, + { + id_panen: 'padi-cermee', + position: [690, 420], + title: 'Padi', + category: 'padi' + }, +]; \ No newline at end of file diff --git a/src/data/sebaran.tsx b/src/data/sebaran.tsx new file mode 100644 index 0000000..4167e17 --- /dev/null +++ b/src/data/sebaran.tsx @@ -0,0 +1,1001 @@ +export const dataSebaran: PinData[] = [ + // JAGUNG (CORN) DATA + { + id: 'jagung-maesan', + position: [283, 610], + title: 'Jagung', + luaspanen: "1557", + produksi: "8409", + produktivitas: "5.4", + kec: "Maesan", + category: 'jagung' + }, + { + id: 'jagung-grujugan', + position: [191, 553], + title: 'Jagung', + luaspanen: "407", + produksi: "2211", + produktivitas: "5.43", + kec: "Grujugan", + category: 'jagung' + }, + { + id: 'jagung-tamanan', + position: [326, 632], + title: 'Jagung', + luaspanen: "330", + produksi: "1835", + produktivitas: "5.56", + kec: "Tamanan", + category: 'jagung' + }, + { + id: 'jagung-jambesari', + position: [372, 568], + title: 'Jagung', + luaspanen: "322", + produksi: "1731", + produktivitas: "5.38", + kec: "Jambesari", + category: 'jagung' + }, + { + id: 'jagung-pujer', + position: [427, 500], + title: 'Jagung', + luaspanen: "966", + produksi: "5390", + produktivitas: "5.58", + kec: "Pujer", + category: 'jagung' + }, + { + id: 'jagung-tlogosari', + position: [565, 633], + title: 'Jagung', + luaspanen: "616", + produksi: "3401", + produktivitas: "5.52", + kec: "Tlogosari", + category: 'jagung' + }, + { + id: 'jagung-sukosari', + position: [490, 480], + title: 'Jagung', + luaspanen: "836", + produksi: "4563", + produktivitas: "5.46", + kec: "Sukosari", + category: 'jagung' + }, + { + id: 'jagung-sumberwringin', + position: [600, 502], + title: 'Jagung', + luaspanen: "1092", + produksi: "6005", + produktivitas: "5.54", + kec: "Sumber Wringin", + category: 'jagung' + }, + { + id: 'jagung-tapen', + position: [472, 413], + title: 'Jagung', + luaspanen: "1414", + produksi: "7879", + produktivitas: "5.57", + kec: "Tapen", + category: 'jagung' + }, + { + id: 'jagung-wonosari', + position: [448, 495], + title: 'Jagung', + luaspanen: "348", + produksi: "1930", + produktivitas: "5.55", + kec: "Wonosari", + category: 'jagung' + }, + { + id: 'jagung-tenggarang', + position: [378, 469], + title: 'Jagung', + luaspanen: "315", + produksi: "1744", + produktivitas: "5.54", + kec: "Tenggarang", + category: 'jagung' + }, + { + id: 'jagung-bondowoso', + position: [325, 519], + title: 'Jagung', + luaspanen: "100", + produksi: "561", + produktivitas: "5.61", + kec: "Bondowoso", + category: 'jagung' + }, + { + id: 'jagung-curahdami', + position: [290, 477], + title: 'Jagung', + luaspanen: "619", + produksi: "3120", + produktivitas: "5.04", + kec: "Curahdami", + category: 'jagung' + }, + { + id: 'jagung-binakal', + position: [200, 472], + title: 'Jagung', + luaspanen: "517", + produksi: "2610", + produktivitas: "5.05", + kec: "Binakal", + category: 'jagung' + }, + { + id: 'jagung-pakem', + position: [215, 400], + title: 'Jagung', + luaspanen: "1031", + produksi: "4804", + produktivitas: "4.66", + kec: "Pakem", + category: 'jagung' + }, + { + id: 'jagung-wringin', + position: [253, 345], + title: 'Jagung', + luaspanen: "1915", + produksi: "8849", + produktivitas: "4.62", + kec: "Wringin", + category: 'jagung' + }, + { + id: 'jagung-tegalampel', + position: [332, 433], + title: 'Jagung', + luaspanen: "689", + produksi: "3799", + produktivitas: "5.51", + kec: "Tegal Ampel", + category: 'jagung' + }, + { + id: 'jagung-tamankrocok', + position: [412, 352], + title: 'Jagung', + luaspanen: "2646", + produksi: "14283", + produktivitas: "5.4", + kec: "Taman Krocok", + category: 'jagung' + }, + { + id: 'jagung-klabang', + position: [392, 322], + title: 'Jagung', + luaspanen: "2386", + produksi: "13023", + produktivitas: "5.46", + kec: "Klabang", + category: 'jagung' + }, + { + id: 'jagung-botolinggo', + position: [600, 352], + title: 'Jagung', + luaspanen: "2598", + produksi: "14317", + produktivitas: "5.51", + kec: "Botolinggo", + category: 'jagung' + }, + { + id: 'jagung-prajekan', + position: [544, 263], + title: 'Jagung', + luaspanen: "2598", + produksi: "14317", + produktivitas: "5.51", + kec: "Prajekan", + category: 'jagung' + }, + { + id: 'jagung-cermee', + position: [672, 398], + title: 'Jagung', + luaspanen: "7368", + produksi: "41389", + produktivitas: "5.62", + kec: "Cermee", + category: 'jagung' + }, + + // UBI KAYU (CASSAVA) DATA + { + id: 'ubi-maesan', + position: [300, 634], + title: 'Ubi Kayu', + luaspanen: "71", + produksi: "1108", + produktivitas: "15.61", + kec: "Maesan", + category: 'ubi' + }, + { + id: 'ubi-grujugan', + position: [226, 536], + title: 'Ubi Kayu', + luaspanen: "151", + produksi: "3459", + produktivitas: "22.91", + kec: "Grujugan", + category: 'ubi' + }, + { + id: 'ubi-tamanan', + position: [351, 627], + title: 'Ubi Kayu', + luaspanen: "136", + produksi: "3115", + produktivitas: "22.9", + kec: "Tamanan", + category: 'ubi' + }, + { + id: 'ubi-jambesari', + position: [400, 585], + title: 'Ubi Kayu', + luaspanen: "99", + produksi: "1611", + produktivitas: "16.27", + kec: "Jambesari", + category: 'ubi' + }, + { + id: 'ubi-pujer', + position: [433, 569], + title: 'Ubi Kayu', + luaspanen: "112", + produksi: "2566", + produktivitas: "22.91", + kec: "Pujer", + category: 'ubi' + }, + { + id: 'ubi-tlogosari', + position: [600, 668], + title: 'Ubi Kayu', + luaspanen: "88", + produksi: "2020", + produktivitas: "22.95", + kec: "Tlogosari", + category: 'ubi' + }, + { + id: 'ubi-sukosari', + position: [500, 530], + title: 'Ubi Kayu', + luaspanen: "81", + produksi: "1866", + produktivitas: "23.04", + kec: "Sukosari", + category: 'ubi' + }, + { + id: 'ubi-sumberwringin', + position: [642, 667], + title: 'Ubi Kayu', + luaspanen: "76", + produksi: "1238", + produktivitas: "16.29", + kec: "Sumber Wringin", + category: 'ubi' + }, + { + id: 'ubi-tapen', + position: [530, 411], + title: 'Ubi Kayu', + luaspanen: "72", + produksi: "1655", + produktivitas: "22.99", + kec: "Tapen", + category: 'ubi' + }, + { + id: 'ubi-wonosari', + position: [473, 464], + title: 'Ubi Kayu', + luaspanen: "3", + produksi: "69", + produktivitas: "23", + kec: "Wonosari", + category: 'ubi' + }, + { + id: 'ubi-tenggarang', + position: [371, 512], + title: 'Ubi Kayu', + luaspanen: "5", + produksi: "115", + produktivitas: "23", + kec: "Tenggarang", + category: 'ubi' + }, + { + id: 'ubi-bondowoso', + position: [329, 500], + title: 'Ubi Kayu', + luaspanen: "6", + produksi: "237", + produktivitas: "39.5", + kec: "Bondowoso", + category: 'ubi' + }, + { + id: 'ubi-curahdami', + position: [243, 499], + title: 'Ubi Kayu', + luaspanen: "44", + produksi: "890", + produktivitas: "20.23", + kec: "Curahdami", + category: 'ubi' + }, + { + id: 'ubi-binakal', + position: [245, 449], + title: 'Ubi Kayu', + luaspanen: "75", + produksi: "1714", + produktivitas: "22.85", + kec: "Binakal", + category: 'ubi' + }, + { + id: 'ubi-pakem', + position: [170, 460], + title: 'Ubi Kayu', + luaspanen: "57", + produksi: "1402", + produktivitas: "24.6", + kec: "Pakem", + category: 'ubi' + }, + { + id: 'ubi-wringin', + position: [284, 380], + title: 'Ubi Kayu', + luaspanen: "884", + produksi: "20440", + produktivitas: "23.12", + kec: "Wringin", + category: 'ubi' + }, + { + id: 'ubi-tegalampel', + position: [326, 419], + title: 'Ubi Kayu', + luaspanen: "83", + produksi: "1903", + produktivitas: "22.93", + kec: "Tegal Ampel", + category: 'ubi' + }, + { + id: 'ubi-tamankrocok', + position: [406, 399], + title: 'Ubi Kayu', + luaspanen: "129", + produksi: "2958", + produktivitas: "22.93", + kec: "Taman Krocok", + category: 'ubi' + }, + { + id: 'ubi-klabang', + position: [550, 400], + title: 'Ubi Kayu', + luaspanen: "232", + produksi: "4912", + produktivitas: "21.17", + kec: "Klabang", + category: 'ubi' + }, + { + id: 'ubi-botolinggo', + position: [615, 407], + title: 'Ubi Kayu', + luaspanen: "275", + produksi: "7312", + produktivitas: "26.59", + kec: "Botolinggo", + category: 'ubi' + }, + { + id: 'ubi-prajekan', + position: [519, 289], + title: 'Ubi Kayu', + luaspanen: "275", + produksi: "7312", + produktivitas: "26.59", + kec: "Prajekan", + category: 'ubi' + }, + { + id: 'ubi-cermee', + position: [687, 333], + title: 'Ubi Kayu', + luaspanen: "524", + produksi: "12227", + produktivitas: "23.33", + kec: "Cermee", + category: 'ubi' + }, + + // PADI (RICE) DATA + { + id: 'padi-maesan', + position: [221, 600], + title: 'Padi', + luaspanen: "2468", + produksi: "15558", + produktivitas: "6.3", + kec: "Maesan", + category: 'padi' + }, + { + id: 'padi-grujugan', + position: [294, 557], + title: 'Padi', + luaspanen: "3414", + produksi: "21452", + produktivitas: "6.28", + kec: "Grujugan", + category: 'padi' + }, + { + id: 'padi-tamanan', + position: [344, 580], + title: 'Padi', + luaspanen: "4145", + produksi: "26097", + produktivitas: "6.3", + kec: "Tamanan", + category: 'padi' + }, + { + id: 'padi-jambesari', + position: [373, 540], + title: 'Padi', + luaspanen: "3171", + produksi: "19792", + produktivitas: "6.24", + kec: "Jambesari", + category: 'padi' + }, + { + id: 'padi-pujer', + position: [449, 575], + title: 'Padi', + luaspanen: "6098", + produksi: "39051", + produktivitas: "6.4", + kec: "Pujer", + category: 'padi' + }, + { + id: 'padi-tlogosari', + position: [500, 570], + title: 'Padi', + luaspanen: "6069", + produksi: "38854", + produktivitas: "6.4", + kec: "Tlogosari", + category: 'padi' + }, + { + id: 'padi-sukosari', + position: [540, 500], + title: 'Padi', + luaspanen: "2378", + produksi: "14313", + produktivitas: "6.02", + kec: "Sukosari", + category: 'padi' + }, + { + id: 'padi-sumberwringin', + position: [600, 573], + title: 'Padi', + luaspanen: "3497", + produksi: "20794", + produktivitas: "5.95", + kec: "Sumber Wringin", + category: 'padi' + }, + { + id: 'padi-tapen', + position: [492, 380], + title: 'Padi', + luaspanen: "6270", + produksi: "40715", + produktivitas: "6.49", + kec: "Tapen", + category: 'padi' + }, + { + id: 'padi-wonosari', + position: [437, 438], + title: 'Padi', + luaspanen: "3914", + produksi: "25229", + produktivitas: "6.45", + kec: "Wonosari", + category: 'padi' + }, + { + id: 'padi-tenggarang', + position: [379, 493], + title: 'Padi', + luaspanen: "4211", + produksi: "27299", + produktivitas: "6.48", + kec: "Tenggarang", + category: 'padi' + }, + { + id: 'padi-bondowoso', + position: [326, 453], + title: 'Padi', + luaspanen: "2577", + produksi: "16156", + produktivitas: "6.27", + kec: "Bondowoso", + category: 'padi' + }, + { + id: 'padi-curahdami', + position: [271, 500], + title: 'Padi', + luaspanen: "2627", + produksi: "14191", + produktivitas: "5.4", + kec: "Curahdami", + category: 'padi' + }, + { + id: 'padi-binakal', + position: [261, 430], + title: 'Padi', + luaspanen: "2161", + produksi: "11842", + produktivitas: "5.48", + kec: "Binakal", + category: 'padi' + }, + { + id: 'padi-pakem', + position: [177, 435], + title: 'Padi', + luaspanen: "2409", + produksi: "13308", + produktivitas: "5.48", + kec: "Pakem", + category: 'padi' + }, + { + id: 'padi-wringin', + position: [276, 354], + title: 'Padi', + luaspanen: "2447", + produksi: "13281", + produktivitas: "5.43", + kec: "Wringin", + category: 'padi' + }, + { + id: 'padi-tegalampel', + position: [347, 421], + title: 'Padi', + luaspanen: "2265", + produksi: "13700", + produktivitas: "6.05", + kec: "Tegal Ampel", + category: 'padi' + }, + { + id: 'padi-tamankrocok', + position: [420, 384], + title: 'Padi', + luaspanen: "1455", + produksi: "8619", + produktivitas: "5.92", + kec: "Taman Krocok", + category: 'padi' + }, + { + id: 'padi-klabang', + position: [495, 323], + title: 'Padi', + luaspanen: "3824", + produksi: "23498", + produktivitas: "6.14", + kec: "Klabang", + category: 'padi' + }, + { + id: 'padi-botolinggo', + position: [667, 500], + title: 'Padi', + luaspanen: "3057", + produksi: "18775", + produktivitas: "6.18", + kec: "Botolinggo", + category: 'padi' + }, + { + id: 'padi-prajekan', + position: [544, 300], + title: 'Padi', + luaspanen: "3057", + produksi: "18775", + produktivitas: "6.18", + kec: "Prajekan", + category: 'padi' + }, + { + id: 'padi-cermee', + position: [690, 420], + title: 'Padi', + luaspanen: "3696", + produksi: "23466", + produktivitas: "6.35", + kec: "Cermee", + category: 'padi' + }, + + // KELAPA (COCONUT) DATA + { + id: 'kelapa-maesan', + position: [260, 615], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "1579.50", + produktivitas: "0", // Add appropriate value if available + kec: "Maesan", + category: 'kelapa' + }, + { + id: 'kelapa-grujugan', + position: [245, 565], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "200.53", + produktivitas: "0", // Add appropriate value if available + kec: "Grujugan", + category: 'kelapa' + }, + { + id: 'kelapa-tamanan', + position: [372, 610], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "42.50", + produktivitas: "0", // Add appropriate value if available + kec: "Tamanan", + category: 'kelapa' + }, + { + id: 'kelapa-jambesari', + position: [389, 550], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "15.30", + produktivitas: "0", // Add appropriate value if available + kec: "Jambesari Darus Sholah", + category: 'kelapa' + }, + { + id: 'kelapa-sukosari', + position: [505, 485], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "71.00", + produktivitas: "0", // Add appropriate value if available + kec: "Sukosari", + category: 'kelapa' + }, + { + id: 'kelapa-sumberwringin', + position: [635, 630], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "35.70", + produktivitas: "0", // Add appropriate value if available + kec: "Sumber Wringin", + category: 'kelapa' + }, + { + id: 'kelapa-tapen', + position: [515, 465], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "273.60", + produktivitas: "0", // Add appropriate value if available + kec: "Tapen", + category: 'kelapa' + }, + { + id: 'kelapa-wonosari', + position: [415, 465], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "17.33", + produktivitas: "0", // Add appropriate value if available + kec: "Wonosari", + category: 'kelapa' + }, + { + id: 'kelapa-bondowoso', + position: [330, 472], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "147.20", + produktivitas: "0", // Add appropriate value if available + kec: "Bondowoso", + category: 'kelapa' + }, + { + id: 'kelapa-curahdami', + position: [295, 505], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "262.20", + produktivitas: "0", // Add appropriate value if available + kec: "Curahdami", + category: 'kelapa' + }, + { + id: 'kelapa-binakal', + position: [225, 465], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "184.80", + produktivitas: "0", // Add appropriate value if available + kec: "Binakal", + category: 'kelapa' + }, + { + id: 'kelapa-pakem', + position: [189, 425], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "68.32", + produktivitas: "0", // Add appropriate value if available + kec: "Pakem", + category: 'kelapa' + }, + { + id: 'kelapa-tamankrocok', + position: [450, 370], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "92.85", + produktivitas: "0", // Add appropriate value if available + kec: "Taman Krocok", + category: 'kelapa' + }, + { + id: 'kelapa-klabang', + position: [470, 345], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "3.87", + produktivitas: "0", // Add appropriate value if available + kec: "Klabang", + category: 'kelapa' + }, + { + id: 'kelapa-botolinggo', + position: [690, 550], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "33.85", + produktivitas: "0", // Add appropriate value if available + kec: "Botolinggo", + category: 'kelapa' + }, + { + id: 'kelapa-prajekan', + position: [630, 340], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "33.85", + produktivitas: "0", // Add appropriate value if available + kec: "Prajekan", + category: 'kelapa' + }, + { + id: 'kelapa-cermee', + position: [710, 480], + title: 'Kelapa', + luaspanen: "0", // Add appropriate value if available + produksi: "35.18", + produktivitas: "0", // Add appropriate value if available + kec: "Cermee", + category: 'kelapa' + }, + + // KOPI (COFFEE) DATA + { + id: 'kopi-maesan', + position: [250, 608], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "846.43", + produktivitas: "0", // Add appropriate value if available + kec: "Maesan", + category: 'kopi' + }, + { + id: 'kopi-grujugan', + position: [255, 540], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "174.91", + produktivitas: "0", // Add appropriate value if available + kec: "Grujugan", + category: 'kopi' + }, + { + id: 'kopi-tamanan', + position: [334, 598], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "9.89", + produktivitas: "0", // Add appropriate value if available + kec: "Tamanan", + category: 'kopi' + }, + { + id: 'kopi-pujer', + position: [430, 540], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "2.25", + produktivitas: "0", // Add appropriate value if available + kec: "Pujer", + category: 'kopi' + }, + { + id: 'kopi-tlogosari', + position: [535, 635], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "452.10", + produktivitas: "0", // Add appropriate value if available + kec: "Tlogosari", + category: 'kopi' + }, + { + id: 'kopi-sukosari', + position: [479, 495], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "155.00", + produktivitas: "0", // Add appropriate value if available + kec: "Sukosari", + category: 'kopi' + }, + { + id: 'kopi-sumberwringin', + position: [665, 630], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "4902.57", + produktivitas: "0", // Add appropriate value if available + kec: "Sumber Wringin", + category: 'kopi' + }, + { + id: 'kopi-curahdami', + position: [295, 445], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "114.12", + produktivitas: "0", // Add appropriate value if available + kec: "Curahdami", + category: 'kopi' + }, + { + id: 'kopi-binakal', + position: [265, 400], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "26.38", + produktivitas: "0", // Add appropriate value if available + kec: "Binakal", + category: 'kopi' + }, + { + id: 'kopi-pakem', + position: [135, 500], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "172.37", + produktivitas: "0", // Add appropriate value if available + kec: "Pakem", + category: 'kopi' + }, + { + id: 'kopi-tegalampel', + position: [340, 375], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "6.58", + produktivitas: "0", // Add appropriate value if available + kec: "Tegal Ampel", + category: 'kopi' + }, + { + id: 'kopi-tamankrocok', + position: [380, 370], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "60.75", + produktivitas: "0", // Add appropriate value if available + kec: "Taman Krocok", + category: 'kopi' + }, + { + id: 'kopi-klabang', + position: [480, 300], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "170.44", + produktivitas: "0", // Add appropriate value if available + kec: "Klabang", + category: 'kopi' + }, + { + id: 'kopi-ijen', + position: [860, 640], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "853.40", + produktivitas: "0", // Add appropriate value if available + kec: "Ijen", + category: 'kopi' + }, + { + id: 'kopi-botolinggo', + position: [635, 500], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "372.34", + produktivitas: "0", // Add appropriate value if available + kec: "Botolinggo", + category: 'kopi' + }, + { + id: 'kopi-cermee', + position: [680, 270], + title: 'Kopi', + luaspanen: "0", // Add appropriate value if available + produksi: "119.71", + produktivitas: "0", // Add appropriate value if available + kec: "Cermee", + category: 'kopi' + } +]; \ No newline at end of file diff --git a/src/hooks/useGoBack.ts b/src/hooks/useGoBack.ts new file mode 100644 index 0000000..87c628f --- /dev/null +++ b/src/hooks/useGoBack.ts @@ -0,0 +1,17 @@ +import { useRouter } from "next/navigation"; + +const useGoBack = () => { + const router = useRouter(); + + const goBack = () => { + if (window.history.length > 1) { + router.back(); // Navigate to the previous route + } else { + router.push("/"); // Redirect to home if no history exists + } + }; + + return goBack; +}; + +export default useGoBack; diff --git a/src/hooks/useModal.ts b/src/hooks/useModal.ts new file mode 100644 index 0000000..1389504 --- /dev/null +++ b/src/hooks/useModal.ts @@ -0,0 +1,12 @@ +"use client"; +import { useState, useCallback } from "react"; + +export const useModal = (initialState: boolean = false) => { + const [isOpen, setIsOpen] = useState(initialState); + + const openModal = useCallback(() => setIsOpen(true), []); + const closeModal = useCallback(() => setIsOpen(false), []); + const toggleModal = useCallback(() => setIsOpen((prev) => !prev), []); + + return { isOpen, openModal, closeModal, toggleModal }; +}; diff --git a/src/hooks/useStatus.ts b/src/hooks/useStatus.ts new file mode 100644 index 0000000..d77d0f8 --- /dev/null +++ b/src/hooks/useStatus.ts @@ -0,0 +1,75 @@ +"use client"; + +import { useRouter } from "next/navigation"; +import { useCallback } from "react"; + +type ErrorCode = 404 | 500 | 503 | "maintenance" | "success"; + +export default function useCustomError() { + const router = useRouter(); + + const throwError = useCallback((code: ErrorCode, message?: string) => { + let errorPath: string; + let errorMessage = message; + + switch (code) { + case 404: + errorPath = "/not-found"; + break; + case 500: + errorPath = "/error?code=500"; + if (!errorMessage) errorMessage = "Internal server error"; + break; + case 503: + errorPath = "/error?code=503"; + if (!errorMessage) errorMessage = "Service unavailable"; + break; + case "maintenance": + errorPath = "/error?code=maintenance"; + if (!errorMessage) errorMessage = "System under maintenance"; + break; + case "success": + errorPath = "/success"; + break; + default: + errorPath = "/error"; + } + + if (errorMessage) { + errorPath += errorPath.includes("?") + ? `&message=${encodeURIComponent(errorMessage)}` + : `?message=${encodeURIComponent(errorMessage)}`; + } + + router.push(errorPath); + }, [router]); + + const throwNotFound = useCallback((message?: string) => { + throwError(404, message); + }, [throwError]); + + const throwServerError = useCallback((message?: string) => { + throwError(500, message); + }, [throwError]); + + const throwServiceUnavailable = useCallback((message?: string) => { + throwError(503, message); + }, [throwError]); + + const throwMaintenance = useCallback((message?: string) => { + throwError("maintenance", message); + }, [throwError]); + + const showSuccess = useCallback((message?: string) => { + throwError("success", message); + }, [throwError]); + + return { + throwError, + throwNotFound, + throwServerError, + throwServiceUnavailable, + throwMaintenance, + showSuccess + }; +} \ No newline at end of file diff --git a/src/icons/alert.svg b/src/icons/alert.svg new file mode 100644 index 0000000..f4b9c4e --- /dev/null +++ b/src/icons/alert.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/angle-down.svg b/src/icons/angle-down.svg new file mode 100644 index 0000000..32e9557 --- /dev/null +++ b/src/icons/angle-down.svg @@ -0,0 +1,12 @@ + + + \ No newline at end of file diff --git a/src/icons/angle-left.svg b/src/icons/angle-left.svg new file mode 100644 index 0000000..e69de29 diff --git a/src/icons/angle-right.svg b/src/icons/angle-right.svg new file mode 100644 index 0000000..e69de29 diff --git a/src/icons/angle-up.svg b/src/icons/angle-up.svg new file mode 100644 index 0000000..71f074a --- /dev/null +++ b/src/icons/angle-up.svg @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/icons/arrow-down.svg b/src/icons/arrow-down.svg new file mode 100644 index 0000000..92b036c --- /dev/null +++ b/src/icons/arrow-down.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/arrow-right.svg b/src/icons/arrow-right.svg new file mode 100644 index 0000000..593bd55 --- /dev/null +++ b/src/icons/arrow-right.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/arrow-up.svg b/src/icons/arrow-up.svg new file mode 100644 index 0000000..c0ef642 --- /dev/null +++ b/src/icons/arrow-up.svg @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/icons/audio.svg b/src/icons/audio.svg new file mode 100644 index 0000000..18e60ad --- /dev/null +++ b/src/icons/audio.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/bell.svg b/src/icons/bell.svg new file mode 100644 index 0000000..a6c6ee8 --- /dev/null +++ b/src/icons/bell.svg @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/icons/bolt.svg b/src/icons/bolt.svg new file mode 100644 index 0000000..ecb02a3 --- /dev/null +++ b/src/icons/bolt.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/box-cube.svg b/src/icons/box-cube.svg new file mode 100644 index 0000000..5a36ea4 --- /dev/null +++ b/src/icons/box-cube.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/box-line.svg b/src/icons/box-line.svg new file mode 100644 index 0000000..57432fe --- /dev/null +++ b/src/icons/box-line.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/box.svg b/src/icons/box.svg new file mode 100644 index 0000000..0fa3c19 --- /dev/null +++ b/src/icons/box.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/calendar.svg b/src/icons/calendar.svg new file mode 100644 index 0000000..b424736 --- /dev/null +++ b/src/icons/calendar.svg @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/icons/calender-line.svg b/src/icons/calender-line.svg new file mode 100644 index 0000000..227b0fe --- /dev/null +++ b/src/icons/calender-line.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/icons/chat.svg b/src/icons/chat.svg new file mode 100644 index 0000000..678886a --- /dev/null +++ b/src/icons/chat.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/icons/check-circle.svg b/src/icons/check-circle.svg new file mode 100644 index 0000000..a77bb7a --- /dev/null +++ b/src/icons/check-circle.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/check-line.svg b/src/icons/check-line.svg new file mode 100644 index 0000000..17b4786 --- /dev/null +++ b/src/icons/check-line.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/chevron-down.svg b/src/icons/chevron-down.svg new file mode 100644 index 0000000..88775fd --- /dev/null +++ b/src/icons/chevron-down.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/chevron-left.svg b/src/icons/chevron-left.svg new file mode 100644 index 0000000..9409d16 --- /dev/null +++ b/src/icons/chevron-left.svg @@ -0,0 +1,16 @@ + + + \ No newline at end of file diff --git a/src/icons/chevron-up.svg b/src/icons/chevron-up.svg new file mode 100644 index 0000000..9bb13b9 --- /dev/null +++ b/src/icons/chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/icons/close-line.svg b/src/icons/close-line.svg new file mode 100644 index 0000000..8ed1b2e --- /dev/null +++ b/src/icons/close-line.svg @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/icons/close.svg b/src/icons/close.svg new file mode 100644 index 0000000..6692f84 --- /dev/null +++ b/src/icons/close.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/copy.svg b/src/icons/copy.svg new file mode 100644 index 0000000..951dde4 --- /dev/null +++ b/src/icons/copy.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/docs.svg b/src/icons/docs.svg new file mode 100644 index 0000000..316264a --- /dev/null +++ b/src/icons/docs.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/dollar-line.svg b/src/icons/dollar-line.svg new file mode 100644 index 0000000..843955f --- /dev/null +++ b/src/icons/dollar-line.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/download.svg b/src/icons/download.svg new file mode 100644 index 0000000..a588935 --- /dev/null +++ b/src/icons/download.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/envelope.svg b/src/icons/envelope.svg new file mode 100644 index 0000000..128cb87 --- /dev/null +++ b/src/icons/envelope.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/eye-close.svg b/src/icons/eye-close.svg new file mode 100644 index 0000000..761523c --- /dev/null +++ b/src/icons/eye-close.svg @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/icons/eye.svg b/src/icons/eye.svg new file mode 100644 index 0000000..f9ff420 --- /dev/null +++ b/src/icons/eye.svg @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/icons/file.svg b/src/icons/file.svg new file mode 100644 index 0000000..840edf2 --- /dev/null +++ b/src/icons/file.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/folder.svg b/src/icons/folder.svg new file mode 100644 index 0000000..ba7056d --- /dev/null +++ b/src/icons/folder.svg @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/icons/grid.svg b/src/icons/grid.svg new file mode 100644 index 0000000..a66ab76 --- /dev/null +++ b/src/icons/grid.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/group.svg b/src/icons/group.svg new file mode 100644 index 0000000..5d2898b --- /dev/null +++ b/src/icons/group.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/horizontal-dots.svg b/src/icons/horizontal-dots.svg new file mode 100644 index 0000000..d523459 --- /dev/null +++ b/src/icons/horizontal-dots.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/index.tsx b/src/icons/index.tsx new file mode 100644 index 0000000..ab3ee7d --- /dev/null +++ b/src/icons/index.tsx @@ -0,0 +1,109 @@ +import PlusIcon from "./plus.svg"; +import CloseIcon from "./close.svg"; +import BoxIcon from "./box.svg"; +import CheckCircleIcon from "./check-circle.svg"; +import AlertIcon from "./alert.svg"; +import InfoIcon from "./info.svg"; +import ErrorIcon from "./info-hexa.svg"; +import BoltIcon from "./bolt.svg"; +import ArrowUpIcon from "./arrow-up.svg"; +import ArrowDownIcon from "./arrow-down.svg"; +import FolderIcon from "./folder.svg"; +import VideoIcon from "./videos.svg"; +import AudioIcon from "./audio.svg"; +import GridIcon from "./grid.svg"; +import FileIcon from "./file.svg"; +import DownloadIcon from "./download.svg"; +import ArrowRightIcon from "./arrow-right.svg"; +import GroupIcon from "./group.svg"; +import BoxIconLine from "./box-line.svg"; +import ShootingStarIcon from "./shooting-star.svg"; +import DollarLineIcon from "./dollar-line.svg"; +import TrashBinIcon from "./trash.svg"; +import AngleUpIcon from "./angle-up.svg"; +import AngleDownIcon from "./angle-down.svg"; +import PencilIcon from "./pencil.svg"; +import CheckLineIcon from "./check-line.svg"; +import CloseLineIcon from "./close-line.svg"; +import ChevronDownIcon from "./chevron-down.svg"; +import ChevronUpIcon from "./chevron-up.svg"; +import PaperPlaneIcon from "./paper-plane.svg"; +import LockIcon from "./lock.svg"; +import EnvelopeIcon from "./envelope.svg"; +import UserIcon from "./user-line.svg"; +import CalenderIcon from "./calender-line.svg"; +import EyeIcon from "./eye.svg"; +import EyeCloseIcon from "./eye-close.svg"; +import TimeIcon from "./time.svg"; +import CopyIcon from "./copy.svg"; +import ChevronLeftIcon from "./chevron-left.svg"; +import UserCircleIcon from "./user-circle.svg"; +import TaskIcon from "./task-icon.svg"; +import ListIcon from "./list.svg"; +import TableIcon from "./table.svg"; +import PageIcon from "./page.svg"; +import PieChartIcon from "./pie-chart.svg"; +import BoxCubeIcon from "./box-cube.svg"; +import PlugInIcon from "./plug-in.svg"; +import DocsIcon from "./docs.svg"; +import MailIcon from "./mail-line.svg"; +import HorizontaLDots from "./horizontal-dots.svg"; +import ChatIcon from "./chat.svg"; +import MoreDotIcon from "./more-dot.svg"; +import BellIcon from "./bell.svg"; + +export { + DownloadIcon, + BellIcon, + MoreDotIcon, + FileIcon, + GridIcon, + AudioIcon, + VideoIcon, + BoltIcon, + PlusIcon, + BoxIcon, + CloseIcon, + CheckCircleIcon, + AlertIcon, + InfoIcon, + ErrorIcon, + ArrowUpIcon, + FolderIcon, + ArrowDownIcon, + ArrowRightIcon, + GroupIcon, + BoxIconLine, + ShootingStarIcon, + DollarLineIcon, + TrashBinIcon, + AngleUpIcon, + AngleDownIcon, + PencilIcon, + CheckLineIcon, + CloseLineIcon, + ChevronDownIcon, + PaperPlaneIcon, + EnvelopeIcon, + LockIcon, + UserIcon, + CalenderIcon, + EyeIcon, + EyeCloseIcon, + TimeIcon, + CopyIcon, + ChevronLeftIcon, + UserCircleIcon, + ListIcon, + TableIcon, + PageIcon, + TaskIcon, + PieChartIcon, + BoxCubeIcon, + PlugInIcon, + DocsIcon, + MailIcon, + HorizontaLDots, + ChevronUpIcon, + ChatIcon, +}; diff --git a/src/icons/info-hexa.svg b/src/icons/info-hexa.svg new file mode 100644 index 0000000..59ea932 --- /dev/null +++ b/src/icons/info-hexa.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/info.svg b/src/icons/info.svg new file mode 100644 index 0000000..6ef176e --- /dev/null +++ b/src/icons/info.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/list.svg b/src/icons/list.svg new file mode 100644 index 0000000..93060bd --- /dev/null +++ b/src/icons/list.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/lock.svg b/src/icons/lock.svg new file mode 100644 index 0000000..a9afbe6 --- /dev/null +++ b/src/icons/lock.svg @@ -0,0 +1,19 @@ + + + + \ No newline at end of file diff --git a/src/icons/mail-line.svg b/src/icons/mail-line.svg new file mode 100644 index 0000000..2e8a46b --- /dev/null +++ b/src/icons/mail-line.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/more-dot.svg b/src/icons/more-dot.svg new file mode 100644 index 0000000..d99c76b --- /dev/null +++ b/src/icons/more-dot.svg @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/icons/page.svg b/src/icons/page.svg new file mode 100644 index 0000000..862c68a --- /dev/null +++ b/src/icons/page.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/paper-plane.svg b/src/icons/paper-plane.svg new file mode 100644 index 0000000..1e00196 --- /dev/null +++ b/src/icons/paper-plane.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/pencil.svg b/src/icons/pencil.svg new file mode 100644 index 0000000..6b94796 --- /dev/null +++ b/src/icons/pencil.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/pie-chart.svg b/src/icons/pie-chart.svg new file mode 100644 index 0000000..8917ca9 --- /dev/null +++ b/src/icons/pie-chart.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/plug-in.svg b/src/icons/plug-in.svg new file mode 100644 index 0000000..958e3e9 --- /dev/null +++ b/src/icons/plug-in.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/plus.svg b/src/icons/plus.svg new file mode 100644 index 0000000..9241f55 --- /dev/null +++ b/src/icons/plus.svg @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/icons/shooting-star.svg b/src/icons/shooting-star.svg new file mode 100644 index 0000000..519f5d2 --- /dev/null +++ b/src/icons/shooting-star.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/table.svg b/src/icons/table.svg new file mode 100644 index 0000000..889bd89 --- /dev/null +++ b/src/icons/table.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/task-icon.svg b/src/icons/task-icon.svg new file mode 100644 index 0000000..9f1d092 --- /dev/null +++ b/src/icons/task-icon.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/task.svg b/src/icons/task.svg new file mode 100644 index 0000000..52d9f4d --- /dev/null +++ b/src/icons/task.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/time.svg b/src/icons/time.svg new file mode 100644 index 0000000..e8df420 --- /dev/null +++ b/src/icons/time.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/trash.svg b/src/icons/trash.svg new file mode 100644 index 0000000..e42ce25 --- /dev/null +++ b/src/icons/trash.svg @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/icons/user-circle.svg b/src/icons/user-circle.svg new file mode 100644 index 0000000..fa6c14a --- /dev/null +++ b/src/icons/user-circle.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/user-line.svg b/src/icons/user-line.svg new file mode 100644 index 0000000..28280ae --- /dev/null +++ b/src/icons/user-line.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/icons/videos.svg b/src/icons/videos.svg new file mode 100644 index 0000000..b8d69f1 --- /dev/null +++ b/src/icons/videos.svg @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/src/layout/AppAuth.tsx b/src/layout/AppAuth.tsx new file mode 100644 index 0000000..69c9536 --- /dev/null +++ b/src/layout/AppAuth.tsx @@ -0,0 +1,160 @@ +'use client'; + +import Checkbox from "@/components/form/input/Checkbox"; +import Input from "@/components/form/input/InputField"; +import Label from "@/components/form/Label"; +import Button from "@/components/ui/button/Button"; +import Link from "next/link"; +import Image from 'next/image'; +import React, { useState, useEffect } from "react"; +import { useRouter } from "next/navigation"; + +export default function AppAuth() { + const [showPassword, setShowPassword] = useState(false); + const [isChecked, setIsChecked] = useState(false); + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [error, setError] = useState(''); + const [isLoading, setIsLoading] = useState(false); + const router = useRouter(); + + // Check for remembered email on component mount + useEffect(() => { + const rememberedEmail = localStorage.getItem('rememberedEmail'); + if (rememberedEmail) { + setEmail(rememberedEmail); + setIsChecked(true); + } + }, []); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + if (!email || !password) { + setError('Email dan password diperlukan'); + return; + } + + try { + setIsLoading(true); + setError(''); + + const response = await fetch('/api/login', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ email, password }), + }); + + const data = await response.json(); + + if (!response.ok) { + throw new Error(data.error || 'Login gagal'); + } + + // Store user info in local storage + localStorage.setItem('user', JSON.stringify(data.user)); + + // Remember user if checked + if (isChecked) { + localStorage.setItem('rememberedEmail', email); + } else { + localStorage.removeItem('rememberedEmail'); + } + + console.log('Login berhasil, redirecting to dashboard...'); + + // Redirect to dashboard + router.push('/pages/dashboard'); + + } catch (err: any) { + setError(err.message || 'Terjadi kesalahan saat login'); + console.error('Login error:', err); + } finally { + setIsLoading(false); + } + }; + + return ( +
+
+
+
+

+ Log In +

+

+ Silahkan Masukkan Email dan Password anda Untuk Log-in Ke Aplikasi! +

+
+
+ {error && ( +
+ {error} +
+ )} +
+
+
+ + setEmail(e.target.value)} + required + /> +
+
+ +
+ setPassword(e.target.value)} + required + /> + setShowPassword(!showPassword)} + className="absolute z-30 -translate-y-1/2 cursor-pointer right-4 top-1/2" + > + {showPassword ? ( + Eye + ) : ( + Eye Close + )} + +
+
+
+ + Lupa password? + +
+
+ +
+
+
+
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/layout/AppHeader.tsx b/src/layout/AppHeader.tsx new file mode 100644 index 0000000..15b8947 --- /dev/null +++ b/src/layout/AppHeader.tsx @@ -0,0 +1,177 @@ +"use client"; +import { ThemeToggleButton } from "@/components/common/ThemeToggleButton"; +import NotificationDropdown from "@/components/header/NotificationDropdown"; +import UserDropdown from "@/components/header/UserDropdown"; +import { useSidebar } from "@/context/SidebarContext"; +import Image from "next/image"; +import Link from "next/link"; +import React, { useState ,useEffect,useRef} from "react"; + +const AppHeader: React.FC = () => { + const [isApplicationMenuOpen, setApplicationMenuOpen] = useState(false); + + const { isMobileOpen, toggleSidebar, toggleMobileSidebar } = useSidebar(); + + const handleToggle = () => { + if (window.innerWidth >= 1024) { + toggleSidebar(); + } else { + toggleMobileSidebar(); + } + }; + + const toggleApplicationMenu = () => { + setApplicationMenuOpen(!isApplicationMenuOpen); + }; + const inputRef = useRef(null); + + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + if ((event.metaKey || event.ctrlKey) && event.key === "k") { + event.preventDefault(); + inputRef.current?.focus(); + } + }; + + document.addEventListener("keydown", handleKeyDown); + + return () => { + document.removeEventListener("keydown", handleKeyDown); + }; + }, []); + + return ( +
+
+
+ + + + Logo + Logo + + + + +
+
+
+ + + + + + + + +
+
+
+
+
+
+ {/* */} + + {/* */} +
+ {/* */} + + +
+
+
+ ); +}; + +export default AppHeader; diff --git a/src/layout/AppMap.tsx b/src/layout/AppMap.tsx new file mode 100644 index 0000000..6f99fbd --- /dev/null +++ b/src/layout/AppMap.tsx @@ -0,0 +1,18 @@ +'use client'; + +import { Suspense } from 'react'; +import dynamic from 'next/dynamic'; + +const MapInteractive = dynamic( + () => import('@/layout/MapInteractive').then((mod) => mod.Map), + { ssr: false } +); + +export default function MapClient() { + return ( + Loading...
}> + + + + ); +} diff --git a/src/layout/AppSidebar.tsx b/src/layout/AppSidebar.tsx new file mode 100644 index 0000000..e4997f9 --- /dev/null +++ b/src/layout/AppSidebar.tsx @@ -0,0 +1,256 @@ +"use client"; +import React, { useEffect, useRef, useState, useCallback } from "react"; +import Link from "next/link"; +import Image from "next/image"; +import { usePathname } from "next/navigation"; +import { useSidebar } from "../context/SidebarContext"; +import SidebarWidget from "./SidebarWidget"; + +type NavItem = { + name: string; + icon: React.ReactNode; + path?: string; + subItems?: { name: string; path: string; new?: boolean }[]; +}; + +const navItems: NavItem[] = [ + { + name: "Dashboard", + icon: Grid, + path: "/pages", + }, + { + name: "Data Kecamatan", + icon: Box Cube, + path: "/pages/kecamatan", + }, + { + name: "Data Komoditas", + icon: List, + path: "/pages/komoditas", + }, + { + name: "Data Penduduk", + icon: List, + path: "/pages/datapenduduk", + }, + { + name: "Prediksi Panen", + icon: Task, + path: "/pages/prediction", + }, +]; + +const AppSidebar: React.FC = () => { + const { isExpanded, isMobileOpen, isHovered, setIsHovered } = useSidebar(); + const pathname = usePathname(); + + const [openSubmenu, setOpenSubmenu] = useState<{ + type: "main" | "others"; + index: number; + } | null>(null); + + const [subMenuHeight, setSubMenuHeight] = useState>({}); + const subMenuRefs = useRef>({}); + + const isActive = useCallback((path: string) => path === pathname, [pathname]); + + // Handle auto-open submenu based on active path + useEffect(() => { + let submenuMatched = false; + navItems.forEach((nav, index) => { + if (nav.subItems) { + nav.subItems.forEach((subItem) => { + if (isActive(subItem.path)) { + setOpenSubmenu({ type: "main", index }); + submenuMatched = true; + } + }); + } + }); + if (!submenuMatched) { + setOpenSubmenu(null); + } + }, [pathname, isActive]); + + // Calculate submenu height for animation + useEffect(() => { + if (openSubmenu !== null) { + const key = `${openSubmenu.type}-${openSubmenu.index}`; + if (subMenuRefs.current[key]) { + setSubMenuHeight((prev) => ({ + ...prev, + [key]: subMenuRefs.current[key]?.scrollHeight || 0, + })); + } + } + }, [openSubmenu]); + + const handleSubmenuToggle = (index: number, menuType: "main" | "others") => { + setOpenSubmenu((prev) => { + if (prev && prev.type === menuType && prev.index === index) { + return null; + } + return { type: menuType, index }; + }); + }; + + const renderMenuItems = (navItems: NavItem[], menuType: "main" | "others") => ( +
    + {navItems.map((nav, index) => ( +
  • + {nav.subItems ? ( + + ) : ( + nav.path && ( + + + {nav.icon} + + {(isExpanded || isHovered || isMobileOpen) && ( + {nav.name} + )} + + ) + )} + {nav.subItems && (isExpanded || isHovered || isMobileOpen) && ( +
    { subMenuRefs.current[`${menuType}-${index}`] = el; }} + className="overflow-hidden transition-all duration-300" + style={{ + height: + openSubmenu?.type === menuType && openSubmenu?.index === index + ? `${subMenuHeight[`${menuType}-${index}`]}px` + : "0px", + }} + > +
      + {nav.subItems.map((subItem) => ( +
    • + + {subItem.name} + + {subItem.new && ( + + new + + )} + + +
    • + ))} +
    +
    + )} +
  • + ))} +
+ ); + + return ( + + ); +}; + +export default AppSidebar; \ No newline at end of file diff --git a/src/layout/Backdrop.tsx b/src/layout/Backdrop.tsx new file mode 100644 index 0000000..8ae3167 --- /dev/null +++ b/src/layout/Backdrop.tsx @@ -0,0 +1,17 @@ +import { useSidebar } from "@/context/SidebarContext"; +import React from "react"; + +const Backdrop: React.FC = () => { + const { isMobileOpen, toggleMobileSidebar } = useSidebar(); + + if (!isMobileOpen) return null; + + return ( +
+ ); +}; + +export default Backdrop; diff --git a/src/layout/MapInteractive.tsx b/src/layout/MapInteractive.tsx new file mode 100644 index 0000000..a6b84b7 --- /dev/null +++ b/src/layout/MapInteractive.tsx @@ -0,0 +1,764 @@ +'use client'; + +import { useEffect, useRef, useState } from 'react'; +import * as d3 from 'd3'; + +import { type PinData, createPins, updatePinVisibility, pinCategories, resetPins } from '../components/map/PinsSebaran'; +import { Controls, calculateZoomTransform, calculatePathBounds } from '../components/map/ZoomControls'; +import { Sidebar } from './MapSidebar'; + +import { KecamatanDetail } from '../components/map/KecamatanDetails'; +import { FilterPanel } from '../components/map/FilterSebaran'; +import { InfoPanel } from '../components/map/InfoSebaran'; +import Image from "next/image"; + +import { dataKomoditas } from '@/data/komoditas'; + +interface KecamatanData { + name: string; + path: string; + center: [number, number]; + defaultColor?: string; + area: string | number; + population?: string | number; + jml_penduduk?: string | number; // Tambahkan ini + title?: string; + gambar?: string | null; + deskripsi?: string; + laju?: string; + laju_pertumbuhan?: string; // Tambahkan ini + komoditastertinggi?: string; +} + +export interface EnhancedPinData extends PinData { + id_panen: string; + position: [number, number]; + category: string; + name?: string; + title: string; + luaspanen?: string; + produksi?: string; + produktivitas?: string; + kec?: string; + komoditastertinggi?: string; +} + +const staticKecamatan = [ + { + id_kecamatan: 1, + name: "Binakal", + path: "M262.77 393.327h3.12v.24h2.88l1.92.24 1.92.24h1.92l2.16.24.48-.24h1.44l1.199-.24h1.92l1.2-.24.72.24h1.92v.24h-.48l-.24.24v.96h.48l.48.24v.24l.24.48v.48l.24.24.48.48h.24l.48.72.48.72.48.48.239.48.24.24.48.72v.959l-.24.24h.24v.24h.96v-.96l.24-.24h.48l.48.24.48.72.24.48.24.24v.72l.24.24.48.24.48.24.24.24.24.24v.48h.72l.24.24.24.24v.96l-.24.24-.48.24v.48l.24.24v.48l-.24.48v.24h.24l.48.24h.72l.24.24v.24l-.24.24-.24.48h-.24l-.24.24v.24l-.24.24v1.2l-.24.24v.239l-.24.48.24.24.24.72v.96l.24.72.48 1.2v1.92l-.48 1.2-.24.48-.24.48h-.24v.48l-.24.24-.24.24.24.24h-.24v.24h-.24v.24l-.24.24v.24h-.24v.24h-.24v.48l-.24.24v.719h-.24l.24.24-.24.24-.24.48v.96h-.24v.24l-.24.24v.48l.24.48v.24h-.24v1.2l-.24.24.24.24-.24.24v.24l-.24.72v.24l-.24.48h-.24l-.24.24v.48l.24.24-.24.48.24.72v1.44l-.24.24v.479h-.24l-.24.24h-.24v.24h-.24v.24h-.24v.96h-.24v.24l-.24-.24h-.72v.24h-.24v.24h-.24v.24h-.48v-.24h-.96v-.48h-.24v-.24h-1.68l.24.24v.48l-.24.72.48.48.48.48.24.24v1.92l-.24.24v1.2l-.24.24v.72l-.24.48v.48h.48v.48l.24.24h.24v.48h.24v.48h-.24l-.24.24-.24.479h-.24l-.24.24-.48-.24h-.48v.72h-.48l-.72-.24-.48.24-.96.24-.24.24-.24-.24h-.24v-.48l-.24-.24h-.479l-.24-.48h-.48l-1.2.24-.72.24h-1.2l-.24-.24h-.96l-.48.24-.48.24h-.48l-.48.24h-1.68l-.239-.24-.24-.24-.96-.24-.24-.24-.24.24-.48.24v.24l-.24.24v1.44l.24.24-.24.24h-.48l-.72-.24h-.72v.24h-.24v.24l-.48.24-.48.24-.48.24h-1.2l-.48-.24-.72-.24-1.199.24h-.24l-1.2.24-1.44.48-.72.48-.72.24.24.24v.24l-.24.24-.24.48h-.24l-.72.48-.24.24-.24.24v.24l.24.72v.72l-.24.24h-.24l-.48.24h-.72l-.72.24h-.239l-.48.24-.24.48-.96.72-.48.48-.24.24h-.48l-1.2-.48h-.24l-.24.24h-.48l-.24.24h-1.44l-.48.239-.24.24h-.24l-.96.72-.479.24-.48.24-.48.24-.72.48-.24.24-.48.48-.48.48-.48.24-.48.24-.72.24-.24.48-.48.48-.48.24-.24.48-.48.48-.48.48-.48.48-.48.48-.48.24-.48.24h-.479l-.48.48h-1.68l-.48.24v.24l-.24.48-.48.48v.24l-.48.24v.24l-.48.24-.24.48-.24.24-.24.239-.24.48v.24l-.24.48-.24.24-.24.24h-1.2l-.48.24h-.24l-.24.24h-.24l-.239.24-.24.24-.48.24-.72.24h-1.2l-.48.24-.24.24-.48.72-.72.48-.96.96-.96 1.2-1.2.96-1.2.96-1.199 1.2-.24.24-.96.72-.96 1.199h-.24l-.96.96-.48.48h-.24l-.24.24-.24.24-.24.24-.24.48-.24.48-.48.24v.24l-.72.48-.48.48h-.48l-.48.24-1.199.24-.48.24h-.48l-.48.24-.24-.24h-.24v.24h-.24l-.24-.24h-.48l-.72-.24-.72-.24-.72-.24-.96-.24h-1.68l-.719.24-.48.24-.48.48-.48.72-.48.72-.72.96-.48.72-.48.72-.24.48-.72.24-.96.48-1.2.24-1.2.24-.719.24-1.2.479-.96.48-.96.72-.48.48-.48.48-.24.72-.48.96-.24.96-.24.96-.48.72-.24.72-.72.72-.72.72-.72.72-.48.96-.719.96-.48.959-.48.96-.24.72-.96.72-.72.72-.96.72-.96.72-1.44.72-.96.72-1.439.72-.48.24-1.44.48-1.44.24-1.68.48-1.92.24-.72.24h-.24l-.24.24h-.24l-.24.24h-.24l-.239.24h-.24l-.48.24-.24.24h-.48l-.24.24-.24.24-.48.24h-.24l-.24.24-.24.24h-.48v.239h-.24l-.24.24v.24h-.24l-.24.24-.24.24h-.24v.24h-.24l-.24.24h-.96l-.48.24-.72.48-1.199.72-1.44.48-1.2.24-.48-.24h-.72l-1.2-.48-.96-.48-1.2-.72-.72-.24H144.705l-.96.24-.96.48-.48.24-.96.72-.72.48-.48.48-.24.24-.24.24v.24l-.24.24-.24.24h-.72l-.96.24h-.24l-.24.24h-.24l-.24.24v.24h-.24v.24l-.24.24-.239.24-.24.24v.24l-.24.24-.24.48-.24.24-.24.24-.24.48-.24.48v.24l-.48.48-.24.72-.72.719-.48.96.24-1.2.24-1.2.24-.72v-.24h.24l.48-1.44.48-1.2.48-1.44.48-1.2.24-.48.72-1.2.24-1.2.48-1.439.72-.96.48-1.2 1.2-1.44v-.24l.96-1.2.96-.96 1.2-.96 1.2-1.2v-.24l1.199-.96.96-.72.96-.48.96-.479.24-.24 1.2-.24.72-.24 1.2-.48 1.2-.48 1.679-.72 1.2-.96 1.2-.96 1.2-.96.96-1.2 1.44-1.68.72-.96.96-.96.959-.96.48-.719.72-.96 1.2-1.2.96-1.2.96-1.2.96-1.2.96-.96.48-.72.48-.72.24-.96.24-.48v-.48l.48-.48.479-.48.24-.24v-.719l-.24-.72v-.48l.24-.72 1.2-2.88.24-.72.24-.24.24-.72.48-.48.24-.48h.24l.48-.24v-.24l.72-.72v-.24l.48-.72.24-.48.48-.48.24-.24.24-.479v-.24l.48-.48.24-.24.24-.48.48-.24.72-.24h.959l.72-.24.48-.24.96.24h.24l.24-.24.24-.24.48-.96v-.24l.24-.48.72-1.2.24-.24.24-.48.96-1.2.96-1.44h.24l.96-1.2v-.24h.24l.24-.24.719-.96.24-.479.24-.24.72-.72.72-.96v-.24l.96-.72.72-.72.24-.48.72-.72.96-.72.24-.48.72-.48.24-.24.24-.24.72-.72h.24l.72-.72h.239l.72-.48h.24l.24-.24.24-.24.48-.24h.24l.24-.24.24-.24.24-.24.72-.72v-.24h.24v-.24l.24-.239v-.24l.48-.96.24-.24.48-.96.48-.96v-.24l.48-.72.48-.24v-.24l.24-.24.24-.24h1.2l.48.24h.719l.48-.24.48-.24.72-.96.24-.24.48-1.68.24-2.16.48-1.199.24-.72v-.48l.24-.96v-1.44l.48-1.2v-1.2l.24-.96V426.924l.24-.72.72-.959v-1.2l.48-.48v-.72l.48-.72.96-.48h2.399l.72.48.72.48H221.496l.72-.24.24-.24.72.24.24.24.24.24h.96l.719-.24h.48l.48.24h.24v-.24h.24l.72-.48.48-.48.24-.24v-.24l.24-.48.48-.48.24-.24.48-.24h1.44l.24-.24.48-.48.24-.24.24-.48h.24v-.24h1.2l.24-.24.479-.24h.72l.24-.24.48-.24.24-.24.24-.24h1.92l.96.24.48.24.96.48.24.24.24.24.48.96.48.72v.48l-.24.48v1.2l-.24.24h-.24l-.24.24-.24.24.24.24v1.68h.24l.24.24.48.24.24.48v.24h.959l.48-.24.72-.48h.24l.48.24.48.24h.24l.48.24.48-.24h.24l.24-.24v-.24l.24-.48V421.884h.24l.24-.96.24-.96.96-.72.72-.24.72.24 1.44.96.239.24h.48l.96-.24h.72l.24-.24v-.24l.48-.72.48-.96.48-.72v-.72l-.24-.24-.72-.24-.24-.24v-.24l.24-.96.48-1.679.96-2.64-.24-.24-.48-.48-1.44.72-.96-.24v-.72h-.96v-1.92l.24-.72.48-.96.72-.72v-.24l.24-2.4.24-.24v-.959l.24-.96.48-2.4v-.48l.48-1.68.72-.24.24-.24 1.68-.72h.24l.24-.24.48-.96h1.44l.719-.24.24-.24h.24l.24.24.48.24z", + center: [230, 450], + defaultColor: "#2E8B57", + produksikomoditas: "11.842", + }, + { + id_kecamatan: 2, + name: "Bondowoso", + path: "M377.478 427.404v.48l-.48.72v.24l.24.24.24.24h.48l.24-.24v-.96l-.24-.24.24-.48.24-.24h.24l.24.24.48.24.48.48.24.24.24.24.48.24h.48l.24-.24.24-.24.24-.24.24-.24.24-.24h.24l.96-.24.48.24h.72l.24.24.24.24v.48l.24.48.48.24h.48l.24-.24.48-.48.24-.24h.479v.24l.48.24.24.24-.24.24-.24.24-.48.48-.24.24v.24l.24.24.24.24h.24l.24-.24.24-.24.72-.72.48.24.24.24.24.48.24.48.24.24.24.24.24-.24.24-.24.24-.24h.24l.48.24.24.24.72.48h.48l.24-.24.72-.48.48.24.48.24.24.48.24.24.479.24.24.24h.24l1.2.48h.24l.96.48 1.68.24v.24l.24.24-.24.48-.72.48-.48.24-.72.48h-1.2l-.24.239v.72l.24.24.24.48.24.48.24.48v.72l-.24.48-.24.24-.24.24-.24.48-.24.48h-1.44l-.48-.24-.72-.24-.24-.24h-.48l-.48.24h-1.92l-.24.24-.48.48-.48.48-.48.24-.48.24-1.2.24-1.199.24-.72.24h-.24l-.24.24-.48.24-.24.48v.72l-.48.48-.24.72h-.24l-.24.48-.48.48-.72.24v.24l-.48.24-.72.239-.48.24h-.24l-.48.24h-.24l-.72.24-.959.72-.72.72h-.24l-.24.24-.72.48-.72.48-.72.24-.72.24h-.48l-.24.24-.48.48-.48.24-.96.48-.24.24-.48.24-.24.24v.72l-.24.24-.479.24-.96.48-.48.24v.24l.24.24h.24v.48h-.48l-.48.24-.24.24v.24l-.24.24-.24.48-.24.24-.24.24v.24l.24.48v.239h-.24v.24h-.48l-.24.24v.24l-.24.48-.24.48-.24.48-.72.96-.48.72-.24.48-.48.72-.48.72-.48.48-.24.24-.24.24v.24l-.24.24v.48l-.24.48v.24l-.24.24-.479.24-.48.48-.24.24-.96.48-1.44.72-.72.48-.48.24-.24.24-.48.239-.24.24h-1.44l-.24.24v.24l-.24.48v.24h-.72l-.24-.24h-.48l-.479.72-.72.96-.48.48-.48.48-.24.24-.48.48-.72.48-.24.24v.48l-.24.72v.24l-.24.24h-.24v.24l-.72.24v.24l-.24.24-.24.48-.24.24-.24.24h-1.92l-.48.24-.48.48-.719.48-.48.24-.48.24-.24.48V484.278l-.24.48-.48.72v.24l-.48.72v.48l-.24.48.24.72.24.48.48.72v.72l.24.48.24.24v.96l.24.48.24.72.24.48v.96l-.24.48-.72.24-.72.719-.24.48v2.16h.24v.24l-.48.48-.24.48-.24.48.48.48.48.96.48.48-.24.48-.24.48-.48-.24-.24.24v1.68l-.48.24-.48.24v.48l.24.96.72.959v2.16l-.48 1.2v.72l-.48.48v.24h-.24l-.48.48-.72.72-.48.24-.96.96v.24h-.24v.48h.48l.48-.48.24-.24.24.24v.72l-.24.24-.24.48v.24l.48.48v.72l-.24.24-.24.24v.24l.24.48.24.239h.48l.24.48.24.24v.48l-.24.24.24.24.48.24v.24l-.24.24h-.24l-.48.24h-1.2l-.24.24-.24.24-.24.24v.24l-.24.48-1.2 1.44v.72l.48 1.2v.24l-.719.48v.24l-.24.24-.24.24h.24v.48l.24.24v.24l-.72.24-.24.24-.48.24-.24.24v.48l-.48.24-.48.239-.24.24-.24.24v-.24l-.24-.24-.24-.24-.96-.24v-.24h-.96l-.48-.24h-.72l-.48-.24-.72-.24-.48.48h-.959l-.24-.24h-.24l-.48.48h-.24l-.48.48h-.24l-.24.24-.24-.24h-.96l-.24-.24-.24-.24v.24l-.24-.24h-.72v.24h-.48l-.48-.24h-.48l-.24.24h-.24v.24h-.24l-.24.24h-.72l-.24.24v.24H315.566l-.72-.24h-1.2l-.24.24v.48l-.24-.24h-.24l-.24-.24h-.24l-.24.24h-.24v.24l-.24.48-.24.24-.24.24h-.72l-.24.24h-.48l-.48-.24-.24.24-.24.24v.48h-.48v.72h-.24l-.24.24v.24h-.24l-.239-.24-.24.24v.24l-.72-.24v.24l-.48-.24v.24l-.24-.24h-.72v-.24.24l-.48-.24-.24-.24h-.24l-.24-.24h-.48l-.24-.24-1.2-.48h-.24l.72-1.68 2.4 1.2.24-.48.48-.96v-.24l.72-1.92.48-.96v-.48h.24v-.24l1.2-2.64.96-2.16.72-1.68.24-.24v-.24l.48-.72.96-2.159.48-.96v-.24l.48-.96.24-.48.24-.72h.24l.24.24.24-.72.24-.48v-.24l.24-.72v-.48l.24-.72v-.48h-.24v-.48l.24-.48v-.72l.24-.72.24-.719.24-.72v-.24l.24-.48v-1.2l.239-.24v-.48l-.48-.24v-.24h-.24v-.24h-.24l.24-.24.24-.24-.24-.24v-.24l-1.44-.96h-.24l-.24.24h-.96l-.48.24h-.48l-.24-.24h-.48v.48h-.24v.24h-.24l-.24.24v.48l-.24.24-.24.24-.72.24h-.24l-.24-.24-.24-.24h-.479l-.72.24h-.24l-.24-.24-.24.24h-.96l-.24-.24-.72-.48-.48-.48-.24-.24-.72-.72-.24-.24-1.2-.72-.72-.24-.72-.24v-.48l-.24-.72-.24-.96v-.96l-.24-1.679v-.96l.24-.72.24-.72.24-.72.48-1.2.72-1.44.24-.24v-.48l-.24-.24h.24v-.24h.72l.24.24h.24l.48.24h.48v-.48h.96l.24-.24h1.44v-.24l.24-.24h.96l.24.24.24-.24h.72l.24.24h.24v-.24h.48v.48h.24l.24.24h.24v-.48h-.24v-.48l.24-.24h.72v-.24h.24l.48-.48h.24l.24-.24h.72l.48-.24.24-.24v-.48h.24l.24-.24v-.719l.24-.24h.72l.24-.24v-.72l.24-.48v-1.2h.24l.239-.48.24-.24v-.48l.24-.48v-2.16h-.24v-.24l.24-.24v-.96l.24-.24v-.96h-.48l.24-.24v-.24h-.24v-2.159l-.24-.24h-.24l.24-.48.24-.24v-.72l.24-.96v-.24l.48-1.68.48.24v-.48h.24v-.72l.48.24v-.24l.24-.48v-1.92l.24-.24v-.72h.48v-.48l-.72-.24h-.72l-.72-.24.24-.96.24-.48h.24l.24.24v-.24h.24l.24-1.199v-.24l.24-.48v-.48l.24-.48v-.48l.24-.96h2.16v-.48h.24v-2.16h-.24l-.24-.24v-.72h.24v-1.2h.24v-.48l-.24-.24v-.48h-.24l-.24-.24v-.48l-.24-.24h.24v-.48h.24V448.523l.24-.24v-.24l.48-1.92v-.72l.24-.72v-.72l.24-.72.24-.48v-.72l.24-.48.24-.24.24-.72v-.24l.24-.96v-.24h1.2l.719.24.48.24.72.96.48.48h.96l.48.24v.24h.24l.48.48.48.24.48.24.72.48.48.24h.96l.48-.24H333.562l.72-.24.48.24h.24v.24h.24l.24-.24.24-.24h.24l.48.24h.24l.24.24.24.24v1.2-.24h.96l.24-.24.72-.72.48-1.2.24-.24h.24l.96-.48h.48l.24.24v.48l.24.72.24.96.24.24.239.72.48.48h.72l.48.24 1.44.24h1.44l.24-.24h1.44l.48.24h.72l.72.48.24.24h.719l.24.24.72.48.72.24.72.24.24.24h1.68l.48.24v1.2l.48.24h.96v.48l.24.24h.96l.72.24.24.24v1.44h-.24v.72l.24.24.24.24h.719l.72.96h1.44l.24-.24h.48l.24.24v.24l.24.24h1.2v-.24l-.72-.72v-.24h.48l.24-.24.24.24h.24l.24-.48.24-.72v-1.92l-.24-.72v-1.2h2.16l.72-.48.24-.48v-.24l.719-.96.24-.24.24-.24v-.72l-.72-.72v-2.16l.24-.48v-.24h.24v-.24h.24l.96-.24h.24v-.24l.24-.72.24-.48.24-.48.24-.24.24-1.2v-1.439l.48-2.4v-.24l.24-.48-.96-.48v-.96l.24-1.2v-.72l.24-.72v-.72l.24-.48.24-.24.48-.48h.48l.24.24.48-.24 1.68-.24.24.24z", + center: [327, 485], + defaultColor: "#2E8B57", + produksikomoditas: "16.156", + }, + { + id_kecamatan: 23, + name: "Botolinggo", + path: "M574.736 287.496h.48l1.44.24.48.24.96.24V290.616l-.24.72.24.48v1.2l-.24.24v2.159l.24.48.24.24v.72h.24v.24l.24.24h.48l.24.48.24.24.24.24-.24.24v1.92h.24v.24h.24l.24.24v.24h.24v.24h.48l.48.24.24.24.24.24.24.24h.24l.24.24.24.48.48.24.72.48h.24l.48.24h.48v.24l.48.24h.24l.239.48h.24l.48.24.72.24v.24l.24.24.48.479h.72l.24.24v.24h.96l.96.24h.24l.96.24H595.373v.72l.24.24.24.24-.96.24v.72l.96.96-.48.24v.24l.24.24.24.24h.24l.72.24v.48l-.24-.24-.48.24v.96l-.24.24h-.72v.96l-.24.24-.24.72-.72.72-.24.24-.48.24v.24l-.24.48-.24.48v.24l-.24.24-.24.239v.24l-.24.48-.24.24-.24.24-.24.24.24.24.24.24.48.24v.48h-.24v.48h-.24v.24l-.24.48v.24h.72l.24-.24.24.24.24.24v.24h-.24v.24h-.24l-.24.24v.24l.24.48v.96l.24.24.24.24v.72l-.24.24-.24.24-.24.24v.72l-.24.24h-.48v.24l.24.24h.72v2.399l-.24.24-.24.24v1.2l-.24.48v.72l.24.48.24.48v.72l.24.24v.48l.72 1.44.48.48.48.48.72 2.16.24.48.24.48v.479l.24 1.2.24.72v.24h.24l.72-.48.96-.48.72-.48.24-.24.96-.48.96-.24h.48l.24-.24h1.44l1.44-.24H605.452l1.2.24h.72l.96.24 1.44.24.96.24.96.24 1.2.24.959.24.24.48.48.48.96.72.24.48.24.24v.48h-.24l-.24.72v1.68h-.24v.72l.24.72v.96l-.24.24h-.96l-.24.24v1.44l-.24.24.24.24.72.719.48.48.24.24.72.48.24.24.24.24-.24.24v.48l1.2.72.24.24v.96l-.24.72v.48l.24.48.24.24v.96l.24.24h1.2l.48.24.72 1.44.24.24.96-.24h.24v.96h.719l.72.24.48.24v.24l.48.24.48.719 1.2.72h.24l.72.48.96.96.24.24.48.24h.48l.48.24.24.48.48.72.48.48.479.48.48.72.48.48.48.48.48.48.72.48.48.24.48.48.48.48.24.24.24.24v1.68l.72.719.24.24v.24l.24.24.96 1.2.72.48v.48l.24.24v.24h.24l.24.24h.24v.24l.24.72.479.24.24.24v.24h-.24l-.24.24v1.44l.24.24.24.24-.48.72v.96l.24.48.48.24.24.24.24.24h.48l.48.24.24.24.48.24h.24l.24.48.48.239.24.24.24.48v.24l.24.24h.48v.24l.24.72-.48.48v.24l.48.48.24.24v.96l.48.24.48.24.24.24.24.24v.24l.24.48.24.24.48.24.72.72.24.24v.72l.239.24v1.68l.48.24.24.24h.48v.72l.24.239h.24l.24.24.24.24.24.48.24.24h.24l.72.48.48.48.24.24h.24v.48l.24.72.24.72.48.72.48.24h.24l.72.24.24.48.48 1.68v.48l.24.48h.24l.48.24.239.24.72.72v1.919l.24.48.24.48h.24v.24l.24.48v.72l.48.48.24.72v.72h.24v.72l.24.96h.24v.24l.24.48v.24l.24.96.24.72.24.48.24.48.24.24.72.96.48.24.24.48.24.479.24.24.24.24v.24l-.24.48v.48l.24.24.24.24v.96l.24.24v.24l.24.48.48.72v.48l.24.72.24.96.24.72v1.44l-.48 1.44.24.24.959.959 2.4 2.16 1.68 1.68 4.32 1.92-.24.48v.72l.719.96.48.72.48.72.24.48v.24l.48.24.24.48h.24V449.001l-.24 1.2.24.48.48.72.24.24.24.24v.72l3.6 1.92 2.159.96.24.24 6.96 3.36.24.24h.48v.24l-.24.719.24.24-.24.72.24.48.48.72v1.68l-.48.72-.24.72-.72 1.44-.72 2.4.96 1.68.24.24.24.24.48.719.72 1.92.959 1.44.72 1.68-.24.96.24.96.48.96v.24l.24.48.24.72v.96l.24.24.24.72.24.719v.96l.24.48.24.48.48.24.24 1.2v.48l.72.96.24.48-.24.72v1.44l.24.48.72.24.48.24-.24.48v.24l-.48.48v.72l.24.24 1.44 1.439-.24.24v1.2l.24.72.24.24.24.24.72.24.719.24.24.24h.96l.72-.24h.72v.24l.24.24v.48h.24l.24.48.24.48.24.24 1.2 1.2v.24l.24.24.24.24h.72v.24l.24.24v.48l.24.24.24.48v.24l.24.48.24.24.24.24.24.24.48.48v.239l.239.24h.24l1.44.24h.72l.48.72.48.48v.24l.48.48.24.96v.72l.24.48v.72l.48.24.24.24.24.24.96.24.24.24.24.24.24.24v.72l.24.24v.96h.24l.24.48v.24l.24-.24.72.24h.479l.24.24.24.48.72.24.48.48.24.24h.24l.96.719v.24h.96l.24.24h.24l.72.48h.24l.48.72.48.24.48.72v.24l.48.24 2.159 1.44 2.16 1.44 1.68 1.44.24.24h.72l.48.48.24.48v.48l.24.48.24.48.24.48.24.24v.959l-.24.72-.24.48-.24.48v.48l.24 1.2.24.48.48.48v.24l.24.48.24.48.48.96.24.24.479.24.72.48v.24l.48.72.24.48.24.48.24.48.24.48.24.72h.24l.24.24.48.719v2.4l.24.24v.96l.48.72.24.72v.24l.24.48.48.48.48.72.96.96.72.48v.48l.24-.24.48-.48h.96v-.24h.719v.24h.48l.48.24.48.24h.48l.24.48 6.479 5.999v.72l.96 6 .48 2.159v1.2l.48.96.72 2.16 1.44 4.56-.96.24-2.64 1.68-1.2 1.199-.48.24-1.2 1.44-1.2.96-.72 1.2-.48 1.2-.24.24v.48h-.24l-.24.96-.48.48-.96 1.68-.72 1.2-.48.959-.959 1.2-.24.24-.96.72-.96.72-.96.96-1.2 1.2-.96.72v.24l-1.2 1.2-.72.72-.48.48-.24.24-.719.48-.96.72-.48.48-.24.24-.72 1.199-1.68 1.92-.24.48v.24l-.72.96-.24.96-.72 1.2-1.68 2.4-.72 1.2-.479.96-.72.96-.24.479-.48.24-.48.48-2.64.72-1.68.48h-.96l-3.119 1.44v-2.16l.24-.72.24-.96.48-.96.24-.96v-2.88l-.24-.72-.24-.72v-.24l-.24-.48-.48-.48v-.24l-.72-.72-.48-.72-.48-.96-.48-.959-.24-1.2v-.72l.24-.72v-.96l-.24-.96v-.96l-.24-.72v-.24l-.24-.48v-.24l-.48-.96-.48-.72-.72-.96-.72-.72-.72-.959-.72-.96-.24-.24-.48-.72-1.439-1.2.24-1.92.24-2.16h-.24l-.24-.24-.24-.24h-.24v-.24l-.48-.24-.24-.48-.24-.24-.48-.24-.24-.48-.24-.24-.48-.48v-.24l-.24-.24-.24-.479-.48-.48-.96-.96-.24-.72-.24-.48-.72-.72-.48-.72-.72-.72-1.439-.72-.72-.24-.48-.24-.24-.24-.24-.48-.72-.96-.24-.96-.24-.24-.72-.24-.48-.24h-.48v-.24l-.48-.48-.24-.24-.96-.24-.48-.24h-.48l-.48.24-.24.24-.479.24v-.24h-.24v-.24l.24-.48v-.48l-.24-.24-.48-.479-.48-.48-.48-.24-.96-.24-.72-.48-.24-.24-.72-.48-.96-1.2-.48-.48-.48-.24-.72-.24-.48-.48h-.24l-.24-.24-.72-.48-.479-.48-.24-.24-.24-.24h-.96l-.48-.48-.24-.24v-.24l-.24-.24-.24-.24-.24-.24-.24-.24h-.24l-.24-.24-.48-.48v-.72l-.24-.48-.24-.48-.24-.959-.48-.72v-.24l-.72-.48-.24-.48-.24-.24-.24-.72v-.48l-.24-.48v-.72l.24-.24v-.96l-.24-.24-.72-.24-.48-.48v-.24l-.24-.24-.24-.24-1.199-.24-.24-.24-.24-.24-.72-.48-.24-.24h-.24l-.48.24h-.48l-.72-.48-.24-.24-.72-.72-.24-.24-.48-.72-.24-.24-.24.24-.96.24h-.72l-.48.24h-.719l-.24-.24v-.48l.24-.24.24-.479-.24-.24-.24-.24-.48-.48-.48-.96-.24-.48-.24-.24-.48-.96-.48-1.2v-.96l-.24-.24-.96-.24v-.24l-.24-.24-.72-.72-.24-.72v-.24l-.24-1.44-.24-.24-.48-.48-.24-.24-.72-.48-.72-.719-.48-.24H658.248l-.24-.24-.24-.48-.48-.96-.24-.24h-.48l-.96-.24-.48-.48-.24-.24v-.96l-.24-.24-.24-.72-.24-.48h-.48l-.72.24v-.96l-.24-.24-.24-.24-.24-.24h-.24l-.24-.24-.24-.24v-.96l-.48-.48-.24-.24-.719-.72-.24-.48-.48-1.439-.24-.48-.24-.24-.72-.48v-.24l-.24-.24v-1.2l-1.2-.48-.48-.24-.48-.24h-.24l-.72.72h-.48l-.48-.24-.24-.24-.72-.48-.24-.48-.24-.24-.24-.48v-.96l.24-.24-.24-.48-.48-.24-.959-.48h-.72l-.24-.24h-.24l-.24-.24v-.24l-.24-.24h-.24l-.48.24h-.24l-.24-.24-.24-.24-.24-.48-.24-.24h-.48l-.96-.24-.24-.24h-1.44l-.96-.48-.24-.24-.479-.959-.24-.24-.72-.24-.48-.24-.24-.24-.24-.24-.24-.96-.72-1.2-.24-.48v-.24l-.24-.24-.24-.24h-1.68l-.96.24-.24.24h-.24l-.48-.24-.48-.24v-.24l-.24-.48-.24-.24-.24-.24-.959-.48-.48-.48-.48-.48-.24-.72-.24-.48-.96-.72v-.24l-.48-.72-.48-1.679-.24-.48-.24-.48-.24-.48-.24-.24-.48-.24-.24-.24v-.96l-.24-.24-.24-.48v-.24l-.48-.48v-1.44l.24-.24.24-1.68v-1.92l-.24-.72v-.24l-.24-.24-.24-.479h-.24l-.48-.72h-.24l-.24.24-.96.24-.719-.24h-.24l-.48-.24-.24-.48-.24-.24v-.72l.24-.24.24-.72-.24-.24v-.24l-.24-.24-.24-.24h-.48l-.24.24-.48.24-.48.24h-.48l-.48-.48-.48-.48-.24-.24V477.32l-.48-.48-.72-.96-.72-.72-.72-.96v-.48l.24-.48.24-.239.72-.48v-1.2l-.24-.48-.48-.24-.48-.48-.48-.24-.24-.48h-.24v-.24l-.24-.72-.479-.48-.24-.24-.24-.24h-.96l-.72-.24V467l-.24-.24v-.24l.24-.72.24-.48.48-.72.48-.24.72-.72v-.48l-.24-1.44-.48-1.439-.48-.72-.24-.48-.24-.48-.48-.24h-.48l-.24-.24h-.24v-1.44l-.24-.72v-.24l-.48-.48v-.24l-.24-.48-.48-.24-.24-.72-.24-.72-.24-.72-.24-.48-.48-.24-.24-.48-.48-.48V449.243l.24-.48v-.96l.24-.24-.48-.24-.72-.48-.72-.24h-.239l-.24-.24-.24-.24v-.48l-.96-.72-.48-.72h-.24l-.24-.48-.24-.24h-1.68l-.96-.72-.24-.48-.24-.48-.24-.48h-.24l-.24-.24h-.24l-.48-.24h-.24v-.24l-.24-.48v-.72h-.24l-.24-.24-.48-.24-.479-.48-.48-.48-.48-.479v-.24l-.24-.24.24-.48h.24l.24-.24.48-.48v-.48l-.24-.72-.24-.48-.48-.24-.24-.24v-1.2l-.48-.24h-.24l-.24.24-.96.24v.24h-.48l-.24-.24-.48-.24-.48-.24-.48-.48-.24-.24v-.24l.48-.96.24-.24v-.72l-.24-1.2-.24-.24-.48-1.2-.48-.959v-.24l-.48-1.2-.72-.96-.72-.96-.48-.48-.479-1.44-.24-.48v-.48l-.24-.48v-.96l-.24-.24-.24-.24v-1.2l-.48-.24v-1.2l-.24-.48-.24-.24-.24-.479-.24-.24v-.24l-.24-.48v-.24l-.24-.24-.24-.24-.24-.24-.48-.48-.24-.24-.24-.48v-.24l-.24-.48v-.48l-.24-.24v-.48l-.24-.24h-.24l-.24-.24-.48-.48-.24-.24h-1.92l-.24-.24h-.479v-.24l-.24-.48-.24-.24v-.48l.24-.24-.24-.24v-.48l-.24-.24-.48-.24-.24-.24v-.48l-.24-.48-.24-.24h-.96v-.24l-.24-.24v-.24h-.24l-.72-.239h-.24l-.24-.24h-.24v-.24l-.24-.96-.24-.24-.24-.24-.48-.48h-.96l-.48-.24-.24-.24-.24-.24-.24-.48v-.96h-.24v-.96l-.24-.48v-1.44l.24-.24.24-.24.24-.24h.24v-.72l-.24-.24v-.96l-.24-.24-.48-.24h-.24l-.239-.72-.24-.24h-.24v-.239l-.72-.24-.72-.48-.72-.24-.72-.24-.48-.24-.48-.24-.24-.24-.24-.24v-.72l-.24-.24-.24-.24h-.24l-.24-.48v-.24l-.24-.24v-.96l-.24-.24-.24-.24h-.72v-.24l-.24-.48-.24-.24v-.48l-.24-.24v-.48l-.48-.24-.24-.24v-.24l-.239-.24v-.24h.24v-.48l-.24-.24v-.72l-.24-.48-.24-.48-.24-.479h-.24l-.24-.24v-.24l.24-.24v-.48l.24-.24-.24-.24v-.24h-.48l-.24-.24.24-.24v-.48l-.24-.48v-.24l-.24-.48v-2.16l-.24-.24v-.48h-.96l-.24-.24-.24-.24h-.24l-.24-.24v-.24l.24-.72h.48v-.96l-.24-.24-.24-.48-.48-.24-.24-.24v-.72h-.24V365.25l-.24-.24h-.48l-.48.48h-.24l-.24-.48-.24-.24h-.24l-.24-.24h-.24l-.24-.24v-.48l.24-.48v-.24l.24-.24-.24-.24v-.72l-.24-.48-.24-1.2v-1.44l-.24-.48v-.24h-.48l-.719-.24-.48-.48-.24-.24.24-.72-.48-.72-.24-.48-.24-.239-.24-.24v-.24l.48-.24.24-.24v-.48h-.48l-.48-.24h-.48l-.24-.24.48-.48.24-.24v-.96l-.24-.24v-.24l.24-.48-.24-.48.24-.48v-.72l.24-.24.24-.24.72-.48.48-.48v-.48l-.48-.48.24-.48.24-.24.24-.24v-.72l-.24-.24-.24.24h-.24v-.72h.48l.72-.24.24-.48.24-.959.24-.24h.24-.24l.24-.24.24-.48.48-.48.24-.24h.24v.96h.48v-.72l-.24-.24-.24-.48-.24-.48v-.72l.24-.24h.72l.48.24.48-.24.48-.24.48.24.72-.24.24-.24-.24-.48-.24-.48v-1.2h1.2l-.24-.48v-.24l-.24-.24v-.48l-.24-.24v-.24l-.96.24h-.24l-.24-.24-.48-.48v-.24l-.24-.24.24-.24.24-.48v-.96l-.48-.479-.24-.24v-.48l.72-.48.24-.24v-.48l.24-.48v-.24l-.24-.24.24-.72-.24-.48v-.48l-.24-.24.24-.48v-.72l-.72-.48h-.24v-1.2l-.48-.72-.72-1.92v-.24h.24v-.24h.24l.48-1.199v-.24l.24-.24v-.24l-.24-.48.24-.96.24-.96.24-.48.24-.72v-.24l-.24-.48-.24-.24-.24-.24v-.24l-.24-.24.72-.24.96-.24.24.24.48.24.24.24.72.24.48.24.24.24.24.24.24.24.24.24.479.24v.24l.48.72.24.24.24.24.24.24.72.24.24.24h.24l.48.24h.48l.48-.24h.48l.24-.24v-1.68l.24-1.92v-1.44l-.24-.24-.24-.24-.48.24v-.24l-.24-.24v-.24l-.24-.72-.48-.48-.48-1.44v-.959l1.44-2.16 1.68.96 1.44.48.72.24h.72l.719-.24h.24l3.84 1.2.24.24.48.24h.24l.72.24.48.24.48.24.96.24 2.159.48.24-.24.24-.24h.24v-.48l.24-.48.24-.48h-.48v-1.2l-.24-.24-.24-.48-.24-.72v-.24l.24-.96v-.72l-.48-1.44-.24-.48-.72-.72-.24-.24-.24-.48v-.48l-.24-.48v-.72l.24-.24.24-.48.48-.72v-.959l-.24-.48.24-.48-.24-.24v-.24l-.24-.24-.24-.24v-.24l.24-.48.48-.72v-.24l.24-.24h.96l.48.24.96.24.24-1.2h.48l.24.24h.48v.24h.24v-.24l.24-.96.24-.96v-.48l.24-.24.24-1.44.96.24z", + center: [640, 455], + defaultColor: "#9ACD32", + produksikomoditas: "18.775", + }, + { + id_kecamatan: 22, + name: "Cermee", + path: "M604.493 246.22h1.68l.96-.48.96-.72.72-.72.24-.24h1.68l1.44-.24h.72l.719-.48 2.4-.24 1.44-.24h1.44l1.92-.24h.96l2.159.24h4.8l.72.24.96-.24h3.359l4.08-.48h.48l2.879-.48h3.6l2.4-.48h.24l1.68-.72.719-.24H655.368l.48.24h3.359l.24.24h1.68l.24.24h1.44v.24h.24l.24-.24H666.407v-.24h3.359l.72.24 1.44.24 1.44.24 1.2.24v-.48l.24-.48h.72l.24.24H677.204l.48.24h1.2l.72.24h1.2l.48.24.72.24h.48l.24.24h.24l.24.24h.48l.24.24h.24l.48.24.96.24h.239l.48.24.72.48.48.24.24.24v.24l.24.24v.72l.24.24.24.24.24.24.24.24v2.639h.72l.48 1.44v1.44h.24l-.24.24.24.24h.24l.24.24.72.24.48.24v1.2h.24v.24l.24.48v.24h-.24l-.24.24.24.24v.24h.48l.48-.24h.24l.72.24H696.162l.48.24.48.24.24.24h.96l.24.24.24.24v1.2l-.24.479-.24.96v.24l.24.48.24.48v.48h-.24v.24l-.24.48h-.24l-.24.48v.48l-.24.24v.72l-.24.24-.24.24v.24l-.24.24v.48h-.24l-.24.24v.24h.24l.24.24h-.72l-.24.24-.24.24-.24.24-.24.48v.48l-.24.48v.72l-.24.24-.72.72v.24l-.24.479h-.24v2.16l-.24.24v.24l-.24.48-.48.48.24.24.72.24.24.48.24.24v.72l.24.24v.24l-.24.24v.24l.24.24.24.24.72.48v.48l.24.48.24.48v.24l.24.72.48 1.2.24.24h.72l.48.24h.48l.24.239.24.48.24.48v2.4l.24.72.24 1.2v.24l.24.96.24.72.24.48v.48l.24.48v.48l.48.24v.24h1.92l.48.24.239.24.24.24.48.72h.24l1.2.959.72.48.24.24.24.24.48.24.48.24.96.72.48.24v1.2l.24.24.24.24v.72h.24l.24.24h.24l.24.24v1.2l.24.24.24.24h.24v.24l-.24.24-.24.24.24.24v.24l.24.48h-.24v.24l.24.24v1.68l.24.24.24.24h.24l.479.24v1.439h.24v.72l-.72.72v.24l.24.24.24.24h-.24v.24l-.48.48h.24l.24.48v.24l-.48.48v1.2l.24.24v.72l-.48.96v.24l.24.96v.24h-.24l-.72.48v.24l-.24.24v1.439l-.24.24.24.48v.24h.24l.72.24.24.24.24.48v.48l-.24.48.24.96-.24.24h-.24v.24l.24.48.48.24.72.24v2.16h-.24v.24l.48.48.24.48-.24.24-.48.24v.72l-.24.24-.24.24-.24.24v.48l.24.239v1.68h.48l.24.24v.24l.24.48.72.24v.72l-.24.48v.48h.48l-.24.24v.48h.24l.48.24v.48l-.24.24v.24l.24.24.72.48h-.24l-.24.24.24.48v.24l.24.24h.24v.96l.24.24.24.24h.24v.24h-.48l-.24.24.24.24v.24l.24.48.24.24v.719l.24.48.24.96.48.24.24.24v1.2l.48.48.48.72.24.24.24.24-.24.48.24.24v1.2l.24.48.24.24.24.48.48 1.68.24.48.24.24v.48l-.24.48v.239l.48.24.24.24v.24h-.48l-.24.24-.24.24.24.24.24.24h.24v.48h-.24l-.72-.24h-.72v.72l.48.24.24.24v.24l-.24.24v.24l.24.24h.24v1.68l-.72.24-.24.24-.24.24-.24.24-.24.24H718v.48l.48 1.2v.48l.24.48-.24.24-.24.24v.24H718v.24l.48.48h.24v.24l-.48.479H718v.24l.24.48-.24.24v.72h.24v.96l-.24.24-.24.96-.24.24v.24l.24.24h.24v.24l.24.24v1.2l.24.48.24.48-.24.24v.48l.48.48v.96l-.24.72v.96l-.24.48-.24.239.48.48.24.24v.72l-.24 1.2v.24H718l-.24.24h-.24l-.24.72-.24.24v.72l.24.24v.48l-.72.72v.24l-.24.24v1.44l.24.48.24.48h.24l.48.24.24.24h.24l.24.48.24.24v.48l-.72.48h-.24l-.24.479-.24.48v.48l-.24.48v.96l.24.48.24.24.24.48.72.96v.96l-.24.48v1.68l.72.96.24.48v.72h-.24l-.48.24-.24.24-.24.48-.48.72v1.679l-.24.24v.24l.24.24.48.24.24.24h.24l.24.72.24.72v.24l-.24.48-.48.72v.24l.24.24.24.48.48.48.24 1.44.24.72v.48l-.24.24v.48l-.24.24.24.24.48.24h.24l.24.24.48.24h.96l.239.239.24.24.48.72v.96l.24.48.24.72v.24l.24.48.48.48.48.72.48.24v.24l.48.48v.24l.24.48.24.48.24.48-.24.24v.72l.24.24.48.96h.24l.48.24.48.24h.48l.48.24.24.24.24.48.24.479.48.72.72.96.24.48v.72l-.24.72v.96l.24.48v1.2l.239.72.24 1.2.24.72.24.48v.48l-.24.48-.24.48v.72l.24.24v.239l.48.24.72.48 1.2 1.44.24.24.48 1.2.24.48.24.48.48.48.24.48.48.24.48.48.24.24.24.48.72.96v.96l.48.24.24.24.72.24.24.24v.48l.479.72h.24l.24.24.48.479.96.72.72.48.24.96-.24.24h-.24l-.24.24h-.24v.24l.24.48.24.48.24.72.24.24.48.24v.48l-.24.48v.96l.24.48v2.88l.24.24.24.72.48.719v1.44l.24 1.44-.24.72-.24.48-.48 1.2v.72l.24.48.24.48-.24.24v.24h.24l.48.24.24.48.48.72v.24l.48.48.24.48h.24l.24.48v1.439l.24.48v.72l-.24.24v.24l-.24.24v.48l.24.24.24.48v1.2l-.24.72v.48l.24.96-.24.24.24.24.24.24v.72l-.24.72-.24.96v.72l.24.24h.24l.24.24.24.48.24.239-.24.48-.24.48.24.24.48.48.24.48.719.48.24.48v.24l-.24.48-.24.48-.24.48-.48.24-.48.48-.24.24-.24.24h.24l.24.48-.24.24h-.48l-.48.24v.24h-.24v.24l.24.24.48.48-.24.48v.48l.24.24.24.24.48.24v1.2l-.24.24h-.24l-.72.24v.239l.24.48v.48l.48.72.48.72v.48h.24l.48.24.24.24.24.48.24.72v.96l.24.48v.72l.24.48v.24h.24l.24.24v.96l.24.24.24.72v.24l-.24.24-.48.48v.24l.24.24.24.24.48.24.24.479v.24l-.24.48-.24.24.24.24v.24l.24.24.24.24v.96l.24.24v.48l-.24.48v.48l.24.24.48.48.48.24.48.72.24.48v.72l.24.48.24.48.24.72.24.24.48.48.48.48.24.24h.48l.24.24.48.24v.48l-.24.719v.48l.24.24.24.24h.72v1.2h.24l.479.24v.72l.24.24.24.24.48.48.24.24v.24l.48.48.24.24v.72l.48.96-.24.96v.96l-.24.72.24.72v.959l.24.48.24.48h.24l.24.24.24.24.24.24v.48l.24.48-.24.96v.48l-.72 1.2-.24.24v.24l.48.48.48.48.48.24 2.4 1.68 1.2 1.44.48 1.2-.24.24h-.24v.239h-.24v.72l-.48.48-.48.48-.24.24-.24.72-.24.48v.72l.24.96-.24.48-.24.24.24.48v1.44l-.48 2.64.96 1.919 1.92 2.64v.96l.24 3.12-.48 3.6-.24.96-.72.479-.48.48-.72.24h-.24l-.24.24h-.48l-.24.24-1.2.72-1.44.72-.48-.96v-1.2l-.48-2.16-.96-6v-.72l-6.48-5.999-.24-.48h-.48l-.48-.24-.48-.24h-.479v-.24h-.72v.24h-.96l-.48.48-.24.24v-.48l-.72-.48-.96-.96-.48-.72-.48-.48-.24-.48v-.24l-.24-.72-.48-.72v-.96l-.24-.24v-2.399l-.48-.72-.24-.24h-.24l-.24-.72-.24-.48-.24-.48-.24-.48-.24-.48-.479-.72v-.24l-.72-.48-.48-.24-.24-.24-.48-.96-.24-.48-.24-.48v-.24l-.48-.48-.24-.48-.24-1.2v-.48l.24-.48.24-.479.24-.72v-.96l-.24-.24-.24-.48-.24-.48-.24-.48v-.48l-.24-.48-.48-.48h-.72l-.24-.24-1.68-1.44-2.159-1.44-2.16-1.44-.48-.24v-.24l-.48-.72-.48-.24-.48-.72h-.24l-.72-.479h-.24l-.24-.24h-.96v-.24l-.96-.72h-.24l-.24-.24-.48-.48-.719-.24-.24-.48-.24-.24h-.48l-.72-.24-.24.24v-.24l-.24-.48h-.24v-.96l-.24-.24v-.72l-.24-.24-.24-.24-.24-.24-.96-.24-.24-.24-.24-.24-.48-.24v-.72l-.24-.48v-.72l-.24-.96-.48-.48v-.24l-.48-.48-.48-.719h-.72l-1.439-.24h-.24l-.24-.24v-.24l-.48-.48-.24-.24-.24-.24-.24-.24-.24-.48v-.24l-.24-.48-.24-.24v-.48l-.24-.24v-.24h-.72l-.24-.24-.24-.24v-.24l-1.2-1.2-.24-.24-.24-.48-.24-.48h-.24v-.48l-.24-.24v-.24h-.72l-.72.24h-.959l-.24-.24-.72-.24-.72-.24-.24-.24-.24-.24-.24-.72V496.519l.24-.24-1.44-1.44-.24-.24v-.72l.48-.48v-.24l.24-.48-.48-.24-.72-.24-.24-.48v-1.44l.24-.72-.24-.48-.72-.96v-.48l-.24-1.2-.48-.24-.24-.48-.24-.48v-.959l-.24-.72-.24-.72-.24-.24v-.96l-.24-.72-.24-.48v-.24l-.48-.96-.24-.96.24-.96-.719-1.68-.96-1.44-.72-1.919-.48-.72-.24-.24-.24-.24-.96-1.68.72-2.4.72-1.44.24-.72.48-.72v-1.68l-.48-.72-.24-.48.24-.719-.24-.24.24-.72v-.24h-.48l-.24-.24-.48-.48-.24-.72-.24-.24v-.24l-.24-.24-.24-.24v-.72l-.24-.24-.24-.48v-.48l-.24-.24-.24-.24-.24-.24-.24-.96v-.72h-.48l-.24-.24-.48-.96-.24-.24v-.48l-.24-.48v-.24l.24-.48-.24-.239-.24-.24v-.24l.24-.24v-.24l-.24-.24-.72-.72v-.48l-.24-.24-.959-.72-.24-.24v-.48l-.24-.24-.24-.24-.48-.96v-.24l-.72-.48h-.24l-.48-.24-.24-.24h-.24l-.24-.24-.24-.24-.24-.24-.24-.24v-1.44l-.24-.24-.96-.48-.24-.48-.24-.24-.24-.24-.48-.24v-.24l-.24-.719v-.96l-.24-.24-.24-.48v-.48l-.24-.24-.24-.72-.24-.24h-.48l-.959-.24h-.72l-.24.24-.24-.24h-.24l-.24-.24v-.24l.24-.24v-.24l.24-.24v-3.84l-.24-.48-.72-.72v-.48l-.24-.48v-.48l-.24-.479-.24-.24-.96-.24-.24-.24-.24-.24-.96-.96-.72-.48-.48-.72v-1.2l-.24-.72v-.48l.24-.48.24-.24.24-.24v-.48l-.24-.24-.48-.72-.24-.24-.48-.24-.48-.48-.479-.24v-.24l.24-.24.24-.24.48-.96v-.48l-.24-.479v-.72l-.48-.24-1.2-1.44h-.24l-.96-.24-.24-.24v-.48l-.24-.72v-.72l-.48-.96v-.96l.24-.24-.24-.48-.24-.96-.48-.72v-2.4l-.24-.719-.48-.96-.48-1.92-.48-.96-.24-.72-.48-.72-.72-1.2v-.24l-.24-.24v-.24l-.24-.24-.24-.24v-.48l-.96-.96-.24-.24-.239-.72-.24-.24v-1.679l-.48-.72-.24-.48v-.48l-.48-.48-.24-.72-.24-.24-.24-.48-.24-.72v-2.16l.24-1.2v-.24l-.24-.24.24-.48h.24l.24-.72v-.96l-.24-.719-.48-1.2-.24-.24-.24-.24-.24-.72-.24-.48v-.24l.48-.24v-.72l.24-.72v-.24l.24-.24v-.48l-.24-.48-.24-.24-.24-.24-.24-.48-.48-.48-.48-.24-.24-.48-.48-.72-.24-.96v-.48l-.24-.24-.24-.72-.24-.959v-.24l-.24-.48-.48-.24-.24-.48-.48-.48-.48-.24-.24-.48v-1.68l.24-.72v-.24l-.24-.24-.24-.24-.479-1.2-.24-.48v-.48l-.24-.72-.72-1.2-.24-.48v-2.159l-.24-.48.24-.96v-.96l.24-.96-.24-.96v-.48l-.24-.48v-2.4l.24-.24.24-1.2-.72-2.159-.24-.48v-.24l-.24-.24-.72-.24-.72-.48-.24-.24-.24-.24v-1.44l-.24-.24-.24-.48-.48-.24-.48-.24h-.96l-.72.24h-1.2l-.479-.48-1.44-.96-.48-.24-.24-.24h-.24l-.24-.72-.24-.96.24-.24.24-.24v-.48l.24-.72v-.24l.24-.48.48-.719.24-.48.24-.24v-.24l-.48-.96v-1.68l.24-.48v-.96l-.24-1.2v-1.92l.24-.48v-.24l-.48-.72v-.24l.48-.72v-.48h-.24l-.24.24h-.48l-.24-.24-.24-.24V317.734l-.72-.24h-1.2l-.72.24h-1.92l-.96-.24h-.24l-.479-.24-.48-.24-.24-.24-.24-.24v-.24h-.72v-.24h-.24l-.24-.24-.24-.24-.24-.24-.24-.48-.24-.24-.24-.48v-.24l-.24-.24v-.24l-.48-.72-.24-.24-.48-.72h-.24l-.24-.24-.24-.48h-.24l-.24-.24v-.48l.24-1.68v-.24l-.24-.24-1.2-.479-.24-.24-.48-1.68-.24-.72v-.24l-.24-.24.24-.24v-.24l-.48-.48-.719-.96-.48-.48-.48-.24h-2.64l-.72-.24h-.24l-.48-.48v-.72l.24-.96.24-.72-.24-.24v-.24l-.24-.24-.96-.48h-.48l-.24-.24-.48-.24-.24-.24-.24-.24v-.48l.24-1.439.24-.48v-.48l.48-1.2.24-1.44.24-.72.24-.72v-.48l-.24-.24-.48-.24v-1.2l-.24-.96h-2.399l-.72-.24-.24-.24-.48-.24-.48-.72-.72-.96-.48-1.199-.72-.48-.72-.24-1.2-.24-.96-.24-1.44-.24-.959-.24-.48-.24-.24-.48-.48-.48-.48-.96-.48-.96-.72-.48-.72-.24h-.48v-1.68l-.24-.72v-.48l-.24-.24h-1.92l-1.68-.24-.479-.24h-.48l-.96-.24-.72-.48h-.24l-2.4-1.199-.96-.72-.24-.24-.48-.24-.24-.24h-.48l-.96-.48-.479-.48h-.48l-.48-.96v-.24l-.24-.72v-.24l-.24-.24v-.96h.48l.24-.24v-1.2l-.24-.24v-.48l.48-.96.24-.48v-.48l-.24-.24v-.24l-.24-.24.24-.72h.24l.48-.479 1.2-.72v-.24l.24-1.68 1.2-.48.24-.24.48-.72.24-.72.48-.48.24-.72.72-.96.24-.48.24-.48.48-1.2.48-1.2h.24l.48-.96.48-1.439h.239l.48-1.2v-1.2l.24-.48.24-.72v-.48l.24-1.2v-2.16l.24-.72v-.72l.24-.24h.48l.24-.24.48.24-.24.24v1.92l.24.72.24.48.24.72h.24l.24.24.48.24v.24h.24v.24l.24.24.24.24.24.24.24.48.24.24.72.48.72.48.48.24h.72l.719.24z", + center: [685, 375], + defaultColor: "#9ACD32", + produksikomoditas: "41.389", + }, + { + id_kecamatan: 24, + name: "Curahdami", + path: "M302.606 407.725l.48.72h.96l.48-.48h1.92l.96.24.24.24.24.24.24.24h1.44l.48.24.48.24h.24v.24h.24v.48l.24.24.24.24h1.68l.48-.24.72-.24.48-.24.48-.24.479.24.24.24.48.48h.48l.48.24h.96l.48.24v.72l.24.96v.48l-.24.48h-.72v.48l.24.24v.48l.24.24.24.48v.96l.24.24.48.24.24.24.24.24.24.24.24.24v.24l.24 1.2v.24l.24.24v1.68l.24.72v.48l.24.48-.24.96v.239h.24v.24l.24.24-.24.72v.24l-.24.48v1.2l-.24.24-.72.72-.72.72-.24.24-.24.24-.24.48v.48l-.24 1.2.24.72.72 1.2.96.96.48.72.24.24.48.48.24.479-.24.72v.24l-.24.72.24.24h.24l.48.24.48.24v.24l-.24.96v.24l-.24.72-.24.24-.24.48v.72l-.24.48-.24.72v.72l-.24.72v.72l-.48 1.92v.239l-.24.24v1.2h-.24v.48h-.24l.24.24v.48l.24.24h.24v.48l.24.24v.48h-.24v1.2h-.24v.72l.24.24h.24v2.16h-.24v.48h-2.16l-.24.96v.48l-.24.48v.48l-.24.479v.24l-.24 1.2h-.24v.24l-.24-.24h-.24l-.24.48-.24.96.72.24h.72l.72.24v.48h-.48v.72l-.24.24v1.92l-.24.48v.24l-.48-.24v.72h-.24v.48l-.48-.24-.48 1.68v.24l-.24.96v.719l-.24.24-.24.48h.24l.24.24v2.16h.24v.24l-.24.24h.48v.96l-.24.24v.96l-.24.24v.24h.24v2.16l-.24.48v.48l-.24.24-.24.48h-.24v1.2l-.24.48v.719l-.24.24h-.72l-.24.24v.72l-.24.24h-.24v.48l-.24.24-.48.24h-.72l-.24.24h-.24l-.48.48h-.24v.24h-.72l-.24.24v.48h.24v.48h-.24l-.24-.24h-.24v-.48h-.48v.24h-.24l-.24-.24h-.719l-.24.24-.24-.24h-.96l-.24.24v.24h-1.44l-.24.24h-.96v.48h-.48l-.48-.24h-.24l-.24-.24h-.72v.24h-.24l.24.24v.48l-.24.24-.72 1.44-.48 1.2-.24.72-.24.72-.24.72v.959l.24 1.68v.96l.24.96.24.72v.48l.72.24.72.24 1.2.72.24.24.72.72.24.24.48.48.72.48.24.24h.96l.24-.24.24.24h.24l.72-.24h.48l.24.24.24.24h.24l.72-.24.24-.24.24-.24v-.48l.24-.24h.24v-.24h.24v-.48h.48l.24.24h.48l.48-.24h.96l.24-.24h.24l1.44.96v.24l.24.24-.24.24-.24.24h.24v.24h.24v.24l.479.24v.48l-.24.24v1.2l-.24.48v.239l-.24.72-.24.72-.24.72v.72l-.24.48v.48h.24v.48l-.24.72v.48l-.24.72v.24l-.24.48-.24.72-.24-.24h-.24l-.24.72-.24.48-.48.96v.24l-.48.96-.96 2.159-.48.72v.24l-.24.24-.72 1.68-.96 2.16-1.199 2.64v.24h-.24v.48l-.48.96-.72 1.919v.24l-.48.96-.24.48-2.4-1.2-.72 1.68-.72-.24-1.92-.96-1.199-.48-.96-.24-3.36-1.44-1.2-.48h-.24l-.24-.24-1.2-.48h-.24l-1.199-.48-.72-.24-.24.24-.24.24-.48.96-.72-.48v.24l-.24-.24h-.24l-.72-.24-.48-.48h-.72l-.24-.24h-.24l-.48-.24-.24-.24-1.44-.48h-.96v-2.16h.24v-.72h.24l.24-.48.24-.24v-1.92h.24v-1.2h.24-.24v-.24l.24-.24v-.479h.24V515.236l-.24-.24v-.24l-.24-.72h-.24v.24h-.72v.24l-.24-.24h-.24v.24l-.24.24v.72l-.239.24v.24h-.24v.24h.24v1.2l-.24-.24h-.72l-.24.24h-.24l-.24.24h-.24l-.24.24h-.24l-.24.24h-.24v.24l-.24.24h-.24l-.24-.24-.24-.24v-.24h.24l-.24-.24h-.24v.24h-.48v.24h-.48v.24h-.24l-.24.24h-.48l-.24.24h-.24l-.24.24h-.24v.72l-.24.24-.24.24v.24h-.48v.24h-.48l-.24.24v.48h.24l-.24.72-.239.24h-.24v-.24h-.96v.24h-.24v.24h-.24v.24h-.24l-.24.24h-.48v.48l-.24.24v.48h-.24v.24h.24v.24l.24.24-.48.24v.24l-.24.48h-.72l-.48.24v-.24h-.24v.24h-1.44v.24l-.24.24v.24h-.24v.24l-.24.24v.24h-.24l-.24-.24-.24.24h-.48l-.24.24v.24h-.48v.24h-.239v.24l-.24.24v.24h-.24v.24h-.24l-.24.24h-.24l-.24-.24h-1.2v.24l-.24.24h-.24v-.24h-.24l-.24-.24h-.24v.24-.24l-.24.24-.24.24v.24l-.24.24v.24h-.24v.24h-.72l-.24-.24h-.24l-.24.24h-.24v.239h-.24v.24h-.96v.24h-.24v-.24l-.24-.24-.48-.24v.24h-.719v.24h-.24l-.24.24h-.24v.24h-.48l-.48.24h-.24v-.24h-.24v-.24h-.24l-.24-.24h-.24l-.24-.24-.24-.24h-.24l-.24-.24v-.48h-.24v-.24h-.72v-.48l-.24-.24h-.24l-.24-.24v-.48l-.48-.24v-.24h-.48l-.24-.24v-.24h-.24v-.24h-.24l-.24.24v-.24h-.24l-.24-.24v-.24h-.48v-.24h-.239l-.24-.24v-.48h-.24v-.24h-.24l-.24-.24v.24h-.24l-.48-.48h-.24l-.24-.24-.24-.24h-.24l-.24-.24h-.24v-.24h-.48v-.24h-.24v-.24l-.24-.24h-1.2v.24h-1.44l-.24-.24h-.24l-.24-.24h-.24v-.24h-.48v-.24h-.48v-.24h-.24v-.24h-.959l-.24-.48v-.96h-.24v-.24l-.24-.24v-.239l-.24-.24-.24-.24-.24-.48-.24-.24-.24-.24h-.24l-.24-.24-.24-.24h-.24l-.24-.24h-.24l-.24-.24-.48-.24h-.48v-.24h-.48l-.24-.24h-.48l-.24-.24h-.48l-.24-.24h-.24l-.24-.24h-.24l-1.199-.24h-.96l-.96-.24-.48-.24-.24-.24-.24.24h-.48l-.24-.48-.24-.24v-.24l-.24-.24h-.24v-.24l-.48-.24-.48-.24h-.48l-.24-.24-.48-.48-.72-.24v-.72l-.24-.24-.24-.48-.24-.72-.719-.48h-1.2l-.24-1.2-.24-.479-.48-.24-.48-.48-.48-.24-.48-.72-.72-.72-.48-.96-.24-.24v-.24h-.24l-.24-.24v-1.68l.24-.72.24-.96.72-.72.96-.72 1.2-.48.24-.24.24-.48.48-.48.24-.24h-.72l-.24-.24v-.24l-.24-.24h.24v-.239h-.72l-.24-.24h-.24l-.24-.24h-.48l-.24-.24-.48-.72-.24-.24-.24-.24-.24-.24h-.24v.24l-.24-.24h-.24l-.24-.24-.24-.24h-.72l-.72.24h-.959l-.72-.24h-.24l-.24-.24h-.48v-.24h-.48l-.48-.24v-.72h-.24v-.48h-.24v-.24l-.24-.24h-.24v-.24l-.24-.24-.24-.24v-.48h-.24l-.24-.24v-.24h.24l.24-.24h.48l.24.24h.24v-.24h.24l.24.24.48-.24h.48l.48-.24 1.2-.24.48-.24h.48l.48-.48.72-.48v-.24l.48-.24.24-.48.24-.48.24-.24.24-.24.24-.24h.24l.48-.48.96-.959h.24l.96-1.2.96-.72.24-.24 1.199-1.2 1.2-.96 1.2-.96.96-1.2.96-.96.72-.48.48-.72.24-.24.48-.24h1.2l.719-.24.48-.24.24-.24.24-.24h.24l.24-.24h.24l.48-.24h1.2l.24-.24.24-.24.24-.479v-.24l.24-.48.24-.24.24-.24.24-.48.48-.24v-.24l.48-.24v-.24l.48-.48.24-.48v-.24l.48-.24H234.213l.48-.48h.48l.48-.24.48-.24.48-.48.48-.48.48-.48.48-.48.24-.48.48-.24.48-.48.24-.48.72-.24.48-.24.48-.24.48-.48.48-.48.24-.24.72-.48.479-.24.48-.24.48-.239.96-.72h.24l.24-.24.48-.24h1.44l.24-.24h.48l.24-.24h.24l1.2.48h.48l.24-.24.48-.48.959-.72.24-.48.48-.24h.24l.72-.24h.72l.48-.24h.24l.24-.24v-.72l-.24-.72v-.24l.24-.24.24-.24.72-.48h.24l.24-.48.24-.24v-.24l-.24-.24.72-.24.72-.48 1.44-.48 1.199-.24h.24l1.2-.24.72.24.48.24h1.2l.48-.24.48-.24.48-.24v-.24h.24v-.24h.72l.72.24h.48l.24-.24-.24-.24v-1.439l.24-.24v-.24l.48-.24.24-.24.24.24.959.24.24.24.24.24h1.68l.48-.24h.48l.48-.24.48-.24h.96l.24.24h1.2l.72-.24 1.2-.24h.479l.24.48h.48l.24.24v.48h.24l.24.24.24-.24.96-.24.48-.24.72.24h.48v-.72h.48l.48.24.24-.24h.24l.24-.48.24-.24h.24v-.48h-.24v-.48h-.24l-.24-.24v-.48h-.48v-.48l.24-.48v-.72l.24-.24v-1.2l.24-.24v-1.92l-.24-.24-.48-.48-.48-.48.24-.72v-.48l-.24-.24h1.68v.24h.24v.48h.96v.24h.48v-.24h.24v-.24h.24v-.24h.719l.24.24v-.24h.24v-.959h.24v-.24h.24v-.24h.24l.24-.24h.24v-.48l.24-.24v-1.44l-.24-.72.24-.48-.24-.24v-.48l.24-.24h.24l.24-.48v-.24l.24-.72v-.24l.24-.24-.24-.24.24-.24v-1.2h.24v-.24l-.24-.48v-.48l.24-.24v-.24h.24v-.96l.24-.479.24-.24-.24-.24h.24v-.72l.24-.24v-.48h.24v-.24h.24v-.24l.24-.24v-.24h.24v-.24h.24l-.24-.24.24-.24.24-.24v-.48h.24l.24-.48.24-.48.48-1.2v-1.92l-.48-1.2-.24-.72v-.96l-.24-.719-.24-.24.24-.48v-.24l.24-.24v-1.2l.24-.24v-.24l.24-.24h.24l.24-.48.24-.24v-.24l-.24-.24h.96l.24-.48h.239l.24-.24v-.24h1.68l.24-.24h.24l.48.24.24-.24.48-.24.72-.24.72.24z", + center: [275, 480], + defaultColor: "#2E8B57", + produksikomoditas: "14.191", + }, + { + id_kecamatan: 25, + name: "Grujugan", + path: "M203.497 490.039l.24.24h.24v.48l.24.24.24.24v.24h.24l.24.24v.24h.24v.48h.24v.72l.48.24h.48v.24h.48l.24.24h.24l.72.24h.96l.72-.24h.72l.24.24.24.24h.24l.24.24v-.24h.24l.24.24.24.24.24.24.48.719.24.24h.48l.24.24h.24l.24.24h.72v.24h-.24l.24.24v.24l.24.24h.72l-.24.24-.48.48-.24.48-.24.24-1.2.48-.96.72-.72.72-.24.96-.24.72v1.68l.24.24h.24v.24l.24.24.48.96.72.72.48.719.48.24.48.48.48.24.24.48.24 1.2H216.935l.72.48.24.72.24.48.24.24v.72l.72.24.48.48.24.24h.48l.48.24.48.24v.24h.24l.24.24v.24l.24.24.24.48h.48l.24-.24.24.24.48.24.96.24h.959l1.2.24h.24l.24.24h.24l.24.24h.48l.24.24h.48l.24.24h.48v.24h.48l.48.24.24.24h.24l.24.24h.24l.24.24.24.24h.24l.24.24.24.24.24.479.24.24.24.24v.24l.24.24v.24h.24v.96l.239.48h.96v.24h.24v.24h.48v.24h.48v.24h.24l.24.24h.24l.24.24h1.44v-.24h1.2l.24.24v.24h.24v.24h.48v.24h.24l.24.24h.24l.24.24.24.24h.24l.48.48h.24v-.24l.239.24h.24v.24h.24v.48l.24.24h.24v.24h.48v.24l.24.24h.24v.24l.24-.24h.24v.24h.24v.24l.24.24h.48v.24l.48.24v.48l.24.24h.24l.24.24v.48h.72v.24h.24v.48l.24.24h.24l.24.239.24.24h.24l.24.24h.24v.24h.24v.24h.24l.48-.24h.48v-.24h.24l.239-.24h.24v-.24h.72v-.24l.48.24.24.24v.24h.24v-.24h.96v-.24h.24v-.24h.24l.24-.24h.24l.24.24h.72v-.24h.24v-.24l.24-.24v-.24l.24-.24.24-.24v.24-.24h.24l.24.24h.24v.24h.24l.24-.24v-.24h1.2l.24.24h.24l.24-.24h.239v-.24h.24v-.24l.24-.24v-.24h.24v-.24h.48v-.24l.24-.24h.48l.24-.24.24.24h.24v-.24l.24-.24v-.24h.24v-.24l.24-.24v-.24h1.44v-.24h.24v.24l.48-.24h.72l.24-.48v-.24l.48-.24-.24-.24v-.24h-.24v-.24h.24v-.48l.24-.24v-.48h.48l.24-.24h.24v-.24h.24v-.24h.24v-.24h.959v.24h.24l.24-.24.24-.72h-.24v-.48l.24-.24h.48v-.24h.48v-.24l.24-.239.24-.24v-.72h.24l.24-.24h.24l.24-.24h.48l.24-.24h.24v-.24h.48v-.24h.48v-.24h.24l.24.24h-.24v.24l.24.24.24.24h.24l.24-.24v-.24h.24l.24-.24h.24l.24-.24h.24l.24-.24h.24l.24-.24h.719l.24.24v-1.2h-.24v-.24h.24v-.24l.24-.24v-.72l.24-.24v-.24h.24l.24.24v-.24h.72v-.24h.24l.24.72v.24l.24.24V519.796h-.24v.48l-.24.24v.24h.24-.24v1.2h-.24v1.92l-.24.24-.24.48h-.24v.72h-.24v2.16h.96l1.44.48.24.24.48.24h.24l.24.24h.72l.48.48.72.24h.24l.24.24v-.24l.72.48.48-.96.24-.24.24-.24.719.24 1.2.48h.24l1.2.48.24.24h.24l1.2.48 3.36 1.439.959.24 1.2.48 1.92.96.72.24h.24l1.2.48.24.24h.48l.24.24h.24l.24.24.48.24v-.24.24h.72l.24.24v-.24l.48.24v-.24l.719.24v-.24l.24-.24.24.24h.24v-.24l.24-.24h.24v-.72h.48v-.48l.24-.24.24-.24.48.24h.48l.24-.24h.72l.24-.24.24-.24.24-.48v-.24h.24l.24-.24h.24l.24.24h.24l.24.24v-.48l.24-.24h1.2l.719.24h1.2v-.24l.24-.24h.72l.24-.24h.24v-.24h.24l.24-.24h.48l.48.24h.48v-.24h.72l.24.24v-.24l.24.24.24.24h.96l.24.24.24-.24h.24l.48-.48h.24l.48-.48h.239l.24.24h.96l.48-.48.72.24.48.24h.72l.48.24h.96v.24l.96.24.24.24.24.24v.24l.24-.24.24-.24.48-.24.48-.24v-.48l.24-.24.48-.24.239-.24.72-.24v-.24l-.24-.24v-.48h-.24l.24-.24.24-.24v-.24l.72-.48v-.24l-.48-1.2v-.72l1.2-1.44.24-.48v-.24l.24-.24.24-.24.24-.24h1.2l.48-.24h.24l.24-.24v-.24l-.48-.24-.24-.24.24-.24v-.479l-.24-.24-.24-.48h-.48l-.24-.24-.24-.48v-.24l.24-.24.24-.24v-.72l-.48-.48v-.24l.24-.48.24-.24v-.72l-.24-.24-.24.24-.48.48h-.48v-.48h.24v-.24l.96-.96.48-.24.72-.72.48-.48h.24v-.24l.48-.48v-.72l.48-1.2v-2.159l-.72-.96-.24-.96v-.48l.48-.24.48-.24v-1.68l.24-.24.48.24.24-.48.24-.48-.48-.48-.48-.96-.48-.48.24-.48.24-.48.48-.48v-.24.48h.24l.24.48.48.48v.24h.24l.24.24.24.24.479.48h.24l.48.24.48.48.24.24v.48l.24.72v1.44l-.24.24-.24.24v.72l.24.24.48.96.24.48v.72l-.24.48v.48l.24.24.24.48.24.24h.72v1.44l-.24.24v.24l.24.24v.48l.48.48v1.2l-.24.24-.24.48-.48.96v.24l.24.24h.48l.48-.24.48-.48.48-.24.96-.48.72-.24h.24l.24.24h.24v.48h.24v.24l.24.48v.96l-.48.72-.48.96-.48.719-.24.24-.72.24v.24l-.24.24v.48l.24.48v.24l-.48.48-.24.48-.24.96v.24l-.48.72-.24.24-.72.48-.24.24.24.24.24.24h.24l.72.48h.24l.24.24.24.48.24.48h.24v.48l-.48.48-.72.72v.24l.24.96v3.359h.24l1.44.48.72.24.48.48.24.24v1.44l.24.48v.24l-.48 1.44-.24 1.2v1.44l.48.959v.72l.24.72v.24l.24.48.24.24.24.24v.24h.239l.24.96v.24h-.72v.24h-.96l-.24-.24v-.24l-.24-.24v-.24h-.72l-.48.48-.24.24-.48.48h-1.2l-.24.24h-1.2v.24l-.48.24h-.72l-.719-.24h-.48l-.24.48-.24.48-.48 1.2.24.24.24 1.44v.96l-.24.72v.72l-.24.24v1.679h.24l.24.24v.24h.24v.48l-.24.48v.96l-.24.48v.24l-.24 1.2-.24.48v.72l-.24.72.24.24.48.24v.24l.24.24v.48l-.24.48v.72l-.24 1.2v.239l-.72-.24-1.92-.24h-2.4l-1.92-.24-3.359-.96h-.48l-1.44-.24h-.24l-.48-.24-1.2-.24-1.44-.24h-.24l-1.439-.24-1.2-.24-.96-.24h-.24l-.48-.24h-.24v1.2l-.24.24h-1.2l-.48.24-.24.24v.24l-.24.48-.24.24-.24.48v.24l.48.48v.24l.24.24v.24l-.48.72v.48h-1.68l-.72-.24v.48l-.479.24-.48.48-.48.48h-.24v.48l.24.48v1.92l-.24.24h-.48l-.72.24h-.48l-.48.24-.24.24v3.12l.24.48v.959l.24.72v.48l-.24.48v.48l-.48.24-.72.24-.24.24h-.72v.24l-.24.24-.24.24v.24h-.24v.48l-.24.24h-.48l-.24-.24-.24-.24h-.24l-.24.24v.24l.24.24-.24.48-.24.24-.24.24v.24l-.239.24h-.24v-.24l-.24.24v-.24l-.24-.24h-.24l-.24.24-.24.24-.24.24v.24l-.24.24h-.96v.24l-.24.24-.24.24h-.48l-.24.24-.24.48-.48.48h-1.68l-.24-.24v-.24h-.24l-.24.24-.24.24-.24.24-.24-.24-.24-.24.24-.24v-.24l-.24-.24v-.24h-.24v-.48h-.24v.24H297.568v-.24h-.24l.24-.24v-.48h-.96l-.24.24v-.24h-.48v.24h-.24v-.24h-.24v-.24h-.24v-.48h-.24v-.24h-.24v-.24h-.24l-.24-.24v-.24h-.48v-.24h-.24l-.48-.24-.24-.24v-.24l-.48-.48-.48-.24h-.72l-.48.24-.48.48-.48.48-.719.48h-1.68v-.24h-.72l-.24-.24h-.48v-.24h-.24v-.24h-.96l-.24-.24h.24v-.24h-.48l-.24.24h-.24v.24h-.48v-.72h-.72v.24h-.48l-.24.24-.24.24h-.24l-.24-.24h-.72l-.239.24h-.48l-.24-.24-.24-.24-.24-.24h-.72l-.24-.24-.24-.24-.72.24h-.72l-.48.24-.48.48h-.24l-.48.24-.48.48-.48.48h-.96l-.48.48-.24-.24h-.48l-.719.24-.48-.24h-1.2v.48l-.24.24-.48.24-.72.24h-.24l-.48-.24-.24.48-.48-.24-.48-.24-.24-.48-.72.24-.24.24h-1.2v.48l-.24.24h-.24l-.48.24-.239.24-.24.24-.48-.24h-.48l-.24.24.24.24H255.811l-.24.48-.48.24h-2.639l-.48-.24-.48-.48h-.24l-.24-.24h-1.2l-.48-.24h-.48l-.24-.24-.48-.24h-.48l-.48-.24-.48-.48-.48-.24h-.24l-.24-.24-.24-.24-.24-.24h-.72l-.24-.24h-.239l-.72-.24h-2.16l-.96-.48-.96-.24-.48-.24-.48-.24h-.72l-.24-.24h-.48l-.72.24-.72-.24h-.479l-.48-.24-.24-.24-.48-.24-.24-.24-.24-.24h-.24v-.24h-1.68l-.48-.24h-.24l-.48-.48-.72-.24-.48-.24-.24-.24-1.44-.48-.48-.24h-.719l-1.2-.24-.48-.24-.72-.24-.48-.48-1.2-.48-.96-.48h-.24l-.24-.24-1.2-.48h-1.44l-.24-.24-.24-.48-.24-.24-.479-.24-.48-.24h-2.16l-1.2-.24-1.2-.24h-1.68l-.96-.24h-.24l-.24-.24-.719-.48-.72-.48-.48-.24-.72-.48-.24-.24-.24-.24-.24-.48v-1.44l-.24-.48-.24-.24h-.24l-.48-.24h-.48l-.48.24-.96.48-.48.24h-.72l-.24-.24-.24-.24-.24-.24-.24-.48-.48-.239-.479-.24-.72-.48-.48-.24-.72-.24-.24-.24h-.48l-.24-.24-.48-.24-.48-.48h-.24l-.48-.24-.24-.24-.48-.24h-.72l-.48-.24h-1.2l-.48-.24-.48.24-.239.24h-.72l-.48-.24-.48.24h-1.2l-.72-.24h-.48l-.48-.24h-.72l-.24-.24-.48.24-.48-.24-.96-.48h-.24l-.48-.24-.48-.24h-.24l-.719-.24-.72-.24h-.48l-.48-.24-.72.24-.24-.24v-.24l-.24-.24h-.24l-.24-.48v-.24l-.24-.48-.24-.24-.24-.48h-.24l-.48-.48-.24-.48v-.24l-.24-.24h-.48l-.48-.24h-.96l-.24-.24h-.72v-.48h-.959l-.24-.24-.24-.24h-.48l-.24-.24h-.48l-.24-.24h-.24l-.24-.24h-.48l-.24-.239h-.24l-.24-.24h-.72l-.48.24-.48.24h-.96l-.96-.96-.24-.24h-.24l-.24-.24-.24-.24-.24-.24v-.24l-.239-.24-.24-.24-.24-.24-.24-.24h-.24l-.48-.24-.24-.24-.24-.48-.24-.24v-.24l-.24-.24-.48-.24h-.72l-.48-.48-.72-.24-.72-.24h-.24l-.96-.48-1.44-1.2-.719-.96-1.44-1.92v-.24l-.96-1.439-.72-1.44-1.44-1.68-1.44-1.2-.96-.96-.96-.72-1.679-1.44-1.68-1.2-.24-.24-1.68-.96-.24-.24-1.2-.48-.24-.24-1.44-.48-1.679-.479-1.44-.24-2.16.48.48-.96.72-.72.24-.72.48-.48v-.24l.24-.48.24-.48.24-.24.24-.24.24-.48.24-.24v-.24l.24-.24.24-.24.24-.24v-.24h.24v-.24l.24-.24h.24l.24-.24h.24l.96-.24h.72l.24-.24.24-.24v-.24l.24-.24.24-.24.48-.48.72-.48.96-.72.48-.24.96-.48.959-.24h1.2l.72.24 1.2.72.96.48 1.2.48h.72l.48.24 1.2-.24 1.439-.48 1.2-.72.72-.48.48-.24h.96l.24-.24h.24v-.24h.24l.24-.239.24-.24h.24v-.24l.24-.24h.24v-.24h.48l.24-.24.24-.24h.24l.48-.24.24-.24.24-.24h.48l.24-.24.479-.24h.24l.24-.24h.24l.24-.24h.24l.24-.24h.24l.72-.24 1.92-.24 1.68-.48 1.44-.24 1.439-.48.48-.24 1.44-.72.96-.72 1.44-.72.96-.72.96-.72.72-.72.96-.72.24-.72.48-.959.479-.96.72-.96.48-.96.72-.72.72-.72.72-.72.24-.72.48-.72.24-.96.24-.96.48-.96.24-.72.48-.48.48-.48.96-.719.96-.48 1.199-.48.72-.24 1.2-.24 1.2-.24.96-.48.72-.24.24-.48.48-.72.48-.72.72-.96.48-.72.48-.72.48-.48.479-.24.72-.24h1.68l.96.24.72.24.72.24.72.24-.24.24h-.24v.24z", + center: [250, 555], + defaultColor: "#FFD700", + produksikomoditas: "21.452", + }, + { + id_kecamatan: 26, + name: "Jambesari", + path: "M353 506.117h1.2v-.72l.96.24h.48v.48h.24v.24l.24.24-.24.24h-.24.24-.24v.48l.48.72.24.24h.72l.72-.24.48-.24h.24l.48.24v.96l.24.72v.48l.24.96.24 1.2.72.96.24.48 1.44.48h.48l.48.48.48.24.48 1.2.24.72v2.639l.24.72.24.96v.72l.24.48.96.72.72.48.96.72.96 1.2.48.48.48.48 2.879-1.68.72-.24.96-1.2h1.92v-13.92l.24.24h.72l.24.24.48.24.24.24h.48l.959.24 1.2.72.96.48.96.24h.96l1.2.24.72.24.96.72.72 1.2.48.24.479.48.72.72.24.24.48.72.48.48.24.48.48.72v.24h.24l.24.96.48.72v.96l.24.96v.96l.24.72v2.16l.24.72.24.48v.48l.24.96v.96l-.24.72V532.034l.24.24.24.48-.24.48v.72l.24.24.24.48v.24l.24 1.2v.48h.24l.24.24.72.72.24.24.24.24V540.674l.24.24.48.72.48.24.24.24.239.48.24.479.24.24.24.24.24.24.48.24.72.72.24.24h.24l.24.24h.24l.24.48.48.48.24.24v.96l-.24.48v.72l.48.72.48.48.24.48v.24l.24.48.48.48v.72l.48.72.72.72.48.72.48.959.72.48.24.24.239.24.48.24.48.24-.96.48-.72.48-1.2.72-.72.48-.96.24-.24.24-.72.24h-.24l-.48.48-.96.24-.48.24-1.2.72-.719.24h-.24l.24.24.48.24h.24l.24.24h.24l.24.24.24.48v.96l.24.24.72.72v.24l.24.24v.48l.24.479.24.24h.24l.48.24h.48l.72.24.96.72.72.72.24.24.24.72.24.48v2.4l.24.24.24.24h.24v.24H407.234l.24.24.24.24.48.48.24.48.24.48.48.96.24.24.24.24v.24l.96.96.24.48.24.479v.24h.48l.48.24h.24l.72.48.96.24.24.24.24.24v.24l.24.24v1.44l.239.48v1.44l.24.48h.24v.24l.24.24v.48l.24.24.24.24h.24v.24l.24.24v1.2l.48.24.48.24.48.24.96.24.24.24.24.48v.24l.24.24.24.239h.24l.24.24.48.24.24.48.24.24.24.48.24.24v.24l.24.24h.48l.24-.24h.48l.24.24.24.24v.48l.239.24h.24l.24.24h.24l.24-.24.48-.24h1.92l.24.24h1.2l.24-.24.24-.24h1.2l.48.24.48.24.72.24-.24.48v.24h.72l.239-.24.48.48.24.24h.24v.72h.24v.24l.24.24-.24.72h-1.92l-.48-.48h-.72l-.24.96.48.96.48.24v.24l-.24.96v.48l-.48.24v.72l-.48.48h-.96l-.48.239-.24.48-.24.72-.48.24.24.48v1.68l-.24.48v1.92l-.24.72-.24.48v.24l-.48.96v.48l1.92.96 1.44.72h.24l-.48 1.439-.24.48-.48.96-.72 2.16h-.72l-2.16-.48-1.679-.24v.48l-.48 1.2-.96-.24v.24h-1.68l-2.4-.48-2.64-.48-1.439-.24h-3.12l-1.92 1.2-1.68.72v1.44l-.24.24-.24.72-.24 1.44-.24 1.68-.479.72-.48.239h-.96l-.72-.24-1.2-.72-2.16-1.92-.96-.72-1.44-1.44-2.159-1.92v-.24l-.72-.72 2.4-5.039 1.2-3.12.24-.72h-.24l-.24-.24.24-.72v-.96h.24V603.549l.72-1.439.48-.96h-.24.24l-.24-.24h-.72l.96-2.16.24-.72-.48-.24h-.24l-.24-.24h-.48l-.24-.24h-.48l-.48-.24-.48-.24-.72-.24-.96-.24-.48-.24.24-.72.24-.72.24-.48.24-.48.24-.72h-.24l-.48-.24-.48-.24h-.24l-.24-.24-.96-.96-.24-.24-.24-.239-.24-.24-.48-.24-.24-.24-.48-.24v-.24l-.24-.24v-.24l-.72-.72-.48-.24-.72-.24-.96-.48h-.24l-.24-.24h-.239l-1.2-.24v-.48l-.48-.24h-.24l-.72-.24-.24-.24h-.24l-.24-.48-.72-.24-.24-.24-.96-.24h-.24l-.96.24v-.24l-.24-.24v-.24l-.48-.48-.24-.24h-.24l-.24.48h-.48l-.24-.48-.24-.72h-.239v-.24l-.72-.48-.48-.24h-.24l-1.44-.48-.48-.24v-2.159l-.48-.24-.48-.72-.24-.24h-.24l-.24-.24-.48-.24h-.72l-.72-.24-.48-.48.24-.48v-.48l.24-.48v-.72l.24-.24h-.48v-.24l-.48-.24-.24-.24h-.48l-.959-.24h-.24l-.96-.24-.48-.24h-.72l-.24-.24-.24-.24-.24-.24h-.72l-.72-.24-1.2-.24h-1.92l-.959-.48h-.48l-1.2-.24h-.96l-.24-.24-.48-.24-.24-.24v.24l-.24-.24v1.2l-.24.24v.24l-2.64-.48h-.24l.24-.24.24-.48.24-.72v-.24l.24-.24v-.24h-.24v-.48h-.48l-.24-.24h-.24l-.48.24-.24.24v.24l-.24.24v.24l-.719-.24-.96-.24h-.48v-.48h-.48l-.72-.24h-.72l-.48-.24h-.24l-.24.24h-.48l-.48-.24-.48-.24-1.68-.24h-.24v-.239l-.96-.24h-.24v.96l-.719.24v-.48l-.24-.72-.72-.24v-.72l.24-1.2v-.72l.24-.48v-.48l-.24-.24v-.24l-.48-.24-.24-.24.24-.72v-.72l.24-.48.24-1.2v-.24l.24-.48v-.96l.24-.48v-.48h-.24v-.24l-.24-.24h-.24v-1.679l.24-.24v-.72l.24-.72v-.96l-.24-1.44-.24-.24.48-1.2.24-.48.24-.48h.48l.72.24h.72l.48-.24v-.24h1.2l.24-.24h1.2l.48-.48.24-.24.48-.48h.72v.24l.24.24v.24l.24.24h.96v-.24h.719v-.24l-.24-.96h-.24v-.24l-.24-.24-.24-.24-.24-.48v-.24l-.24-.719v-.72l-.48-.96v-1.44l.24-1.2.48-1.44v-.24l-.24-.48v-1.44l-.24-.24-.48-.48-.72-.24-1.44-.48h-.24v-3.359l-.24-.96v-.24l.72-.72.48-.48v-.48h-.24l-.24-.48-.24-.48-.24-.24h-.24l-.72-.48h-.24l-.24-.24-.24-.24.24-.24.72-.48.24-.24.48-.72v-.24l.24-.96.24-.48.48-.48v-.24l-.24-.48v-.48l.24-.24v-.24l.72-.239.24-.24.48-.72.48-.96.48-.72v-.96l-.24-.48v-.24h-.24v-.48h-.24l-.24-.24h-.24l-.72.24-.96.48-.48.24-.48.48-.48.24h-.48l-.24-.24v-.24l.48-.96.24-.48.24-.24v-1.2l-.48-.48v-.48l-.24-.24v-.24l.24-.24v-1.44h-.72l-.24-.24-.24-.48-.24-.24v-.48l.24-.479v-.72l-.24-.48-.48-.96-.24-.24v-.72l.24-.24.24-.24v-1.44l-.24-.72v-.48l1.44 1.2 1.68 1.2h1.92l1.44 1.2.96.24h.72l.48.24z", + center: [375, 555], + defaultColor: "#FFD700", + produksikomoditas: "19.792", + }, + { + id_kecamatan: 27, + name: "Klabang", + path: "M477.547 282.696h1.68l.24.24h1.2l.72.24.48.24h.48l.48.24.24.24.72.48h.48l.24.24h1.68l.24.24h1.199l1.44.24h.72l.72.48.24.48.24.72v1.2h.24v.24l.72-.24.48-.24h.48l.48-.24h.72l.24.24.24.72.24.24.24.24h.72l.479-.48.24-.24.24-.24h.48l.48.24h.48l.24-.24.48-.48.24-.48h.48l.48-.24h.96l.24 1.68.24.24v.48l.24.48.24.24v.96l.24.48v.24h.24l.72.48h.48v.24l.24.24.24-.24.24-.24h.24l.24-.24H506.343l.48.48v.24l.48.24v.24h.24v.24h.24v.24l.24.24v.24h.24v.24l.24.24h.24v.239h.24v.24h.24v.24l.24.24v.48h.24v.48h.24v.24l.24.48v.24l.24.24v.48l.24.24.24.48v.24l.24.24v.48l.24.24v.24l.24.24v.24l.24.24.24.48v.24l.24.24.24.24v.24l.24.48v.24h.24v.48h.24v.48h.24v.24l.24.48.24.48.239.24v.24h.48v-.24h.48v-.24h.24l.24-.24h.24v-.24h.24l.24.24h3.12l.24.24.24.48.72.48v.24l.24.239.96.96.72.48.24.24.479.24.24.24.24.24 1.44.96h.48l.72.24.48.24 1.2.24 1.44.48.24.24h.48l.48.24h.24l1.439.24h.24l.48.24 1.44.24h2.4l.48.24h5.519l.24.24h1.92l.24.24v.24l.24.24.24.24.24.48v.24l-.24.72-.24.48-.24.96-.24.96.24.48v.239l-.24.24v.24l-.48 1.2h-.24v.24h-.24v.24l.72 1.92.48.72v1.2h.24l.72.48v.72l-.24.48.24.24v.48l.24.48-.24.72.24.24v.24l-.24.48v.48l-.24.24-.72.479v.48l.24.24.48.48v.96l-.24.48-.24.24.24.24v.24l.48.48.24.24h.24l.96-.24v.24l.24.24v.48l.24.24v.24l.24.48h-1.2v1.2l.24.48.24.48-.24.24-.72.24-.48-.24-.48.24-.48.24-.48-.24h-.72l-.24.24v.72l.24.48.24.48.24.24v.72h-.48v-.96h-.24l-.24.24-.48.48-.24.48-.24.239h.24-.24l-.24.24-.24.96-.24.48-.72.24h-.48v.72h.24l.24-.24.24.24v.72l-.24.24-.24.24-.24.48.48.48v.48l-.48.48-.72.48-.24.24-.24.24v.72l-.24.48.24.48-.24.48v.24l.24.24v.96l-.24.24-.48.48.24.24h.48l.48.24h.48v.479l-.24.24-.48.24v.24l.24.24.24.24.24.48.48.72-.24.72.24.24.48.48.72.24h.48v.24l.24.48v1.44l.24 1.2.24.48v.72l.24.24-.24.24v.24l-.24.48v.48l.24.24h.24l.24.24h.24l.24.24.24.48h.24l.48-.48h.48l.24.24V366.688h.24v.72l.24.24.48.24.24.48.24.24v.96h-.48l-.24.72v.24l.24.24h.24l.24.24.24.24h.96v.48l.24.24v2.16l.24.48v.24l.24.48v.48l-.24.24.24.24h.48v.24l.239.24-.24.24v.479l-.24.24v.24l.24.24h.24l.24.48.24.48.24.48v.72l.24.24v.48h-.24v.24l.24.24v.24l.24.24.48.24v.48l.24.24v.48l.24.24.24.48v.24h.72l.24.24.24.24v.96l.24.24v.24l.24.48h.24l.24.24.24.24v.72l.24.24.24.24.48.24.48.24.72.239.72.24.72.48.719.24v.24h.24l.24.24.24.72h.24l.48.24.24.24v.96l.24.24v.72h-.24l-.24.24-.24.24-.24.24v1.44l.24.48v.96h.24v.96l.24.48.24.24.24.24.48.24h.96l.48.48.24.24.24.24.24.959v.24h.24l.24.24h.24l.72.24h.24v.24l.24.24v.24h.96l.24.24.24.48v.48l.24.24.48.24.239.24v.48l.24.24-.24.24v.48l.24.24.24.48v.24h.48l.24.24h1.92l.24.24.48.48.24.24h.24l.24.24v.48l.24.24v.48l.24.48v.24l.24.48.24.24.48.48.24.24.24.24.24.24v.239l.24.48v.24l.24.24.24.48.24.24.24.48v1.2l.48.24v1.2l.24.24.239.24v.96l.24.48v.48l.24.48.48 1.44.48.48.72.96.72.96.48 1.199v.24l.48.96.48 1.2.24.24.24 1.2v.72l-.24.24-.48.96v.24l.24.24.48.48.48.24.48.24.24.24h.48v-.24l.96-.24.24-.24h.24l.48.24v1.2l.24.24.479.24.24.48.24.72v.48l-.48.48-.24.239h-.24l-.24.48.24.24v.24l.48.48-.96-.24h-.48l-.72-.24-.96-.48-.96-.48h-.48l-.48-.24h-.96l-.48.24h-.96l-.48.24-.719.24-.48.24-.48.24-.48.24-.48.48h-.24l-.24-.24-.24-.24v-.96l-.24-.24-.24-.72h-.24l-.48-.24v-.24h-.24l-.24-.24-.24-.24-.24-.48-.72-.96h-2.4l-.48.24h-4.319l-.48.48-.48.72-.48.24-.24.24-.48.72-.72.48v.24l-.96.72-.72.48-.959.72-.72.72-.72.48-.24.24-.72.48-.72.48h-.24l-.96.72-.72.48-.24.24-.24.24-.24-.48-.48-.48-.24-.24-.24-.72-.24-.24-.48-1.2-.72-1.68-.24-.72-.479-1.2v-.48l-.48-1.2-.48-1.44-.24-1.68v-.24l-.24-.96-.48-.96-.48-.96-.24-.24-.24-.48-.48-.48-.72-.72-.72-.719-.24-.48-.48-.96-.48-1.2v-.24l-.24-.48-.72-.96v-.72l.24-.24v-.24l-.24-.48-.24-.24v-1.2l-.24-.72v-.48l-.24-.48-.24-.72-.24-1.2-.719-.959-.24-.96-.48-.96v-2.16l-1.44-.96-.48-.24v-.24l-.24-.48V403.886l-.72-.72-.48-.72v-.479l-.24-.96v-1.44l-.72-1.44-.24-.24-.72-.48-.72-.48-.24-.24-.24-.24-.24-.24-.48-.48-1.199-1.2v-.24l-.48-.48-.24-.96-.24-.24-.48-.24v-1.44l-.24-.24.24-.479v-.48l.24-.24v-.48l-.24-.24h-.48l-.24-.24-.24-.24v-.48l.48-.24.24-.48v-.24l-.48-.24v-.48h.24l.48-.48-.24-.24h-5.76l-4.559.24v-1.2l-.24-.48v-.72l.24-.24h.72l.24-.48.24-.24v-.72l-.24-.48-.48-.48v-.48l-.24-.24-.24-.48-.24-.24-3.12-3.599-.24-.24v-.24l-.24-.24-2.639-2.64-.24-.48-.24-.48-.24-.72v-.48l-.24-.48v-.24l-.24-.24v-.24l.24-.72v-.72l-.24-.24-.24-.24-.24-.479-.24-.24v-.48l-.24-.72-.24-.48.24-.48v-1.92l-.72-1.2v-.24l-.48-.24v-1.92l-.24-.24-.24-.24-.48-.48-.24-.48v-.24h-.24l-.24-.24-.24-.24v-.48l-.24-.48v-.24l-.24-.479v-.24l-.48-.48-.24-.72-.24-.24v-.48l-.24-.72v-1.2l-.24-.24v-.96l.24-.48v-.24l-.24-.24h.24v-.72l-.24-.48v-.72l-.24-.24v-2.16l-.24-.24-.719-.24v-.24l.24-.24h.24v-.239l.48-1.2v-.96l-.24-.48-.24-.72-1.2-.48-1.2-.96-.48-.48-.48-.24-.72-.48-.24-.72h-.24l-.24-.72v-.48l-.24-.48v-.48h-1.2l-.48.72-.48 2.64v.96l-.72.96-.24.48-.72 1.2-.719.24-.48.24-.48.24-.72.24-1.92.96-.24.24-.96.96h-.24l-.24.48-.48.48-.48.48-.48.96-.72 1.92-.48.48-.48.48-.24.24-.24.24H486.667l-.24.24-.24.24-.24.24-.24.24-.48-.24h-.24v-.24h-1.2l-.24.24h-.24l-.48-.24-.72-.24h-.24v-.48l-.48-.24-.72-.24-.48-.24-.24-.24h-.72l-.959.24-.72.24-.24.24-.24.24-.24.24-.72.72-.24.24-.48.24h-.72l-.48-.24h-.24v-.48l-.24-.24-.48-.24-.48-.24h-.72l-.24.24h-1.44l-.24-.24-.479-.24-.48-.24h-.48v.24l-.24.24v.24h-.24l-.48.24-.48.24-.24.24-.72.72h-.24l-.48-.24-.24.24h-.24l-.24.24h-.48l-.24-.24h-.24l-.96.48-.24.24-.72.72h-.48l-.24-.24h-.24l-.239-.24h-.48l-.24-.48-.48-.24H456.91l-.24-.24-.72-.24h-.72l-.96-.24-.48-.48-.48-.48-.72-.48h-.24l-.959-.24H448.03l-.48.24-.96.24-.48.24h-1.68l-.48.24h-.96l-1.199-.24-.48-.24-.24-.48-.24-.24-.24-.72-.24-.24-.24-.72-.24-.48-.24-.48-.24-.24h-.24l-.24-.24h-1.44l-.24-.24h-.24l-.24-.24-.24-.48-2.16-2.4-.959-.48-.96-.72-.48-.24-.24-.24-.24-1.44-.24-.48-.96-.72-.96-.72h-.24v-.96l-.72-.72-.72-.72-.72-.72-.48-.48-.48-.24-.24-.24-.24-.24-.24-.72-.24-.24-.24-.48-.479-.479-.24-.48-.24-.72.24-1.2.24-1.2.24-.48.48-.48v-.48l-.48-.72-.48-.96-.24-.24-.48-.24-.48-.24-.24-.24h-1.92l-.48.24h-.24l-.72.24h-.24v.24l-.24.48-.72.96-.24.48v.72l-.24.48-.24.96-.24.72-.48.96-.24.48-.24.24-.479.48-.48.24-.24.48h-.48l-.48.24-.24-.24h-.24l-.24-.24-.24-.24-.24-.24h-.24l-.24-.24h-.24v-.24l-.24-.24-.24-.48-.24-.24-.24-.24-.24-.24h-.48l-1.44-.24-.96.24-1.679.72-1.68.48-.48.24-2.16.72h-.24l-3.36.96-2.159.48-.72.24-.72.24h-3.84l-.48.48-.48.48v.24l-.24.24-.24.24-.48.48-.719.48-.48.24h-.48l-.24.24h-.48l-.24.24-.24.24v-1.2l.24-.24.24-.48.24-.24v-1.2l-.72-.48-.48-.24-.48-.24-.72-.24h-.72l-.48-.24-.72-.72-.48-.48h-.24l-.24-.24H378.679l-.96.24-.24.24h-.72l-.24.24-1.44.24h-.72l-.48.48-.24.24-.24.24v.24l-.24.24-.24.24h-.72l-.24.24-.72.48h-.24l-.959-.48-.24-.24-.24-.48v-1.44l.24-.24v-.48h.24v-.24l.24-.24v-.48l-.24-.48v-.96h-1.2l-.24-.48-.48-.48v-.24l-.24-.24v-.24h-.24v-.48h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.48-.48-.72h-.24l-.24-.48v-.24l-.24-.24-.24-.48v-.24l-.24-.48-.24-.48-.24-1.44v-.72l-.72-2.159-.96-2.16.24-.48.24-.24.96-.96 2.16-1.92 1.2-1.44.96-.96.48-.96.48-.959.72-2.4.96-2.16.72-.72.48-.48.24-.24.24-.24.24-.24v-.24h.48v-.24h.72l.24-.24.48-.24.48-.24.24-.24.24-.24.24-.24.24-.48.24-.24.24-.24.24-.24.24-.24v-.24l.24-.48v-.72l.24-.719.24-.48.72-1.44.719-.72.72-.72 1.2-.48 1.68-.72.72-.24 1.44-.24 1.68-.24 1.919-.24 1.68-.24 1.68-.24h5.039l1.44-.24h1.44l.48-.24h.48l.48.24.48.24h.24l.72 1.2.24.24.48.72h.48l.48.24.24.24h.24l.72.48.479.24.24.48v.24h.24l.72.24.24.24h2.88v.24l.24.24.72.24 1.2-.48.48-.24.24-.48v-.24h.24l.24-.24v-.48h.24l.24-.48v-.24l.24-.24.24-.24h.239l.24.24.24.24h.24l.24-.24h.24v-.24h.24v-.96l-.24-1.2V286.536l.24-.24v-.24h.24l.24-.24h1.44l.72.48h.72v.24l.24.24.24.24v.24l.24.24.72.72h.24v.24l.72.24v.24l.24.24v.24l.24.48.24.24h.96l.239.48v.24l-.24.48-.24.24v.72l.24.24.24.48h.96l.24.24.24.24.24.24.24.24.24.24h.24l.24-.24.48-.24.24-.24h.24l.24.24.48.24.72.48.96.48.24.24h.72l.96-.24.48-.24.479-.24h1.44l.72-.48v-.24h.72l.24.48.24.24h.24v.24l.24.24.24.24h.48l.48.24.96.48.48.24h1.92l.959-.24h.48l.24.24h.48l.72-.24h1.44l.24.24v.96l.24.24v.48l.24.24.24.24h.48l.72-.24.24-.24h.72l.48.24v.48l-.24.48-.24.48v.96l.24.24h1.68l.24.48v.24h.239l.24.24.48-.24h1.68v.24h.48v.24l.72.72.24-.48v-.48l.24-.24.24-.24.24-.24h.48l.24-.24h.24l.48-.24.24-.24v-.96l.24-.24.48-.72v-.48l-.24-.24-.24-.24h-.48l-.48-.48h-.24v-.48l.24-.24.24-.24v-.72l.24-.48.24-.48.24-.24v-.24l-.24-.48v-1.2h.24l.96-.24h.24l.24-.24.24-.24v-.48l.48-.24.239-.24 1.2-.24h.96l.48-.24.72-.48h2.88l.48-.24.96-.24.48.24h.48l.24-.24.239-.24h1.2l.72-.24.24.24.24-.24.72-.48h.48l.24-.24h.48v-.24l.24-.48.48-1.44.24-.24v-.48l.24-.959.24-.48.24-.72h.24l.72.24.24-.24h.96v-.24l.24.24z", + center: [475, 320], + defaultColor: "#9ACD32", + produksikomoditas: "23.498", + }, + { + id_kecamatan: 28, + name: "Maesan", + path: "M158.622 550.273l.48.48h.72l.48.24.24.24v.24l.24.24.24.48.24.24.48.24h.24l.24.24.24.24.24.24.24.24v.24l.24.24.24.24.24.24h.24l.24.24.96.96h.96l.48-.24.48-.24h.72l.24.24h.24l.24.24h.48l.24.24h.24l.24.24h.48l.24.24h.48l.239.24.24.24h.96v.48h.72l.24.24h.96l.48.24h.48l.24.24v.24l.24.48.48.48h.24l.24.48.24.24.24.48v.24l.24.48h.24l.24.24v.24l.24.24.72-.24.48.24h.48l.719.24.72.24h.24l.48.24.48.24h.24l.96.48.48.24.48-.24.24.24h.72l.48.24h.48l.72.24h1.2l.48-.24.479.24h.72l.24-.24.48-.24.48.24h1.2l.48.24h.72l.48.24.24.24.48.24h.24l.48.48.48.24.24.24h.48l.24.24.72.239.479.24.72.48.48.24.48.24.24.48.24.24.24.24.24.24h.72l.48-.24.96-.48.48-.24h.48l.48.24h.24l.24.24.24.48v1.44l.24.48.24.24.24.24.72.48.48.24.719.48.72.48.24.24h.24l.96.24h1.68l1.2.24 1.2.24h2.159l.48.24.48.24.24.24.24.48.24.24h1.44l1.2.48.24.24h.24l.96.48 1.2.48.48.48.72.24.48.24 1.199.24h.72l.48.239 1.44.48.24.24.48.24.72.24.48.48h.24l.48.24h1.68v.24h.24l.24.24.24.24.479.24.24.24.48.24h.48l.72.24.72-.24h.48l.24.24h.72l.48.24.48.24.96.24.96.48h2.159l.72.24h.24l.24.24h.72l.24.24.24.24.24.24h.24l.48.24.48.48.48.24h.48l.48.24.24.24h.48l.48.24h1.2l.24.24h.24l.48.48.479.24h2.64l.48-.24.24-.48H260.852l-.24-.24.24-.24h.48l.479.24.24-.24.24-.24.48-.24h.24l.24-.24v-.48h1.2l.24-.24.72-.24.24.48.48.24.48.24.24-.48.48.24h.24l.72-.24.48-.24.24-.24v-.48h1.2l.479.24.72-.24h.48l.24.24.48-.48h.96l.48-.48.48-.48.48-.24h.24l.48-.48.48-.24h.72l.72-.24.24.24.24.24h.72l.24.24.24.24.239.24h.48l.24-.24h.72l.24.24h.24l.24-.24.24-.24h.48v-.24h.72v.72h.48v-.24h.24l.24-.24h.48v.24h-.24l.24.24h.96v.24h.24v.24h.48l.24.24h.72v.24H288.927l.72-.48.48-.48.48-.48.48-.24h.72l.48.24.48.48v.24l.24.24.48.24h.24v.24h.48v.24l.24.24h.24v.24h.24v.24h.24v.48h.24v.24h.24v.24h.24v-.24h.48v.24l.24-.24h.959v.48l-.24.24h.24v.24h1.2v-.24h.24v.48h.24v.24l.24.24v.24l-.24.24.24.24.24.24.24-.24.24-.24.24-.24h.24v.24l.24.24h1.68l.48-.48.24-.48.24-.24h.48l.24-.24.24-.24v-.24h.96l.24-.24v-.24l.24-.24.24-.24.24-.24h.239l.24.24v.24l.24-.24v.24h.24l.24-.24v-.24l.24-.24.24-.24.24-.48-.24-.24v-.24l.24-.24h.24l.24.24.24.24h.48l.24-.24v-.48h.24v-.24.24h.48l.24.24h.24l.24.24v1.44l-.24.24 1.2.24h.48l.24.24 1.2.24h.24l.48.24 1.439.48 1.2.48 1.2.48 1.2.24.96.24v.24h.48l-.24.48v.24l-.24.48h.24l.96.24 1.2.48h.24l1.199.479h.24l.72.24-.24.24-1.2 3.12-.48 1.2-.72 1.92-.72 1.92v.24l-.24.24v.72l-.48.72-.24.72-.24.479-1.44-.48h-.24v.48l-.24.48-.24.72-.24.72-.24.72v.24l-.48.72-.24.72-.48 1.44v.24l-.24.24v.24l-.24.48v.24l-.24.48-.719 1.44-.24.24v.24l-.48.72-.72 1.439-.24.24v.24l-.48-.24h-.24l-.24-.24h-.24l-.24-.24h-.24l.24-.72v-.24l-.72-.48h-.48v-.24l-.48-.24-.48-.24v.24h-.24l-.24.96h-.48l-.24.24v.24h-.24v.24l-.24.48-.24.72.24 1.44v.24l-.24.24v.72l.96.24v.48l-.24.48h-.24l-.24.24v.96l-.24.24.24.48v.48h.24l.48.48v-.24h.48l.24.24v.72l.24.24v.24l1.68.48.96.24.72.48.96.24.24.24.72.24h.24l.48.48 1.2.48h.24v.24l.96.239.72.24.48.24v.24l.48.24v.24h.24l.24.24h.24l.24.24.24.24h.24l.24.24v.24l.72.72h.24v.48l.24.48v.24l-.24.24.24.24v.24l-.24.24-.24.24-.24.24v.24h-.48v.24l-.24.72-.24.24-.24.48-.24.24v.24l-.24.24h-.24l-.24.24h-.24l-.24.24v.24l.24.24v.24l.24.24h.48l.24-.24h.24v-.24l.24-.24v-.24l.24.24h.24l.24.24v.24h.48l.24.24h1.439v.24l-.24.24v.72l-.24.479v.72h-.24l-.24.24h.24v.24l.24.24v.24l.24.24h.48l.24.24h.48l.24-.24h1.92v.24h.24v.96l-.24.24-.48.48-.48.48-.72.72-.48.24-.24.48-.24.24-.48-.24-.24.24v.72l.48.48v.48l-.24.24h-.96v-.48h-.48l-.48.24-.24.24-.72.24-.24.24v.24h-.24v.24l.24.24h.24v.48l-.24.24-.24.24v.48l-.24.72v.479l-.24.24-.24.48v.48h-.24v.24l.24.24.48.48v.24l-.24.24-.96.72-.24-.24h-.24v.72l-.24.24v.96l-.24.24-.24.24-.24.24h-.24l-.24.24h-.48l-.48.24v-.24l-.48-.48-.239-.24v.24h-.24l-.24.24-.24.24-.48.48-.72.48h-.48l-.48-.24-.24-.48-.24-.48.24-.24v-.24h-1.2l-.48-.24-.24-.24-.24-.24h.24v-.24l-.24-.24-.24-.24-.24.24-.24.24-.24.24h-1.92l-.719-.24h-.24v-1.2h-.24l-.24.24-.24.24-.24.48-.24.24h-.48l-.24-.24v-.24h-.24l-.24.24-.24-.24-.24-.24v-.96l-.24-.24-.24-.24-.24-.24v-.24l.24-.24-.24-.24v-.72l-.24.24-.24.24h-.48l-.24-.48-.48-.48-.48-.24-.72-.48-.72-.48h-.24l-.24-.24-.72-.24v-2.16h-.24l-.239-.24h-.48v-.48h-.72l-1.2.72-.24.24-.48-.48h-.72l-.72.24h-.72l-.48-.24-.48-.48h-.48l-.72.48h-.48l-.24.48-.48.48-.24.24v.24l-.239.24v.48l-.24.24v-.24l-.24-.48-.24-.24-.24-.24h-.72l-.96-.24h-.72l-.24-.48v-.96l-.24-.24-.24-.24v-2.16l.24-.48-.24-.48-.24-.48-.24-.24-.24-.24-.24-.24-.48-.48h-.24v-.24l-.24-.24v-.479l-.24-.24-.24-.48-.24-.24h-.24v-.24l-.24.24h-.48l-.24-.24-.24-.24-.24-.24h-.24l-.24-.24-.239-.24h-.24v-.24h-.24l-.24-.24-.72-.72-.24-.24-.72-.48h-.24l-.48-1.2-.24-.48-.24-.48h-.24l-.48-.24-.24-.24-.48-.24-1.68-1.44-.24-.24-.96-.48-.24.24h-.48l-.479.24h-.48l-.48.24v.24l-.24.24-.24.48-.24.72-.72 1.2-.96 2.16-.24.48-.24.24-.48.48-.24.72v.48l-.24.24-1.44 1.2h-.24l-.48.24h-.48l-1.2.48h-.479l-.48.48-.48.24-.48.24-.48.48-.24.24-.48.72v.48h-.24l-.48 1.44-.24 1.2v.96l-.24.48v.72l-.72 1.44-.48 1.439-.72.96-.24.24-.48.72-.48 1.2-.24.72-.48.96-1.199 1.44-.96-.24-.96-.72-1.2-1.44-.48-1.68-.72-1.92-1.68-2.16-.96-.48-.96-.48h-1.439l-.48.24v.24h-.24l-.48.72-.48.72.24 1.44.48 2.4.24 1.44.24.24.48 1.44.24.48.24.96.24 1.44v1.68l-.24.479-.24.48-.72 1.2h-.24l-.24.24v.24h-.24l-.24.24v.24l-.24.24h-.24v.24h-.24l-.24.48v.24l-.24.24-.24.24v.72l-.24.24-.24.48-.24-.24-.96-.24-.72-.24h-.24l-.24-.24v-.24l-.24-.48v-.72l.24-.96.24-.72.24-.72v-.48l-.24-.24v-.24h-1.2v-.72l.24-.48h.24l-.48-.72-.48-.48v-.96l-.24-.48-.48-.72-.24-.48v-.24l.24-.24v-.48l-.24-.48v-.96l.24-.24-.24-.24-.24-.48-.239-.24v-.48l.24-.48v-.72l.24-1.199v-.48l.72-1.2v-.72l-.48-.24-.48-.24-.72-.96-.24-.24v-.72l-.24-.24h-1.44l-.48-.48-.48-.48-.96-.48h-.24l-.48-.72-.24-.72-.48-.24-.24-.24h-.48l-.48.24-.24-.24h-.48v-.72h.24v-.24l-.24-.72v-.24l.24-.24.24-.24.24-.24v-.239h-.96l-.24-.24-.24-.48v-.24l-.24-.48v-.48l.24-.48v-.96l-.24-.48-.239-.24-.96-.24h-.48l-.24-.24-.72-.72-.24-.24v-.24l-.24-.48-.48-.72h-.24l-.72-.24h-.24l-.48-.72-.24-.72-.72-.72-.24-.24-.24-.48v-.72l.24-.48v-1.199l-.24-.48-.24-.48-.72-.72-.24-.48v-1.2l-.72-.24-.48-.24v-1.44h-.239l-.24-.24h-.24l-.24-.24v-.48l-.24-.24-.24-.24-.48-.48h-.24v-.96l-.24-.24h-.24l-.72.24-.24-.24h-.48l-.24-.24-.24-.48-.48-.48-.24-.24-.72-.72-.24-.24.24-.479.48-.24.24-.24v-.24l-.24-.48-.72-.48-.48-.24-.48-.24-.24-.24-.24-.24v-.72h-.24v-.72l-.24-.48-.24-.72v-.24l-.24-.24-.959-.24h-.72l-.24-.48-.48-.24-1.2-.72-.72-.24h-.72v.24l-.96-.24v-.24h-.48l-.24.24h-.24l-.24.24-.24.24v.72l-.24.24h-.24l-.24-.24v-.24l-.48-.48-.24-.24-.24-.24-.24-.24-.239.24h-.24l-.24-.24-.24-.24v-.24l-.24-.24v-.24h-.48v-.24l-.24-.24v-.72h-.24l-.24-.24-.24-.24h-.24v-.24l-.24-.24v-.24l-.48-.239-.24-.24h-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24.24-.24-.72-.48-1.2-.72-.72-.48-.96-.96-.719-1.2-.72-1.44-1.44-1.68-1.2-.96-1.68-1.2-1.2-.48-.72.24-.48-.24h-.72l-.959.24-.48.24h-.96l-.72.24h-1.2l-.96-.24h-.96l-.48-.24h-3.599l-.72-.24h-1.92l-.48-.24-1.2-.479-.96-.48h-.72l-.96.24h-.24l-.48.24-1.199.24v.24l-1.92.48-.48.24h-.48l-.24.24h-.72l-.48-.24h-2.16l-.72-.24h-.96l.24-.72v-1.44l-.24-.72v-.24l-.24-.72-.479-.72v-.72l-.24-.48-.24-.72v-.24l-.48-.24-.24-.24-.24-.24-.48-.48h-.24l-.24-.48-.24-.24v-.48l-.24-.24-.48-.72-.48-.72-.24-.48v-.48l-.48-.48v-.239h-.24l-.24-.24-.24-.48-.48-.24-.24-.24-.24-.24v-1.2l-.24-.24v-.24l-.24-.24h-.24v-.24l-.24-.24h-.24v-.72l-.24-.48v-1.68l-.24-.24h-.24l-.48-.24h-.479l-.24-.24h-.24l-.24-.24-.48-.24h-.24v-.24l-.24-.24h-.24l-.24-.24v-.24l-.24-.24v-.24l-.24-.24-.24-.24v-.24l-.24-.24v-.24l-.24-.48v-.48l-.24-.24-.24-.479-.24-.24v-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24h-.24v-.24l-.24-.24-.24-.24-.24-.24v-.48h-.24v-.24h-.24v-.24l-.24-.24-.24-.24-.24-.48-.48-.24-.24-.24-.24-.24-.48-.24v-.24l-.239-.24-.24-.48-.24-.24v-.24l-.24-.24v-.24h-.24v-.24h-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24v-.24h-.24v-.96l-.48-.48v-.72l-.48-.959-.24-.72v-.96l-.24-.96v-2.16l.24-.48-.24-.96-.24-1.44v-.72l-.48-1.2-.24-.48-.24-.96v-.239l-.24-.24-.72-.72-.24-.48-.24-.72v-.72l.24-.72.24-.72.24-.72.72-1.2.48-1.2.48-.96.48-1.44.24-.72v-.72l-.24-.24 2.16-.479 1.44.24 1.68.48 1.44.48.24.24 1.2.48.24.24 1.68.96.24.24 1.679 1.2 1.68 1.44.96.72.96.96 1.44 1.2 1.44 1.68.72 1.439.96 1.44v.24l1.439 1.92.72.96 1.44 1.2.96.48h.24l.72.24.72.24z", + center: [255, 612], + defaultColor: "#FFD700", + produksikomoditas: "15.558", + }, + { + id_kecamatan: 29, + name: "Pakem", + path: "M230.854 364.29h.96v.48h1.68l.24.24h.24v.48h.24l.24.239.24.24v-.24h.24l1.2-.48.48-.24h.72l.96.24h.24l.48.24.48.24.48.24.24.48.24-.48v-.24h.24v-.24h-.24l-.24-.72v-.24h.24l.72-.48.24-.24h.24l.24-.24H245.012l.72-.72.24-.24.48-.24h.72l.24-.24h.24l.24.24h.24l.24.48v.48l-.24.48v.48l-.24 1.44v.48l.24.48v.24h-.24l-.24.24v.24l-.48.24-.24.24-.48 1.44v.24l-.24 1.68v.48l-.24 1.2v.72l-.24.48h.96l.24-.24h.24l.24-.24.24-.24.24-.24.24-.24.24-.24.24-.24.24-.24.48.48.72.96v.24l.72-.48.48-.48.24-.24h.24l.48-.48.239-.24 1.68 1.2.48.72.48.24-.72.72-1.44.96v.72l-.24.24v.24l1.2.24 1.92.239 1.68.48 1.68.24 1.92.48.719.24 1.2.24.96.24h.24l.48.24h.48v.24l-.24.24.24.72v1.68l.24.24v.72l.24.24.24.24h.48v-.24h.72l.24-.24.24-.24.24-.24h.24l.72-.24.96-.24v-.24l.959-.24.72-.24v-.24l.72.48h.24l.72.24.96.48.72.24.48.48.72.48v1.2h-.24l-.48.96h-.24l-.48.48h-.24l-.24.48-.24.48v.24l-.24 1.679.24.96v.48l.48.48.48.72.72.24.24.24.96.72.72.72h-.24l-.48.24-2.16-.24h-1.92l-1.92-.24-1.92-.24h-2.88v-.24h-3.12l-.48-.24-.239-.24h-.24l-.24.24-.72.24h-1.44l-.48.96-.24.24h-.24l-1.68.72-.24.24-.72.24-.48 1.68v.48l-.48 2.4-.24.959v.96l-.24.24-.24 2.4v.24l-.72.72-.479.96-.24.72v1.92h.96v.72l.96.24 1.44-.72.48.48.24.24-.96 2.639-.48 1.68-.24.96v.24l.24.24.72.24.24.24v.72l-.48.72-.48.96-.48.72v.24l-.24.24h-.72l-.96.24h-.48l-.24-.24-1.44-.96-.72-.24-.72.24-.96.72-.24.96-.24.96h-.24V424.523l-.24.48v.24l-.24.24h-.24l-.48.24-.48-.24h-.24l-.48-.24-.48-.24h-.24l-.719.48-.48.24h-.96v-.24l-.24-.48-.48-.24-.24-.24h-.24v-1.68l-.24-.24.24-.24.24-.24h.24l.24-.24v-1.2l.24-.48v-.48l-.48-.72-.48-.96-.24-.24-.24-.24-.96-.48-.48-.24-.96-.24h-1.92l-.24.24-.24.24-.48.24-.24.24h-.719l-.48.24-.24.24h-1.2v.24h-.24l-.24.48-.24.24-.48.48-.24.24h-1.44l-.48.24-.24.24-.48.48-.24.48v.24l-.24.24-.48.48-.72.48h-.24v.24h-.24l-.479-.24h-.48l-.72.24h-.96l-.24-.24-.24-.24-.72-.24-.24.24-.72.24H218.855l-.72-.48-.72-.48h-2.399l-.96.48-.48.72v.72l-.48.48v1.2l-.72.96-.24.72V430.524l-.24.96v1.2l-.48 1.2v1.44l-.24.96v.479l-.24.72-.48 1.2-.24 2.16-.48 1.68-.24.24-.72.96-.48.24-.479.24h-.72l-.48-.24h-1.2l-.24.24-.24.24v.24l-.48.24-.48.72v.24l-.48.96-.48.96-.24.24-.48.959v.24l-.24.24v.24h-.24v.24l-.72.72-.24.24-.24.24-.24.24h-.24l-.48.24-.24.24-.24.24h-.239l-.72.48h-.24l-.72.72h-.24l-.72.72-.24.24-.24.24-.72.48-.24.48-.96.72-.72.72-.24.48-.72.72-.96.72v.24l-.72.959-.719.72-.24.24-.24.48-.72.96-.24.24h-.24v.24l-.96 1.2h-.24l-.96 1.44-.96 1.2-.24.48-.24.24-.72 1.2-.24.48v.24l-.48.96-.24.24-.24.24h-.24l-.96-.24-.479.24-.72.24h-.96l-.72.24-.48.24-.24.479-.24.24-.48.48v.24l-.24.48-.24.24-.48.48-.24.48-.48.72v.24l-.72.72v.24l-.48.24h-.24l-.24.48-.48.48-.24.72-.24.24-.24.72-1.199 2.88-.24.72v.48l.24.719v.72l-.24.24-.48.48-.48.48v.48l-.24.48-.24.96-.48.72-.48.72-.96.96-.96 1.2-.96 1.2-.96 1.2-1.2 1.2-.72.959-.479.72-.96.96-.96.96-.72.96-1.44 1.68-.96 1.2-1.2.96-1.2.96-1.199.96-1.68.72-1.2.48-1.2.479-.72.24-1.2.24-.24.24-.96.48-.96.48-.959.72-1.2.96v.24l-1.2 1.2-1.2.96-.96.96-.96 1.2v.24l-1.2 1.44-.48 1.2-.72.96-.48 1.439-.24 1.2-.719 1.2-.24.48-.48 1.2-.48 1.44-.48 1.2-.48 1.44h-.24v.24l-.24.72-.24 1.2-.24 1.199v-.24h-.96l-1.2.24-1.44.24-1.68.48-1.199.24-.96.24h-1.68l-.48-.24-.72-.48-.48-.24-.72-.24-.48.24-.48.24-.48.24-.48.48-.24.24-.48.24h-.479l-.72-.24h-2.16l-1.2.24-1.2.24-.96.24-.72.48-.72.24-.72.48-.479.72-.72.48-.48.96-.48.72-.48.48-.96.24-.96.48-1.2.24H100.789l-1.439-.24-1.92-.24-1.68-.24-1.44-.24-.48-.24-1.44-.48-.96-.72-1.199-.96-1.2-.96-1.2-1.68-.96-1.44-.96-1.68-.72-.96-.72-.96-.96-.48-.48-.24-1.2.24-.719.72-.96.96-.96 1.44-.72 1.2-.48.96-.72 1.44-.72 1.2-.48.48-.72.72-.48.24h-.48l-.24-.24-.48-.48-.24-.96-.24-.72-.24-.72v-.96l.24-.24v-.24l.48-.48.24-.72.24-.24v-.96l-.48-.24-.48-.24H71.513l-.72-.24-.48-.24-.24-.48-.24-.72v-1.92l-.24-.72-.48-.48-.48-.24-.48-.24-.72-.24-.72-.24-.72-.48-.24-.48v-.24l.24-.24v-.24l.24-.24h.24v-.24h.24v-.24h.24l.24-.24v-.24h.24l.24-.24.24-.24.24-.24.48-.24h.72v-.24h.72l.24-.239.48-.24.24-.24v-.24h.24l.24-.24v-.72l.24-.24h.24l.24-.24.24-.24h.24v-.48h.24l.24-.48.48-.48v-.48l.48-.24.24-.24.48-.24h.48l.48-.24h.48l.24-.24h.48v-.24h.24l.24-.24.24-.24h.24v-.24l.24-.24.24-.48v-.72l.24-.24v-.24l.24-.24v-.24l.24-.24v-.24h.24l.24-.24.24-.24h.24l.48-.24.239-.24h.48v-.24h.24l.24-.24.24-.24.48-.24.24-.24.48-.239v-.24l.24-.24h.24l.24-.24.24-.24v-.72l.24-.24v-.24l.48-.24.48-.24h.72l.24-.24.24-.24.24-.24h.24l.24-.24.48-.24h.48l.48-.24h.24l.24-.24h.24l.479-.24h1.44l.24-.24H94.31l.48-.24.48-.48.48-.48.24-.24.24-.24.24-.24h1.2l.48-.24h.48l.24-.24h.239l.24-.24h.24l.24-.24.24-.24h.24l.24-.24.48-.24v-.24l.24-.24v-.24l.24-.24.24-.24.24-.24.24-.24.24-.24v-.24h.24v-.48l.24-.24.24-.24.24-.239h.24l.24-.24v-.24l.24-.24v-.24h.24v-.24h.24l.24-.24v-.24h.24l.24-.24h.24l.24-.24h.72l.24-.24H107.987l.24-.24h.48l.24-.24h.48l.48-.24h.24l.24-.24.48-.24h.24l.48-.24v-.24l.24-.24.24-.24.24-.24h.24l.24-.24.24-.24h.24v-.24h.24v-.24h.48l.24-.24h1.68l.72-.24v.24h.719v-.24l.24-.24v-.24h.24V487.399l.24-.24v-1.44l.24-.48v-.24l.24-.239v-1.92h.24v-.96l.24-.48V475.88h-.24v-.24l-.24-.48-.24-.24-.24-.24v-.48l-.24-.48.24-.24.24-.479v-.48l.24-.24v-1.2h.24l.24-.96v-.24l.24-.24v-.48h.24v-.24l.24-.24v-.48l.24-.24.24-.24.24-.48.24-.24h.24l.24-.24h.48l.24-.24h.24l.48-.24h.24l.24-.24h.48v-.24h.48l.48-.24.48-.24h.48l.479-.24h1.44l.24.24h.24l.48.24.72-.24h.72l.96-.24h1.44l.48-.48.48-.24.24-.48h.48l1.199-.48.24-.24v-.96l.24-.48v-.24l.48-.24.24-.239.48-.24.72-.24h.24v.24h.48v-.24h.48v-.24h.24l.48-.24.72-.48.48-.48.24-.24v-1.44l.24-.48.24-.24.24-.24.72-.48.24-.24.72-.96.48-.24.239-.24h.48l.48-.24.48-.48.72-.24h.24l.48-.24.24-.24h.24l.48-.24h.24l.96.24.24-.24.72-.48.24-.24h.48l.48-.48.24-.24.72-1.2.48-.48.719-.479.24-.24.48-.96.24-.48.48-.48v-.48l.24-.24v-.96l.48-.24v-.48l.48-.72v-.48l.48-.48v-.72l.24-.24v-.24h.48v-.24h.48l.72-.24h.24v-.24h.24v-.24h.48v-.24h1.92l.24-.24.48-.24h.479v-.24h.48l.48-.24.24-.48.24-.48.24-.72h.72l.72.24.48.48h.48l.48-.24.96-.24h.24v-.24h.48l.24-.239h.24v-.24l.48.24h.72l.24-.24.24-.24h.239l.48-.24.24-.24.24-.24v-.48h.48v-.96h.24v-.48l.24-.24v-.24h.24v-.24h-.24v-.48l.48-.48v-.48h.24l.24-.48.72-.48.24-.24h.48v-1.92l.24-.48.24-.48.72-.96v-.72h.24l.48-.48.24-.479.48-.24.24-.24.48-.24.24-.24.48-.96h.24l.959-.48.24-.48.24-.48.24-.72v-.24h.72l.24-.24-.24-.24v-.24l-.24-.48v-.24l-.24-.72v-.72h.24v-.24l.24-.24h.24v-.72h.24v-.24l.24-.24v-.24h.24v-.24h.24v-.24h.72l.48.24h1.2l.24.24h.72l.24-.24h.48l.24.24h.24l.48.24h.24v-.24h.24v-.48h.239v-.48h.24v-.24l.24-.24h.48l.24-.24h.48v-.24h.24v-.24l.24-.24v-.239h.24l.48-.24.24-.24v-.72h.72l.24-.24h.24l.24-.24v-.48l.24-.24v-.24h.24v-.24h1.92l.24.24h.72v-.24h.24v-.48l.48-.24.479-.24.24-.24h.24l.24.24h1.92l.48-.24.24-.24h.24l.24-.24h.72-.24.24v-.72l.72-.48v-.24l-.24-.24v-.72l.24-.24v-.24l.24-.48v-.24l-.24-.24-.24-.48-.48-.72h-.24v-.48l-.24-.24v-.48l-.24-.24v-.24l.24-.24v-.479l.24-.24V397.886l.24-.24h.24l.24-.24v-.24h.24l.24-.24.48-.72h.24l.24-.24.24-.48.24-.24.24-.48V392.127l.24-.48v-1.439l.24-.24.24-.72.24-.48.24-.72.24-.48.24-.48.239-.24v-.24l.24-.72.24-.72.24-.48.24-.72.24-.24.48-.24v-.48l.24-.24h.48l.48-.24v-1.44l.48-.48.24-.24.24-.24.24-.24.24-.48.24-.24v-.48l-.24-.479-.24-.48V374.848l.24-.24v-.96l.24-.24-.24-.24-.24-.24-.48-.48v-.24h.24v-.24h.48l.24-.48v-1.44l.24-.24v-.24l.24-.24.24-.24v-.24l.24-.24v-.48l.24-.24v-.48l.24-.24v-.959l-.24-.48.24-.24v-.24l.48-.48.48-.48.24-.24v-.24l.24-.24.48-.72.24-.24v-.96l.24-.24v-.24l.24-.24v-.24l-.24-.48v-.72h.24v-3.12l.239-.72v-.959l.24-.24.48-.24v-.72h.24v-.72l.24-.24v-.24h.24v-1.2l.24-.24v-.24l.24-.24v-.96h.24v-.24h.48v-.24h.96l.24-.24.24-.24v-.24h.24v-.96l-.24-.24v-.24l-.24-.24-.24-.48-.24-.48h.24l.24.24.24.24h.24v.24h.24l.24.24h.24v.24h.24v.24h.24v.24h.24l.24.24h.24v.24h.24v.24h.24v.24h.48v.24h.24v.24h.24v.24h.24l.24.24h.24l.24.24h.24l.239.24h.24l.24.24h.24l.24.24h.48v.24h.24l.48.24h.48l.24.24h.48l.24.24h.48l.48.24.48.24v.96l-.24.48-.24.72-.24.96-.24.72v.48l.24.48v.72l.24.48v.72l.24.24.24.72v.96l.24.24v.72l.24.24h.24v.96l-.24.48v1.44z", + center: [180, 448], + defaultColor: "#F74300", + produksikomoditas: "13.308", + }, + { + id_kecamatan: 30, + name: "Prajekan", + path: "M523.382 252.459h.96l.24.24.24.24.48.24.48.24h.24l.24.24v.48h.96v-.48l.24.24v.24h.24v.48l.48.72h.24l.24-.24h.48v.72l.24.24.72.72.72.24.72.24.24.24h.24v.48l.479.48.24.24.24-.24.24-.48h.24l1.2.24.24.48h.72l.24-.24h.48v.24l-.24.479v.24h.24l.48.24-.24.24h-.24v.24h.48v.24l.24.24.24.48v.24h.72v-.48l.24-.24 1.68-.24h1.679l1.44-.24.48-.24h1.2l.48.24h.72l.48-.24.48-.24.72-.48h2.16l.719-.24h2.4l.72-.48h1.44l.48.24h.96l.24.24h.24l.48.48.48.24.24.48h.72l.24-.24h.959l.48-.24h.72v-.48l-.24-.24v-.24h.96v.24l.48.24.48.24.24.24.96.24.48.48h.72l1.44.48 1.44.24 1.199.48.48.24.48.48.72.48.48.48h.48l.24.24h.48l.24.24.72.24.48.24h.48v-.24l.48.24h.24l.48.48.24.24.24.24.24.24.24.24v.72l.24.24-.24.48v.48l-.24.48.24-.24h.479l1.44-.72.72-.72.96-.48.96-.48.48-.24.48-.24.96-.72.96-.48.96-1.2 1.199-1.2.24.24v.24l.24.24v.48l-.24.48-.48.96v.48l.24.24v1.2l-.24.24h-.48v.96l.24.24v.24l.24.72v.24l.48.96h.48l.48.48.96.48h.48l.24.24.48.24.24.239.96.72 2.4 1.2h.24l.72.48.959.24h.48l.48.24 1.68.24h1.92l.24.24v.48l.24.72v1.68h.48l.72.24.72.48.48.96.48.96.48.48.24.48.479.24.96.24 1.44.24.96.24 1.2.24.72.24.72.479.48 1.2.72.96.48.72.48.24.24.24.719.24H616.012l.24.96v1.2l.48.24.24.24v.48l-.24.72-.24.72-.24 1.44-.48 1.2v.48l-.24.479-.24 1.44v.48l.24.24.24.24.48.24.24.24h.48l.96.48.24.24v.24l.24.24-.24.72-.24.96v.72l.48.48h.24l.72.24H622.011l.479.24.48.48.72.96.48.48v.24l-.24.24.24.24v.24l.24.72.48 1.679.24.24 1.2.48.24.24v.24l-.24 1.68v.48l.24.24h.24l.24.48.24.24h.24l.48.72.24.24.48.72v.24l.24.24v.24l.24.48.24.24.24.48.24.24.24.24.24.24h.24v.24h.72v.24l.239.24.24.24.48.24.48.24h.24l.96.24h1.92l.72-.24h1.2l.72.24V319.652l.24.24.24.24h.48l.24-.24h.24v.48l-.48.72v.24l.48.72v.24l-.24.48v1.92l.24 1.2v.96l-.24.48v1.68l.48.96v.239l-.24.24-.24.48-.48.72-.24.48v.24l-.24.72v.48l-.24.24-.24.24.24.96.24.72h.24l.24.24.48.24 1.439.96.48.48h1.2l.72-.24h.96l.48.24.48.24.24.48.24.24v1.44l.24.24.24.24.72.48.72.24.24.24v.24l.24.479.72 2.16-.24 1.2-.24.24v2.4l.24.48v.48l.24.96-.24.96v.96l-.24.96.24.48v2.159l.24.48.719 1.2.24.72v.48l.24.48.48 1.2.24.24.24.24v.24l-.24.72v1.68l.24.48.48.24.48.48.24.48.48.24.24.479v.24l.24.96.24.72.24.24v.48l.24.96.48.72.24.48.48.24.48.48.24.48.24.24.24.24.24.48v.48l-.24.24v.24l-.24.72v.72l-.48.24v.24l.24.48.24.72.24.24.24.24.48 1.199.24.72v.96l-.24.72h-.24l-.24.48.24.24v.24l-.24 1.2v2.16l.24.72.24.48.24.24.24.72.48.48v.48l.239.48.48.719v1.68l.24.24.24.72.24.24.96.96v.48l.24.24.24.24v.24l.24.24v.24l.72 1.2.48.72.24.72.48.96.48 1.92.48.959.24.72v2.4l.48.72.24.96.24.48-.24.24v.96l.48.96v.72l.24.72v.48l.24.24.96.24h.24l1.199 1.439.48.24v.72l.24.48v.48l-.48.96-.24.24-.24.24v.24l.48.24.48.48.48.24.24.24.48.72.24.24v.48l-.24.24-.24.24-.24.48v.48l.24.72v1.2l.48.72.72.48.96.959.24.24.24.24.96.24.24.24.24.48v.48l.24.48v.48l.72.72.24.48v3.84l-.24.24v.24l-.24.24v.24l.24.24h.24l.24.24.24-.24h.719l.96.24h.48l.24.24.24.72.24.24v.48l.24.48.24.24v.959l.24.72v.24l.48.24.24.24.24.24.24.48.96.48.24.24v1.44l.24.24.24.24.24.24.24.24h.24l.24.24.48.24h.24l.72.48v.24l.48.96.24.24.239.24v.48l.24.24.96.72.24.24v.48l.72.72.24.239v.24l-.24.24v.24l.24.24.24.24-.24.48v.24l.24.48v.48l.24.24.48.96.24.24h.48v.72l.24.96.24.24.24.24.24.24v.48l.24.48.24.24v.72l.24.24.24.24v.24l.24.24.24.72.48.48-6.96-3.36-.24-.24-2.16-.96-3.6-1.92v-.72l-.24-.24-.24-.24-.48-.72-.24-.48.24-1.2v-1.68h-.24l-.24-.48-.48-.24v-.24l-.24-.48-.479-.72-.48-.72-.72-.96v-.72l.24-.48-4.32-1.92-1.68-1.68-2.399-2.159-.96-.96-.24-.24.48-1.44v-1.44l-.24-.72-.24-.96-.24-.72v-.48l-.48-.72-.24-.48v-.24l-.24-.24v-.96l-.24-.24-.24-.24v-.48l.24-.479v-.24l-.24-.24-.24-.24-.24-.48-.24-.48-.48-.24-.72-.96-.24-.24-.24-.48-.24-.48-.24-.72-.24-.96v-.24l-.24-.48v-.24h-.24l-.24-.96v-.72h-.24v-.72l-.24-.72-.48-.48v-.72l-.24-.48v-.239h-.24l-.24-.48-.239-.48v-1.92l-.72-.72-.24-.24-.48-.24h-.24l-.24-.48v-.48l-.48-1.68-.24-.48-.72-.24h-.24l-.48-.24-.48-.72-.24-.72-.24-.72v-.48h-.24l-.24-.24-.48-.48-.72-.48h-.24l-.24-.239-.24-.48-.24-.24-.24-.24h-.24l-.24-.24v-.72h-.479l-.24-.24-.48-.24v-1.68l-.24-.24v-.72l-.24-.24-.72-.72-.48-.24-.24-.24-.24-.48v-.24l-.24-.24-.24-.24-.48-.24-.48-.24v-.96l-.24-.24-.48-.48v-.24l.48-.48-.24-.72v-.24h-.48l-.24-.239v-.24l-.24-.48-.24-.24-.48-.24-.24-.48h-.24l-.48-.24-.24-.24-.48-.24h-.48l-.24-.24-.239-.24-.48-.24-.24-.48v-.96l.48-.72-.24-.24-.24-.24v-1.44l.24-.24h.24v-.24l-.24-.24-.48-.24-.24-.72v-.24h-.24l-.24-.24h-.24v-.24l-.24-.24v-.48l-.72-.48-.96-1.199-.24-.24v-.24l-.24-.24-.72-.72v-1.68l-.24-.24-.24-.24-.48-.48-.48-.48-.48-.24-.72-.48-.48-.48-.48-.48-.479-.48-.48-.72-.48-.48-.48-.48-.48-.72-.24-.48-.48-.24h-.48l-.48-.24-.24-.24-.96-.96-.72-.479h-.24l-1.2-.72-.48-.72-.48-.24v-.24l-.48-.24-.719-.24h-.72v-.96h-.24l-.96.24-.24-.24-.72-1.44-.48-.24h-1.2l-.24-.24v-.96l-.24-.24-.24-.48v-.48l.24-.72v-.96l-.24-.24-1.2-.72v-.48l.24-.24-.24-.24-.24-.24-.72-.479-.24-.24-.48-.48-.719-.72-.24-.24.24-.24v-1.44l.24-.24h.96l.24-.24v-.96l-.24-.72v-.72h.24v-1.68l.24-.72h.24v-.48l-.24-.24-.24-.48-.96-.72-.48-.48-.24-.48-.96-.239-1.2-.24-.96-.24-.96-.24-1.44-.24-.96-.24h-.72l-1.2-.24H604.254l-1.44.24h-1.44l-.24.24h-.48l-.96.24-.96.48-.24.24-.72.48-.96.48-.719.48h-.24v-.24l-.24-.72-.24-1.2v-.48l-.24-.48-.24-.48-.72-2.16-.48-.48-.48-.48-.72-1.44v-.48l-.24-.24v-.72l-.24-.48-.24-.48v-.72l.24-.48v-1.2l.24-.239.24-.24V328.532h-.72l-.24-.24v-.24h.48l.24-.24v-.72l.24-.24.24-.24.24-.24v-.72l-.24-.24-.24-.24v-.96l-.24-.48v-.24l.24-.24h.24v-.24h.24v-.24l-.24-.24-.24-.24-.24.24h-.72v-.24l.24-.48v-.24h.24v-.48h.24v-.48l-.48-.24-.24-.24-.24-.24.24-.24.24-.239.24-.24.24-.48v-.24l.24-.24.24-.24v-.24l.24-.48.24-.48v-.24l.48-.24.24-.24.72-.72.24-.72.24-.24v-.96h.72l.24-.24v-.96l.48-.24.24.24v-.48l-.72-.24h-.24l-.24-.24-.24-.24v-.24l.48-.24-.96-.96v-.72l.96-.24-.24-.24-.24-.24v-.719H592.734l-.96-.24h-.24l-.96-.24h-.96v-.24l-.24-.24h-.72l-.48-.48-.24-.24v-.24l-.719-.24-.48-.24h-.24l-.24-.48h-.24l-.48-.24v-.24h-.48l-.48-.24h-.24l-.72-.48-.48-.24-.24-.48-.24-.24h-.24l-.24-.24-.24-.24-.24-.24-.48-.24h-.48v-.24h-.24v-.24l-.24-.24h-.24v-.24h-.24v-1.92l.24-.24-.24-.24-.24-.24-.24-.48h-.48l-.24-.24v-.24h-.24v-.72l-.239-.24-.24-.479v-2.16l.24-.24v-1.2l-.24-.48.24-.72V288.215l-.96-.24-.48-.24-1.44-.24h-.48l-.96-.24-.24 1.44-.24.24v.48l-.24.96-.24.96v.24h-.24v-.24h-.48l-.24-.24h-.48l-.24 1.2-.96-.24-.48-.24h-.959l-.24.24v.24l-.48.72-.24.48v.24l.24.24.24.24v.24l.24.24-.24.48.24.48v.96l-.48.72-.24.48-.24.24v.72l.24.48v.48l.24.48.24.24.72.72.24.48.48 1.44v.72l-.24.96v.24l.24.72.24.48.24.24V307.653h.48l-.24.48-.24.48v.48h-.24l-.24.24-.24.24-2.16-.48-.96-.24-.48-.24-.48-.24-.72-.24h-.24l-.48-.24-.24-.24-3.839-1.2h-.24l-.72.24h-.72l-.72-.24-1.44-.48-1.68-.96-1.44 2.16v.96l.48 1.44.48.48.24.72v.24l.24.24v.24l.48-.24.24.24.24.24v1.44l-.24 1.92v1.68l-.24.24h-.48l-.48.24h-.48l-.48-.24h-.24l-.24-.24-.72-.24-.24-.24-.24-.24-.239-.24-.48-.72v-.24l-.48-.24-.24-.24-.24-.24-.24-.24-.24-.24-.48-.24-.72-.24-.24-.24-.48-.24-.24-.24-.96.24-.72.24h-1.92l-.24-.24h-5.519l-.48-.24h-2.4l-1.44-.24-.479-.24h-.24l-1.44-.24h-.24l-.48-.24h-.48l-.24-.24-1.44-.48-1.2-.24-.48-.24-.72-.24h-.48l-1.439-.96-.24-.24-.24-.24-.48-.24-.24-.24-.72-.48-.96-.96-.24-.24v-.24l-.72-.48-.24-.48-.24-.24H516.422l-.24-.24h-.24v.24h-.24l-.24.24h-.24v.24h-.479v.24h-.48v-.24l-.24-.24-.24-.48-.24-.48v-.24h-.24v-.48h-.24v-.48h-.24v-.24l-.24-.48v-.24l-.24-.24-.24-.24v-.24l-.24-.48-.24-.24v-.24l-.24-.24v-.24l-.24-.24v-.48l-.24-.24v-.24l-.24-.48-.24-.24v-.48l-.24-.24v-.24l-.24-.48v-.24h-.24v-.48h-.24v-.479l-.24-.24v-.24h-.24v-.24h-.24v-.24h-.24l-.24-.24v-.24h-.24v-.24l-.24-.24v-.24h-.24v-.24h-.24v-.24l-.48-.24v-.24l-.48-.48H504.905l-.24.24h-.24l-.24.24-.24.24-.24-.24v-.24h-.48l-.72-.48h-.24v-.24l-.24-.48v-.96l-.24-.24-.24-.48v-.48l-.24-.24-.24-1.68-1.2-1.92v-.48l.24-.479.24-.72.48-.72.48-.72.24-.24.24-.24.24-.48.24-.72v-1.2l-.24-.48-.48-.48-.48-.72-.24-.72v-.72l-.24-.24v-.24h.24l.48-.48.96-.72h-.48l-.24-.48-.24-.48v-.959l-.24-.72-.24-.48-.24-.24-.24-.24v-.48l.24-.48-.24-.48-.48-.48v-.48l-.24-1.44-.24-1.2.48.24h.24l.96.24h.72l.48-.24.72-.24 1.2-.48 1.2-.48h.72l.48-.24 2.64-3.12.48-.48.96-.719.72-.24.96-.48.72-.24.96-.48 1.439-1.92.96-1.44 1.2-1.68.48-.72 2.4-2.88.24.24.48.48h.24l.72.24.24.24.24.24.24.48.24.24.239.48z", + center: [542, 285], + defaultColor: "#9ACD32", + produksikomoditas: "18.775", + }, + { + id_kecamatan: 31, + name: "Pujer", + path: "M417.314 486.199h.24l1.2-.24.24-.24.48-.48h.48l.48-.24.48.72H423.553l.479.72.24.24h.24l.24.24h.24l.24.24h.24l.24-.24h.72l.24.72h.24l.24.24-.24.24-.24.48v.24l.24 1.2v.72l.24.24.48.48v.48l.24.24.96.48h.48l.24-.24.48.24h.48v.24l.24.24v.48l.24.48.24.24v2.159l.24 1.2v.24h.24l.24.24.24.24h.719v.24l.24.48.24.24.48.24v.24l.48.24v1.68l.24.72.24.24v.24h.24l.48.24.24.24.24.24v.24l-.24.48-.24.24h.24v.24h.24l.24.24.48.24v.24l.48.72.48.24.24.24.48.24h.72l.72.239h.24v1.2l.24.24.24.24.72.48.24.24.24.24v.48l.239.24h.48l.96.24.24.24.24.24v.48h1.2v.96l.24.24.24.24.24.24v.48h.24l.24.24.48.48.24.24v.48h.24l.72-.48v1.44l.24.24v1.44l.24.24h.72l.96.24.24.24-.96.479-.72.24-.48.24-1.2.48-.48.24-.24.24h-.48l-.48.24-.48.24-.72.24-.48.24-.24.24v3.12l.24.96v1.2l-.24.72v1.68l.24.24v.24l.48.24.72.48.48.479.72.24.48.24.24.48v2.16h-.24v1.2l.24 1.92v1.2l.24 2.16v2.399l.24 1.2v.24l2.4-.24 2.399-.24v.24l.72-.24h2.64l1.2-.24h1.68l2.159-.24h2.16-.24l.24 1.44h.48l.24.96v.24l.96.48.24.48h.24l.24.72v.24l.24.48.24 1.44.24.72v.48l.24.24v.72l1.44-.24.72 1.44v.48l.48 1.679v.48l.719.96.96.96.72.96v.24l.48 1.2.24.48.24.96.48.96.72.96.48.72v1.44l-.24.959v.24l.24.24.24.24.24.72.72 1.68v1.68l.72.48.48.48.96.96.24.24 1.199 1.92v.24l.24.24.24.24.72.24.48.72v2.159l-.24.48v1.68l-.24.24v.48l.24.72-.24.24h.24l1.44-.24.24 1.2v1.2l.24.72v2.4l-.24.24-.24.24V590.59l-.48 1.68-.24 1.44-.24 1.2-.24 1.68-.48 1.44-.24.72-.48 1.44.48.24.96.48v.72l-.24.959-.72 1.44-.24.96-.24.96-.24 1.68v.24l-.24 1.44-.48 1.44-1.2 1.68v-.24l-.48-.48-.24-.96-.48-.24h-.48l-.48.48h-.96l-.72-.48h-.48l-.24-.24h-.24l-.48.24H469.629l-.24-.24-.24-.24h-.48l-.24.24-.24-.24h-.48v-.48l-.24-.72v-.24l-.48-.24-.48-.48h-.48l-.24-.24-.48-.24-.96-.24-.48-.24-.96-.48-.24.24-.48.24-.48.24-.24.24-.24-.24-.479-.48-.72-.48v-.24h-.48l-.24-.24v-.48l.24-.72h-.96l-.24-.24-.24-.48h-.24l-.48.24-.48.24h-.48l-.48-.24h-.96v-1.92l-.24-.24h-.48l-.24-.24-.24-.48h-.48l-.24.24-.48.48-.48.48h-.24l-.239-.24h-.96l-.96.24h-.24v-.24l-.24-.48v-.24l-.24-.24h-.72l-.96-.24-.24-.24-.24.24h-.48l-.72.24h-1.44l-.24-.24-.24-.24-.24-.24v-.24h-.24v-.96l-.24-1.2h-.719l-.24.24-.24.24v.24h-.72l-.24-.24v-.48l-.24-.48-.24-.24h-.72v.24l-.24.72h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24-.48-.72-.24-.24-.24-.48h-.24l-.48-.24h-.72l-.48.24h-.72l-.24-.24v-.24h-.24v-.72h-.239l-.24-.24-.48-.48-.24.24h-.72v-.24l.24-.48-.72-.24-.48-.24-.48-.24h-1.2l-.24.24-.24.24h-1.2l-.24-.24h-1.92l-.48.24-.24.24h-.239l-.24-.24h-.24l-.24-.24v-.48l-.24-.24-.24-.24h-.48l-.24.24h-.48l-.24-.24v-.24l-.24-.24-.24-.48-.24-.24-.24-.479-.48-.24-.24-.24h-.24l-.24-.24-.24-.24v-.24l-.24-.48-.24-.24-.96-.24-.48-.24-.48-.24-.48-.24v-1.2l-.24-.24v-.24h-.24l-.24-.24-.239-.24v-.48l-.24-.24v-.24h-.24l-.24-.48v-1.44l-.24-.48v-1.44l-.24-.24v-.24l-.24-.24-.24-.24-.96-.24-.72-.479h-.24l-.48-.24h-.48v-.24l-.24-.48-.24-.48-.96-.96v-.24l-.24-.24-.24-.24-.48-.96-.24-.48-.24-.48-.48-.48-.24-.24-.24-.24H405.796v-.24h-.24l-.24-.24-.24-.24v-2.4l-.24-.48-.24-.72-.24-.24-.72-.72-.96-.719-.72-.24h-.48l-.48-.24h-.24l-.24-.24-.24-.48v-.48l-.24-.24v-.24l-.72-.72-.24-.24v-.96l-.24-.48-.24-.24h-.24l-.24-.24h-.24l-.479-.24-.24-.24h.24l.72-.24 1.2-.72.48-.24.96-.24.48-.48h.24l.72-.24.24-.24.96-.24.72-.48 1.2-.72.719-.48.96-.48-.48-.24-.48-.24-.24-.24-.24-.24-.72-.479-.48-.96-.48-.72-.72-.72-.48-.72v-.72l-.48-.48-.24-.48v-.24l-.24-.48-.48-.48-.48-.72v-.72l.24-.48v-.96l-.24-.24-.48-.48-.24-.48h-.24l-.24-.24h-.24l-.24-.24-.72-.72-.48-.24-.24-.239-.239-.24-.24-.24-.24-.48-.24-.48-.24-.24-.48-.24-.48-.72-.24-.24V538.034l-.24-.24-.24-.24-.72-.72-.24-.24h-.24v-.48l-.24-1.2v-.24l-.24-.48-.24-.24v-.72l.24-.48-.24-.48-.24-.24V530.596l.24-.72v-.96l-.24-.96v-.48l-.24-.48-.24-.72v-2.16l-.24-.72v-.96l-.24-.96v-.96l-.48-.719-.24-.96.72.48.24.24.48.72.48.72.24.48.24.24h.24v.24l-.24.48h.24l.24.72.24.72h2.88l1.92.48 1.44.24.96.48.48.48v.48l.24.48v3.6l.72-.24H407.474l.96-.24H412.755v2.159l1.44-.24h.48l.239.24h.24l.24.24h.96l.24.24h.24l.24.24.48.48.48.24v.24l.24.24.48.48h.24l-.24-.48-.24-.72v-.48l-.48-.96v-.24l.24-.48v-.96l-.48-.72-1.44-1.44-.24-.48-.24-.48-.48-.48-.24-.24v-.24l-.48-.24-.48-.24-.48-.24h-.24v-.24l-.24-.24-.48-.24-.24-.24v-.24h-.24v-.48l-.24-.24-.48-.48-.96-.96v-.72l-.24-.48-.24-.24v-.479l-.72-.96-.24-.72v-.48l-.24-.24v-.48l-.24-.24-.24-.24h-.96l-.24-.24-.24-.24-.24-.24h-.719l-.24-.48-.24-.48-.24-.24h-.96l-.48.48-.24-.24-.24-.24-.48-.24V511.156l.48-.48v-.48l-.48-.72-.24-.72h-.24l-1.2-.479v-.24l.24-.24.24-.24v-.72l-.24-.48v-.24l-.24-.48v-.48l-.24-.48v-.72l-.24-.24-.72-.96-.24-.48-.48-.48-.24-.48-.72-1.2v-.48l-.24-1.2-.24-.24-.24-.48-.239-.24-.48-.48-.24-.479-.24-.24-.24-.72-.48-.48-.48-.72-.48-.48v-.72l-.24-.24v-.24l.24-.24v-.24l.96-.96.48-.24.72-.24.72-.24.96-.24.24-.24.72-.24h.24l.96-.48 1.68-.48 1.44-.96.48-.24.24-.48v-1.2l-.24-1.199-.24-1.2.24-.72.48-.24.72.24 1.199.24h.72l.48.24h.96l1.2.24 1.68.24h1.2l.24.96h.48l.72.72h.24v.24h.959l.48.24h.24l.96.24z", + center: [435, 555], + defaultColor: "#FFD700", + produksikomoditas: "39.051", + }, + { + id_kecamatan: 32, + name: "Ijen", + path: "M835.107 534.195l2.88.72 2.4.96 6.48.96 1.679-.24 2.88-.24 5.04.72 1.679.72.96.72 1.92 1.44 1.2.96 1.44.24.48.48.24.24.24.24.48.24h3.839l.48-.24 1.68-.48h.24l.48.24.72.48h.24l.48.24h.24v.239l.24.24v.24l.96.48.48.24h.479l.24.24h2.4l.48.24h.72l.24.24h2.4l.48.24.48.24.48.24h.24l.479.24.24.24.48.24h.24l.48.48.24.24.48.24.72.48.72.24.48.24.24.24.48.24.48.24.48.24.72.48.72.48.48.24.24.24h.24l.24.24.48.24v.24l.239.24.24.48.24.72.48.72.24.24.24.48.48.479.72.48.48.48h.24l.24.24h.72l.48.24.48.24h.24l.24.48.24.24.48.24h.24v2.4l-.24.24v.72h.24v.96l.48.48h.24l.24.48.48.48.24.48.24.24.239.24.24.24.48.24.24.48h.48l.24.24.48.24.48.48.24.24.24.239.24.24.72.48.48.24.24.24.48.48.24.24.24.24.48.24.24.48.48.24.48.24.24.48h.24l.24.24.48.48.24.24.239.48.24.24.24.48.24.48.24.24.24.24.24.24.24.24.24.48v.24l.48.48.24.48v.24l.24.24.48.48.48.72.24.72.24.719.24.24.24 1.2.48 1.2.24.96.24.48.24.48.48.24.48.24.48.24.48.48.24.96v.96l-.24.96-.24.24v.96h-.24v1.2l-.24.24V592.99l.48.48.24.48.24.24v.24l.24.48h.24v.24l.959-.24.72-.24h.24l.72-.24v.72l-.24.24-.48.72v.24l-.24.48.24.48v.24l-.24.48-.24.24-.48.48-.72.24-.24.24-.24.24-.24.24v.72l.24.72v.24l-.24.719-.24.24-.24.48-.48.24v1.2l.24.48-.24.24-.24.24-.24.96v.24l-.24.24-.24.72-.24.24-.24.96v.48l-.24.48-.24.72v5.039l-.24.72v.48l-.24.24v.96l-.24.48v.96l.24.24v.24l.24.24.24.24.24.48.24.24v.24l.24.24v.48l.24.24v.48l.24.24v.48l.24.48v.24l.24.24v.24l.24.24v.24l.24.24v.24h.24v.239l.24.24.96 1.44.72.72.72.48 1.44.72.96.24.96.24.72.48.72.72.96 1.2.24.24.48.72.24.24.48.24h.719l.96.24.48.24 1.2 1.2.72.72.72.96.24 1.199v1.2l-.24.48-.72.48-.96 1.2-.72 1.2-.48 1.92-.24 1.44v.48l.48 1.92.24 1.439v1.44l-.24.48-.24.24-.48.72-1.2 1.2h-.24l-.24.24-1.2.48h-.24l-.96.48-.72.24h-.24l-.24.24-.96.96-1.2 1.2-.48 1.2-.24.24v.24l-.24.72-.24.48-.719 1.439-.48.48-.48.72h-.24v.24l-1.68 1.2-.24.24-.24.24v.24l-.24.24v.24h-.24l-.24.24-.24.24h-.24v.24l-.24.24h-.48v.48h-.24v.24h-.24v.24h-.24l-.24-.24-.24.24h.24v.24l-.24.24h-.96l-.24.24-.72.48-.24.24-.719.48h-.24l-.24.24-.24.24-.24.48v.48l-.24.24-.24.48v.48l-.48.239v.48h-.24v.48l-.24.24h-.48l-.24-.24h-.48l-.24.24h-.24l-.24.24-.48.48-.24.24-.24.24h-.72l-.72.24-.48.24h-.48l-.24.24H902.3l-.48.24-.24.24-.24.24v.24h-.24l-.48.24-.96.72-.48.24-.48.48h-.24v-.24l-.24-.24-1.2-1.2h-.72l-.96.72h-.24l-.48.24-.719.48h-.24l-.48.96v.48l.24.72.48 1.2v.24l-.24.48v.24l.24.48v1.44l.24.239v.48l-.24.24v.96l-.24.24-.72.24-.48.48v.24l.24.24.24.24v.48l-.24.24-.48.72h-.24l-.72.72-.48.48v.24l-.24.48v.72l.24.72h-.24.24v2.16l.24.48.24.48-.24.24v.479h-.24v.72l-.24.24v.48l-.24.24h-.24v.48l-.24.24v.72h-.24v.24l-.24.24v1.2l.24.96.24.24.72 1.2v.72l-.24.24-.24.24-.72.48-.24.24-.24.24v.96l-.24.96-.24.479v.48l-.24.48v.72h-.24l-.24.48v.24l-.48.48-.48.24-.24.72-.24.24v.96l-.48.48-.24.24-.24.24-.959.48-1.2.24-1.44.48-1.2.24h-.24v.24h-.48l-2.4.48-.96.24-2.639.48-1.2.24h-2.16l-.96.24-2.639.24h-.24l-.48.24h-1.2l-.24.24h-1.2l-.48.24h-.48l-.48.24h-.48l-.72.24h-.48l-1.2.959v.72h-.24l-.24.24v.24h-.719l-.24.24h-.24l-.48.24-.24.48-.24.24v.24l-.24.24-.24.24h-.24l-.48.24v.24l-.24.48-.24.24-.96 1.44-1.68 2.16-1.44 2.16-1.2 1.679-.48.96-.239.48-.24.72-.48.96v.72l-.24.48-.24.96-.48 1.44-.48 1.2v.24l-.24.96-.24.48v.24l-.48.72v.24l-.24.24-.24.24v.24h-.24l-.24.239h-1.92l-1.2-.24-1.44-.24h-.479l-.96-.24-1.2-.24h-2.88l-.96.24-.48-.48.24-.48v-.24l-.24-.96v-.96l-.48-.72-1.2-2.4-.719-.96-.48-.72v-1.92l.96-.959h.72l.24-.24v-.96l-1.2-.48-.24-.24h-.24v-.48l-.24-.24-.24-.24-.24-.48-.24-.48-.24-.24-.48-.48v-1.44l-.24-.96v-.24l-.24-.24h-1.2l-.24.48h-.24l-.48.24-.48.24-.24.24h-.48l-.72-.24h-1.44l-.24-.24-.48-.24-.719-.24-.96-.24-.96-.24h-1.68l-2.4-.24-.24-.48h-.48l-.72-.72-.48-.24-.48-.48h-1.439l-.96.24h-.24l-.96.24h-2.4l-1.2-.24h-.72l-.72-.24-.719-.24h-1.44l-1.2-.24h-.24l-.24-.24h-.48l-.48-.24h-.24l-.24-.24h-.24v-.719l.24-.24.24-.24v-.48h-.24l-.24-.24-1.68-.96-.24-.24-2.159-1.2-1.68-.48-1.2-.24h-.72l-.96.24-1.44.24h-.72l-1.2.24-.72.24-.479.48-.48.24-.48.72-1.2.24-.96.24-.72.24h-1.92l-.72-.24-1.2-.24h-.72l-.719-.24-.24.24-.72.48-.24.48-.24.48-.48.72-.48.72-.48.48-.72.72-.72.96-.24.48-1.44.96-.96.72h-.48v.24l-.24.24h-.24l-.24.24v.24l-.24.24v.24l-.24.24v.24h-.239v.24h-.24l-.24.24h-.48l-.24.24h-.72v.24h-.48v.24h-.24l-.24.24h-.24l-.48.24h-1.2l-.24-.24h-.48l-.96.24-1.2.24-1.439.48-.96.72-1.2.48-1.44.719-.96.72h-.24l-.96.48-1.2.72-1.2.48-1.199.24-.96.24h-.72l-.24.24h-.96l-.96-.24-1.2-.48-.48-.72-1.2-.72-.48-.48H740.319l-1.44.24-1.2.24-.96.24-1.2.24-1.44.48-1.2.24-1.679.72h-.24l-.96.24-1.68.24-.96.24h-.24l-.48-.24h-.24l-.96-.24h-.48v-.24h-1.2v.24l-.48.24-.24.24h-.719l-.96-.24h-.24l-.72.48h-.24l-.48.24-.72.48h-.48l-.72.48h-.96v-.24h-.72l-.48.24-.48.24-.48.24-.24.24-.48.24h-.479l-.24.24h-.24v.24l-.24.24-1.68.96v1.2l-.24.24-.96.24-.72.48-1.44.72-1.44.48-1.2.479-.48.48-.719.96-.72.96-.48.72-.48 2.64-.48.72-.48.24-.72.24-.24.24-.72.24h-.24l-.48.48h-.24l-.72.24h-.72l-.24.24h-.48l-.24-.24-.24-.48-.479-.24v-.24l-.24-.24-.48-.48-.24-.24-.24-.24-.24-.24h-.72v-.24h-.96l-.48-.24h-2.16l-.24-.24h-.48l-.24-.24h-.72l-.48-.24h-.48l-.24-.24H683.925l-.24-.24h-.48l-.24-.24-.48-.24h-.24l-.24-.24h-.24l-.24-.24h-.24v-.24l.24-.24.24-.24.24-.24.24-.24.48-.24h1.68l.48-.24v-.96l-.48-.48-.24-.48-.72-.72-.24-.24.24-.24.24-.48-.24-.24v-1.2l.24-.48-.24-.48v-.24l-.24-.24-.24-.48v-.72l.24-.48.24-.24v-.48l-.24-.48-.48-.48-.24-.24V732.419l-.48-.24h-.48l-.48-.48h-.24l-.48-.24.72-.96.24-.24.96-.72.48-.48.72-.72.72-.72.48-.72.48-.72v-.24l.48-.72.24-.96v-.96l.24-.48v-.48l.72-.96 1.68-.959.96-.24.96-.48.96-.24.72-.48.96-.48.96-.96 1.199-1.92.24-.24.24-.72.24-.48.24-.48v-.48l.24-1.2V708.9l.24-1.44v-1.2l.24-1.2v-1.2l.24-1.2V699.3l-.24-.72v-1.2l.24-.959.24-.72.48-.48.48-.96.72-.96.24-.96v-1.68l.24-.72v-1.44l.48-.72.24-.96.48-.72.48-.959.72-.72.72-.72h.24l.24-.24v-.24h.24l.239-.24h.24v-.24h.48v-.24h.24l.24-.24.24-.24 1.2-.96.72-1.44.72-.72.72-1.2.24-.72v-.48l.48-.72.24-.72.24-.96.48-1.199.48-1.68.24-.48.24-.72.24-.72.24-1.2.48-.48v-.24l.48-.72.719-1.2.72-1.2.72-.72.48-.72.72-.959.96-.96.96-1.2.72-.72.72-.96.72-.72.24-.48.24-.48.48-.48.48-.72.719-.96.48-1.2.72-.72.48-1.2.72-1.439.48-.96v-.48l.48-.72.24-1.44.24-.96.48-2.88v-2.88l-.24-.72V637.387l-.24-.96-.24-.96-.24-.96-.24-.72v-.48l-.24-.48-.48-1.2-.24-.96-.24-.24-.72-1.2-.48-.72-.24-.72-.72-1.2-.24-.719-.24-.48v-.48l-.24-.96V620.587l.24-1.2h-.24l.24-.96v-.72l-.24-.72 3.12-1.44h.96l1.68-.48 2.64-.719.48-.48.48-.24.24-.48.719-.96.48-.96.72-1.2 1.68-2.4.72-1.2.24-.96.72-.96v-.24l.24-.48 1.68-1.919.72-1.2.24-.24.48-.48.959-.72.72-.48.24-.24.48-.48.72-.72 1.2-1.2v-.24l.96-.72 1.2-1.2.96-.96.96-.72.96-.72.239-.24.96-1.199.48-.96.72-1.2.96-1.68.48-.48.24-.96h.24v-.48l.24-.24.48-1.2.72-1.2 1.2-.96 1.2-1.439.48-.24 1.199-1.2 2.64-1.68.96-.24-1.44-4.56-.72-2.16 1.44-.72 1.2-.72.24-.24h.48l.24-.239h.24l.72-.24.48-.48.72-.48h.24l.72-.48.239-.24.48-.24.48-.48.72-.96.48-.72h.24l.72-.48.24-.48.72-.48.24-.48.48-.24v-.96l.24-.24.72-.24.48-.48.96-.48.72-.48.24-.48.24-.24.24-.24.24-.72.239-.24.96-.24h.96l.48-.239.48-.48.48-.48.48-.48.48-.72.24-.48.24-.48.24-.24h.72l.48-.24h.24l.48-.48.72-.72.96-.72.479-.24.48-.24h1.44l.48-.48.48-.24.72-.48.72-.48.48-.48.48-.24h1.68l.72-.24h.24l.24-.48.48-.48.479-.24.48-.24.48-.24h.48l.24-.24.48-.48v-.24h.48l1.92-.24.96-.24 1.44-.239.48-.24 1.439-.96.24-.24h.24l.24-.24h1.2l.48-.24.96-.48 1.2-.48.48-.24h.24l.96-.48h.96l.48.24.48-.24h.24l.24-.24.719-.48.48-.48h.48l1.44-.24.24-.24h.24l.48-.24v-.24l.48-.24.24-.24.24-.24.24-.24.24-.24.96-.96.24-.24.48-.24.48-.24.72-.24h1.919l1.2-.24h1.2l.72-.24h.48l1.2.48h2.64l1.439-.48.72-.72 3.36.72z", + center: [825, 638], + defaultColor: "#C05200", + produksikomoditas: "853.4", + }, + { + id_kecamatan: 33, + name: "Sukosari", + path: "M513.303 474.68h1.2l.72-.48h.24l.24.24.24.48.48.48.72.48.48.48.24.48.48.72.48.48h.48l.24.48.48.24.72.24.24.48v.96l.48.24v.48l-.24.48.24.72v.48l.24.48.48.719.24.96.48.72.479.24h.24v.48l.48.48.72.72.48.72v.72l.48.48.24.48.48.24h.48v.24l.48.24h.72l.48-.24.24.24v.48l.24.24.24.24h.24l.24.48.24.24 2.399-.72 1.2-.48h.48l.24-.24.72-.24h1.44v.48l.24.24v.48l.24 1.2v.24l.24.24.24.48.24.24.24.24h.24v.24h.48l.72.48.24.239.96.72.24.24v.24l.24.48.239.48h.24l.48.24h.24v1.2l.24.48v.24l.24.48.24.72v.24l.48.48.24.48.72.48.48.24.24.24v.24l.24.48v.24h.24v.48l-.24.72v.48l.24.24v.24l-.24.24v.48l-.24.239v.48l-.72.48.48.48v.24h.24-.24l.24.24v.72l.24.24h-.48l-.96.24-.72.24-.72.24-.72.48-.24-.24-.24.24h-.48l-.48.24h-.24l-.24.24h-.24l-.24.24-.72.24h-.72l-.48.24-.72.24-.96.48-.72.24h-.48l-.24.24-.48.24-.48.24-.479.24-.96.72h-.24l-.24.24h-.24l-.24-.24-.24-.24h-.96v.24h-.24v-.24l-.24-.24h-.24l-.24.24v.24l-.24-.24-.24-.48-.24-.24v-.24h-.48l-.24.24h-.72v-.24h-.72l-.24-.24v-.24l-.24.24h-.24l-.48-.24h-.24l-.24-.24-.24-.48-.239-.24h-.24v-.48l-.24-.24-.24-.24-.24-.24h-.96l-.48-.24-.48-.24-.96-.48-.24-.24-.48-.48-.24-.48-.48-.96-.48-.72v-.24l-.48-.24-.24-.24-.48-.24-.24-.72-.72-.72-.48-.48-.24-.72-.24-.24h-.239l-.24-.24-.48-.48-.24-.48h-.24v-.24l-1.92-.24v.72l.48.72.24.48-3.6 1.2-1.68.48-.24-.72-2.399.72h-.24l-.24-.48-.48-.72v-.24l.24-.48-.72-.72v-.48l-.24-.72-.24-.48-.48-.48-.48-.24-.48-.48-.48-.48-.48-.48-.48-.72-1.68.48-1.439.48-2.16.72-2.16.72-1.44.48.24 2.16.24.48.72.72h.48l.48.24 1.44.48.72.24.96.24.24.24.96.72h1.2l.24.24.24.48h.48l.96.24h.48v.24l1.2.48.24.48.24.24.24.24.24.48v.48l.24.24.24.24h.24l.48.48v.24l.24.24.24.24h.24l.479.24.24.48.24.24.24.48h.72l.48.24h.72v.24l.48.24v.24l.24.24.24-.24h.72l.24.24.48.24.24.24.24.48.48.24.24.72.72.72.24.48.72 1.2.24.719.24.24v.48l.719.96.24.48.24.24.24.48v.24l.48.96.24.72.24.24.48.96v.24l.24.24.48.24v.24h.24l.24.48v.24l.24.48.24.24.24.24.24.24.24.24.24.72-1.92.48-.24.24-.48.48-.24.239-.48 1.2v1.68l.24.24.24.48.24 1.68-.24 1.2-.48 2.64v.24-.24h-.96l-2.16 1.44-1.2.48h-.96l-.96.24h-.24l-.24-.48-.24-.24-.24-.24v-.24l-.24.24h-.24l-.24.24h-.96l-.24.24-.48.24-.24.24H504.425l-.24-.24h-.48l-.24.24h-.72l-.72.24-.72.479h-.24l-.24-.24v-.24l-.24-.48-.24-.48-.48-.24-.24-.48h-.24l-.24-.24-.24-.24-.24-.24-.48-.48-.24-.24v-.24h-.24v-.24l-.24-.24v-.72h-.24v-.72l-.24-.24v-.24l-.239-.24v-1.44l-.24-.24v-.96l-.24-.24-.24-.24-.24-.24h-.48l-.24-.24-.24-.24h-.24v-.24l-.24-.48h-.24l.24-.239-.24-.48v-.48l-.24-.48v-.72l-.24-.72v-.96l-.48-1.2v-.24l-.24-1.68v-1.68h-.24v-1.2l-.24-.24v-.48l-.24-.72.48-.719.48-.48.48-.72.24-.48v-1.2l-.24-.24h-.24l-.24-.24h-.72l-.48-.24h-.72v-.24l-.48.24-.48-.24-.48-.24h-.48l-.24-.24h-.24l-.959-.48h-.72l-1.68-.48h-.48l-.48-.24-.72.24-.24-.24-.24-.48-.24-.24h-.72l-.24-.24h-.24l-.48-.24h-.72l.24-.72.48-.72.48-1.44.24-.72.24-.72v-.24l.24-.239v-.48l.24-.24v-.24l.24-.24v-.24l.24-.48v-.48l.24-.24v-.48l.24-.24.24-.48-.24-.24h-.48l-.24-.24-.48-.24-.24-.24.24-.48v-.24l.24-.96v-.24l.24-.24v-.48l-.24-.24h-.24v-.24h-.72l-.24-.24-.72-.24v-.24h-.48l-.24-.24-.24-.24h-.48l-.48-.24-.479-.24h-.24l-.48-.48h-.24l-.24-.48-.48-.24-.48-.24v-.24l-.24-.479h-.24l-.24-.24-.24-.24-.24-.24v-.24l-.24-.24-.24-.24v-.48l-.24-.24h-.24l-.24-.24-.48-.24v-.24l-.24-.24-.24-.48h-.24l-.24-.24v-.24l-.24-.48-.24-.24-.48-.48-.24-.24-.24-.24-.24-.24v-.24h-.72l-.24-.24v-.24l.24-.72.24-.72.48-.96.48-.48v-.48h.24l.24-.48h.24l.24-.24.24-.24v-.24l.48-.24v-.959l.24-.48.24-.48v-.24l.24-.72h.48l.72-.24 1.44-.24-.72-1.68-1.2-3.36 2.16-.48 1.92-.24 2.16-.48.48 1.44.72 1.2.24 1.2.24.48.24-.24.72-.48h.24l3.12-.96h.479l.24-.24h1.2l.24-.24.48-.24v-.24h1.44l.24-.24.96.24.96.24.48-.24h.24l.48.24.48.24h1.2l.479.24.48.24h.96v-.48l.24-.24v-.24l.72.24h2.4v-.72l.48-.48h1.92l-.48-.24-.72-.96-.24-.72H512.583l.72.48zm14.399-32.637v.48l.24.24.72.24.96.24.24.24h.24v.24l.24.72.72.24.48.24.24.24v.24h-.24v.24l-.24.24v.72l.24.24.48.24.479.24h.48v.24h.24v.48l-.48.239v.48l.24.24.24-.24.48-.24h.24l.24.24v.96l.96.96 1.68.96v.96l-.24.48.48.48v.24l.24.48v.48l-.24.48v.24h.48l1.2.24 1.2.24v.48h-.24l-.24.24v.24h-.24v.24l.24.24.48.24.24.24.72-.24.24.24v.24l.239.48v.96h.24l.48.479.48.24.96-.24v.24l.48.72h.24l.24.24h1.44v.48l.24.72v.24l1.2 1.2 1.2.48h.24l1.439.48.48.48 2.64-.24 1.92.24 1.44.48.72.48 1.919.48h.48l3.12.72 3.84.96h.48l2.879.96.96.24 1.44.48v.24l.96 1.679v.24l1.2 1.2.24.72.48 1.92.48 1.92.48 1.2h.24l1.439.72.24.48 1.44 1.92 1.2 1.919h-.24l.48.72v1.44l-.48 2.88.72 1.68 1.2 2.4h-.24l-2.64.96-1.2.24-.72.24-1.44.48-.24-.24-.72-.24h-2.16l-.72.24-.72.24h-.96l-1.44.239-.959.24-1.2.24v1.68l.24.48 1.92 2.88h-.24V503.718l-.24.96-.24.48-.48.96v.48-.48l-2.4-1.92-1.44-1.2-.96-.72-2.64-2.4-.48-.48-6.478-4.56h-.24l-4.32-3.12-.48-.24-.24-.24-.72-.96-1.44-1.92-4.559-6.719-2.64.48-1.44-1.92h-1.2l-.24-.24-.24-.24-.48-.24h-.24v-.96l.24-.24-.24-.24-.24-.48v-.72l.24-.24.48-.48h-.24l-.48-.96-.24-.24-.24-.24v-.96l-.24-.24V473l-.24-.72v-.96l-.24-.24v-.48l.24-.24.48-.48.24-.24-.24-.48v-.96l.24-.48-.24-.48-.48-.24-.48-.24-.48-.24-.239-.24-.24-.48.48-.24v-.72l-.24-.24-.24-.24-.24-.24h-.48v-.72l.24-.24.48-.24v-.48l-.48-.24-.24-.24-.24-.24V460.522l-.24-.24-.48-.24h-.24v-.24l.24-.24-.24-.24-.48-.24v-.72l-.48-.24-.24-.24v-.48l.48-.24.24-.48v-.24l-.24-.48-.48-.72-.24-.24v-.48h.72v-.72l-.48-.48v-.48l.48-.24-.24-.24-.24-.24-.48-.24-.48-.48-.72-.24v-.72h.24v-.24l-.48-.24-.72-.24-.24-.24h-.24v-.239l.24-.24h.24l.24-.24v-.24l.24-.24v-.72l-.24-.24-.24-.24-.24-.24h-.24v-.24l.24-.24.24-.24h.48l.24-.24v-.24l-.24-.24h-.24l-.24-.24-.24-.48v-.24l-.24-.24-.24-.24v-.24l-.24-.24-.24-.24-.24-.24v-.24h.72v-.72l-.24-.24v-.24h-.24l-.24-.24v-.24h.24l.24-.24.24-.24v-.48l-.24-.24v-.72l.24-.24.48-.24h.24V437.484h.24v.24l.24.48v1.44l.24.24h.24v.72l-.24.24v.24l-.24.24.24.24v.48z", + center: [499, 490], + defaultColor: "#F74300", + produksikomoditas: "14.313", + }, + { + id_kecamatan: 34, + name: "Sumberwringin", + path: "M572.337 433.403l.72.96.24.48.24.24.24.24h.24v.24l.48.24h.24l.24.72.24.24v.96l.24.24.24.24h.24l.48-.48.48-.24.479-.24.48-.24.72-.24.48-.24h.96l.48-.24h.96l.48.24h.48l.96.48.96.48.72.24h.48l.959.24.48.48.48.48.48.24.24.24h.24v.72l.24.48v.24h.24l.48.24h.24l.24.24h.24l.24.48.24.48.24.48.96.72h1.68l.24.24.24.48h.24l.48.72.959.72v.48l.24.24.24.24h.24l.72.24.72.48.48.24-.24.24v.959l-.24.48v1.2l.48.48.24.48.48.24.24.48.24.72.24.72.24.72.48.24.24.48v.24l.48.48v.24l.24.72v1.44h.24l.24.24h.48l.48.24.24.48.24.48.48.719.48 1.44.239 1.44v.48l-.72.72-.48.24-.48.72-.24.48-.24.72v.24l.24.24v.24l.72.24h.96l.24.24.24.24.48.48.24.72v.24h.24l.24.48.48.24.48.48.48.24.24.48V472.52l-.72.48-.24.24-.24.48v.48l.72.96.72.72.72.96.48.48V479.96l.24.24.48.48.48.48h.48l.48-.24.48-.24.24-.24h.48l.24.24.24.24v.24l.24.24-.24.72-.24.24v.72l.24.24.24.479.479.24h.24l.72.24.96-.24.24-.24h.24l.48.72h.24l.24.48.24.24v.24l.24.72v1.92l-.24 1.68-.24.24v1.44l.48.48v.24l.24.48.24.24v.96l.24.24.48.24.24.24.24.48.24.479.24.48.48 1.68.48.72v.24l.96.72.24.48.24.72.479.48.48.48.96.48.24.24.24.24.24.48v.24l.48.24.48.24h.24l.24-.24.96-.24h1.68l.24.24.24.24v.24l.24.48.72 1.2.24.96.24.24.24.24.48.239.719.24.24.24.48.96.24.24.96.48h1.44l.24.24.96.24h.48l.24.24.24.48.24.24.24.24h.24l.48-.24h.24l.24.24v.24l.24.24h.24l.24.24h.719l.96.48.48.24.24.48-.24.24v.96l.24.48.24.24.24.48.72.48.24.24.48.24h.48l.72-.72h.24l.48.24.48.24 1.2.48v1.2l.24.24v.24l.72.48.24.24.24.479.479 1.44.24.48.72.72.24.24.48.48v.96l.24.24.24.24h.24l.24.24.24.24.24.24v.96l.72-.24h.48l.24.48.24.72.24.24v.96l.24.24.48.48.96.24h.48l.24.24.48.96.24.48.24.239H659.686l.48.24.72.72.72.48.24.24.48.48.24.24.24 1.44v.24l.24.72.72.72.24.24v.24l.96.24.24.24v.96l.48 1.2.48.96.24.24.24.48.48.96.479.479.24.24.24.24-.24.48-.24.24v.48l.24.24h.72l.48-.24h.72l.96-.24.24-.24.24.24.48.72.24.24.72.72.24.24.72.48h.48l.48-.24h.24l.24.24.72.48.24.24.24.24 1.199.24.24.24.24.24v.24l.48.48.72.24.24.24v.96l-.24.24v.72l.24.48v.48l.24.72.24.24.24.48.72.48v.239l.48.72.24.96.24.48.24.48v.72l.48.48.24.24h.24l.24.24.24.24.24.24.24.24v.24l.24.24.48.48h.96l.239.24.24.24.48.48.72.48.24.24h.24l.48.48.72.24.48.24.48.48.96 1.2.72.48.24.24.72.48.96.239.48.24.48.48.479.48.24.24v.48l-.24.48v.24h.24v.24l.48-.24.24-.24.48-.24h.48l.48.24.96.24.24.24.48.48v.24h.48l.48.24.72.24.24.24.24.96.72.96.24.48.24.24.48.24.719.24 1.44.72.72.72.48.72.72.72.24.48.24.72.96.959.48.48.24.48.24.24v.24l.48.48.24.24.24.48.48.24.24.24.24.48.48.24v.24h.24l.24.24.24.24h.239l-.24 2.16-.24 1.92 1.44 1.2.48.72.24.24.72.959.72.96.72.72.72.96.48.72.48.96v.24l.24.48v.24l.24.72v.96l.24.96v.96l-.24.72v.72l.24 1.199.48.96.48.96.48.72.72.72v.24l.48.48.239.48v.24l.24.72.24.72v2.88l-.24.96-.48.96-.24.959-.24.72v2.16l.24.72v.72l-.24.96h.24l-.24 1.2v3.36l.24.96v.48l.24.479.24.72.72 1.2.24.72.48.72.72 1.2.24.24.24.96.48 1.2.24.48v.48l.24.72.24.96.24.96.24.959v1.2l.24.72v2.88l-.48 2.88-.24.96-.24 1.44-.48.72v.48l-.48.959-.72 1.44-.48 1.2-.72.72-.48 1.2-.72.96-.48.72-.48.48-.24.48-.24.48-.72.72-.72.96-.72.72-.96 1.199-.96.96-.72.96-.48.72-.72.72-.719 1.2-.72 1.2-.48.72v.24l-.48.48-.24 1.2-.24.72-.24.72-.24.48-.48 1.679-.48 1.2-.24.96-.24.72-.48.72v.48l-.24.72-.72 1.2-.72.72-.72 1.44-1.2.96-.24.24-.24.24h-.239v.24h-.48v.24h-.24l-.24.24h-.24v.24l-.24.24h-.24l-.72.72-.72.719-.48.96-.48.72-.24.96-.48.72v1.44l-.24.72v1.68l-.24.96-.72.96-.48.96-.48.48-.24.719-.24.96v1.2l.24.72v3.36l-.24 1.2v1.2l-.24 1.2v1.2l-.24 1.439v3.12l-.24 1.2v.48l-.24.48-.24.48-.239.72-.24.24-1.2 1.92-.96.96-.96.48-.72.48-.96.24-.96.479-.96.24-1.68.96-.719.96v.48l-.24.48v.96l-.24.96-.48.72v.24l-.48.72-.48.72-.72.72-.72.72-.48.48-.96.72-.24.24-.72.96-.24-.24-.72-.24v-.24l-.24-.24h-.24v-.24l.72-1.2-.24-.24-.48-.96-.24-.72-.72-.96v-.48l-.24-.48-.24-.48-.719-.72-.48-.48h-.48l-.48.24h-.96l-.48-.24v-.48h-.24l-.24-.24h-.96l-.24.24h-.72v.24l-.24-.24h-.96l-.48-.24-.72-.48h-.24l-.479-.24h-.24l-.24-.24-.24-.24h-.72l-.24.24-.24.48v.24l-.24.24-.24.24-.24.24v-.24l-.24-.24v-.48l-.24-.24-.24-.24-.24-.48h-.24v-.48l.24-.24v-.24l-.24-.24-.24-.48h-.24l-.48-.72v-1.92h-.24v-.24l-.24-.24v-.24l-.24-.24v-.24l-.24-.24v-1.2l.24-.48v-2.16l.24-.48.24-.24-.24-.24v-.48l-.48-.24-.24-.48-.24-.24-.24-.24-.48-.239-.24-.48-.24-.24v-.24l-.24-.48h-.24l-.48-.72-.48-.48-.239-.24v-.24h-.24l-.24-.24-.24-.48-.24-.24v-.24l-.24-.24v-.48l-.24-.24v-.24l-.24-.48-.24-.72v-.24l.48-.72v-.24l-.72-.72-.24-.24-.24-.24h-1.2l-.24-.24h-.48l-.48-.24-.24-.24h-.24l-.48-.48-.24-.24-.24-.24-.48-.48-.48-.479-.24-.48v-.24l-.48-.24-.24-.48-.479-.48-.48-.24-.48-.24-.24-.24-.24-.48-.48-.24-.48-.72-.48-.24-.48-.24-.48-.24h-.72v-.24h-.48l-.24-.24-.24-.24-.48-.48-.24-.24-.24-.48v-.24h-.24l-.24-.24-.24-.48-.24-.48-.48-.48-.72-.48v-.48l-.24-.24-.239-.48V684.183l-.24-.48v-.48l-.48-.48-.72-.96-.48-.96-.24-.72-.48-1.2-.24-.48.24-.48v-.72l.24-.24v-.96l-.24-.48-.24-.24-.24-.48-.48-.96v-.239l-.24-.24-.48-.24h-.24v-.48l-.24-.24v-1.68l-.24-.48-.24-.48-.24-.72-.48-.48-.24-.48v-.48l-.24-.48v-1.2l-.72-.48-.24-.24-.24-.96-.24-.72v-.48l-.24-.72-.48-.719v-.24l-.479-.48-.48-.24-.72-.48-.48-.24-.24-.24-.24-.72v-1.44l.24-.48-.24-.48v-.24l-.24-.48-.48-.24-.24-.24-.48-.24-.72-.72-.24-.24-.72-.48h-.48l-.24-.24-.48-.96-.24-.48-.48-.72-.72-.72-.48-.24h-.479l-.24-.24-.24-.719-.24-.48-.48-.24-.24-.72-.72-1.2v-1.44l.48-.72v-.96l.24-.72.24-.24-.24-.24v-.24l-.24-.24-.24-.24.24-1.2.24-.48v-.24l-.48-.72-.48-.48-.72-.479-.48-.48-.24-.72-.24-.96v-.72l-.24-.48-.24-.24h-.24v-.24l-.24-.72-.24-.24-.24-.24v-.72h-.24v-.24h-.24l-1.2-.24h-.96l-.24.24-.24-.48-.24-.24-.239-1.2-.24-.48v-.48l-.24-.24-.24-.24-.48-.48-.48-.24h-.48l-.96-.24-.48-.24-.24-.24-.48-.48-.24-.479-.24-.24v-.72l-.24-.24v-.24l-.48-.24-.48-.24-.72-.48-.72-.72-.72-.96-.24-.72-.48-.72v-.72l-.239-.24-.24-.72v-.48l-.48-.48-.24-.24-.24-.48-.24-.24h-.48l-.24-.24h-.24v-.24l-.24-.48v-.48l-.24-.48h-.24.24l-.72-.719-.48-.48-.48-.24h-.72l-.48-.48-.24-.24-.72-.24-.48-.24.24-.48-.24-.96v-.48l-.48-.96-.24-.96-.72-.96-.479-.72-.24-.96v-1.68l-.24-.48v-.48l-.24-.24v-.479h-.24v-.48h-.24v-.24l-.24-.24v-.24h-.24v-.24h-.96v-.24h-.24v-.72h-.24l-.24-.24-.24-.24h-.24v-.72h-.24v-.24h-.24v-.24l-.24-.24-.24-.24v-.24h-.24v-.24h-.48l-.24-.24v-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24v-.24l-.24-.24h-.48l-.24-.24h-.24v-.24h-.24v-.24h-.239v-.24h-.48v-.24h-.24v-1.68h-.24l.24-.24-.24-.24v-.24h-.48l-.24.24h-.48l-.24-.24-.24-.24-.24-.24v-.24l-.24-.24h-.24l-.24-.24h-.24v-.479h-.24v-.24h-.24l-.24.24h-.24v-.24l-.24-.24v-.24l-.24-.24h-.24v-.24h-.72l-.24.24h-.24v-.24h-.24v-.24l-.24-.24v-.48l-.24-.24-.24-.24v-.72l.24-.24h-.24v-.72l.24-.24v-.48l-.24-.24-.24-.24h-.96v-.24h-.239v-.72h.24v-.48l-.24-.24-.24-.24h-.96l-.24.24-.24-.24-.24-.24v-.72h.24v-.24h.24v-1.44h-.24v-.24l-.48-.24-.48-.24-.48.24h-.24l-.24-.24v-.719l.24-.48-.48-.48v-.24l-.24-.24v-.24h-1.2v.24l-.24-.24v-.24l-.24-.24v-.24l-.24-.24-.24-.24-.24.24-.24.24-.48-.24-.24-.24-.24-.24-.24-.24v-.24l-.24-.24v-.48l-.24-.24v-.24l-.24-.24h-.24l-.239-.24v-.24h-.24v-.24h-.24l-.24-.48v-.24l-.48-.48h-.96l-.24-.24v-.48h-.24l-.24-.24h-.24l-.24-.24v-.24l.24-.24v-1.44l-.24-.24h-.48l-.24.48v.24h-.24l-.24.24h-.24l-.24-.24v-.24h-.24l-.24-.24-.24-.24-.24-.24-.24-.24-.24-.24v-.24l-.24-.48h-.72l-.24.24-.24.24h-.24v-.24h-.24v-.479l.24-.24v-.72h-.959l-.24-.24-.24-.24h-.72l-.24-.24-.48-.24v-.24h-.24l-.72-.48-.48-.24-.96-.48-.24-.24v-.24l-.24-.24-.24-.48-.24-.24-.72-.24v-.24l-.24-.24v-.24l-.24-.24h-.24l-.24-.24-.24-.24-.48-.24v-.24h-.24v-.24h-.72l-.239-.24.24-.24-.24-.24v-.24h-.24v-.72h-.24l-.48-.24h-.48l-.24-.24v-.24l-.48-.24-.24-.24-.48-.24-.24-.48-.24-.24h-.24l-.24-.24-.24-.24-.24-.239-.24-.24-.48-.24-.48-.24-.24-.24-.24-.48-.48-.72-.48-.48v-.24h-.24l-.24-.24-.48-.24-.72-.48-.479-.48-.24-.24-.48-.24v-.24l-.72-1.44h-.48l-.96-.24-.24-.24v-.24l-.24-.24-.24-.48-.48-.48h-.72l-.48-.24-.72-.24-.48-.48-.48-.24h-.24l-.72-.24-.24-.24-.48-.48h-.239l-.48-.24-.24-.24-.24-.48-.24-.479v-1.68h-.24l-.24.24-.24.48v.24h-.24l-.24-.24h-.24v-.24l-.24-.24-.24-.24v-.24l.24-.48v-.96l-.24-.24-.96-.72-.48-.72-.48-.24h-.24l-.24-.24v-.24l-.72-.24v-1.44l-.24-.48v-.96l-.24-.24-.96-.48-.24-.24-.48-.24h-.959l-.24-.24-.48-.24-.24-.24-.24-.24-.24-.48-.72-.479-.24-.24-.48-.24-.48-.48-.48-.24-.24-.24-.24-.24v-.24l-.24-.72-.24-.24-.24-.24-.24-.24-.24-.24-.24-.48v-.24l-.24-.48h-.24v-.24l-.48-.24-.24-.24v-.24l-.48-.96-.24-.24-.24-.72-.48-.96v-.24l-.24-.48-.239-.24-.24-.48-.72-.96v-.479l-.24-.24-.24-.72-.72-1.2-.24-.48-.72-.72-.24-.72-.48-.24-.24-.48-.24-.24-.48-.24-.24-.24h-.72l-.24.24-.24-.24v-.24l-.48-.24v-.24h-.72l-.48-.24h-.72l-.239-.48-.24-.24-.24-.48-.48-.24h-.24l-.24-.24-.24-.24v-.24l-.48-.48h-.24l-.24-.24-.24-.24v-.48l-.24-.48-.24-.24-.24-.24-.24-.48-1.2-.479v-.24h-.48l-.96-.24h-.48l-.24-.48-.24-.24h-1.2l-.959-.72-.24-.24-.96-.24-.72-.24-1.44-.48-.48-.24h-.48l-.72-.72-.24-.48-.24-2.16 1.44-.48 2.16-.72 2.16-.72 1.44-.48 1.68-.48.48.72.48.48.48.48.48.48.48.24.48.48.24.48.24.72v.48l.72.72-.24.48v.24l.48.72.24.48h.24l2.399-.72.24.72 1.68-.48 3.6-1.2-.24-.48-.48-.72v-.72l1.92.24v.24h.24l.24.48.479.48.24.24h.24l.24.24.24.72.48.48.72.72.24.72.48.24.24.24.48.24v.24l.48.72.48.96.24.48.48.48.24.24.96.48.48.24.48.24h.96l.24.24.239.24.24.24v.48h.24l.24.24.24.48.24.24h.24l.48.24h.24l.24-.24v.24l.24.24h.72v.24h.72l.24-.24h.48v.24l.24.24.24.48.24.24v-.24l.24-.24h.24l.24.24v.24h.24v-.24h.96l.24.24.24.24h.24l.24-.24h.24l.959-.72.48-.24.48-.24.48-.24.24-.24h.48l.72-.24.96-.48.72-.24.48-.24h.72l.72-.24.24-.24h.24l.24-.24h.24l.48-.24h.479l.24-.24.24.24.72-.48.72-.24.72-.24.96-.24h.48l-.24-.24v-.72l-.24-.24h.24-.24v-.24l-.48-.48.72-.48v-.48l.24-.24v-.48l.24-.24v-.24l-.24-.24v-.48l.24-.72v-.48h-.24v-.24l-.24-.48v-.24l-.24-.24-.48-.24-.72-.48-.24-.48-.48-.48v-.24l-.24-.72-.24-.48v-.24l-.24-.48v-1.2h-.24l-.48-.24h-.24l-.24-.48-.24-.48v-.239l-.24-.24-.96-.72-.24-.24-.72-.48h-.48v-.24h-.24l-.24-.24-.24-.24-.24-.48-.24-.24v-.24l-.24-1.2v-.48l-.24-.24v-.48l.24-.24v-1.2l-.48-.72v-.48l.24-.24-.24-.24-.24-.48-.48-.48-.24-.48-.48-.72-.24-.24v-.719l.48-.48.24-.24v-.24h-.24l-.24-.24-.24-.24-.24-.72-.24-.96-1.199-1.68V479l.48.24.24-.24h1.2l.24-.24.24.24v.48h.24l.48.24.24.24.24.24h1.2l1.44 1.92 2.639-.48 4.56 6.72 1.44 1.92.72.96.24.24.48.24 4.319 3.12h.24l6.479 4.559.48.48 2.64 2.4.96.72 1.44 1.2 2.4 1.92v.48-.48l.479-.96.24-.48.24-.96V501.077h.24l-1.92-2.88-.24-.48v-1.68l1.2-.24.96-.24 1.44-.24h.96l.72-.24.72-.24h2.16l.72.24.24.24 1.439-.48.72-.24 1.2-.24 2.64-.96h.24l-1.2-2.4-.72-1.68.48-2.88v-1.44l-.48-.719h.24l-1.2-1.92-1.44-1.92-.24-.48-1.44-.72h-.24l-.48-1.2-.48-1.92-.48-1.92-.24-.72-1.2-1.199v-.24l-.96-1.68v-.24l-.24-.72-1.44-1.68-1.2-.96-.48-.48-1.439-1.2-1.68-1.2-1.2-1.92-.48-.959-.96-1.44-.48-.24-.48-.48h-.24l-.24-.48-2.639-3.12-.96-.72-.24-.48h.24l-.24-.24v-.24h-.24l-.24-.24-.72-.24-.96-.72-.72-.48-.24-.24v-.24l-.24-1.68v-.719l.24-.48.24-.48v-.24l-.24-.24-.24-.24v-.24l-.24-.24v-.24l-.24-.48-.48-1.2v-1.68l.24-.24v-.24l.24-.24.24-.24.72-.48.96-.72h.24l.72-.48.72-.48.24-.24.72-.48.72-.72.96-.72.72-.479.96-.72v-.24l.72-.48.48-.72.24-.24.48-.24.48-.72.48-.48h4.319l.48-.24H572.337z", + center: [640, 585], + defaultColor: "#C05200", + produksikomoditas: "20.794", + }, + { + id_kecamatan: 35, + name: "Tamanan", + path: "M329.004 564.192l.48.24h.24l1.44.24h.48l3.359.96 1.92.24h2.4l1.92.24.72.24v.48l.719.24.24.72v.48l.72-.24v-.96h.24l.96.24v.24h.24l1.68.24.48.24.48.24h.48l.24-.24h.24l.48.24h.72l.72.24h.48v.48h.48l.959.24.72.24v-.24l.24-.24v-.24l.24-.24.48-.24h.24l.24.24h.48v.48h.24v.24l-.24.24v.24l-.24.72-.24.48-.24.24h.24l2.64.48v-.24l.24-.24v-1.2l.24.24v-.24l.24.24.48.24.24.24h.96l1.199.24h.48l.96.48h1.92l1.2.24.72.24h.72l.24.24.24.24.24.24h.72l.48.24.959.24h.24l.96.24h.48l.24.24.48.24v.24h.48l-.24.24v.72l-.24.48v.48l-.24.48.48.48.72.24h.72l.48.24.24.24h.24l.24.24.48.719.48.24v2.16l.48.24 1.44.48h.24l.479.24.72.48v.24h.24l.24.72.24.48h.48l.24-.48h.24l.24.24.48.48v.24l.24.24v.24l.96-.24h.24l.96.24.24.24.72.24.24.48h.24l.24.24.72.24h.24l.48.24v.48l1.199.24h.24l.24.24h.24l.96.48.72.24.48.24.72.72v.24l.24.24v.24l.48.239.24.24.48.24.24.24.24.24.24.24.96.96.24.24h.24l.48.24.48.24h.239l-.24.72-.24.48-.24.48-.24.72-.24.72.48.24.96.24.72.24.48.24.48.24h.48l.24.24h.48l.24.24h.24l.48.24-.24.72-.96 2.16h.72l.24.24h-.24.24l-.48.959-.72 1.44V606.909h-.24v.96l-.24.72.24.24h.24l-.24.72-1.2 3.12-2.4 5.039-.48-.48-.24-.48-1.68-1.92-.48-.48-.96-1.44h-.24l-1.44-1.92-1.2-1.68v-.24l-.719-1.2-.24-.96-.72-.24h-.48l-.24-.24-.96 1.68-.24.48-.24.48v.24h-.24l-.24.72-1.92 2.4-.24.48-.24.48h-.48l-.96-.24-.96-.24-.479-.72-.48-.72-.72-.72-.48-.48-.96-.48-.96-.24-1.2-.24h-.48v1.92l.24.72.48.48.24.48.48 1.44.24.72.24.96.48 1.44.24.48v.24l.24.24h4.8l.24.24h.48l.72.24.72.24v.24l.72 1.2.24.72.24.24.24.24.48.24v.96l-.24.48-.24.48v.48l.24.24.24.72.24.239v.24l.24 1.2.24 1.44v.96l.48.96-.24 1.44v2.88l-.24 1.2.24 1.199v1.68l-.24.24-.24.24-.24.24-.48-.24-.48-.24h-.24l-.24-.24-.72-.48-.48-.24h-.48l-.24.24-.24.48-.24.72v.24l-.48.24-.48.48-.72.72-.96.24-1.2-.48h-1.2l-.48.24h-.24l-.48.72h-.72l-.24.24-.48.24-.48.24-1.68.24-.96.48h-.72l-.719-.24h-.48l-.96.48-.72-.24-.96-.72h-.96l-.72-.48v-.72l.24-.48.24-.72h-.48l-.72.24h-.96l-.24.24-.24.24h-.48l-.24-.24-.24-.24-.24-.24h-.479l-.24-.24-.72-.24h-.48l-.48.48v.24h-.24l-.72.24-.72.24h-.24l-.24-.24-.72-.24-.24-.24h-.48v.24l-.24.24-.48.24-.24.24-.24.24h-1.2l-.48.48-.24.24h-.239v.24l-.48-.24h-.24l-.48-.24-.24-.48h-.24l-.24-.24-.24-.24-.48-.24v-.24h-1.44l-.24-.24h-.24l-.96-.24-.24-.24h-.48l-.24-.24-.72-.24-.24-.24-.24-.24h-.24l-.48.72h-.719v-.72h-.48v.24l-.24.24-.24.24h-.48l-.72-.24v.24l-.24.24v.24h-.24l-.48-.24h-4.08v-.24l-.24-.48h-.96l-.719-.24v.24h-.24l-.48.24h-.48l-.48.48-.24.24-.72.48v.24l-.24-.24-.48-.72h-.72v1.2h-.48v-.24h-.24l-.24-.48v-.24l-.48-.24h-.24l-.24.24h-.24v.24-.96h-.24v-.24h-1.92l-.24.24h-.479l-.24-.24h-.48l-.24-.24v-.24l-.24-.24v-.24h-.24l.24-.24h.24v-.72l.24-.48v-.72l.24-.24v-.24h-1.44l-.24-.24h-.48v-.24l-.24-.24h-.24l-.24-.24v.24l-.24.24v.24h-.24l-.24.24h-.48l-.24-.24v-.24l-.24-.24v-.24l.24-.24h.24l.24-.24h.24l.24-.24v-.24l.24-.24.24-.48.24-.24.24-.72v-.24h.48v-.24l.24-.24.24-.24.24-.24v-.24l-.24-.24.24-.24v-.24l-.24-.48v-.48h-.24l-.72-.72v-.24l-.24-.24h-.24l-.24-.24-.24-.24h-.24l-.24-.24h-.24v-.24l-.48-.239v-.24l-.48-.24-.72-.24-.96-.24v-.24h-.24l-1.2-.48-.479-.48h-.24l-.72-.24-.24-.24-.96-.24-.72-.48-.96-.24-1.68-.48v-.24l-.24-.24v-.72l-.24-.24h-.48v.24l-.48-.48h-.24v-.48l-.24-.48.24-.24v-.96l.24-.24h.24l.24-.48v-.48l-.96-.24v-.72l.24-.24v-.24l-.24-1.439.24-.72.24-.48v-.24h.24v-.24l.24-.24h.48l.24-.96h.24v-.24l.48.24.48.24v.24h.48l.72.48v.24l-.24.72h.24l.24.24h.24l.24.24h.24l.48.24v-.24l.24-.24.72-1.44.48-.72v-.24l.24-.24.72-1.44.24-.48v-.24l.24-.48v-.24l.24-.24v-.24l.48-1.44.24-.72.48-.72v-.24l.24-.72.24-.72.24-.719.24-.48v-.48h.24l1.44.48.24-.48.24-.72.48-.72v-.72l.24-.24v-.24l.72-1.92.72-1.92.48-1.2 1.199-3.119.24-.24-.72-.24h-.24l-1.2-.48h-.24l-1.2-.48-.96-.24h-.24l.24-.48v-.24l.24-.48h-.48v-.24l-.96-.24-1.2-.24-1.2-.48-1.199-.48-1.44-.48-.48-.24h-.24l-1.2-.24-.24-.24h-.48l-1.2-.24.24-.24v-1.44l-.24-.24h-.24l-.24-.24h-.48v-.24l.24-.24.24-.24v-.24h.72l.24-.24.72-.24.48-.24v-.48l.24-.48v-.479l-.24-.72v-.96l-.24-.48v-3.12l.24-.24.48-.24h.48l.72-.24h.48l.24-.24v-1.92l-.24-.48v-.48h.24l.48-.48.48-.48.48-.24v-.48l.72.24h1.68v-.48l.48-.72v-.239l-.24-.24v-.24l-.48-.48v-.24l.24-.48.24-.24.24-.48v-.24l.24-.24.48-.24h1.2l.24-.24v-1.2h.24l.48.24h.24l.96.24 1.199.24 1.44.24h.24l1.44.24 1.2.24z", + center: [348, 605], + defaultColor: "#FFD700", + produksikomoditas: "26.097", + }, + { + id_kecamatan: 36, + name: "Tapen", + path: "M505.144 339.091l1.2.48.24.72.24.48v.96l-.48 1.2v.24h-.24l-.24.24v.24l.72.24.24.24v2.16l.24.24v.72l.24.48v.72h-.24l.24.24v.24l-.24.48v.96l.24.24v1.2l.24.72v.48l.24.24.24.719.48.48v.24l.24.48v.24l.24.48v.48l.24.24.24.24h.24v.24l.24.48.48.48.24.24.24.24v1.92l.48.24v.24l.72 1.2v1.92l-.24.48.24.48.24.719v.48l.24.24.24.48.24.24.24.24v.72l-.24.72v.24l.24.24v.24l.24.48v.48l.24.72.24.48.239.48 2.64 2.64.24.24v.24l.24.24 3.12 3.599.24.24.24.48.24.24v.48l.48.48.24.48v.72l-.24.24-.24.48h-.72l-.24.24v.72l.24.48v1.2l4.559-.24h5.76l.24.24-.48.48h-.24v.48l.48.24v.24l-.24.48-.48.24v.48l.24.24.24.24h.48l.24.24v.479l-.24.24v.48l-.24.48.24.24v1.44l.48.24.24.24.239.96.48.48v.24l1.2 1.2.48.48.24.24.24.24.24.24.72.48.72.48.24.24.72 1.44v1.439l.24.96v.48l.48.72.72.72V407.246l.24.48v.24l.48.24 1.439.96v2.16l.48.96.24.959.72.96.24 1.2.24.72.24.48v.48l.24.72v1.2l.24.24.24.48v.24l-.24.24v.72l.72.96.24.48v.24l.48 1.2.48.959.24.48.72.72.72.72.48.48.24.48.24.24.48.96.48.96.24.96v.24l.24 1.68.479 1.44.48 1.2v.48l.48 1.199.24.72.72 1.68.48 1.2.24.24.24.72.24.24.48.48.24.48v.24l-.24.24v1.68l.48 1.2.24.48v.24l.24.24v.24l.24.24.24.24v.24l-.24.479-.24.48v.72l.24 1.68v.24l.24.24.72.48.96.72.72.24.24.24h.24v.24l.24.24h-.24l.24.48.959.72 2.64 3.12.24.48h.24l.48.48.48.24.96 1.439.48.96 1.2 1.92 1.68 1.2 1.439 1.2.48.48 1.2.96 1.44 1.68.24.72-1.44-.48-.96-.24-2.88-.96h-.48l-3.84-.96-3.119-.72h-.48l-1.92-.48-.72-.48-1.44-.48-1.92-.24-2.639.24-.48-.48-1.44-.48h-.24l-1.2-.48-1.2-1.2v-.24l-.24-.72v-.48h-1.44l-.24-.24h-.24l-.48-.72v-.24l-.96.24-.479-.24-.48-.48h-.24v-.96l-.24-.48v-.24l-.24-.24-.72.24-.24-.24-.48-.24-.24-.24v-.24h.24v-.24l.24-.24h.24v-.48l-1.2-.24-1.2-.24h-.48v-.24l.24-.48v-.48l-.24-.48v-.24l-.48-.48.24-.48v-.96l-1.68-.96-.96-.96v-.959l-.24-.24h-.24l-.48.24-.239.24-.24-.24v-.48l.48-.24v-.48h-.24v-.24h-.48l-.48-.24-.48-.24-.24-.24v-.72l.24-.24v-.24h.24v-.24l-.24-.24-.48-.24-.72-.24-.24-.72v-.24h-.24l-.24-.24-.96-.24-.72-.24-.24-.24v-.96l-.24-.24.24-.24v-.24l.24-.24v-.72h-.24l-.24-.24v-1.44l-.24-.48v-.239h-.24v1.2h-.24l-.48.24-.24.24v.72l.24.24v.48l-.24.24-.24.24h-.24v.24l.24.24h.24v.24l.24.24v.72h-.72v.24l.24.24.24.24.24.24v.24l.24.24.24.24v.24l.24.48.24.24h.24l.24.24v.24l-.24.24h-.48l-.24.24-.24.24v.24h.24l.24.24.24.24.24.24v.719l-.24.24v.24l-.24.24h-.24l-.24.24v.24h.24l.24.24.72.24.48.24v.24h-.24v.72l.72.24.48.48.48.24.24.24.24.24-.48.24v.48l.48.48v.72h-.72v.48l.24.24.48.72.24.48v.24l-.24.48-.48.24v.48l.24.24.48.24v.72l.48.24.24.24-.24.24v.239h.24l.48.24.24.24v1.2l.24.24.24.24.48.24v.48l-.48.24-.24.24v.72h.48l.24.24.24.24.24.24v.72l-.48.24.24.48.24.24.48.24.48.24.48.24.24.48-.24.48v.96l.24.48-.24.24-.48.48-.24.24v.48l.24.24v.959l.24.72v.48l.24.24v.96l.24.24.24.24.48.96h.24l-.48.48-.24.24v.72l.24.48.24.24-.24.24v.48l-.24-.24-.24.24h-1.2l-.24.24-.48-.24v.72l1.2 1.68.24.96.24.72.24.24.24.24h.24v.239l-.24.24-.48.48v.72l.24.24.48.72.24.48.48.48.24.48.24.24-.24.24v.48l.48.72v1.2l-.24.24h-1.44l-.72.24-.24.24h-.48l-1.2.48-2.4.72-.24-.24-.24-.48h-.24l-.24-.24-.24-.24v-.48l-.24-.24-.48.24h-.72l-.48-.24v-.24h-.48l-.48-.24-.24-.48-.48-.48v-.72l-.48-.72-.72-.72-.479-.48v-.48h-.24l-.48-.24-.48-.72-.24-.96-.48-.72-.24-.48v-.48l-.24-.72.24-.48v-.48l-.48-.24v-.96l-.24-.48-.72-.24-.48-.24-.24-.48h-.48l-.48-.48-.48-.72-.24-.48-.48-.48-.72-.48-.48-.48-.24-.48-.24-.24h-.24l-.719.48h-1.2l-.72-.48H501.784l-1.2-1.439-.96-1.2-.24-2.16-.24-5.52-.24-2.64v-.239l-.72-1.92-.24-.96-1.199.24v-1.68l-.48-.24-.96-3.6-.72-.24-.48-2.88-.48.24h-1.2l-.24.24-.72.24h-.72l-1.2.24-.96.24-.719.24h-.24v-.24l.24-.24-.24-.24-.24-.24-.72-.24-.24-.24-.24-.24-.48-.479-.48-.48-.72-.72-.24-.72h-.24l.24-.24-.24-.24v-.48l-.48-1.2-.48-.72v-.96l-.24-.48v-.24l-.48-.96v-.96l-.72-1.2-.24-.48-.24-.48V436.764l-.24-.48-.72-.48-.24-.24-.24-.48v-.48l-.72-.24h-.479l-1.44.72-1.2.48-.96.24-.96.24-.96.24h-.24l-.48.24-1.68.72-.24.24-1.439.48-1.2.48-.48.24-.48-1.2-.24-.48-.72-1.44-.48.48h-.24v.24l-.24.48-.24.72v.24l-.72.72v1.68h-.48l-.48.48-.72.24h-.24l-.72.24-.479-.24-.24-.24-.24-.24v-1.2h.48v-.96l-.24-.96V431.003l.24-.24v-.96h-.96l-.24-.24-.24-.24v-.24H456.91l-.24-.24v-.48l-.24-.24-.24-.24h-.48v-.24l-.24-.24v-.72h-.72l-.24-.48v-.24l-.48-.719h-.24v-.48l-.24-.24v-.24l-.48-.72-.48-.48v-.24l-.24-.24v-.24l-.24-.24v-.72l-.24-.24v-.96h-.239v-.48l.24-.96v-.72l-.24-.96-.24-.72v-1.2l-.48-.48v-.24l-.24-.24V412.526l.24-.24-.24.24-.72.24-.48.48-.72.48-.48.24h-.24l-.72.48h-.24l-.24.24-.24.24-.72.48-.96.24-.72.48-.24-.24v-.48l-.24-.24v-.72l-.24-.48v-.24l.24-.48V410.605l-.24-.48v-1.92l.24-.48.24-.24v-.72l-.24-.24v-.24l.24-.24v-.24l.24-.24v-1.2h1.44l.24-.24h.48v-.24l.24-.24v-.48l.24-.24.24-.72h.24v-.239l.48-1.44.24-.48v-1.44l.24-.72v-.48l-.24-.48-.24-.24-.24-.72-.24-.48-.24-.72-.24-.72v-.24l-.24-.24.48-.24v-.24l.48-.72v-.72l-.48-.24v-.24l-.48-.24-.24-.24-.72-.959v-.72l-.24-.24v-1.68l.24-.48.48-.48 1.44-.48 1.68.24.96.24h.48l1.2.48.48.24h.96l.48-.48v-.24l.48-.48v-.48l.24-.24.48-.48h.24l.72-.72.48-.24.24-.48h.24l.48-.24h.48l.72.24.24.24.24.24.24.48.48.24.239.24h1.2l.96-.24.24-.24v-.24l.24-.48v-.24l.24-.24.48-.24h.24l.96-.24.24-.24.24-.48v-.96l-.48-.72-.48-.72V377.489h.24l.24-.24.48-.24h.48l.24-.24h.48l.48-.24.96-.24.96-.96.959-.48H472.028l.96-.48 1.68-.48.72-.24.72-.48v-.48l-.24-.24h-.24l-.24-.24h-.24l.24-.48.24-.24.48-.48.24-.24.72-.72.959-1.2.24-.72.24-.24v-.24l.72-.48.48-.24.24-.479.48-.24.96-.72.72-.48h.24l.96-.72.72-.96.48-.48.24-.48v-.48l-.24-.48-.72-.24h-.24l-.24-.24v-.72l.48-.24.96-.24.72-.24.72-.48.48-1.2.24-.48v-2.399l.239-.24.24-.24.48-.72.72-.24.48-.72.48-.72v-2.88l-.24-.72.72-1.92.48-.96.48-.48.48-.48.24-.48h.24l.96-.96.24-.239 1.92-.96.72-.24.479-.24.48-.24.72-.24.72-1.2.24-.48.72-.96v-.96l.48-2.64.48-.72h1.2v.48l.24.48v.48l.24.72h.24l.24.72.72.48.48.24.48.48 1.199.96z", + center: [495, 410], + defaultColor: "#9ACD32", + produksikomoditas: "40.715", + }, + { + id_kecamatan: 37, + name: "Tegalampel", + path: "M356.12 351.57v.72l.24.48v.48l.24.24v2.88l.24.48.24.48v.24l.24.24v.48l.24.24v.48l.24.48-.24.24V362.37l-.24.24v.48l.24.72.24.72.24.96.24.239.24.72.72.96.24.24v.96l-.48 1.2v.72l.48.72h.24l.48.24.24.24.24.48.24 1.2.24 1.2-.24 1.68v.24l-.24.72v.479l.24.24.24.72v.48l.24.24.72 1.92.48 1.2.24.24v.48l.24.48.24.72.96 1.92.48.96.72 1.44.48 1.679.72 2.16.24.96.24.48.72 1.68.48.96.24.48.24.72.48 1.44v1.2l.24.479.479.24v.24l.24.72h-.24l-.24.96-.24.48-.48 1.2-.24.72h1.2v-.96l.24-.24v-.24h.24l.48.24h.24l.24.48.24.24.24.24h.72l.48.24.24.24h.24v.72l.24.24.48.48.96.96.24.48v-.48l-.24-.48v-.24l.24-.24.24-.48-.24-.96.24-.24.24-.24.24-.72.48-.48.72-.48h.24v.24l.24.96.24.24h1.199l1.92.24 1.92.24h.72V409.166l-.24.48v2.88l-.24.959v1.44l-.24.96-.24.72v.24h-.24l.24.24.24.24v.24l.48.24h.24v.24h-.72v.72l-.24 3.12-.24 2.16-.24 1.199v1.68h.24v.72h-.24l-.24.24-.24.24-.24.24-.24.24-.24.24h-.48l-.48-.24-.24-.24-.24-.24-.48-.48-.48-.24-.24-.24h-.24l-.24.24-.24.48.24.24v.96l-.24.24h-.48l-.24-.24-.24-.24v-.24l.48-.72v-.48l-.24-.24-1.68.24-.48.24-.24-.24h-.48l-.48.48-.24.24-.24.48v.72l-.24.72v.72l-.24 1.2v.96l.96.48-.24.48v.24l-.48 2.399v1.44l-.24 1.2-.24.24-.24.48-.24.48-.24.72v.24h-.24l-.96.24h-.239v.24h-.24v.24l-.24.48v2.16l.72.72v.72l-.24.24-.24.24-.72.96v.24l-.24.479-.72.48h-2.16v1.2l.24.72v1.92l-.24.72-.24.48h-.24l-.24-.24-.24.24H365v.24l.72.72v.24h-1.2l-.24-.24v-.24l-.24-.24h-.48l-.24.24h-1.44l-.719-.96h-.72l-.24-.24-.24-.24v-.72h.24v-1.44l-.24-.24-.72-.24h-.96l-.24-.24v-.48h-.96l-.48-.24v-1.2l-.48-.24h-1.68l-.24-.24-.72-.24-.72-.24-.719-.48-.24-.24h-.72l-.24-.24-.72-.48h-.72l-.48-.24h-1.44l-.24.24h-1.44l-1.44-.24-.48-.24h-.719l-.48-.48-.24-.72-.24-.24-.24-.96-.24-.72v-.48l-.24-.24h-.48l-.96.48h-.24l-.24.24-.48 1.2-.72.72-.24.24h-.96v.24-1.2l-.24-.24-.24-.24h-.24l-.48-.24h-.24l-.24.24-.24.24h-.24v-.24h-.24l-.479-.24-.72.24h-1.2l-.48.24h-.96l-.48-.24-.72-.48-.48-.24-.48-.24-.48-.48h-.24v-.24l-.48-.24h-.96l-.48-.48-.719-.96-.48-.24-.72-.24h-1.2l-.48-.24-.48-.24h-.24l-.24-.24.24-.72v-.239l.24-.72-.24-.48-.48-.48-.24-.24-.48-.72-.96-.96-.72-1.2-.24-.72.24-1.2v-.48l.24-.48.24-.24.24-.24.72-.72.72-.72.24-.24v-1.2l.24-.48v-.24l.24-.719-.24-.24v-.24h-.24v-.24l.24-.96-.24-.48v-.48l-.24-.72v-1.68l-.24-.24v-.24l-.24-1.2v-.24l-.24-.24-.24-.24-.24-.24-.24-.24-.48-.24-.24-.24v-.96l-.24-.48-.24-.24v-.48l-.24-.24v-.479h.72l.24-.48v-.48l-.24-.96v-.72l-.48-.24h-.96l-.48-.24h-.48l-.479-.48-.24-.24-.48-.24-.48.24-.48.24-.72.24-.48.24h-1.68l-.24-.24-.24-.24v-.48h-.24v-.24h-.24l-.48-.24-.48-.24h-1.44l-.24-.24-.24-.24-.239-.24-.96-.24h-1.92l-.48.48h-.96l-.48-.72-.72-.24-.72.24-.48.24-.24.24-.48-.24h-.24l-.24.24H297.808v.24l-.24.24h-.24l-.24.48h-1.68l-.48-.24h-.24v-.24l.24-.48v-.48l-.24-.24v-.48l.48-.24.24-.24v-.96l-.24-.24-.24-.24h-.72v-.48l-.24-.24-.24-.24-.48-.24-.48-.24-.24-.24v-.72l-.24-.24-.24-.479-.48-.72-.48-.24h-.48l-.24.24v.96h-.96v-.24h-.239l.24-.24v-.96l-.48-.72-.24-.24-.24-.48-.48-.48-.48-.72-.48-.72h-.24l-.48-.48-.24-.24v-.48l-.24-.48v-.24l-.48-.24h-.48v-.72h.48l.72.24h1.92l.48-.24H297.328l.239-.24h.96v-.24h.24l.24-.24h.24l.24.24h.96l.24.24v.24h.72l.24-.24h.48l.24-.24.24-.24h.24v-3.599l.48-.48.48-.48h.72v-.24l.48.24v-.24l.24-.48.24-.24v-.48l.24-.48-.24-.48-.24-.96v-.24l-.24-.72v-1.44l.24-.72.24-.48.24-.96.24-.24v-1.44l-.24-.72v-.24l-.24-.479v-.24l.24-.24h.48v-1.2l.24-.24h.719l.48.72.24-.24.48.24.48.24.24.48.48-.24.96-.24.72.24h1.2l1.92-.24 1.199.96.72.24.96.24.96-.24.96.24.48.48h1.2l.48.96h.24v-1.2l.24-.96v-1.2h.24v-.96l.24-.24.24-.24v-.48h.24l1.68-.72 1.199-.72.48-.48.72-.96-.72-.48h-.24v-.24l-.24-.48-.48-.24-.24-.24-.24-.48-.24-.48-.24-.24-.24-.48v-.96l.24-.24-.96-1.199-.24-.48v-.96l.24-.48v-.24l.24-.48v-.48l.24-.24.24-.24-.24-.72v-.24l.72-.24.48-.24h.24l.24-.48.24-.24-1.44-.48h-.24l-.24-.24-.24-.24v-1.2h1.68v-.24h.24v-.48l-.48-.24h-.24l-.24-.24-.24-.24-.24-.48-.24-.24.24-.24h1.2l.48.24h.24l.24-.24v-.959l.24-.24.24-.24v-.24l-.24-1.2v-.24h-.24l.24-.48v-.48l.72.24.24.24.24-.24.24-.72v-.72l.24-.24.72-1.2v-1.2l-.24-.48v-.24l-.24-.48-.24-1.2-.48-.96v-.48l.72-1.199.24-.48.48-.24.48-.24h.48v-.24l.24-.24v-.48l.24-.48.24-.72v-.24l.24-.72v-.72l.24-.48.48-.24.48-.48.48-.24h.24-.24l-.24-.24h.96l.479.24h.72l.72.24 1.44.24.48.24.96.24h2.16l1.68.24h.719l.96.72.96.72.24.24 1.68 1.2 1.44 1.2.24.24h.24l.72.72 1.2.72 2.159 1.92.72.96.96.72 1.2 1.68v.48l.72 1.2v.96z", + center: [335, 400], + defaultColor: "#2E8B57", + produksikomoditas: "13.700", + }, + { + id_kecamatan: 38, + name: "Tenggarang", + path: "M404.595 440.843v1.2l-.24.48-.24.24-.72 1.2.24.24.24.48v1.2l.96.96h.24v.24l-.24.48v.48h.24v.239h.24l.48.24.24.48.48.48.48.96.24.24-.24.96-.24.48.24.48v.72l.24.48v.96l-.24.72v.96l-.24.24.24.24.48.72.24.48v.24l.24.96V461l-.24.24v.24l.24.24v.72l-.24.48v.24l-.24.48-.24.48v.48l-.48.48h-.24l-.24.48v1.68h.24l-.24.24v.48l.24.24v.48l-.24.24v.24l.24.24.24.24-.24.48v.72l.48.24h.24V473l.48.48.24.24.48.24.24.24.24.48.48.96.24.24v.48h.24v.48l.24.24v.24l.48.48.48.24.24.48.48.24.48.24.24.48v.48l.24.48v.72l.72.48.24.24.24.24v.48l-.96.959v.24h-1.2l-1.68-.24-1.2-.24h-.96l-.48-.24h-.72l-1.2-.24-.72-.24-.48.24-.24.72.24 1.2.24 1.2v1.2l-.24.48-.48.24-1.44.96-1.68.48-.96.48h-.24l-.72.24-.24.24-.96.24-.719.24-.72.24-.48.24-.96.96v.24l-.24.24v.24l.24.24v.72l.48.48.48.72.48.479.24.72.24.24.24.48.48.48.24.24.24.48.24.24.24 1.2v.48l.72 1.2.24.48.48.48.24.48.72.96.24.24v.72l.24.48v.48l.24.48v.24l.24.48v.719l-.24.24-.24.24v.24l1.2.48h.24l.24.72.48.72v.48l-.48.48v3.12l.48.24.24.24.24.24.48-.48h.96l.24.24.24.48.239.48h.72l.24.24.24.24.24.24h.96l.24.24.24.24v.48l.24.24v.48l.24.72.72.959v.48l.24.24.24.48v.72l.96.96.48.48.24.24v.48h.24v.24l.24.24.48.24.24.24v.24h.24l.48.24.48.24.479.24v.24l.24.24.48.48.24.48.24.48 1.44 1.44.48.72v.96l-.24.479v.24l.48.96v.48l.24.72.24.48h-.24l-.48-.48-.24-.24v-.24l-.48-.24-.48-.48-.24-.24h-.24l-.24-.24h-.96l-.24-.24h-.24l-.24-.24h-.48l-1.44.24v-2.16h-4.32l-.96.24H402.676l-.72.24v-3.6l-.24-.48v-.48l-.48-.48-.96-.48-1.44-.24-1.919-.48h-2.88l-.24-.72-.24-.72h-.24l.24-.48v-.24h-.24l-.24-.24-.24-.48-.48-.72-.48-.719-.24-.24-.72-.48h-.24v-.24l-.48-.72-.24-.48-.48-.48-.48-.72-.24-.24-.719-.72-.48-.48-.48-.24-.72-1.2-.96-.72-.72-.24-1.2-.24h-.96l-.96-.24-.96-.48-1.199-.72-.96-.24h-.48l-.24-.24-.48-.24-.24-.24h-.72l-.24-.24v13.92h-1.92l-.96 1.2-.72.24-2.879 1.68-.48-.48-.48-.48-.96-1.2-.96-.72-.72-.48-.96-.72-.24-.48v-.72l-.24-.96-.24-.72v-2.64l-.24-.72-.48-1.2-.48-.24-.48-.48h-.48l-1.439-.48-.24-.48-.72-.96-.24-1.2-.24-.96v-.48l-.24-.72v-.959l-.48-.24h-.24l-.48.24-.72.24h-.72l-.24-.24-.48-.72v-.48h.24-.24.24l.24-.24-.24-.24v-.24h-.24v-.48h-.48l-.96-.24v.72H353l-.479-.24h-.72l-.96-.24-1.44-1.2h-1.92l-1.68-1.2-1.44-1.2-.24-.24-.48-.48-.479-.24h-.24l-.48-.48-.24-.24-.24-.24h-.24v-.24l-.48-.48-.24-.48h-.24v-.48h-.24v-2.159l.24-.48.72-.72.72-.24.24-.48v-.96l-.24-.48-.24-.72-.24-.48v-.96l-.24-.24-.24-.48v-.72l-.48-.72-.24-.48-.24-.72.24-.48v-.48l.48-.72v-.24l.48-.719.24-.48v-1.2l.24-.48.48-.24.48-.24.72-.48.48-.48.48-.24h1.92l.24-.24.24-.24.24-.48.24-.24v-.24l.72-.24V479h.24l.24-.24v-.24l.24-.72v-.48l.24-.24.72-.48.48-.48.24-.24.48-.48.48-.48.719-.96.48-.72h.48l.24.24h.72v-.24l.24-.479v-.24l.24-.24h1.44l.24-.24.48-.24.24-.24.48-.24.72-.48 1.44-.72.959-.48.24-.24.48-.48.48-.24.24-.24v-.24l.24-.48v-.48l.24-.24v-.24l.24-.24.24-.24.48-.48.48-.72.48-.72.24-.48.48-.72.72-.96.24-.48.24-.48.24-.479v-.24l.24-.24h.48v-.24h.24v-.24l-.24-.48v-.24l.24-.24.24-.24.24-.48.24-.24v-.24l.24-.24.48-.24h.48v-.48h-.24l-.24-.24v-.24l.48-.24.959-.48.48-.24.24-.24v-.72l.24-.24.48-.24.24-.24.96-.48.48-.24.48-.48.24-.24h.48l.72-.24.72-.24.72-.48.72-.48.24-.24h.24l.719-.72.96-.719.72-.24h.24l.48-.24h.24l.48-.24.72-.24.48-.24v-.24l.72-.24.48-.48.24-.48h.24l.24-.72.48-.48v-.72l.24-.48.48-.24.24-.24h.24l.72-.24 1.199-.24 1.2-.24.48-.24.48-.24.48-.48.48-.48.24-.24h1.92l.48-.24h.48l.24.24.72.24.48.24H397.875l.24-.48.24-.48.24-.24.24-.24.24-.48v-.72l-.24-.48-.24-.48-.24-.479-.24-.24v-.72l.24-.24h1.2l.72-.48.48-.24.72-.48.24-.48h.72l.72-.48v.48l.24.48v1.2l.24 2.16v.48h.24v.24l.24.48.24.48v.72h.24z", + center: [375, 482], + defaultColor: "#2E8B57", + produksikomoditas: "27.299", + }, + { + id_kecamatan: 39, + name: "Tlogosari", + path: "M460.269 509.477h1.44l.48.24.24.24h1.92l.72-.24h.24l.72-.24h.48l.72.24h2.159l.48.72h.24l.24.24.24.24h.48l1.44.48.48.24h1.44l.48.24.48.24.48-.24h.48l.24.24.48.24h.72l1.439.48h.48l.96.24h.72l.48.24h.24l.24.24h.72l.24.24.24.48.24.24.72-.24.48.24h.48l1.679.48h.72l.96.48h.24l.24.24h.48l.48.24.48.24.48-.24v.24h.72l.48.24h.72l.24.24h.24l.24.24v1.2l-.24.48-.48.719-.48.48-.48.72.24.72v.48l.24.24v1.2h.24v1.68l.24 1.68v.24l.48 1.2v.96l.24.72v.72l.24.48v.479l.24.48-.24.24h.24l.24.48v.24h.24l.24.24.24.24h.48l.24.24.239.24.24.24v.96l.24.24v1.44l.24.24v.24l.24.24v.72h.24v.72l.24.24v.24h.24v.24l.24.24.48.48.24.24.24.24.24.24h.24l.24.48.48.24.24.48.24.48v.239l.24.24h.24l.72-.48.72-.24h.72l.24-.24h.48l.24.24H506.103l.24-.24.48-.24.24-.24h.96l.24-.24h.24l.24-.24v.24l.24.24.24.24.24.48h.24l.96-.24h.96l1.2-.48 2.159-1.44h.96v.24-.24l.48-2.64.24-1.2-.24-1.68-.24-.48-.24-.24v-1.68l.48-1.199.24-.24.48-.48.24-.24 1.92-.48v.24l.24.24.24.24.48.24.48.48.48.24.24.24.72.48.24.48.24.24.24.24.479.24.24.24h.96l.48.24.24.24.96.48.24.24v.96l.24.48v1.44l.72.24v.24l.24.24h.24l.48.24.48.72.96.72.24.24v.96l-.24.48v.24l.24.24.24.24v.24h.24l.24.239h.24v-.24l.24-.48.24-.24h.24v1.68l.24.48.239.48.24.24.48.24h.24l.48.48.24.24.72.24h.24l.48.24.48.48.72.24.48.24h.72l.48.48.24.48.24.24v.24l.24.24.96.24h.48l.719 1.44v.24l.48.24.24.24.48.48.72.48.48.24.24.24h.24v.24l.48.48.48.72.24.479.24.24.48.24.48.24.24.24.24.24.24.24.24.24h.24l.24.24.24.48.48.24.24.24.48.24v.24l.24.24h.48l.479.24h.24v.72h.24v.24l.24.24-.24.24.24.24h.72v.24h.24v.24l.48.24.24.24.24.24h.24l.24.24v.24l.24.24v.24l.72.24.24.24.24.48.24.24v.24l.24.24.96.48.48.24.72.48h.24v.24l.48.24.24.24h.719l.24.24.24.239h.96v.72l-.24.24v.48h.24v.24h.24l.24-.24.24-.24h.72l.24.48v.24l.24.24.24.24.24.24.24.24.24.24h.24v.24l.24.24h.24l.24-.24h.24v-.24l.24-.48h.48l.24.24v1.44l-.24.24v.24l.24.24h.24l.24.24h.24v.48l.24.24h.96l.48.48v.24l.239.48h.24v.24h.24v.24l.24.24h.24l.24.24v.24l.24.24v.48l.24.24v.24l.24.24.24.24.24.24.48.24.24-.24.24-.24.24.24.24.24v.24l.24.24v.24l.24.24v-.24h1.2v.24l.24.24v.239l.48.48-.24.48v.72l.24.24h.24l.48-.24.48.24.48.24v.24h.24v1.44h-.24v.24h-.24v.72l.24.24.24.24.24-.24h.959l.24.24.24.24v.48h-.24v.72h.24v.24h.96l.24.24.24.24v.48l-.24.24v.72h.24l-.24.24v.72l.24.24.24.24v.48l.24.24v.24h.24v.24h.24l.24-.24h.72v.24h.24l.24.239v.24l.24.24v.24h.24l.24-.24h.24v.24h.24v.48h.24l.24.24h.24l.24.24v.24l.24.24.24.24.24.24h.48l.24-.24h.48v.24l.239.24-.24.24h.24v1.68h.24v.24h.48v.24h.24v.24h.24v.24h.24l.24.24h.48l.24.24v.24l.24.24h.24l.24.24h.24l.24.24v.24l.24.24h.48v.24h.24v.24l.24.24.24.24v.24h.24v.24h.24v.72h.24l.24.24.24.24h.24v.72h.24v.24h.96v.24h.24v.239l.24.24v.24h.24v.48h.24v.48l.239.24v.48l.24.48v1.68l.24.96.48.72.72.96.24.96.48.96v.48l.24.96-.24.48.48.24.72.24.24.24.48.479h.72l.48.24.48.48.72.72h-.24.24l.24.48v.48l.24.48v.24h.24l.24.24h.48l.24.24.24.48.24.24.479.48v.48l.24.72.24.24v.72l.48.72.24.72.72.96.72.72.72.48.48.24.48.24v.24l.24.24v.719l.24.24.24.48.48.48.24.24.48.24.96.24h.48l.48.24.479.48.24.24.24.24v.48l.24.48.24 1.2.24.24.24.48.24-.24h.96l1.2.24h.24v.24h.24v.72l.24.24.24.24.24.72v.24h.24l.24.24.24.48v.72l.24.96.24.719.48.48.72.48.48.48.48.72v.24l-.24.48-.24 1.2.24.24.24.24v.24l.24.24-.24.24-.24.72v.96l-.48.72v1.44l.72 1.2.24.72.479.239.24.48.24.72.24.24h.48l.48.24.72.72.48.72.24.48.48.96.24.24h.48l.72.48.24.24.72.72.48.24.24.24.48.24.24.48v.24l.24.48-.24.48v1.44l.24.72.24.24.48.24.719.48.48.239.48.48v.24l.48.72.24.72v.48l.24.72.24.96.24.24.72.48v1.2l.24.48v.48l.24.48.48.48.24.72.24.48.24.48v1.68l.24.239v.48h.24l.48.24.24.24v.24l.48.96.24.48.24.24.24.48v.96l-.24.24v.72l-.24.48.24.48.48 1.2.24.72.48.96.72.96.479.48v.48l.24.48v2.639l.24.48.24.24v.48l.72.48.48.48.24.48.24.48.24.24h.24v.24l.24.48.24.24.48.48.24.24.24.24h.48v.24h.72l.48.24.48.24.48.24.48.72.48.24.24.48.24.24.479.24.48.24.48.48.24.48.48.239v.24l.24.48.48.48.48.48.24.24.24.24.48.48h.24l.24.24.48.24h.48l.24.24h1.2l.24.24.24.24.72.72v.24l-.48.72v.24l.24.72.24.48v.24l.24.24v.48l.24.24v.24l.239.24.24.48.24.24h.24v.24l.24.24.48.48.48.72h.24l.24.48v.239l.24.24.24.48.48.24.24.24.24.24.24.48.48.24v.48l.24.24-.24.24-.24.48v2.16l-.24.48v1.2l.24.24v.24l.24.24v.24l.24.24v.24h.24v1.92l.48.72h.24l.24.479.24.24v.24l-.24.24v.48h.24l.24.48.24.24.24.24v.48l.24.24v.24l.24-.24.24-.24.24-.24v-.24l.24-.48.24-.24h.719l.24.24.24.24h.24l.48.24h.24l.72.48.48.24h.96l.24.24v-.24h.72l.24-.24h.96l.24.24h.24v.48l.48.24h.96l.48-.24h.48l.479.48.72.72.24.48.24.48v.48l.72.96.24.72.48.96.24.24-.72 1.2v.24h.24l.24.24v.24l.72.24.24.24.48.239h.24l.48.48h.48l.48.24V735.058l.24.24.48.48.24.48v.48l-.24.24-.24.48v.72l.24.48.24.24v.24l.24.48-.24.48v1.2l.24.24-.24.48-.24.24.24.24.72.72.24.479.48.48v.96l-.48.24h-1.68l-.48.24-.24.24-.24.24-.24.24-.24.24-.24-.24h-.48v-.24h-.48l-.24-.24h-.24l-.24-.24h-.24v-.24h-.24l-.24-.24H675.045l-.72.24-.72.24-.96.24-.72.24-.48.48-.72.72-.96 2.16-.24.24-.24.24-.24.48-.24.48-.24.24-.239.24-.24.48-.24.48-.48.24-.24.72-.48.48-.24.24-.24.48-.24.24-.48.24-.48.479-.24.48-.48.24-.24.48-.48.24-.24.48-.48.24-.48.48-.24.24-.24.24-.48.24-.48.24-.24.24-.24.24-.48.48h-.24l-.24.24-.479.24h-1.92l-.48-.24h-.48l-.72-.24-.72.24h-.96l-.48.24-.48-.24h-1.2l-.24.24h-.959l-.48.24h-.48l-.24.24h-.24v.72V758.576l-.72-.48H645.528l-1.44-.48-.72-.48-.96-.72-.24-.24-.24-.24-.24-.48v-.24l-.24-.24-.479-.24v-.24h-.48l-.24-.24h-.24l-.24.24h-.48l-.24.24h-.24l-.24.24h-1.68l-.24-.24v-.24l.24-.24v-.24l1.2-1.44.24-.24.24-.24v-.24l.24-.24v-.48l.24-.24v-.48l.24-.24v-.24l.24-.24.24-.24v-.72l-.24-.24-.24-.24-.24-.48-.48-.48-.24-.24-.24-.24v-1.44l.24-.24v-.479h.96l.24.24.48.24.24.24.48.24h.24l.24-.24-.24-.24.24-.24h.24l.24-.24.24-.24.24-.48v-.96l-.24-.24h-.24l-.24-.24h-.24l-.24-.24-5.04.48-1.2-1.44-1.2-.72-.72-1.2-.479-.72-1.44-1.92-.72-.24-.48-.96v-.72l.24-1.2v-.24l-.24-.48V730.979l-.24-.48-.24-1.2V726.658l-.48-.96-.24-1.68.24-.72-.24-.96v-.72l-.24-.959-.24-.72-.24-.96v-4.08l-.24-.96.24-.72v-1.2l.24-1.92v-.96l-.24-1.199-.96-.24h-.24v-.24l-.48-.24v-.24l-.24-.24-.72-.24-.24-.24h-.24l-.24.24-.24-.24h-.48l-.479-.24-.48-.24-.96-.24h-.24l-.72-.24-.48-.48-.24-.24h-.72l-.24-.24-.48-.48-.24-.24v-.48h-.24l-.48-.48v-.72h-.24v-.48h-.24v-.48l-.24-.48v-.24l-.24-.24v-.24h-.24v-.24l-.24-.24-.48-.48v-.48l-.24-.72-.24-.479v-.24h-.48l-.48-.24h-.239l-.48-.48-.24-.24h-.24l-.96-.24-.48-.24-.72-.24-.96-.72h-.24l-.24-.24v-.24h-.48l-.48-.24-.48-.48-.48-.48-.24-.48v-1.44l-.24-.48-.24-.48h-.24v-.48l-.72-.72v-.48l-.72-.96-.479-.24-.24-.24h-.48l-1.92-6.479-.24-.24v-.24l-.48-.24-.24-.24-.48-.24-.72-.24-.24-.24-.48-.48v-.24h-.24l-.24-.24-.48-.48-.24-.48-.24-.24-.24-.24-.48-.24-.72-.24-.239-.24-.24-.48-.48-.24-.72-.24h-.72l-.24-.24-1.2-.959-.48-.24h-.48l-.48-.24-.24-.24-.24-.24-.72-.48h-1.2l-.48.24H586.976l-.96.24H582.655l-.24-.24-.48-.24-.24-.24h-.24l-.48-.24h-.96l-.48-.24-.48-.24-.24-.24-.24-.72-.479-.48h-.24l-.24-.24h-.72l-.24.24-.24.24-.24-.24h-.24v-.24h-.24l-.24-.24-.48-.48-.72-.24-.24.24-.24.48-.24-.24H570.896l-1.68-.96-.239-.24-.48-.24-1.2-.48-.48-.48-.24-.24h-.48l-.24-.24-.72-.48v-.24l-.24-.24h-.24l-.72-.48-.24-.24-.48-.48h-.96l-.24-.24-.48-.24-.48-.24-1.199-.48-.72-.24-.48-.479-.48-.24-.48-.72-1.2-1.2-.96-.72-.72-.72-.48-.24-.24-.48-.24-.24-.48-.48-.24-.48-.24-.24-.24-.48h-.48l-.72-.24-.24-.24-.239-.24-.48-.48v-.24l-.96-.96-.72-.48-.72-.24-.72-.48h-.48l-.48.24-.48-.24h-.48l-.48.24-.72.24-.48.48-.24.24-.24.24h-.96l-1.199.24-.48-.24h-.48l-.96-.24h-.72l-.72.24h-.48l-.72.24h-.48l-.96-.24h-.72l-.72-.24h-.48l-.479-.48-.48-.24-.48-.24h-.48l-.24-.24-.48-.48h-.24v-.24l-.72-.48-.24-.24-.72-.479-.48-.48h-.24l-.72-.24h-.24l-.48-.24v-.96h-.24l-.24-.24h-.72l-.72.24-.24-.24-.479-.24v-.24l-.48-.96-.24-.24-.24-.24-.24-.72-.48-.24-.72-.72v-.24l-.48-.48-.48-.48v-.48l.24-.24.24-.24-.24-.24v-.24l-.48-.24-.24-.48-.24-.24h-.48v-.24l-.24-.24h-.24l-.48-.24-.24-.24-.24-.48-.24-.24-.24-.24h-.48l-.24-.24-.24-.479h-.48l-.48-.24-.48-.24h-.959l-1.44-.24h-.72l-.48-.24-.48-.24h-.24l-.48-.24-.48-.24-.48-.24h-.96l-.72-.72-.24-.24h-2.159l-.24-.24-.72-.24h-.72v-1.44l-.48-.96-.24-.96v-.48l-.24-.24-.24-.24-.24-.24h-.24l-.24.24h-.24l-.48-.24v-.24l-.24-.24v-.24l-.24-.48h-.72l-.48-.24-.96-.96-.24-.24h-.96l-.719.24v-.24l-.24-.24-.24-.24v-.24h-.72l-.48-.24-.24-.239-.48-.48h-.48l-.48-.24h-.48l-.24-.24-.24-.24-.24-.48v-.24l-.24-.72-.24-.24-.24-.24h-.24l-.24.24-.72.24v-.24l-.24-1.2.24-.96v-.48l-.24-.24h-.24l-.24-.24-.96-.48-.24.24h-.239l-.48.48h-.24l-.24-.24-.48-.24-.72-.48-.48-.24-.24-.24-.24-.24-.24-.48-.24-.48-.24-.24-.96-.72-.24-.48v-.48l-.24-.24v-.24h-1.44l-.24-.24v-.719l-.24-.24-.24-.24-.48-.24-1.199-.48h-.24l-.48-.48-.96-.48 1.2-1.68.48-1.44.24-1.44v-.24l.24-1.68.24-.96.24-.96.72-1.439.24-.96v-.72l-.96-.48-.48-.24.48-1.44.24-.72.48-1.44.24-1.68.24-1.2.24-1.44.48-1.679v-1.2l.24-.24.24-.24v-2.4l-.24-.72v-1.2l-.24-1.2-1.44.24h-.24l.24-.24-.24-.72v-.48l.24-.24v-1.68l.24-.48v-2.159l-.48-.72-.72-.24-.24-.24-.24-.24v-.24l-1.2-1.92-.24-.24-.96-.96-.48-.48-.72-.48v-1.68l-.72-1.68-.24-.72-.24-.24-.24-.239v-.24l.24-.96v-1.44l-.48-.72-.72-.96-.48-.96-.24-.96-.24-.48-.48-1.2v-.24l-.72-.96-.959-.96-.72-.96v-.48l-.48-1.679v-.48l-.72-1.44-1.44.24v-.72l-.24-.24v-.48l-.24-.72-.24-1.44-.24-.48v-.24l-.24-.72h-.24l-.24-.48-.96-.48v-.24l-.24-.96h-.48l-.24-1.439h.24-2.159l-2.16.24h-1.68l-1.2.24h-2.64l-.72.24v-.24l-2.399.24-2.4.24v-.24l-.24-1.2v-2.4l-.24-2.16v-1.2l-.24-1.92v-1.2h.24v-2.16l-.24-.479-.48-.24-.72-.24-.48-.48-.72-.48-.48-.24v-.24l-.24-.24v-1.68l.24-.72v-1.2l-.24-.96v-3.12l.24-.24.48-.24.72-.24.48-.24.48-.24h.48l.24-.24.48-.24 1.2-.479.48-.24.72-.24.96-.48-.24-.24-.96-.24h-.72l-.24-.24v-1.44l-.24-.24.48-.48.48-.24.48-.24.48-.48.48.24h.24l.96-.96 1.2-.48.48-.48v-.24l1.2-.48 1.2-.48h.24l.48.24.48.24.24-.24h.24l.48-.24.48-.24.72.24.24-.72.24.24.479-1.92.24-.48v.24z", + center: [540, 610], + defaultColor: "#F74300", + produksikomoditas: "38.854", + }, + { + id_kecamatan: 40, + name: "Wonosari", + path: "M448.03 396.926l.24.48v.48l-.24.72v1.44l-.24.48-.48 1.44v.24h-.24l-.24.72-.24.24v.48l-.24.24v.24h-.48l-.24.24h-1.44v1.2l-.24.24v.24l-.24.24v.24l.24.24v.72l-.24.24-.24.48v1.92l.24.48v2.639l-.24.48v.24l.24.48v.72l.24.24v.48l.24.24.72-.48.96-.24.72-.48.24-.24.24-.24h.24l.72-.48h.24l.48-.24.72-.48.48-.48.72-.24.24-.24-.24.24v1.68l.24.24v.24l.48.48v1.2l.24.72.24.96v.72l-.24.96v.48h.24v.96l.24.24v.72l.24.24v.24l.24.24v.24l.48.48.48.72v.239l.24.24v.48h.24l.48.72v.24l.24.48h.72v.72l.24.24v.24h.48l.24.24.24.24v.48l.24.24H459.31v.24l.24.24.24.24h.959v.96l-.24.24V437.242l.24.96v.96h-.48v1.2l.24.24.24.24.48.24.72-.24h.24l.72-.24.48-.48h.48v-1.68l.72-.72v-.24l.24-.72.24-.48v-.24h.24l.48-.48.72 1.44.24.48.48 1.2.48-.24 1.199-.48 1.44-.48.24-.24 1.68-.72.48-.24h.24l.96-.24.96-.24.96-.24 1.2-.48 1.439-.72h.48l.72.24v.48l.24.48.24.24.72.48.24.48v1.68l.24.48.24.48.72 1.2v.96l.48.96v.24l.24.48v.96l.48.72.48 1.2v.48l.24.24-.24.24h.24l.24.72.72.719.48.48.48.48.24.24.24.24.719.24.24.24.24.24-.24.24v.24h.24l.72-.24.96-.24 1.2-.24h.72l.72-.24.24-.24h1.2l.48-.24.48 2.88.72.24.959 3.6.48.24v1.68l1.2-.24.24.96.72 1.919v.24l.24 2.64.24 5.52.24 2.16.96 1.199 1.2 1.44h.24l.24.72.72.96.48.24h-1.92l-.48.48v.72h-2.4l-.72-.24v.24l-.24.24v.48h-.96l-.48-.24-.48-.24h-1.2l-.48-.24-.48-.24h-.24l-.48.24-.96-.24-.96-.24-.24.24h-1.44v.24l-.48.24-.24.24H487.387l-.24.24h-.48l-3.12.96h-.24l-.72.48-.24.24-.24-.48-.24-1.2-.72-1.2-.48-1.44-2.159.48-1.92.24-2.16.48 1.2 3.36.72 1.68-1.44.24-.72.24h-.48l-.24.72v.24l-.24.48-.24.479v.96l-.48.24v.24l-.24.24-.24.24h-.24l-.24.48h-.24v.48l-.48.48-.48.96-.24.72-.24.72v.24l.24.24h.72v.24l.24.24.24.24.24.24.48.48.24.24.24.48v.24l.24.24h.24l.24.48.24.24v.24l.48.24.24.24h.24l.24.24v.48l.24.24.24.239v.24l.24.24.24.24.24.24h.24l.24.48v.24l.48.24.48.24.24.48h.24l.48.48h.24l.48.24.48.24h.48l.24.24.24.24h.48v.24l.72.24.24.24h.72v.24h.24l.24.24v.48l-.24.24v.24l-.24.96v.24l-.24.48.24.24.48.24.24.24h.48l.24.24-.24.48-.24.24v.48l-.24.24v.48l-.24.48v.24l-.24.239v.24l-.24.24v.48l-.24.24v.24l-.24.72-.24.72-.48 1.44-.48.72-.24.72-.96-.24h-.48l-1.44-.48h-.72l-.48-.24-.24-.24h-.48l-.48.24-.48-.24-.48-.24h-1.44l-.48-.24-1.44-.48h-.48l-.24-.24-.24-.24h-.24l-.479-.72h-2.16l-.72-.24h-.48l-.72.24h-.24l-.72.24h-1.92l-.24-.24-.48-.24h-1.439v-.24l-.24.48-.48 1.92-.24-.24-.24.72-.72-.24-.48.24-.48.24h-.24l-.24.24-.48-.24-.48-.24h-.24l-1.2.48-1.2.48v.24l-.48.48-1.199.48-.96.96h-.24l-.48-.24-.48.48-.48.24-.48.24-.48.48v-1.44l-.72.48h-.24v-.48l-.24-.24-.48-.48-.24-.24h-.24v-.48l-.24-.24-.24-.24-.24-.24v-.96h-1.2v-.48l-.24-.24-.24-.24-.959-.24h-.48l-.24-.24v-.48l-.24-.24-.24-.24-.72-.48-.24-.24-.24-.24v-1.2h-.24l-.72-.24h-.72l-.48-.24-.24-.24-.48-.24-.48-.72v-.24l-.48-.24-.24-.24h-.24v-.24h-.24l.24-.24.24-.48v-.24l-.24-.24-.24-.24-.48-.24h-.24v-.24l-.24-.24-.24-.72v-1.68l-.48-.24v-.24l-.479-.24-.24-.24-.24-.48v-.24h-.72l-.24-.24-.24-.24h-.24v-.24l-.24-1.199v-2.16l-.24-.24-.24-.48v-.48l-.24-.24v-.24h-.48l-.48-.24-.24.24h-.48l-.96-.48-.24-.24v-.48l-.48-.48-.24-.24v-.72l-.24-1.2v-.24l.24-.48.24-.24-.24-.24h-.24l-.24-.72h-.72l-.24.24h-.24l-.24-.24h-.24l-.239-.24h-.24l-.24-.24-.48-.72H420.913l-.48-.72-.48.24h-.48l-.48.48-.24.24-1.2.24h-.24l-.96-.24h-.24l-.479-.24h-.96v-.24h-.24l-.72-.719h-.48l-.24-.96v-.24l.96-.96v-.48l-.24-.24-.24-.24-.72-.48v-.72l-.24-.48v-.48l-.24-.48-.48-.24-.48-.24-.24-.48-.48-.24-.48-.48v-.24l-.24-.24v-.48h-.24v-.48l-.24-.24-.48-.96-.24-.48-.24-.24-.48-.24-.24-.24-.48-.479v-1.92h-.24l-.479-.24v-.72l.24-.48-.24-.24-.24-.24v-.24l.24-.24v-.48l-.24-.24v-.48l.24-.24h-.24v-1.68l.24-.48h.24l.48-.48v-.48l.24-.48.24-.48v-.24l.24-.48v-.72l-.24-.24v-.24l.24-.239v-1.68l-.24-.96v-.24l-.24-.48-.48-.72-.24-.24.24-.24v-.96l.24-.72v-.96l-.24-.48v-.72l-.24-.48.24-.48.24-.96-.24-.24-.48-.96-.48-.479-.24-.48-.48-.24h-.24v-.24h-.24v-.48l.24-.48v-.24h-.24l-.96-.96v-1.2l-.24-.48-.24-.24.72-1.2.24-.24.24-.48v-1.2h-.24v-.72l-.24-.48-.24-.48v-.24h-.24v-.48l-.24-2.159v-1.2l-.24-.48v-.48l.72-.24h.24l.48-.24.48-.48.48-.96.24-.96.24-.72.24-.24.24-.24h1.2l.24.24.72.24h.48l.24-.24.48-.48.24-.48.24-.48.24-.24v-.72l.24-.48v-.96l.24-.24.48-.24.48-.24.96-.239h1.2l.959-.24.96-.48.48-.24.24-.24h.96l.24-.24.24-.24v-.72l.24-.96.48-.72v-.96l.24-.24.24-.24.48-.48h.72l.48.24h.96l1.2.24.719-.24.72-.24.72-.48.48-.48v-.24l.48-.72.24-.48.24-.72v-1.44l-.24-.72-.24-.479v-1.2l-.24-.24-.24-.72v-.48l-.24-.48v-.24l.24-.24.48-.24.48-.24.24-.24.72-.72.24-1.2.24-.72.24-.72.24-.72v-.96h.24l.48-.24h.24l.48-.24.72-.24.96-.48.48-.24.479-.24.24-.24.24-.24.24-.479v-.48l.48-.72v-.48l-.24-.48.24-.48v-.24h1.68l.72-.48h.96l.72-.24h.48l.72-.24.48-.72.24-.24.24-.24.96-.24v-.24l.719-.24h1.2l.24.24.24.48.24.24.24.24h.72l.48-.24.24-.24.48-.72.24-.72.24-.96v-.72l.24.24v.24l.24.72.24.72.24.48.24.72.24.24z", + center: [450, 462], + defaultColor: "#2E8B57", + produksikomoditas: "25.229", + }, + { + id_kecamatan: 41, + name: "Wringin", + path: "M229.175 283.416h1.68l.48-.24h.48l.24.24h.24l.24.24h.48l.24.24.24.24v.72l.24.24.24.24v.96h.239l.24.24h.24l.24.24h.24l.48.24.24.24.24.48v.24l.24.24v.96l-.24.24-.24.72v.24h-.24l-.48.48v.48l.48.48.24.24h.24l.48.24h.48l.24.24.24.24.24.24h.72l.24-.24.48-.24v-.24l.72.24.24.24h.48l.24-.24h1.44l.24-.24H243.812l.24-.24h.48l.48.24.24.24h.24l.24.48.24.24h.24l.48-.48.48-.48h.24l.72.24h.24l.72-.24h.48l.48-.24h.96l.24.24h1.679l1.68.72.48.24v.24l.72.24h.72l1.68.959.24.24h.72l.48.24h.96l.24-.24.48-.24h.479l.48.24h.24l.72.24.48.24.48.24v.24h.48l.48-.48.48-.48h.24l.24-.24.24-.24v-1.92l.24-.48v-.24l.24-.24v-.24l.24-.24.48.24.24.24h.24v.24h.24l.24.24.24.24.48.24.72.48.24.24h.719l.24.24h.48l.72.24h1.92l.24.24h.48l1.2.24h.72l.48.24.48.24.96.48.959.24.24.24.72.24h.24l.96.24.24.48.96.72h.96l.24.24v.24l.48.48.24.24h.72l.24-.24.24-.24.24-.48.48-.72H288.687l.72.72 1.92.48.24.48h.24v.24l.24.24.24.24v1.2l.24.24.48.48.96 1.2.96-.24h1.2l.48-.24.48-.24h.479l.96.24h2.88l.48.24.24.24.24.48.72.48.24.24.72.72.24.24.96.96.48.24.959.48.72.24 1.68.479.24.24.24.48.72.96.72.48.72 1.68.24 1.92.24 3.12v.48l.24 1.44.24 1.919.24.96v.24h.24v.24l.48.24h.48l.96-.24h.719l.48.24h.48l.48-.24.72-.24 1.44-1.2.96-.96.96-.72.72-.72.96-.72.72-.24h.959l1.2.24h2.88l1.92.24h2.64l.959-.48.72-.24.24-.48.48-.24.24-.48.48-.24.24-.24h.24l.48-.24 1.2-.48h1.92l.24-.24.24.24h.24l.48-.24h.959l.24-.24h.96l.48.24h.72l.24.24h.24l-.48.72-1.92 1.68-1.2 1.2-.72.96-.48.96h-.24l-.24.24-.24.24-.24.72-.48.48-.24.24v.24l-.48.48v.24h-.24l-.72.24h-.24l-.48-.24h-.72l-.24.24-.48.72h-.24l-.24.24v.72l-.24.24h-.24l-.239-.24-.24-.48h-1.44v.48l.24.48.24.24-.24.24v.24h-.72l-.24.48v.24l.24.24.24.24.48.48v.96l-.24.24-.24.24v.48l.48.48.24.72v.959l.24.48v1.2l.48.48v.72l-.48.24v.24l-.24.48v.48l-.24.24v.24l-.24.24v.24l-.24.24.24.24h.24-.24l-.48.24-.48.48-.48.24-.24.48v.72l-.24.72v.24l-.24.72-.24.48v.48l-.24.24v.239h-.48l-.48.24-.48.24-.24.48-.72 1.2v.48l.48.96.24 1.2.24.48v.24l.24.48v1.2l-.72 1.2-.24.24v.72l-.24.72-.24.24-.24-.24-.72-.24v.48l-.24.48h.24v.24l.24 1.199v.24l-.24.24-.24.24v.96l-.24.24h-.24l-.479-.24h-1.2l-.24.24.24.24.24.48.24.24.24.24h.24l.48.24v.48h-.24v.24h-1.68v1.2l.24.24.24.24h.24l1.44.48-.24.24-.24.48h-.24l-.48.24-.72.24v.24l.24.72-.24.24-.24.24v.48l-.24.48v.24l-.24.48v.959l.24.48.96 1.2-.24.24v.96l.24.48.24.24.24.48.24.48.24.24.48.24.24.48v.24h.24l.72.48-.72.96-.48.48-1.2.72-1.68.72h-.24v.48l-.24.24-.24.24v.96h-.24V377.967l-.24.96v1.2h-.24l-.48-.96h-1.2l-.48-.48-.96-.24-.96.24-.959-.24-.72-.24-1.2-.96-1.92.24h-1.2l-.72-.24-.96.24-.48.24-.24-.48-.48-.24-.48-.24-.24.24-.479-.72h-.72l-.24.24v1.2h-.48l-.24.24v.24l.24.48v.24l.24.72v1.44l-.24.24-.24.96-.24.48-.24.72v1.44l.24.72v.24l.24.96.24.48-.24.48v.48l-.24.24-.24.48v.239l-.48-.24v.24h-.72l-.48.48-.48.48V393.807h-.24l-.24.24-.24.24h-.48l-.24.24h-.72v-.24l-.24-.24h-.96l-.24-.24h-.24l-.24.24h-.24v.24h-.959l-.24.24h-8.879l-.48.24h-1.92l-.72-.24h-.48v-.24l.24-.24h.48v-.24h-1.92l-.72-.24-1.2.24h-1.919l-1.2.24h-1.2l-.72-.72-.96-.72-.24-.24-.72-.24-.48-.72-.48-.48v-.48l-.24-.96.24-1.68v-.24l.24-.48.24-.48h.24l.48-.48h.24l.48-.96h.24v-1.2l-.72-.48-.48-.48-.72-.24-.96-.48-.72-.24h-.24l-.72-.48v.24l-.719.24-.96.24v.24l-.96.24-.72.24h-.24l-.24.24-.24.24-.24.24h-.72v.24h-.48l-.24-.24-.24-.24v-.72l-.24-.24v-1.68l-.24-.72.24-.24v-.24h-.48l-.48-.24h-.24l-.96-.24-1.199-.24-.72-.24-1.92-.479-1.68-.24-1.68-.48-1.92-.24-1.199-.24v-.24l.24-.24v-.72l1.44-.96.72-.72-.48-.24-.48-.72-1.68-1.2-.24.24-.48.48h-.24l-.24.24-.48.48-.72.48v-.24l-.72-.96-.48-.48-.24.24-.24.24-.24.24-.24.24-.24.24-.24.24-.24.24h-.24l-.24.24h-.96l.24-.48v-.72l.24-1.2v-.48l.24-1.68v-.24l.48-1.44.24-.24.48-.24v-.24l.24-.24h.24v-.24l-.24-.479v-.48l.24-1.44v-.48l.24-.48v-.48l-.24-.48h-.24l-.24-.24h-.24l-.24.24h-.72l-.48.24-.24.24-.72.72H241.894l-.24.24h-.24l-.24.24-.72.48h-.24v.24l.24.72h.24v.24h-.24v.24l-.24.48-.24-.48-.48-.24-.48-.24-.48-.24h-.24l-.96-.24h-.72l-.48.24-1.199.48h-.24v.24l-.24-.24-.24-.24h-.24v-.48h-.24l-.24-.24h-1.68v-.48h-.96v-1.44l.24-.48v-.96h-.24l-.24-.24v-.72l-.24-.24v-.96l-.24-.72-.24-.24v-.72l-.24-.48v-.72l-.24-.48v-.48l.24-.719.24-.96.24-.72.24-.48v-.96l-.48-.24-.48-.24h-.48l-.24-.24h-.48l-.24-.24h-.48l-.48-.24h-.24v-.24h-.48l-.239-.24h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24h-.24l-.24-.24h-.24v-.24h-.24v-.24h-.24v-.24h-.48v-.24h-.24v-.24h-.24v-.24h-.24l-.24-.24h-.24v-.24h-.24v-.24h-.24v-.24h-.24l-.24-.24h-.24v-.24h-.24l-.24-.24-.24-.24h-.24l-.48-.48h-.48l-.48-.24h-.96l-.239.24v-.48l.24-.24.72-.48.24-.48.24-.24.24-.239.24-.48.24-.24v-.48l-.24-.24-.24-.48v-.24l-.24-.48v-.72l-.24-.72v-.72l-.24-.72v-1.68l-.24-.24-.24-.24v-.72l-.24-.72v-1.68l-.24-.48-.24-.719-.24-.96-.24-.96v-.72l-.24-.96-.24-.96v-.96l.48-.72.24-.72.24-.48.24-.48.48-.48.48-.72.24-.48.48-.48.24-.48v-.48l.24-.24v-.479l-.24-.48v-.48l-.24-1.2v-.72l.24-.72V311.013h.48l.24-.24.72-.24h.48l.72-.24h.72l.24-.24h.24l.24-.24.24-.48.24-.24v-.48l.24-.48v-.719l.24-.24.24-.48.24-.24.72-.48.479-.24.48-.48.48-.24.24-.48v-.24l.24-.24v-2.16l-.24-.48.24-.72v-.24l.24-.24.24-.48v-2.88l-.24-.72v-.719l-.24-.48-.24-.48v-1.2l.24-.24v-.48l-.24-.48-.48-.48-.24-.24v-.24l-.24-.48.24-.48.48-.96v-1.2l-.48-.96-.24-.72-.24-.48.24-.48.24-.96.24-.479.24-.24.24-.48h.24v-.24l.24-.24h.96l.24.24.72.48z", + center: [275, 342], + defaultColor: "#F74300", + produksikomoditas: "20.440", + }, + { + id_kecamatan: 42, + name: "Taman Krocok", + path: "M353 316.533h5.76l2.16-.72 1.2-.48h.24l.96 2.16.72 2.16v.72l.24 1.44.24.48.24.48v.24l.24.48.24.24v.24l.24.48h.24l.48.72.24.48h.24l.24.24h.24l.24.24h.24v.48h.24v.24l.24.24v.24l.48.48.24.48H370.038v.96l.24.48v.479l-.24.24v.24h-.24v.48l-.24.24v1.44l.24.48.24.24.96.48h.24l.72-.48.24-.24h.72l.24-.24.24-.24v-.24l.24-.24.24-.24.48-.48h.72l1.44-.24.24-.24h.72l.24-.24.959-.24h2.88l.24.24h.24l.48.48.72.72.48.24h.72l.72.24.48.24.48.24.72.48v1.2l-.24.24-.24.48-.24.24v1.2l.24-.24.24-.24h.48l.24-.24h.479l.48-.24.72-.48.48-.48.24-.24.24-.24v-.24l.48-.48.48-.48h3.84l.72-.24.72-.24 2.159-.48 3.36-.96h.24l2.16-.72.48-.24 1.679-.48 1.68-.72.96-.24 1.44.24h.48l.24.24.24.24.24.24.24.48.24.24v.24h.24l.24.24h.24l.24.24.24.24.24.24h.24l.24.24.48-.24h.479l.24-.48.48-.24.48-.48.24-.24.24-.48.48-.96.24-.72.24-.96.24-.48v-.72l.24-.48.72-.96.24-.48v-.24h.24l.72-.24h.24l.48-.24h1.92l.24.24.48.24.479.24.24.24.48.96.48.72v.48l-.48.48-.24.48-.24 1.2-.24 1.2.24.72.24.48.48.48.24.48.24.24.24.72.24.24.24.24.48.24.48.48.72.72.72.72.72.72v.96h.24l.96.72.96.72.24.48.24 1.44.24.24.48.24.959.719.96.48 2.16 2.4.24.48.24.24h.24l.24.24h1.44l.24.24h.24l.24.24.24.48.24.48.24.72.24.24.24.72.24.24.24.48.48.24 1.199.24h.96l.48-.24h1.68l.48-.24.96-.24.48-.24h3.359l.96.24h.24l.72.48.48.48.48.48.96.24h.72l.72.24.24.24H459.55l.479.24.24.48h.48l.24.24h.24l.24.24h.48l.72-.72.24-.24.96-.48h.24l.24.24h.48l.24-.24h.24l.24-.24.48.24h.24l.72-.72.24-.24.48-.24.48-.24h.24v-.24l.24-.24v-.24h.479l.48.24.48.24.24.24h1.44l.24-.24h.72l.48.24.48.24.24.24v.48h.24l.48.24h.72l.48-.24.24-.24.72-.72.24-.24.24-.24.24-.24.719-.24.96-.24h.72l.24.24.48.24.72.24.48.24v.48h.24l.72.24.48.24h.24l.24-.24h1.2v.24h.24l.48.24.24-.24.24-.24.24-.24.24-.24H487.865l.24-.24.24-.24.48-.48.48-.48.24.72v2.88l-.48.72-.48.72-.72.24-.48.719-.24.24-.24.24V357.33l-.24.48-.48 1.2-.72.48-.72.24-.96.24-.48.24v.72l.24.24h.24l.72.24.24.48v.48l-.24.48-.48.48-.72.96-.96.72h-.24l-.72.48-.96.719-.48.24-.24.48-.48.24-.719.48v.24l-.24.24-.24.72-.96 1.2-.72.72-.24.24-.48.48-.24.24-.24.48h.24l.24.24h.24l.24.24v.48l-.72.48-.72.24-1.68.48-.96.48h-2.399l-.96.48-.96.96-.96.24-.48.24h-.48l-.24.24h-.48l-.48.24-.24.239h-.24v1.68l.48.72.48.72v.96l-.24.48-.24.24-.96.24h-.24l-.48.24-.24.24v.24l-.24.48v.24l-.24.24-.96.24H460.03l-.24-.24-.48-.24-.24-.48-.24-.24-.24-.24-.72-.24h-.48l-.48.24h-.24l-.24.48-.48.24-.72.72h-.24l-.48.48-.24.24v.48l-.48.48v.24l-.48.48h-.96l-.48-.24-1.199-.48h-.48l-.96-.24-1.68-.24-1.44.48-.48.48-.24.48v1.68l.24.24v.719l.72.96.24.24.48.24v.24l.48.24v.72l-.48.72v.24l-.48.24v.72l-.24.96-.24.72-.48.72-.24.24-.48.24h-.72l-.24-.24-.24-.24-.24-.48-.24-.24H442.032l-.72.24v.24l-.96.24-.24.24-.24.24-.48.72-.72.24h-.48l-.72.24h-.96l-.72.48h-1.68v.24l-.24.48.24.48v.48l-.479.719v.48l-.24.48-.24.24-.24.24-.48.24-.48.24-.96.48-.72.24-.48.24h-.24l-.48.24h-.24v.96l-.24.72-.24.72-.24.72-.24 1.2-.72.72-.24.24-.48.24-.48.24-.24.24v.24l.24.48v.48l.24.72.24.24V413.724l.24.48.24.72v1.44l-.24.72-.24.48-.48.72v.24l-.48.48-.719.48-.72.24-.72.24-1.2-.24h-.96l-.48-.24h-.72l-.48.48-.24.24-.24.24v.96l-.48.72-.24.96v.72l-.24.24-.24.24h-.96l-.24.239-.48.24-.959.48-.96.24h-1.2l-.96.24-.48.24-.48.24-.24.24v.96l-.24.48v.72l-.24.24-.24.48-.24.48-.48.48-.24.24h-.48l-.72-.24-.24-.24H406.516l-.24.24-.24.24-.24.72-.24.96-.48.96-.48.48-.48.24h-.24l-.72.24-.72.48h-.72l-.24-.24v-.24l-1.68-.24-.96-.48h-.24l-1.199-.48h-.24l-.24-.24-.48-.24-.24-.24-.24-.48-.48-.24-.48-.24-.72.48-.24.24h-.48l-.72-.48-.24-.24-.48-.24h-.24l-.24.24-.24.24-.24.24-.24-.24-.24-.24-.24-.48-.24-.48-.24-.24-.48-.24-.72.72-.239.24-.24.24h-.24l-.24-.24-.24-.24v-.24l.24-.24.48-.48.24-.24.24-.24-.24-.24-.48-.24v-.24h-.48l-.24.24-.48.48-.24.24h-.48l-.48-.24-.24-.48v-.48l-.24-.24-.24-.24h-.72l-.48-.24-.96.24v-.72h-.24v-1.68l.24-1.2.24-2.16.24-3.12v-.72h.72v-.24h-.24l-.48-.24v-.24l-.24-.24-.24-.24h.24v-.24l.24-.72.24-.96v-1.439l.24-.96v-2.88l.24-.48V405.565h-.72l-1.92-.24-1.919-.24h-1.2l-.24-.24-.24-.96v-.24h-.24l-.72.48-.48.48-.24.72-.24.24-.24.24.24.96-.24.48-.24.24v.24l.24.48v.48l-.24-.48-.96-.96-.48-.48-.24-.24v-.72h-.24l-.24-.24-.48-.24h-.72l-.24-.24-.24-.24-.24-.48h-.24l-.479-.24h-.24v.24l-.24.24v.96h-1.2l.24-.72.48-1.2.24-.48.24-.96h.24l-.24-.719v-.24l-.48-.24-.24-.48v-1.2l-.48-1.44-.24-.72-.24-.48-.48-.96-.72-1.68-.24-.48-.24-.96-.72-2.16-.48-1.679-.72-1.44-.48-.96-.96-1.92-.24-.72-.24-.48v-.48l-.24-.24-.48-1.2-.719-1.92-.24-.24v-.48l-.24-.719-.24-.24v-.48l.24-.72v-.24l.24-1.68-.24-1.2-.24-1.2-.24-.48-.24-.24-.48-.24h-.24l-.48-.72v-.72l.48-1.2v-.96l-.24-.24-.72-.959-.24-.72-.24-.24-.24-.96-.24-.72-.24-.72v-.48l.24-.24v-2.64l.24-.24-.24-.48v-.48l-.24-.24v-.48l-.24-.24v-.24l-.24-.48-.24-.48v-2.879l-.24-.24v-.48l-.24-.48v-1.68l-.72-1.2v-.48l-1.2-1.68-.96-.72-.719-.96-2.16-1.92-1.2-.719-.72-.72h-.24l-.24-.24-1.44-1.2-1.68-1.2-.24-.24-.96-.72-.959-.72h-.72l-1.68-.24h-2.16l-.96-.24-.48-.24-1.44-.24-.72-.24h-.719l-.48-.24h-.96l.24-.24v-.24l.24-.24v-.24l.24-.24v-.48l.24-.48v-.24l.48-.24v-.72l-.48-.48v-1.2l-.24-.479v-.96l-.24-.72-.48-.48v-.48l.24-.24.24-.24v-.96l-.48-.48-.24-.24-.24-.24v-.24l.24-.48h.72v-.24l.24-.24-.24-.24-.24-.48v-.48h1.44l.24.48.24.24h.24l.24-.24v-.72l.24-.24h.24l.48-.72.24-.24h.72l.48.24h.24l.72-.24h.24v-.24l.48-.48v-.24l.24-.24.48-.48.24-.72.24-.239.24-.24h.24l.48-.96.72-.96 1.199-1.2 1.92-1.68.48-.72.72.48.48.48.24.24.24.24.48.24.72.24.72.24.72.48h1.2l.719.24h1.2z", + center: [410, 375], + defaultColor: "#2E8B57", + produksikomoditas: "14.283", + } + ]; + + +export function Map() { + const svgRef = useRef(null); + const containerRef = useRef(null); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); + const [containerDimensions, setContainerDimensions] = useState({ width: 0, height: 0 }); + const [selectedKecamatan, setSelectedKecamatan] = useState(null); + const [komoditasData, setKomoditasData] = useState([]); + + const [selectedYear, setSelectedYear] = useState('all'); // Default 'all' atau tahun terbaru misal '2024' + const [availableYears, setAvailableYears] = useState([]); // Untuk opsi dropdown + + const [pins, setPins] = useState(dataKomoditas); + const [activePinFilters, setActivePinFilters] = useState>(new Set(['all'])); + const [selectedPin, setSelectedPin] = useState(null); + const [showPins, setShowPins] = useState(true); + const [isBrowser, setIsBrowser] = useState(false); + const [kecamatanData, setKecamatanData] = useState([]); + const [mapError, setMapError] = useState(null); + + const mapInstanceRef = useRef({ + svg: null as d3.Selection | null, + g: null as d3.Selection | null, + zoom: null as d3.ZoomBehavior | null, + paths: null as d3.Selection | null, + mapBounds: { minX: 0, maxX: 0, minY: 0, maxY: 0 } + }); + + useEffect(() => { setIsBrowser(true); }, []); + + // 1. Fetch Kecamatan +// 1. Fetch Kecamatan DAN Data Penduduk (Gabungan) +useEffect(() => { + async function fetchAndMerge() { + try { + // Kita panggil dua API sekaligus + const [resKecamatan, resPenduduk] = await Promise.all([ + fetch('/api/kecamatan'), + fetch('/api/penduduk') + ]); + + const dataKecamatan = await resKecamatan.json(); + const dataPenduduk = await resPenduduk.json(); + + console.log("✅ Data Penduduk Loaded:", dataPenduduk); // Cek isinya + + const merged = staticKecamatan.map(kec => { + // Cari data map (koordinat, gambar, dll) + const infoMap = dataKecamatan.find((item: any) => item.id_kecamatan === kec.id_kecamatan); + + // Cari data statistik (penduduk, laju) berdasarkan NAMA KECAMATAN + // Kita pakai .trim() dan toLowerCase() biar aman dari spasi nyasar (seperti "Binakal ") + const stats = dataPenduduk.find((item: any) => + item.nama_kecamatan.trim().toLowerCase() === kec.name.toLowerCase() + ); + + // Ambil nilai penduduk dari API /api/penduduk (stats) + // Kalau tidak ketemu, coba cari di infoMap (fallback) + const rawPenduduk = stats?.jml_penduduk || infoMap?.jml_penduduk || "-"; + const rawLaju = stats?.laju_pertumbuhan || infoMap?.laju_pertumbuhan || "-"; + + // Format Penduduk + let populationDisplay = "-"; + if (rawPenduduk !== "-" && rawPenduduk !== null && rawPenduduk !== undefined) { + // Hapus titik/koma jika data dari DB berupa string "12.000" biar bisa diparse + const cleanNum = String(rawPenduduk).replace(/\./g, '').replace(/,/g, ''); + const num = Number(cleanNum); + + if (!isNaN(num)) { + populationDisplay = num.toLocaleString('id-ID'); + } else { + populationDisplay = rawPenduduk; // Tampilkan mentah jika gagal convert + } + } + + // Format Laju + let lajuDisplay = "-"; + if (rawLaju !== "-" && rawLaju !== null && rawLaju !== undefined) { + lajuDisplay = rawLaju + '%'; + } + + return { + ...kec, + title: infoMap?.nama_kecamatan || `Kecamatan ${kec.id_kecamatan}`, + gambar: infoMap?.gambar || null, + deskripsi: infoMap?.deskripsi || "-", + area: infoMap?.area || "-", + + // Masukkan data yang sudah kita ambil dari tabel penduduk + population: populationDisplay, + jml_penduduk: populationDisplay, + + laju: lajuDisplay, + laju_pertumbuhan: lajuDisplay, + + komoditastertinggi: infoMap?.nama_komoditas + ? (infoMap.produksikomoditas ? `${infoMap.nama_komoditas} (${infoMap.produksikomoditas} ton)` : infoMap.nama_komoditas) + : "-", + }; + }); + + setKecamatanData(merged); + } catch (err) { + console.error('Gagal ambil data:', err); + // Fallback ke data statis jika error + setKecamatanData(staticKecamatan as any); + } + } + fetchAndMerge(); +}, []); + + // 2. Fetch Panen & Update Pins +// 2. Fetch Panen & Update Pins (DIPERBARUI) +useEffect(() => { + async function fetchPanen() { + try { + const res = await fetch('/api/map'); + const hasilPanen = await res.json(); + + // Ambil daftar tahun unik untuk filter + const years = Array.from(new Set(hasilPanen.map((item: any) => item.tahun_panen?.toString()))) + .filter(Boolean) + .sort((a: any, b: any) => b - a); // Sort descending + setAvailableYears(years as string[]); + + const enhanced = dataKomoditas.map((pin) => { + // MENCARI DATA DARI DATABASE YANG COCOK DENGAN PIN INI + const match = hasilPanen.find((data: any) => { + + // 1. Cek Kesesuaian Lokasi (Kecamatan) + // Pastikan pin ini berada di kecamatan yang sama dengan data + const isLocationMatch = + data.id_panen === pin.id_panen || + pin.id_panen?.includes(data.nama_kecamatan?.toLowerCase()) || // Cara lama + pin.kec?.toLowerCase() === data.nama_kecamatan?.toLowerCase(); // Jika ada properti kec + + // 2. Cek Kesesuaian Komoditas (DISINI KUNCINYA) + // Kita cek apakah ID komoditasnya 6 (Tembakau) ATAU namanya cocok + const isKomoditasMatch = + (pin.category === 'tembakau' && data.id_komoditas === 6) || // Cek ID 6 Khusus Tembakau + (pin.category === 'padi' && data.id_komoditas === 1) || // Cek ID 1 Padi + (pin.category === 'jagung' && data.id_komoditas === 2) || // Cek ID 2 Jagung + data.nama_komoditas?.toLowerCase() === pin.category; // Fallback: Cek nama string + + // 3. Cek Filter Tahun + const isYearMatch = selectedYear === 'all' || data.tahun_panen?.toString() === selectedYear; + + return isLocationMatch && isKomoditasMatch && isYearMatch; + }); + + // --- RETURN STATEMENT ADDED HERE --- + if (match) { + return { + ...pin, + name: match.nama_komoditas, + title: match.nama_komoditas || pin.title, + luaspanen: match.luas_panen?.toString() || "-", + produksi: match.produksi?.toString() || "-", + produktivitas: match.produktivitas?.toString() || "-", + kec: match.nama_kecamatan || "Unknown", + komoditastertinggi: match.produksi ? `${match.nama_komoditas} (${match.produksi} ton)` : "-" + }; + } + + // Jika tidak ada data di tahun tersebut, kembalikan default + return { + ...pin, + name: pin.category, + title: pin.title || `${pin.category} (No Data)`, + luaspanen: "-", produksi: "-", produktivitas: "-", + kec: "Unknown", + }; + }); + + setKomoditasData(enhanced as EnhancedPinData[]); + setPins(enhanced as PinData[]); + + } catch (err) { + console.error("Gagal ambil data hasil panen:", err); + } + } + + fetchPanen(); +}, [selectedYear]); + + // Resize Handler + useEffect(() => { + if (containerRef.current) { + setContainerDimensions({ + width: containerRef.current.clientWidth, + height: containerRef.current.clientHeight + }); + } + }, [isSidebarOpen]); + + useEffect(() => { + if (isSidebarOpen) setSelectedPin(null); + }, [isSidebarOpen]); + + // --- LOGIC ZOOM TO PIN (ROBUST) --- + const zoomToPin = (x: number, y: number) => { + const svg = mapInstanceRef.current.svg; + const zoom = mapInstanceRef.current.zoom; + + if (!svg || !zoom || typeof x !== 'number' || typeof y !== 'number') return; + + // Ambil ukuran SVG secara real-time + const svgNode = svg.node(); + if (!svgNode) return; + const { width, height } = svgNode.getBoundingClientRect(); + + if (width === 0 || height === 0) return; + + console.log(`Zooming to: ${x}, ${y} | Available Viewport: ${width}x${height}`); + + const scale = 4; + + // Rumus Center D3 Manual + const tx = (width / 2) - (x * scale); + const ty = (height / 2) - (y * scale); + + const transform = d3.zoomIdentity + .translate(tx, ty) + .scale(scale); + + svg.transition() + .duration(1000) + .ease(d3.easeCubicOut) + .call(zoom.transform, transform); + }; + + const handlePinSelect = (pin: PinData) => { + const detail = pin as EnhancedPinData; + console.log("Pin Di-klik (Map.tsx):", detail); + + if (detail) { + setSelectedPin(detail); + setSelectedKecamatan(null); + setIsSidebarOpen(false); // 1. Sidebar mulai menutup + + // 2. DELAY ZOOM: Menunggu sidebar selesai animasi (300ms) + setTimeout(() => { + if (detail.position && detail.position.length === 2) { + zoomToPin(detail.position[0], detail.position[1]); + } + }, 350); + } + }; + + const togglePinFilter = (categoryId: string) => { + const newFilters = new Set(activePinFilters); + if (categoryId === 'all') { + if (newFilters.has('all')) newFilters.clear(); + else { newFilters.clear(); newFilters.add('all'); } + } else { + newFilters.delete('all'); + if (newFilters.has(categoryId)) newFilters.delete(categoryId); + else newFilters.add(categoryId); + if (newFilters.size === 0) newFilters.add('all'); + } + setActivePinFilters(newFilters); + if(mapInstanceRef.current.svg) updatePinVisibility(mapInstanceRef.current.svg, newFilters, showPins); + }; + + const toggleSidebar = () => setIsSidebarOpen(!isSidebarOpen); + + const zoomToKecamatan = (kecamatan: KecamatanData) => { + const { svg, zoom } = mapInstanceRef.current; + if (!svg || !zoom || !containerRef.current || !kecamatan.path) return; + + const bounds = calculatePathBounds(kecamatan.path, kecamatan.center); + const transform = calculateZoomTransform( + containerRef.current.clientWidth, + containerRef.current.clientHeight, + bounds + ); + + if (transform) { + svg.transition().duration(750).call(zoom.transform, transform); + } + }; + + const handleSelectKecamatan = (kecamatan: KecamatanData) => { + if (!mapInstanceRef.current.svg || !mapInstanceRef.current.paths) return; + + mapInstanceRef.current.paths + .transition().duration(300) + .style("fill", d => d.defaultColor || "white"); + + const selectedPath = mapInstanceRef.current.paths.filter(d => d.name === kecamatan.name); + if (selectedPath.size() > 0) { + selectedPath.transition().duration(300).style("fill", "#CCEEDB"); + setSelectedKecamatan(kecamatan); + setSelectedPin(null); + zoomToKecamatan(kecamatan); + } + }; + + const resetView = () => { + const { svg, zoom, g, mapBounds } = mapInstanceRef.current; + if (!svg || !zoom || !containerRef.current) return; + + setSelectedPin(null); + setSelectedKecamatan(null); + + g!.selectAll("path") + .transition().duration(300) + .style("fill", d => (d as any).defaultColor || "white"); + + resetPins(svg); + updatePinVisibility(svg, activePinFilters, showPins); + + const initialTransform = calculateZoomTransform( + containerRef.current.clientWidth, + containerRef.current.clientHeight, + mapBounds + ); + if(initialTransform) { + initialTransform.x += 230; + initialTransform.y -= 150; + svg.transition().call(zoom.transform, initialTransform); + } + }; + + // --- RENDER MAP (D3) --- + useEffect(() => { + if (!isBrowser || !kecamatanData.length || mapError) return; + + const createMap = () => { + try { + if (!containerRef.current || !svgRef.current) return; + + const { clientWidth: width, clientHeight: height } = containerRef.current; + setContainerDimensions({ width, height }); + d3.select(svgRef.current).selectAll("*").remove(); + + const svg = d3.select(svgRef.current) + .attr("viewBox", [0, 0, width, height]) + .style("background", "#f8fafc"); + + mapInstanceRef.current.svg = svg as any; + + svg.append("rect") + .attr("width", width) + .attr("height", height) + .attr("fill", "#f9fafb") + .on("click", () => { + setSelectedPin(null); + setSelectedKecamatan(null); + }); + + const g = svg.append("g"); + mapInstanceRef.current.g = g as any; + + // Hitung Bounds Map + let minX = Infinity, maxX = -Infinity, minY = Infinity, maxY = -Infinity; + kecamatanData.forEach(kec => { + const matches = kec.path.match(/[0-9]+,[0-9]+/g); + if (matches) { + matches.forEach(pt => { + const [x, y] = pt.split(',').map(Number); + minX = Math.min(minX, x); maxX = Math.max(maxX, x); + minY = Math.min(minY, y); maxY = Math.max(maxY, y); + }); + } + }); + + // Fallback jika bounds invalid + if (minX === Infinity) { minX = 0; maxX = 800; minY = 0; maxY = 600; } + + minX -= 100; minY -= 100; maxX += 100; maxY += 100; + mapInstanceRef.current.mapBounds = { minX, maxX, minY, maxY }; + + const zoom = d3.zoom() + .scaleExtent([0.5, 8]) + .extent([[0, 0], [width, height]]) + .on("zoom", (event) => { + g.attr("transform", event.transform); + g.selectAll("path").attr("stroke-width", 1 / event.transform.k); + g.selectAll("text.kecamatan-label").attr("font-size", `${10 / event.transform.k}px`); + g.selectAll(".pin").attr("transform", (d: any) => { + const [px, py] = d.position; + const scale = 1 / event.transform.k; + return `translate(${px}, ${py}) scale(${scale})`; + }); + }); + + mapInstanceRef.current.zoom = zoom; + svg.call(zoom).on("dblclick.zoom", null); + svg.on("dblclick", resetView); + + const paths = g.selectAll("path") + .data(kecamatanData) + .enter().append("path") + .attr("d", d => d.path) + .attr("fill", d => d.defaultColor || "#5b9bd5") + .attr("stroke", "#0B3000") + .attr("stroke-width", 0.5) + .style("cursor", "pointer") + .on("click", (event, d) => { + event.stopPropagation(); + handleSelectKecamatan(d); + }); + + mapInstanceRef.current.paths = paths as any; + + g.selectAll("text") + .data(kecamatanData) + .enter().append("text") + .attr("class", "kecamatan-label") + .attr("x", d => d.center[0]) + .attr("y", d => d.center[1]) + .attr("text-anchor", "middle") + .attr("dominant-baseline", "middle") + .attr("fill", "white") + .attr("font-size", "10px") + .attr("font-weight", "bold") + .attr("pointer-events", "none") + .style("text-shadow", "0px 0px 3px rgba(0,0,0,0.6)") + .text(d => d.name); + + createPins( + svg, + g, + pins, + activePinFilters, + showPins, + containerRef, + handlePinSelect, + zoom + ); + + const initialTransform = calculateZoomTransform(width, height, { minX, maxX, minY, maxY }); + if(initialTransform) { + initialTransform.x += 230; + initialTransform.y -= 150; + svg.call(zoom.transform, initialTransform); + } + + } catch (error: any) { + console.error("Error creating map:", error); + setMapError(error.message); + } + }; + + const timer = setTimeout(createMap, 100); + return () => clearTimeout(timer); + }, [kecamatanData, isBrowser, pins]); + + useEffect(() => { + if(mapInstanceRef.current.svg && containerDimensions.width) { + mapInstanceRef.current.svg + .attr("width", containerDimensions.width) + .attr("height", containerDimensions.height) + .attr("viewBox", [0, 0, containerDimensions.width, containerDimensions.height]); + } + }, [containerDimensions]); + + useEffect(() => { + if(mapInstanceRef.current.svg) { + updatePinVisibility(mapInstanceRef.current.svg, activePinFilters, showPins); + } + }, [activePinFilters, showPins]); + + return ( +
+ + + Grid + +
+ {mapError ? ( +
+

Error: {mapError}

+
+ ) : ( + <> + + {isBrowser && mapInstanceRef.current.svg && ( + <> + + {selectedKecamatan && ( + setSelectedKecamatan(null)} + pinCategories={pinCategories} + /> + )} + {!selectedKecamatan && selectedPin && mapInstanceRef.current.svg && ( + + )} + {mapInstanceRef.current.zoom && ( + + )} + + )} + + )} +
+
+ ); +} \ No newline at end of file diff --git a/src/layout/MapSidebar.tsx b/src/layout/MapSidebar.tsx new file mode 100644 index 0000000..357a660 --- /dev/null +++ b/src/layout/MapSidebar.tsx @@ -0,0 +1,205 @@ +import { useState, useEffect } from 'react'; +import Image from "next/image"; +// Hapus import data statis agar tidak bingung +// import { Kecamatan } from '@/data/kecamatan'; + +// 1. Update Interface Props untuk menerima 'data' +interface SidebarProps { + onSelectKecamatan: (kecamatan: any) => void; + isOpen: boolean; + toggleSidebar: () => void; + data: any[]; // <--- TAMBAHAN: Menerima array data dari Map.tsx +} + +export function Sidebar({ onSelectKecamatan, isOpen, toggleSidebar, data }: SidebarProps) { + const [searchTerm, setSearchTerm] = useState(''); + // Inisialisasi state dengan data kosong atau data dari props + const [filteredKecamatan, setFilteredKecamatan] = useState(data || []); + + // 2. Update useEffect agar bereaksi jika 'data' dari API masuk + useEffect(() => { + // Jika data belum ada (masih loading di parent), jangan lakukan apa-apa + if (!data) return; + + if (searchTerm.trim() === '') { + setFilteredKecamatan(data); // Gunakan data dari props + } else { + const filtered = data.filter(item => + item.name.toLowerCase().includes(searchTerm.toLowerCase()) + ); + setFilteredKecamatan(filtered); + } + }, [searchTerm, data]); // PENTING: Jalankan ulang saat 'data' berubah + + return ( +
+
+ + {/* --- LOGO SECTION --- */} +
+ {isOpen ? ( + <> + + Logo + PANDAWA + + + + ) : ( +
+ +
+ )} +
+ + {/* --- SEARCH BOX --- */} + {isOpen ? ( +
+
+
+ + + +
+ setSearchTerm(e.target.value)} + className="w-full pl-10 pr-10 py-2 bg-gray-100 border border-gray-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 transition-all text-sm" + /> + {searchTerm && ( + + )} +
+
+ ) : ( +
+ +
+ )} + + {/* --- KECAMATAN LIST (Bagian Penting) --- */} +
+

+ Daftar Kecamatan +

+
    + {filteredKecamatan.map((item: any) => { + // --- LOGIC FORMAT ANGKA (Agar tidak NaN) --- + // Cek data dari DB (jml_penduduk) atau fallback ke static (population) + const rawPop = item.jml_penduduk || item.population || "-"; + let displayPop = rawPop; + + // Validasi dan format angka + if (rawPop !== "-" && rawPop !== undefined && rawPop !== null) { + // Bersihkan karakter non-angka (jika ada titik/koma sebelumnya) + const cleanNum = String(rawPop).replace(/\./g, '').replace(/,/g, ''); + const num = Number(cleanNum); + + // Jika valid number, format ke ribuan + if (!isNaN(num)) { + displayPop = num.toLocaleString('id-ID'); + } + } + // ------------------------------------------ + + return ( +
  • onSelectKecamatan(item)} + title={!isOpen ? item.name : ''} + > + {isOpen ? ( +
    +
    +
    +

    {item.name}

    +

    + Populasi: {displayPop} jiwa +

    +
    +
    + ) : ( +
    + + {item.name ? item.name.slice(0, 2).toUpperCase() : "??"} + +
    + )} +
  • + ); + })} + + {/* Pesan jika tidak ada hasil pencarian */} + {filteredKecamatan.length === 0 && isOpen && ( +
  • +
    + + + +

    Tidak ada kecamatan yang sesuai

    +
    +
  • + )} +
+
+ + {/* --- FOOTER --- */} +
+ {isOpen ? ( +
+
+

Peta Interaktif Bondowoso

+

Data BPS Kabupaten Bondowoso

+
+
?
+
+ ) : ( +
+
?
+
+ )} +
+
+
+ ); +} \ No newline at end of file diff --git a/src/layout/SidebarWidget.tsx b/src/layout/SidebarWidget.tsx new file mode 100644 index 0000000..3548ffb --- /dev/null +++ b/src/layout/SidebarWidget.tsx @@ -0,0 +1,17 @@ +import React from "react"; + +export default function SidebarWidget() { + return ( +
+

+ PANDAWA Dashboard +

+

+ Sistem Informasi Pemetaan Sumber Daya Alam +

+
+ ); +} diff --git a/src/lib/db.ts b/src/lib/db.ts new file mode 100644 index 0000000..9dc0285 --- /dev/null +++ b/src/lib/db.ts @@ -0,0 +1,13 @@ +import mysql from 'mysql2/promise'; + +export const db = mysql.createPool({ + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + port: Number(process.env.DB_PORT) || 4000, + // Opsi SSL di bawah ini WAJIB ada agar bisa nyambung ke TiDB + ssl: { + rejectUnauthorized: true + } +}); \ No newline at end of file diff --git a/src/lib/generated/prisma/client.d.ts b/src/lib/generated/prisma/client.d.ts new file mode 100644 index 0000000..bc20c6c --- /dev/null +++ b/src/lib/generated/prisma/client.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/src/lib/generated/prisma/client.js b/src/lib/generated/prisma/client.js new file mode 100644 index 0000000..fa52f0c --- /dev/null +++ b/src/lib/generated/prisma/client.js @@ -0,0 +1 @@ +module.exports = { ...require('.') } \ No newline at end of file diff --git a/src/lib/generated/prisma/default.d.ts b/src/lib/generated/prisma/default.d.ts new file mode 100644 index 0000000..bc20c6c --- /dev/null +++ b/src/lib/generated/prisma/default.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/src/lib/generated/prisma/default.js b/src/lib/generated/prisma/default.js new file mode 100644 index 0000000..fa52f0c --- /dev/null +++ b/src/lib/generated/prisma/default.js @@ -0,0 +1 @@ +module.exports = { ...require('.') } \ No newline at end of file diff --git a/src/lib/generated/prisma/edge.d.ts b/src/lib/generated/prisma/edge.d.ts new file mode 100644 index 0000000..274b8fa --- /dev/null +++ b/src/lib/generated/prisma/edge.d.ts @@ -0,0 +1 @@ +export * from "./default" \ No newline at end of file diff --git a/src/lib/generated/prisma/edge.js b/src/lib/generated/prisma/edge.js new file mode 100644 index 0000000..c26cce4 --- /dev/null +++ b/src/lib/generated/prisma/edge.js @@ -0,0 +1,297 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + PrismaClientKnownRequestError, + PrismaClientUnknownRequestError, + PrismaClientRustPanicError, + PrismaClientInitializationError, + PrismaClientValidationError, + getPrismaClient, + sqltag, + empty, + join, + raw, + skip, + Decimal, + Debug, + objectEnumValues, + makeStrictEnum, + Extensions, + warnOnce, + defineDmmfProperty, + Public, + getRuntime, + createParam, +} = require('./runtime/edge.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError; +Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError +Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError +Prisma.PrismaClientInitializationError = PrismaClientInitializationError +Prisma.PrismaClientValidationError = PrismaClientValidationError +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = sqltag +Prisma.empty = empty +Prisma.join = join +Prisma.raw = raw +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = Extensions.getExtensionContext +Prisma.defineExtension = Extensions.defineExtension + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + + + +/** + * Enums + */ +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + first_name: 'first_name', + last_name: 'last_name', + email: 'email', + email_verified: 'email_verified', + password: 'password', + image: 'image', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.DetailScalarFieldEnum = { + id_detail: 'id_detail', + id_tax: 'id_tax', + phone: 'phone', + bio: 'bio', + city: 'city', + country: 'country', + post_kode: 'post_kode' +}; + +exports.Prisma.AccountScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + id_provider: 'id_provider', + id_token: 'id_token', + type: 'type', + scope: 'scope', + provider: 'provider', + expires_at: 'expires_at', + token_type: 'token_type', + access_token: 'access_token', + refresh_token: 'refresh_token', + session_state: 'session_state' +}; + +exports.Prisma.SessionScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + session_token: 'session_token', + expires: 'expires' +}; + +exports.Prisma.VerificationTokenScalarFieldEnum = { + identifier: 'identifier', + token: 'token', + expires: 'expires' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Account: 'Account', + Session: 'Session', + VerificationToken: 'VerificationToken', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; +/** + * Create the Client + */ +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "C:\\xampp\\htdocs\\PANDAWA-main\\src\\lib\\generated\\prisma", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "windows", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "C:\\xampp\\htdocs\\PANDAWA-main\\prisma\\schema.prisma", + "isCustomOutput": true + }, + "relativeEnvPaths": { + "rootEnvPath": null, + "schemaEnvPath": "../../../../.env" + }, + "relativePath": "../../../../prisma", + "clientVersion": "6.6.0", + "engineVersion": "f676762280b54cd07c770017ed3711ddde35f37a", + "datasourceNames": [ + "database" + ], + "activeProvider": "postgresql", + "postinstall": false, + "inlineDatasources": { + "database": { + "url": { + "fromEnvVar": "POSTGRES_PRISMA_URL", + "value": null + } + } + }, + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/lib/generated/prisma\"\n}\n\ndatasource database {\n provider = \"postgresql\"\n url = env(\"POSTGRES_PRISMA_URL\")\n directUrl = env(\"POSTGRES_URL_NON_POOLING\")\n}\n\nmodel User {\n id String @id @default(uuid())\n first_name String?\n last_name String?\n email String? @unique\n email_verified DateTime?\n password String?\n image String?\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n detail Detail?\n accounts Account[]\n sessions Session[]\n\n @@map(\"users\")\n}\n\nmodel Detail {\n id_detail String @id @default(uuid())\n id_tax String @unique\n phone String\n bio String\n city String\n country String\n post_kode String\n\n user User @relation(fields: [id_tax], references: [id])\n\n @@map(\"detail\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n id_user String @map(\"id_user\")\n id_provider String\n id_token String? @database.Text\n type String\n scope String?\n provider String\n expires_at Int?\n token_type String?\n access_token String? @database.Text\n refresh_token String? @database.Text\n session_state String?\n\n user User @relation(fields: [id_user], references: [id], onDelete: Cascade)\n\n @@unique([provider, id_provider])\n @@map(\"account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n id_user String @map(\"id_user\")\n session_token String @unique\n expires DateTime\n\n user User @relation(fields: [id_user], references: [id], onDelete: Cascade)\n\n @@map(\"session\")\n}\n\nmodel VerificationToken {\n identifier String\n token String @unique\n expires DateTime\n\n @@unique([identifier, token])\n @@map(\"token\")\n}\n\nmodel Kecamatan {\n id_kecamatan Int @id @default(autoincrement())\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n nama_kecamatan String @database.VarChar(100)\n deskripsi String @database.Text\n gambar String @database.Text\n area Float\n posisi_x Int\n posisi_y Int\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n penduduk Penduduk[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_kecamatan\")\n}\n\nmodel Penduduk {\n id_penduduk Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n data_tahun Int\n jumlah_penduduk Float\n laju_pertumbuhan String @database.VarChar(30)\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"data_penduduk\")\n}\n\nmodel Komoditas {\n id_komoditas Int @id @default(autoincrement())\n nama_komoditas String @database.VarChar(100)\n posisi_x Int\n posisi_y Int\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n deleted_at DateTime? @map(\"deleted_at\")\n\n kecamatan Kecamatan[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_komoditas\")\n}\n\nmodel HasilPanen {\n id_panen Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_panen Int\n produksi Float\n luas_panen Float\n produktivitas Float\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"hasil_panen\")\n}\n\nmodel PrediksiPanen {\n id_prediksi Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_prediksi Int\n hasil_prediksi Int\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"prediksi_panen\")\n}\n", + "inlineSchemaHash": "1853bf07270b83e04b413ca98e15f38898f36b3969e70379578bf256f552b087", + "copyEngine": true +} +config.dirname = '/' + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"first_name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"last_name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"detail\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Detail\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accounts\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Account\",\"nativeType\":null,\"relationName\":\"AccountToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Session\",\"nativeType\":null,\"relationName\":\"SessionToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Detail\":{\"dbName\":\"detail\",\"schema\":null,\"fields\":[{\"name\":\"id_detail\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_tax\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phone\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bio\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"city\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"country\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"post_kode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[\"id_tax\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Account\":{\"dbName\":\"account\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_user\",\"dbName\":\"id_user\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_provider\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scope\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"provider\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"session_state\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"AccountToUser\",\"relationFromFields\":[\"id_user\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"provider\",\"id_provider\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"provider\",\"id_provider\"]}],\"isGenerated\":false},\"Session\":{\"dbName\":\"session\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_user\",\"dbName\":\"id_user\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"SessionToUser\",\"relationFromFields\":[\"id_user\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationToken\":{\"dbName\":\"token\",\"schema\":null,\"fields\":[{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"identifier\",\"token\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"identifier\",\"token\"]}],\"isGenerated\":false},\"Kecamatan\":{\"dbName\":\"data_kecamatan\",\"schema\":null,\"fields\":[{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deskripsi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"gambar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"area\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"penduduk\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Penduduk\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Penduduk\":{\"dbName\":\"data_penduduk\",\"schema\":null,\"fields\":[{\"name\":\"id_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"data_tahun\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"jumlah_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"laju_pertumbuhan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"30\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Komoditas\":{\"dbName\":\"data_komoditas\",\"schema\":null,\"fields\":[{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"deleted_at\",\"dbName\":\"deleted_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"HasilPanen\":{\"dbName\":\"hasil_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"luas_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produktivitas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"PrediksiPanen\":{\"dbName\":\"prediksi_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +defineDmmfProperty(exports.Prisma, config.runtimeDataModel) +config.engineWasm = undefined +config.compilerWasm = undefined + +config.injectableEdgeEnv = () => ({ + parsed: { + POSTGRES_PRISMA_URL: typeof globalThis !== 'undefined' && globalThis['POSTGRES_PRISMA_URL'] || typeof process !== 'undefined' && process.env && process.env.POSTGRES_PRISMA_URL || undefined + } +}) + +if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) { + Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) +} + +const PrismaClient = getPrismaClient(config) +exports.PrismaClient = PrismaClient +Object.assign(exports, Prisma) + diff --git a/src/lib/generated/prisma/index-browser.js b/src/lib/generated/prisma/index-browser.js new file mode 100644 index 0000000..ceb6fee --- /dev/null +++ b/src/lib/generated/prisma/index-browser.js @@ -0,0 +1,283 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + Decimal, + objectEnumValues, + makeStrictEnum, + Public, + getRuntime, + skip +} = require('./runtime/index-browser.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)}; +Prisma.PrismaClientUnknownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientRustPanicError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientInitializationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientValidationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.empty = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.join = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.raw = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.defineExtension = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + +/** + * Enums + */ + +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + first_name: 'first_name', + last_name: 'last_name', + email: 'email', + email_verified: 'email_verified', + password: 'password', + image: 'image', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.DetailScalarFieldEnum = { + id_detail: 'id_detail', + id_tax: 'id_tax', + phone: 'phone', + bio: 'bio', + city: 'city', + country: 'country', + post_kode: 'post_kode' +}; + +exports.Prisma.AccountScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + id_provider: 'id_provider', + id_token: 'id_token', + type: 'type', + scope: 'scope', + provider: 'provider', + expires_at: 'expires_at', + token_type: 'token_type', + access_token: 'access_token', + refresh_token: 'refresh_token', + session_state: 'session_state' +}; + +exports.Prisma.SessionScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + session_token: 'session_token', + expires: 'expires' +}; + +exports.Prisma.VerificationTokenScalarFieldEnum = { + identifier: 'identifier', + token: 'token', + expires: 'expires' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Account: 'Account', + Session: 'Session', + VerificationToken: 'VerificationToken', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; + +/** + * This is a stub Prisma Client that will error at runtime if called. + */ +class PrismaClient { + constructor() { + return new Proxy(this, { + get(target, prop) { + let message + const runtime = getRuntime() + if (runtime.isEdge) { + message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either: +- Use Prisma Accelerate: https://pris.ly/d/accelerate +- Use Driver Adapters: https://pris.ly/d/driver-adapters +`; + } else { + message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).' + } + + message += ` +If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report` + + throw new Error(message) + } + }) + } +} + +exports.PrismaClient = PrismaClient + +Object.assign(exports, Prisma) diff --git a/src/lib/generated/prisma/index.d.ts b/src/lib/generated/prisma/index.d.ts new file mode 100644 index 0000000..770a4ad --- /dev/null +++ b/src/lib/generated/prisma/index.d.ts @@ -0,0 +1,17780 @@ + +/** + * Client +**/ + +import * as runtime from './runtime/library.js'; +import $Types = runtime.Types // general types +import $Public = runtime.Types.Public +import $Utils = runtime.Types.Utils +import $Extensions = runtime.Types.Extensions +import $Result = runtime.Types.Result + +export type PrismaPromise = $Public.PrismaPromise + + +/** + * Model User + * + */ +export type User = $Result.DefaultSelection +/** + * Model Detail + * + */ +export type Detail = $Result.DefaultSelection +/** + * Model Account + * + */ +export type Account = $Result.DefaultSelection +/** + * Model Session + * + */ +export type Session = $Result.DefaultSelection +/** + * Model VerificationToken + * + */ +export type VerificationToken = $Result.DefaultSelection +/** + * Model Kecamatan + * + */ +export type Kecamatan = $Result.DefaultSelection +/** + * Model Penduduk + * + */ +export type Penduduk = $Result.DefaultSelection +/** + * Model Komoditas + * + */ +export type Komoditas = $Result.DefaultSelection +/** + * Model HasilPanen + * + */ +export type HasilPanen = $Result.DefaultSelection +/** + * Model PrediksiPanen + * + */ +export type PrediksiPanen = $Result.DefaultSelection + +/** + * ## Prisma Client ʲˢ + * + * Type-safe database client for TypeScript & Node.js + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ +export class PrismaClient< + ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never, + ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs +> { + [K: symbol]: { types: Prisma.TypeMap['other'] } + + /** + * ## Prisma Client ʲˢ + * + * Type-safe database client for TypeScript & Node.js + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ + + constructor(optionsArg ?: Prisma.Subset); + $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient; + + /** + * Connect with the database + */ + $connect(): $Utils.JsPromise; + + /** + * Disconnect from the database + */ + $disconnect(): $Utils.JsPromise; + + /** + * Add a middleware + * @deprecated since 4.16.0. For new code, prefer client extensions instead. + * @see https://pris.ly/d/extensions + */ + $use(cb: Prisma.Middleware): void + +/** + * Executes a prepared raw query and returns the number of affected rows. + * @example + * ``` + * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Executes a raw query and returns the number of affected rows. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a prepared raw query and returns the `SELECT` data. + * @example + * ``` + * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a raw query and returns the `SELECT` data. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + + /** + * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. + * @example + * ``` + * const [george, bob, alice] = await prisma.$transaction([ + * prisma.user.create({ data: { name: 'George' } }), + * prisma.user.create({ data: { name: 'Bob' } }), + * prisma.user.create({ data: { name: 'Alice' } }), + * ]) + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions). + */ + $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise> + + $transaction(fn: (prisma: Omit) => $Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise + + + $extends: $Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs, $Utils.Call, { + extArgs: ExtArgs + }>> + + /** + * `prisma.user`: Exposes CRUD operations for the **User** model. + * Example usage: + * ```ts + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + */ + get user(): Prisma.UserDelegate; + + /** + * `prisma.detail`: Exposes CRUD operations for the **Detail** model. + * Example usage: + * ```ts + * // Fetch zero or more Details + * const details = await prisma.detail.findMany() + * ``` + */ + get detail(): Prisma.DetailDelegate; + + /** + * `prisma.account`: Exposes CRUD operations for the **Account** model. + * Example usage: + * ```ts + * // Fetch zero or more Accounts + * const accounts = await prisma.account.findMany() + * ``` + */ + get account(): Prisma.AccountDelegate; + + /** + * `prisma.session`: Exposes CRUD operations for the **Session** model. + * Example usage: + * ```ts + * // Fetch zero or more Sessions + * const sessions = await prisma.session.findMany() + * ``` + */ + get session(): Prisma.SessionDelegate; + + /** + * `prisma.verificationToken`: Exposes CRUD operations for the **VerificationToken** model. + * Example usage: + * ```ts + * // Fetch zero or more VerificationTokens + * const verificationTokens = await prisma.verificationToken.findMany() + * ``` + */ + get verificationToken(): Prisma.VerificationTokenDelegate; + + /** + * `prisma.kecamatan`: Exposes CRUD operations for the **Kecamatan** model. + * Example usage: + * ```ts + * // Fetch zero or more Kecamatans + * const kecamatans = await prisma.kecamatan.findMany() + * ``` + */ + get kecamatan(): Prisma.KecamatanDelegate; + + /** + * `prisma.penduduk`: Exposes CRUD operations for the **Penduduk** model. + * Example usage: + * ```ts + * // Fetch zero or more Penduduks + * const penduduks = await prisma.penduduk.findMany() + * ``` + */ + get penduduk(): Prisma.PendudukDelegate; + + /** + * `prisma.komoditas`: Exposes CRUD operations for the **Komoditas** model. + * Example usage: + * ```ts + * // Fetch zero or more Komoditas + * const komoditas = await prisma.komoditas.findMany() + * ``` + */ + get komoditas(): Prisma.KomoditasDelegate; + + /** + * `prisma.hasilPanen`: Exposes CRUD operations for the **HasilPanen** model. + * Example usage: + * ```ts + * // Fetch zero or more HasilPanens + * const hasilPanens = await prisma.hasilPanen.findMany() + * ``` + */ + get hasilPanen(): Prisma.HasilPanenDelegate; + + /** + * `prisma.prediksiPanen`: Exposes CRUD operations for the **PrediksiPanen** model. + * Example usage: + * ```ts + * // Fetch zero or more PrediksiPanens + * const prediksiPanens = await prisma.prediksiPanen.findMany() + * ``` + */ + get prediksiPanen(): Prisma.PrediksiPanenDelegate; +} + +export namespace Prisma { + export import DMMF = runtime.DMMF + + export type PrismaPromise = $Public.PrismaPromise + + /** + * Validator + */ + export import validator = runtime.Public.validator + + /** + * Prisma Errors + */ + export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError + export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError + export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError + export import PrismaClientInitializationError = runtime.PrismaClientInitializationError + export import PrismaClientValidationError = runtime.PrismaClientValidationError + + /** + * Re-export of sql-template-tag + */ + export import sql = runtime.sqltag + export import empty = runtime.empty + export import join = runtime.join + export import raw = runtime.raw + export import Sql = runtime.Sql + + + + /** + * Decimal.js + */ + export import Decimal = runtime.Decimal + + export type DecimalJsLike = runtime.DecimalJsLike + + /** + * Metrics + */ + export type Metrics = runtime.Metrics + export type Metric = runtime.Metric + export type MetricHistogram = runtime.MetricHistogram + export type MetricHistogramBucket = runtime.MetricHistogramBucket + + /** + * Extensions + */ + export import Extension = $Extensions.UserArgs + export import getExtensionContext = runtime.Extensions.getExtensionContext + export import Args = $Public.Args + export import Payload = $Public.Payload + export import Result = $Public.Result + export import Exact = $Public.Exact + + /** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ + export type PrismaVersion = { + client: string + } + + export const prismaVersion: PrismaVersion + + /** + * Utility Types + */ + + + export import JsonObject = runtime.JsonObject + export import JsonArray = runtime.JsonArray + export import JsonValue = runtime.JsonValue + export import InputJsonObject = runtime.InputJsonObject + export import InputJsonArray = runtime.InputJsonArray + export import InputJsonValue = runtime.InputJsonValue + + /** + * Types of the values used to represent different kinds of `null` values when working with JSON fields. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + namespace NullTypes { + /** + * Type of `Prisma.DbNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.DbNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class DbNull { + private DbNull: never + private constructor() + } + + /** + * Type of `Prisma.JsonNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class JsonNull { + private JsonNull: never + private constructor() + } + + /** + * Type of `Prisma.AnyNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class AnyNull { + private AnyNull: never + private constructor() + } + } + + /** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const DbNull: NullTypes.DbNull + + /** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const JsonNull: NullTypes.JsonNull + + /** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const AnyNull: NullTypes.AnyNull + + type SelectAndInclude = { + select: any + include: any + } + + type SelectAndOmit = { + select: any + omit: any + } + + /** + * Get the type of the value, that the Promise holds. + */ + export type PromiseType> = T extends PromiseLike ? U : T; + + /** + * Get the return type of a function which returns a Promise. + */ + export type PromiseReturnType $Utils.JsPromise> = PromiseType> + + /** + * From T, pick a set of properties whose keys are in the union K + */ + type Prisma__Pick = { + [P in K]: T[P]; + }; + + + export type Enumerable = T | Array; + + export type RequiredKeys = { + [K in keyof T]-?: {} extends Prisma__Pick ? never : K + }[keyof T] + + export type TruthyKeys = keyof { + [K in keyof T as T[K] extends false | undefined | null ? never : K]: K + } + + export type TrueKeys = TruthyKeys>> + + /** + * Subset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection + */ + export type Subset = { + [key in keyof T]: key extends keyof U ? T[key] : never; + }; + + /** + * SelectSubset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection. + * Additionally, it validates, if both select and include are present. If the case, it errors. + */ + export type SelectSubset = { + [key in keyof T]: key extends keyof U ? T[key] : never + } & + (T extends SelectAndInclude + ? 'Please either choose `select` or `include`.' + : T extends SelectAndOmit + ? 'Please either choose `select` or `omit`.' + : {}) + + /** + * Subset + Intersection + * @desc From `T` pick properties that exist in `U` and intersect `K` + */ + export type SubsetIntersection = { + [key in keyof T]: key extends keyof U ? T[key] : never + } & + K + + type Without = { [P in Exclude]?: never }; + + /** + * XOR is needed to have a real mutually exclusive union type + * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types + */ + type XOR = + T extends object ? + U extends object ? + (Without & U) | (Without & T) + : U : T + + + /** + * Is T a Record? + */ + type IsObject = T extends Array + ? False + : T extends Date + ? False + : T extends Uint8Array + ? False + : T extends BigInt + ? False + : T extends object + ? True + : False + + + /** + * If it's T[], return T + */ + export type UnEnumerate = T extends Array ? U : T + + /** + * From ts-toolbelt + */ + + type __Either = Omit & + { + // Merge all but K + [P in K]: Prisma__Pick // With K possibilities + }[K] + + type EitherStrict = Strict<__Either> + + type EitherLoose = ComputeRaw<__Either> + + type _Either< + O extends object, + K extends Key, + strict extends Boolean + > = { + 1: EitherStrict + 0: EitherLoose + }[strict] + + type Either< + O extends object, + K extends Key, + strict extends Boolean = 1 + > = O extends unknown ? _Either : never + + export type Union = any + + type PatchUndefined = { + [K in keyof O]: O[K] extends undefined ? At : O[K] + } & {} + + /** Helper Types for "Merge" **/ + export type IntersectOf = ( + U extends unknown ? (k: U) => void : never + ) extends (k: infer I) => void + ? I + : never + + export type Overwrite = { + [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; + } & {}; + + type _Merge = IntersectOf; + }>>; + + type Key = string | number | symbol; + type AtBasic = K extends keyof O ? O[K] : never; + type AtStrict = O[K & keyof O]; + type AtLoose = O extends unknown ? AtStrict : never; + export type At = { + 1: AtStrict; + 0: AtLoose; + }[strict]; + + export type ComputeRaw = A extends Function ? A : { + [K in keyof A]: A[K]; + } & {}; + + export type OptionalFlat = { + [K in keyof O]?: O[K]; + } & {}; + + type _Record = { + [P in K]: T; + }; + + // cause typescript not to expand types and preserve names + type NoExpand = T extends unknown ? T : never; + + // this type assumes the passed object is entirely optional + type AtLeast = NoExpand< + O extends unknown + ? | (K extends keyof O ? { [P in K]: O[P] } & O : O) + | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O + : never>; + + type _Strict = U extends unknown ? U & OptionalFlat<_Record, keyof U>, never>> : never; + + export type Strict = ComputeRaw<_Strict>; + /** End Helper Types for "Merge" **/ + + export type Merge = ComputeRaw<_Merge>>; + + /** + A [[Boolean]] + */ + export type Boolean = True | False + + // /** + // 1 + // */ + export type True = 1 + + /** + 0 + */ + export type False = 0 + + export type Not = { + 0: 1 + 1: 0 + }[B] + + export type Extends = [A1] extends [never] + ? 0 // anything `never` is false + : A1 extends A2 + ? 1 + : 0 + + export type Has = Not< + Extends, U1> + > + + export type Or = { + 0: { + 0: 0 + 1: 1 + } + 1: { + 0: 1 + 1: 1 + } + }[B1][B2] + + export type Keys = U extends unknown ? keyof U : never + + type Cast = A extends B ? A : B; + + export const type: unique symbol; + + + + /** + * Used by group by + */ + + export type GetScalarType = O extends object ? { + [P in keyof T]: P extends keyof O + ? O[P] + : never + } : never + + type FieldPaths< + T, + U = Omit + > = IsObject extends True ? U : T + + type GetHavingFields = { + [K in keyof T]: Or< + Or, Extends<'AND', K>>, + Extends<'NOT', K> + > extends True + ? // infer is only needed to not hit TS limit + // based on the brilliant idea of Pierre-Antoine Mills + // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 + T[K] extends infer TK + ? GetHavingFields extends object ? Merge> : never> + : never + : {} extends FieldPaths + ? never + : K + }[keyof T] + + /** + * Convert tuple to union + */ + type _TupleToUnion = T extends (infer E)[] ? E : never + type TupleToUnion = _TupleToUnion + type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T + + /** + * Like `Pick`, but additionally can also accept an array of keys + */ + type PickEnumerable | keyof T> = Prisma__Pick> + + /** + * Exclude all keys with underscores + */ + type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T + + + export type FieldRef = runtime.FieldRef + + type FieldRefInputType = Model extends never ? never : FieldRef + + + export const ModelName: { + User: 'User', + Detail: 'Detail', + Account: 'Account', + Session: 'Session', + VerificationToken: 'VerificationToken', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' + }; + + export type ModelName = (typeof ModelName)[keyof typeof ModelName] + + + export type Datasources = { + database?: Datasource + } + + interface TypeMapCb extends $Utils.Fn<{extArgs: $Extensions.InternalArgs }, $Utils.Record> { + returns: Prisma.TypeMap + } + + export type TypeMap = { + globalOmitOptions: { + omit: GlobalOmitOptions + } + meta: { + modelProps: "user" | "detail" | "account" | "session" | "verificationToken" | "kecamatan" | "penduduk" | "komoditas" | "hasilPanen" | "prediksiPanen" + txIsolationLevel: Prisma.TransactionIsolationLevel + } + model: { + User: { + payload: Prisma.$UserPayload + fields: Prisma.UserFieldRefs + operations: { + findUnique: { + args: Prisma.UserFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.UserFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.UserCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.UserCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.UserCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.UserDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.UserUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.UserUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.UserUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.UserGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.UserCountArgs + result: $Utils.Optional | number + } + } + } + Detail: { + payload: Prisma.$DetailPayload + fields: Prisma.DetailFieldRefs + operations: { + findUnique: { + args: Prisma.DetailFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.DetailFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.DetailFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.DetailFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.DetailFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.DetailCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.DetailCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.DetailCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.DetailDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.DetailUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.DetailDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.DetailUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.DetailUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.DetailUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.DetailAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.DetailGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.DetailCountArgs + result: $Utils.Optional | number + } + } + } + Account: { + payload: Prisma.$AccountPayload + fields: Prisma.AccountFieldRefs + operations: { + findUnique: { + args: Prisma.AccountFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.AccountFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.AccountFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.AccountFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.AccountFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.AccountCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.AccountCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.AccountCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.AccountDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.AccountUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.AccountDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.AccountUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.AccountUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.AccountUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.AccountAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.AccountGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.AccountCountArgs + result: $Utils.Optional | number + } + } + } + Session: { + payload: Prisma.$SessionPayload + fields: Prisma.SessionFieldRefs + operations: { + findUnique: { + args: Prisma.SessionFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.SessionFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.SessionFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.SessionFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.SessionFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.SessionCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.SessionCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.SessionCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.SessionDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.SessionUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.SessionDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.SessionUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.SessionUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.SessionUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.SessionAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.SessionGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.SessionCountArgs + result: $Utils.Optional | number + } + } + } + VerificationToken: { + payload: Prisma.$VerificationTokenPayload + fields: Prisma.VerificationTokenFieldRefs + operations: { + findUnique: { + args: Prisma.VerificationTokenFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.VerificationTokenFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.VerificationTokenFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.VerificationTokenFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.VerificationTokenFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.VerificationTokenCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.VerificationTokenCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.VerificationTokenCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.VerificationTokenDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.VerificationTokenUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.VerificationTokenDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.VerificationTokenUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.VerificationTokenUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.VerificationTokenUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.VerificationTokenAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.VerificationTokenGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.VerificationTokenCountArgs + result: $Utils.Optional | number + } + } + } + Kecamatan: { + payload: Prisma.$KecamatanPayload + fields: Prisma.KecamatanFieldRefs + operations: { + findUnique: { + args: Prisma.KecamatanFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.KecamatanFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.KecamatanFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.KecamatanFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.KecamatanFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.KecamatanCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.KecamatanCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.KecamatanCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.KecamatanDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.KecamatanUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.KecamatanDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.KecamatanUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.KecamatanUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.KecamatanUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.KecamatanAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.KecamatanGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.KecamatanCountArgs + result: $Utils.Optional | number + } + } + } + Penduduk: { + payload: Prisma.$PendudukPayload + fields: Prisma.PendudukFieldRefs + operations: { + findUnique: { + args: Prisma.PendudukFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.PendudukFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.PendudukFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.PendudukFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.PendudukFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.PendudukCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.PendudukCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.PendudukCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.PendudukDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.PendudukUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.PendudukDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.PendudukUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.PendudukUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.PendudukUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.PendudukAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.PendudukGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.PendudukCountArgs + result: $Utils.Optional | number + } + } + } + Komoditas: { + payload: Prisma.$KomoditasPayload + fields: Prisma.KomoditasFieldRefs + operations: { + findUnique: { + args: Prisma.KomoditasFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.KomoditasFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.KomoditasFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.KomoditasFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.KomoditasFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.KomoditasCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.KomoditasCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.KomoditasCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.KomoditasDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.KomoditasUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.KomoditasDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.KomoditasUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.KomoditasUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.KomoditasUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.KomoditasAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.KomoditasGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.KomoditasCountArgs + result: $Utils.Optional | number + } + } + } + HasilPanen: { + payload: Prisma.$HasilPanenPayload + fields: Prisma.HasilPanenFieldRefs + operations: { + findUnique: { + args: Prisma.HasilPanenFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.HasilPanenFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.HasilPanenFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.HasilPanenFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.HasilPanenFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.HasilPanenCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.HasilPanenCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.HasilPanenCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.HasilPanenDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.HasilPanenUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.HasilPanenDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.HasilPanenUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.HasilPanenUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.HasilPanenUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.HasilPanenAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.HasilPanenGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.HasilPanenCountArgs + result: $Utils.Optional | number + } + } + } + PrediksiPanen: { + payload: Prisma.$PrediksiPanenPayload + fields: Prisma.PrediksiPanenFieldRefs + operations: { + findUnique: { + args: Prisma.PrediksiPanenFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.PrediksiPanenFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.PrediksiPanenFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.PrediksiPanenFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.PrediksiPanenFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.PrediksiPanenCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.PrediksiPanenCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.PrediksiPanenCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.PrediksiPanenDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.PrediksiPanenUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.PrediksiPanenDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.PrediksiPanenUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.PrediksiPanenUpdateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + upsert: { + args: Prisma.PrediksiPanenUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.PrediksiPanenAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.PrediksiPanenGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.PrediksiPanenCountArgs + result: $Utils.Optional | number + } + } + } + } + } & { + other: { + payload: any + operations: { + $executeRaw: { + args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], + result: any + } + $executeRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + $queryRaw: { + args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], + result: any + } + $queryRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + } + } + } + export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs> + export type DefaultPrismaClient = PrismaClient + export type ErrorFormat = 'pretty' | 'colorless' | 'minimal' + export interface PrismaClientOptions { + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasourceUrl?: string + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat + /** + * @example + * ``` + * // Defaults to stdout + * log: ['query', 'info', 'warn', 'error'] + * + * // Emit as events + * log: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * { emit: 'stdout', level: 'error' } + * ] + * ``` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: (LogLevel | LogDefinition)[] + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number + timeout?: number + isolationLevel?: Prisma.TransactionIsolationLevel + } + /** + * Global configuration for omitting model fields by default. + * + * @example + * ``` + * const prisma = new PrismaClient({ + * omit: { + * user: { + * password: true + * } + * } + * }) + * ``` + */ + omit?: Prisma.GlobalOmitConfig + } + export type GlobalOmitConfig = { + user?: UserOmit + detail?: DetailOmit + account?: AccountOmit + session?: SessionOmit + verificationToken?: VerificationTokenOmit + kecamatan?: KecamatanOmit + penduduk?: PendudukOmit + komoditas?: KomoditasOmit + hasilPanen?: HasilPanenOmit + prediksiPanen?: PrediksiPanenOmit + } + + /* Types for Logging */ + export type LogLevel = 'info' | 'query' | 'warn' | 'error' + export type LogDefinition = { + level: LogLevel + emit: 'stdout' | 'event' + } + + export type GetLogType = T extends LogDefinition ? T['emit'] extends 'event' ? T['level'] : never : never + export type GetEvents = T extends Array ? + GetLogType | GetLogType | GetLogType | GetLogType + : never + + export type QueryEvent = { + timestamp: Date + query: string + params: string + duration: number + target: string + } + + export type LogEvent = { + timestamp: Date + message: string + target: string + } + /* End Types for Logging */ + + + export type PrismaAction = + | 'findUnique' + | 'findUniqueOrThrow' + | 'findMany' + | 'findFirst' + | 'findFirstOrThrow' + | 'create' + | 'createMany' + | 'createManyAndReturn' + | 'update' + | 'updateMany' + | 'updateManyAndReturn' + | 'upsert' + | 'delete' + | 'deleteMany' + | 'executeRaw' + | 'queryRaw' + | 'aggregate' + | 'count' + | 'runCommandRaw' + | 'findRaw' + | 'groupBy' + + /** + * These options are being passed into the middleware as "params" + */ + export type MiddlewareParams = { + model?: ModelName + action: PrismaAction + args: any + dataPath: string[] + runInTransaction: boolean + } + + /** + * The `T` type makes sure, that the `return proceed` is not forgotten in the middleware implementation + */ + export type Middleware = ( + params: MiddlewareParams, + next: (params: MiddlewareParams) => $Utils.JsPromise, + ) => $Utils.JsPromise + + // tested in getLogLevel.test.ts + export function getLogLevel(log: Array): LogLevel | undefined; + + /** + * `PrismaClient` proxy available in interactive transactions. + */ + export type TransactionClient = Omit + + export type Datasource = { + url?: string + } + + /** + * Count Types + */ + + + /** + * Count Type UserCountOutputType + */ + + export type UserCountOutputType = { + accounts: number + sessions: number + } + + export type UserCountOutputTypeSelect = { + accounts?: boolean | UserCountOutputTypeCountAccountsArgs + sessions?: boolean | UserCountOutputTypeCountSessionsArgs + } + + // Custom InputTypes + /** + * UserCountOutputType without action + */ + export type UserCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the UserCountOutputType + */ + select?: UserCountOutputTypeSelect | null + } + + /** + * UserCountOutputType without action + */ + export type UserCountOutputTypeCountAccountsArgs = { + where?: AccountWhereInput + } + + /** + * UserCountOutputType without action + */ + export type UserCountOutputTypeCountSessionsArgs = { + where?: SessionWhereInput + } + + + /** + * Count Type KecamatanCountOutputType + */ + + export type KecamatanCountOutputType = { + penduduk: number + hasil_panen: number + prediksi_panen: number + } + + export type KecamatanCountOutputTypeSelect = { + penduduk?: boolean | KecamatanCountOutputTypeCountPendudukArgs + hasil_panen?: boolean | KecamatanCountOutputTypeCountHasil_panenArgs + prediksi_panen?: boolean | KecamatanCountOutputTypeCountPrediksi_panenArgs + } + + // Custom InputTypes + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the KecamatanCountOutputType + */ + select?: KecamatanCountOutputTypeSelect | null + } + + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeCountPendudukArgs = { + where?: PendudukWhereInput + } + + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeCountHasil_panenArgs = { + where?: HasilPanenWhereInput + } + + /** + * KecamatanCountOutputType without action + */ + export type KecamatanCountOutputTypeCountPrediksi_panenArgs = { + where?: PrediksiPanenWhereInput + } + + + /** + * Count Type KomoditasCountOutputType + */ + + export type KomoditasCountOutputType = { + kecamatan: number + hasil_panen: number + prediksi_panen: number + } + + export type KomoditasCountOutputTypeSelect = { + kecamatan?: boolean | KomoditasCountOutputTypeCountKecamatanArgs + hasil_panen?: boolean | KomoditasCountOutputTypeCountHasil_panenArgs + prediksi_panen?: boolean | KomoditasCountOutputTypeCountPrediksi_panenArgs + } + + // Custom InputTypes + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the KomoditasCountOutputType + */ + select?: KomoditasCountOutputTypeSelect | null + } + + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeCountKecamatanArgs = { + where?: KecamatanWhereInput + } + + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeCountHasil_panenArgs = { + where?: HasilPanenWhereInput + } + + /** + * KomoditasCountOutputType without action + */ + export type KomoditasCountOutputTypeCountPrediksi_panenArgs = { + where?: PrediksiPanenWhereInput + } + + + /** + * Models + */ + + /** + * Model User + */ + + export type AggregateUser = { + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null + } + + export type UserMinAggregateOutputType = { + id: string | null + first_name: string | null + last_name: string | null + email: string | null + email_verified: Date | null + password: string | null + image: string | null + created_at: Date | null + updated_at: Date | null + } + + export type UserMaxAggregateOutputType = { + id: string | null + first_name: string | null + last_name: string | null + email: string | null + email_verified: Date | null + password: string | null + image: string | null + created_at: Date | null + updated_at: Date | null + } + + export type UserCountAggregateOutputType = { + id: number + first_name: number + last_name: number + email: number + email_verified: number + password: number + image: number + created_at: number + updated_at: number + _all: number + } + + + export type UserMinAggregateInputType = { + id?: true + first_name?: true + last_name?: true + email?: true + email_verified?: true + password?: true + image?: true + created_at?: true + updated_at?: true + } + + export type UserMaxAggregateInputType = { + id?: true + first_name?: true + last_name?: true + email?: true + email_verified?: true + password?: true + image?: true + created_at?: true + updated_at?: true + } + + export type UserCountAggregateInputType = { + id?: true + first_name?: true + last_name?: true + email?: true + email_verified?: true + password?: true + image?: true + created_at?: true + updated_at?: true + _all?: true + } + + export type UserAggregateArgs = { + /** + * Filter which User to aggregate. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Users + **/ + _count?: true | UserCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserMaxAggregateInputType + } + + export type GetUserAggregateType = { + [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type UserGroupByArgs = { + where?: UserWhereInput + orderBy?: UserOrderByWithAggregationInput | UserOrderByWithAggregationInput[] + by: UserScalarFieldEnum[] | UserScalarFieldEnum + having?: UserScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserCountAggregateInputType | true + _min?: UserMinAggregateInputType + _max?: UserMaxAggregateInputType + } + + export type UserGroupByOutputType = { + id: string + first_name: string | null + last_name: string | null + email: string | null + email_verified: Date | null + password: string | null + image: string | null + created_at: Date + updated_at: Date + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null + } + + type GetUserGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type UserSelect = $Extensions.GetSelect<{ + id?: boolean + first_name?: boolean + last_name?: boolean + email?: boolean + email_verified?: boolean + password?: boolean + image?: boolean + created_at?: boolean + updated_at?: boolean + detail?: boolean | User$detailArgs + accounts?: boolean | User$accountsArgs + sessions?: boolean | User$sessionsArgs + _count?: boolean | UserCountOutputTypeDefaultArgs + }, ExtArgs["result"]["user"]> + + export type UserSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + first_name?: boolean + last_name?: boolean + email?: boolean + email_verified?: boolean + password?: boolean + image?: boolean + created_at?: boolean + updated_at?: boolean + }, ExtArgs["result"]["user"]> + + export type UserSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + first_name?: boolean + last_name?: boolean + email?: boolean + email_verified?: boolean + password?: boolean + image?: boolean + created_at?: boolean + updated_at?: boolean + }, ExtArgs["result"]["user"]> + + export type UserSelectScalar = { + id?: boolean + first_name?: boolean + last_name?: boolean + email?: boolean + email_verified?: boolean + password?: boolean + image?: boolean + created_at?: boolean + updated_at?: boolean + } + + export type UserOmit = $Extensions.GetOmit<"id" | "first_name" | "last_name" | "email" | "email_verified" | "password" | "image" | "created_at" | "updated_at", ExtArgs["result"]["user"]> + export type UserInclude = { + detail?: boolean | User$detailArgs + accounts?: boolean | User$accountsArgs + sessions?: boolean | User$sessionsArgs + _count?: boolean | UserCountOutputTypeDefaultArgs + } + export type UserIncludeCreateManyAndReturn = {} + export type UserIncludeUpdateManyAndReturn = {} + + export type $UserPayload = { + name: "User" + objects: { + detail: Prisma.$DetailPayload | null + accounts: Prisma.$AccountPayload[] + sessions: Prisma.$SessionPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + id: string + first_name: string | null + last_name: string | null + email: string | null + email_verified: Date | null + password: string | null + image: string | null + created_at: Date + updated_at: Date + }, ExtArgs["result"]["user"]> + composites: {} + } + + type UserGetPayload = $Result.GetResult + + type UserCountArgs = + Omit & { + select?: UserCountAggregateInputType | true + } + + export interface UserDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['User'], meta: { name: 'User' } } + /** + * Find zero or one User that matches the filter. + * @param {UserFindUniqueArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one User that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Users that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Users + * const users = await prisma.user.findMany() + * + * // Get first 10 Users + * const users = await prisma.user.findMany({ take: 10 }) + * + * // Only select the `id` + * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a User. + * @param {UserCreateArgs} args - Arguments to create a User. + * @example + * // Create one User + * const User = await prisma.user.create({ + * data: { + * // ... data to create a User + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Users. + * @param {UserCreateManyArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Users and returns the data saved in the database. + * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Users and only return the `id` + * const userWithIdOnly = await prisma.user.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a User. + * @param {UserDeleteArgs} args - Arguments to delete one User. + * @example + * // Delete one User + * const User = await prisma.user.delete({ + * where: { + * // ... filter to delete one User + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one User. + * @param {UserUpdateArgs} args - Arguments to update one User. + * @example + * // Update one User + * const user = await prisma.user.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Users. + * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete. + * @example + * // Delete a few Users + * const { count } = await prisma.user.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Users + * const user = await prisma.user.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users and returns the data updated in the database. + * @param {UserUpdateManyAndReturnArgs} args - Arguments to update many Users. + * @example + * // Update many Users + * const user = await prisma.user.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Users and only return the `id` + * const userWithIdOnly = await prisma.user.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one User. + * @param {UserUpsertArgs} args - Arguments to update or create a User. + * @example + * // Update or create a User + * const user = await prisma.user.upsert({ + * create: { + * // ... data to create a User + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the User we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserCountArgs} args - Arguments to filter Users to count. + * @example + * // Count the number of Users + * const count = await prisma.user.count({ + * where: { + * // ... the filter for the Users we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends UserGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: UserGroupByArgs['orderBy'] } + : { orderBy?: UserGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the User model + */ + readonly fields: UserFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for User. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__UserClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + detail = {}>(args?: Subset>): Prisma__DetailClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + accounts = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + sessions = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the User model + */ + interface UserFieldRefs { + readonly id: FieldRef<"User", 'String'> + readonly first_name: FieldRef<"User", 'String'> + readonly last_name: FieldRef<"User", 'String'> + readonly email: FieldRef<"User", 'String'> + readonly email_verified: FieldRef<"User", 'DateTime'> + readonly password: FieldRef<"User", 'String'> + readonly image: FieldRef<"User", 'String'> + readonly created_at: FieldRef<"User", 'DateTime'> + readonly updated_at: FieldRef<"User", 'DateTime'> + } + + + // Custom InputTypes + /** + * User findUnique + */ + export type UserFindUniqueArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where: UserWhereUniqueInput + } + + /** + * User findUniqueOrThrow + */ + export type UserFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where: UserWhereUniqueInput + } + + /** + * User findFirst + */ + export type UserFindFirstArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User findFirstOrThrow + */ + export type UserFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User findMany + */ + export type UserFindManyArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which Users to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User create + */ + export type UserCreateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The data needed to create a User. + */ + data: XOR + } + + /** + * User createMany + */ + export type UserCreateManyArgs = { + /** + * The data used to create many Users. + */ + data: UserCreateManyInput | UserCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * User createManyAndReturn + */ + export type UserCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelectCreateManyAndReturn | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * The data used to create many Users. + */ + data: UserCreateManyInput | UserCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * User update + */ + export type UserUpdateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The data needed to update a User. + */ + data: XOR + /** + * Choose, which User to update. + */ + where: UserWhereUniqueInput + } + + /** + * User updateMany + */ + export type UserUpdateManyArgs = { + /** + * The data used to update Users. + */ + data: XOR + /** + * Filter which Users to update + */ + where?: UserWhereInput + /** + * Limit how many Users to update. + */ + limit?: number + } + + /** + * User updateManyAndReturn + */ + export type UserUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * The data used to update Users. + */ + data: XOR + /** + * Filter which Users to update + */ + where?: UserWhereInput + /** + * Limit how many Users to update. + */ + limit?: number + } + + /** + * User upsert + */ + export type UserUpsertArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The filter to search for the User to update in case it exists. + */ + where: UserWhereUniqueInput + /** + * In case the User found by the `where` argument doesn't exist, create a new User with this data. + */ + create: XOR + /** + * In case the User was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * User delete + */ + export type UserDeleteArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter which User to delete. + */ + where: UserWhereUniqueInput + } + + /** + * User deleteMany + */ + export type UserDeleteManyArgs = { + /** + * Filter which Users to delete + */ + where?: UserWhereInput + /** + * Limit how many Users to delete. + */ + limit?: number + } + + /** + * User.detail + */ + export type User$detailArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + where?: DetailWhereInput + } + + /** + * User.accounts + */ + export type User$accountsArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + where?: AccountWhereInput + orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] + cursor?: AccountWhereUniqueInput + take?: number + skip?: number + distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] + } + + /** + * User.sessions + */ + export type User$sessionsArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + where?: SessionWhereInput + orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] + cursor?: SessionWhereUniqueInput + take?: number + skip?: number + distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] + } + + /** + * User without action + */ + export type UserDefaultArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + } + + + /** + * Model Detail + */ + + export type AggregateDetail = { + _count: DetailCountAggregateOutputType | null + _min: DetailMinAggregateOutputType | null + _max: DetailMaxAggregateOutputType | null + } + + export type DetailMinAggregateOutputType = { + id_detail: string | null + id_tax: string | null + phone: string | null + bio: string | null + city: string | null + country: string | null + post_kode: string | null + } + + export type DetailMaxAggregateOutputType = { + id_detail: string | null + id_tax: string | null + phone: string | null + bio: string | null + city: string | null + country: string | null + post_kode: string | null + } + + export type DetailCountAggregateOutputType = { + id_detail: number + id_tax: number + phone: number + bio: number + city: number + country: number + post_kode: number + _all: number + } + + + export type DetailMinAggregateInputType = { + id_detail?: true + id_tax?: true + phone?: true + bio?: true + city?: true + country?: true + post_kode?: true + } + + export type DetailMaxAggregateInputType = { + id_detail?: true + id_tax?: true + phone?: true + bio?: true + city?: true + country?: true + post_kode?: true + } + + export type DetailCountAggregateInputType = { + id_detail?: true + id_tax?: true + phone?: true + bio?: true + city?: true + country?: true + post_kode?: true + _all?: true + } + + export type DetailAggregateArgs = { + /** + * Filter which Detail to aggregate. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Details + **/ + _count?: true | DetailCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: DetailMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: DetailMaxAggregateInputType + } + + export type GetDetailAggregateType = { + [P in keyof T & keyof AggregateDetail]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type DetailGroupByArgs = { + where?: DetailWhereInput + orderBy?: DetailOrderByWithAggregationInput | DetailOrderByWithAggregationInput[] + by: DetailScalarFieldEnum[] | DetailScalarFieldEnum + having?: DetailScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: DetailCountAggregateInputType | true + _min?: DetailMinAggregateInputType + _max?: DetailMaxAggregateInputType + } + + export type DetailGroupByOutputType = { + id_detail: string + id_tax: string + phone: string + bio: string + city: string + country: string + post_kode: string + _count: DetailCountAggregateOutputType | null + _min: DetailMinAggregateOutputType | null + _max: DetailMaxAggregateOutputType | null + } + + type GetDetailGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof DetailGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type DetailSelect = $Extensions.GetSelect<{ + id_detail?: boolean + id_tax?: boolean + phone?: boolean + bio?: boolean + city?: boolean + country?: boolean + post_kode?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["detail"]> + + export type DetailSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_detail?: boolean + id_tax?: boolean + phone?: boolean + bio?: boolean + city?: boolean + country?: boolean + post_kode?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["detail"]> + + export type DetailSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_detail?: boolean + id_tax?: boolean + phone?: boolean + bio?: boolean + city?: boolean + country?: boolean + post_kode?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["detail"]> + + export type DetailSelectScalar = { + id_detail?: boolean + id_tax?: boolean + phone?: boolean + bio?: boolean + city?: boolean + country?: boolean + post_kode?: boolean + } + + export type DetailOmit = $Extensions.GetOmit<"id_detail" | "id_tax" | "phone" | "bio" | "city" | "country" | "post_kode", ExtArgs["result"]["detail"]> + export type DetailInclude = { + user?: boolean | UserDefaultArgs + } + export type DetailIncludeCreateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + export type DetailIncludeUpdateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + + export type $DetailPayload = { + name: "Detail" + objects: { + user: Prisma.$UserPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_detail: string + id_tax: string + phone: string + bio: string + city: string + country: string + post_kode: string + }, ExtArgs["result"]["detail"]> + composites: {} + } + + type DetailGetPayload = $Result.GetResult + + type DetailCountArgs = + Omit & { + select?: DetailCountAggregateInputType | true + } + + export interface DetailDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Detail'], meta: { name: 'Detail' } } + /** + * Find zero or one Detail that matches the filter. + * @param {DetailFindUniqueArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Detail that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {DetailFindUniqueOrThrowArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Detail that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailFindFirstArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Detail that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailFindFirstOrThrowArgs} args - Arguments to find a Detail + * @example + * // Get one Detail + * const detail = await prisma.detail.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Details that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Details + * const details = await prisma.detail.findMany() + * + * // Get first 10 Details + * const details = await prisma.detail.findMany({ take: 10 }) + * + * // Only select the `id_detail` + * const detailWithId_detailOnly = await prisma.detail.findMany({ select: { id_detail: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Detail. + * @param {DetailCreateArgs} args - Arguments to create a Detail. + * @example + * // Create one Detail + * const Detail = await prisma.detail.create({ + * data: { + * // ... data to create a Detail + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Details. + * @param {DetailCreateManyArgs} args - Arguments to create many Details. + * @example + * // Create many Details + * const detail = await prisma.detail.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Details and returns the data saved in the database. + * @param {DetailCreateManyAndReturnArgs} args - Arguments to create many Details. + * @example + * // Create many Details + * const detail = await prisma.detail.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Details and only return the `id_detail` + * const detailWithId_detailOnly = await prisma.detail.createManyAndReturn({ + * select: { id_detail: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Detail. + * @param {DetailDeleteArgs} args - Arguments to delete one Detail. + * @example + * // Delete one Detail + * const Detail = await prisma.detail.delete({ + * where: { + * // ... filter to delete one Detail + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Detail. + * @param {DetailUpdateArgs} args - Arguments to update one Detail. + * @example + * // Update one Detail + * const detail = await prisma.detail.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Details. + * @param {DetailDeleteManyArgs} args - Arguments to filter Details to delete. + * @example + * // Delete a few Details + * const { count } = await prisma.detail.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Details. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Details + * const detail = await prisma.detail.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Details and returns the data updated in the database. + * @param {DetailUpdateManyAndReturnArgs} args - Arguments to update many Details. + * @example + * // Update many Details + * const detail = await prisma.detail.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Details and only return the `id_detail` + * const detailWithId_detailOnly = await prisma.detail.updateManyAndReturn({ + * select: { id_detail: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Detail. + * @param {DetailUpsertArgs} args - Arguments to update or create a Detail. + * @example + * // Update or create a Detail + * const detail = await prisma.detail.upsert({ + * create: { + * // ... data to create a Detail + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Detail we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__DetailClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Details. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailCountArgs} args - Arguments to filter Details to count. + * @example + * // Count the number of Details + * const count = await prisma.detail.count({ + * where: { + * // ... the filter for the Details we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Detail. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Detail. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {DetailGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends DetailGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: DetailGroupByArgs['orderBy'] } + : { orderBy?: DetailGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetDetailGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Detail model + */ + readonly fields: DetailFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Detail. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__DetailClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Detail model + */ + interface DetailFieldRefs { + readonly id_detail: FieldRef<"Detail", 'String'> + readonly id_tax: FieldRef<"Detail", 'String'> + readonly phone: FieldRef<"Detail", 'String'> + readonly bio: FieldRef<"Detail", 'String'> + readonly city: FieldRef<"Detail", 'String'> + readonly country: FieldRef<"Detail", 'String'> + readonly post_kode: FieldRef<"Detail", 'String'> + } + + + // Custom InputTypes + /** + * Detail findUnique + */ + export type DetailFindUniqueArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail findUniqueOrThrow + */ + export type DetailFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail findFirst + */ + export type DetailFindFirstArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Details. + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Details. + */ + distinct?: DetailScalarFieldEnum | DetailScalarFieldEnum[] + } + + /** + * Detail findFirstOrThrow + */ + export type DetailFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Detail to fetch. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Details. + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Details. + */ + distinct?: DetailScalarFieldEnum | DetailScalarFieldEnum[] + } + + /** + * Detail findMany + */ + export type DetailFindManyArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter, which Details to fetch. + */ + where?: DetailWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Details to fetch. + */ + orderBy?: DetailOrderByWithRelationInput | DetailOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Details. + */ + cursor?: DetailWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Details from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Details. + */ + skip?: number + distinct?: DetailScalarFieldEnum | DetailScalarFieldEnum[] + } + + /** + * Detail create + */ + export type DetailCreateArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * The data needed to create a Detail. + */ + data: XOR + } + + /** + * Detail createMany + */ + export type DetailCreateManyArgs = { + /** + * The data used to create many Details. + */ + data: DetailCreateManyInput | DetailCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Detail createManyAndReturn + */ + export type DetailCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * The data used to create many Details. + */ + data: DetailCreateManyInput | DetailCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailIncludeCreateManyAndReturn | null + } + + /** + * Detail update + */ + export type DetailUpdateArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * The data needed to update a Detail. + */ + data: XOR + /** + * Choose, which Detail to update. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail updateMany + */ + export type DetailUpdateManyArgs = { + /** + * The data used to update Details. + */ + data: XOR + /** + * Filter which Details to update + */ + where?: DetailWhereInput + /** + * Limit how many Details to update. + */ + limit?: number + } + + /** + * Detail updateManyAndReturn + */ + export type DetailUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * The data used to update Details. + */ + data: XOR + /** + * Filter which Details to update + */ + where?: DetailWhereInput + /** + * Limit how many Details to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailIncludeUpdateManyAndReturn | null + } + + /** + * Detail upsert + */ + export type DetailUpsertArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * The filter to search for the Detail to update in case it exists. + */ + where: DetailWhereUniqueInput + /** + * In case the Detail found by the `where` argument doesn't exist, create a new Detail with this data. + */ + create: XOR + /** + * In case the Detail was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Detail delete + */ + export type DetailDeleteArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + /** + * Filter which Detail to delete. + */ + where: DetailWhereUniqueInput + } + + /** + * Detail deleteMany + */ + export type DetailDeleteManyArgs = { + /** + * Filter which Details to delete + */ + where?: DetailWhereInput + /** + * Limit how many Details to delete. + */ + limit?: number + } + + /** + * Detail without action + */ + export type DetailDefaultArgs = { + /** + * Select specific fields to fetch from the Detail + */ + select?: DetailSelect | null + /** + * Omit specific fields from the Detail + */ + omit?: DetailOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: DetailInclude | null + } + + + /** + * Model Account + */ + + export type AggregateAccount = { + _count: AccountCountAggregateOutputType | null + _avg: AccountAvgAggregateOutputType | null + _sum: AccountSumAggregateOutputType | null + _min: AccountMinAggregateOutputType | null + _max: AccountMaxAggregateOutputType | null + } + + export type AccountAvgAggregateOutputType = { + expires_at: number | null + } + + export type AccountSumAggregateOutputType = { + expires_at: number | null + } + + export type AccountMinAggregateOutputType = { + id: string | null + id_user: string | null + id_provider: string | null + id_token: string | null + type: string | null + scope: string | null + provider: string | null + expires_at: number | null + token_type: string | null + access_token: string | null + refresh_token: string | null + session_state: string | null + } + + export type AccountMaxAggregateOutputType = { + id: string | null + id_user: string | null + id_provider: string | null + id_token: string | null + type: string | null + scope: string | null + provider: string | null + expires_at: number | null + token_type: string | null + access_token: string | null + refresh_token: string | null + session_state: string | null + } + + export type AccountCountAggregateOutputType = { + id: number + id_user: number + id_provider: number + id_token: number + type: number + scope: number + provider: number + expires_at: number + token_type: number + access_token: number + refresh_token: number + session_state: number + _all: number + } + + + export type AccountAvgAggregateInputType = { + expires_at?: true + } + + export type AccountSumAggregateInputType = { + expires_at?: true + } + + export type AccountMinAggregateInputType = { + id?: true + id_user?: true + id_provider?: true + id_token?: true + type?: true + scope?: true + provider?: true + expires_at?: true + token_type?: true + access_token?: true + refresh_token?: true + session_state?: true + } + + export type AccountMaxAggregateInputType = { + id?: true + id_user?: true + id_provider?: true + id_token?: true + type?: true + scope?: true + provider?: true + expires_at?: true + token_type?: true + access_token?: true + refresh_token?: true + session_state?: true + } + + export type AccountCountAggregateInputType = { + id?: true + id_user?: true + id_provider?: true + id_token?: true + type?: true + scope?: true + provider?: true + expires_at?: true + token_type?: true + access_token?: true + refresh_token?: true + session_state?: true + _all?: true + } + + export type AccountAggregateArgs = { + /** + * Filter which Account to aggregate. + */ + where?: AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Accounts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Accounts + **/ + _count?: true | AccountCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: AccountAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: AccountSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: AccountMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: AccountMaxAggregateInputType + } + + export type GetAccountAggregateType = { + [P in keyof T & keyof AggregateAccount]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type AccountGroupByArgs = { + where?: AccountWhereInput + orderBy?: AccountOrderByWithAggregationInput | AccountOrderByWithAggregationInput[] + by: AccountScalarFieldEnum[] | AccountScalarFieldEnum + having?: AccountScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: AccountCountAggregateInputType | true + _avg?: AccountAvgAggregateInputType + _sum?: AccountSumAggregateInputType + _min?: AccountMinAggregateInputType + _max?: AccountMaxAggregateInputType + } + + export type AccountGroupByOutputType = { + id: string + id_user: string + id_provider: string + id_token: string | null + type: string + scope: string | null + provider: string + expires_at: number | null + token_type: string | null + access_token: string | null + refresh_token: string | null + session_state: string | null + _count: AccountCountAggregateOutputType | null + _avg: AccountAvgAggregateOutputType | null + _sum: AccountSumAggregateOutputType | null + _min: AccountMinAggregateOutputType | null + _max: AccountMaxAggregateOutputType | null + } + + type GetAccountGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof AccountGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type AccountSelect = $Extensions.GetSelect<{ + id?: boolean + id_user?: boolean + id_provider?: boolean + id_token?: boolean + type?: boolean + scope?: boolean + provider?: boolean + expires_at?: boolean + token_type?: boolean + access_token?: boolean + refresh_token?: boolean + session_state?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["account"]> + + export type AccountSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + id_user?: boolean + id_provider?: boolean + id_token?: boolean + type?: boolean + scope?: boolean + provider?: boolean + expires_at?: boolean + token_type?: boolean + access_token?: boolean + refresh_token?: boolean + session_state?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["account"]> + + export type AccountSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + id_user?: boolean + id_provider?: boolean + id_token?: boolean + type?: boolean + scope?: boolean + provider?: boolean + expires_at?: boolean + token_type?: boolean + access_token?: boolean + refresh_token?: boolean + session_state?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["account"]> + + export type AccountSelectScalar = { + id?: boolean + id_user?: boolean + id_provider?: boolean + id_token?: boolean + type?: boolean + scope?: boolean + provider?: boolean + expires_at?: boolean + token_type?: boolean + access_token?: boolean + refresh_token?: boolean + session_state?: boolean + } + + export type AccountOmit = $Extensions.GetOmit<"id" | "id_user" | "id_provider" | "id_token" | "type" | "scope" | "provider" | "expires_at" | "token_type" | "access_token" | "refresh_token" | "session_state", ExtArgs["result"]["account"]> + export type AccountInclude = { + user?: boolean | UserDefaultArgs + } + export type AccountIncludeCreateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + export type AccountIncludeUpdateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + + export type $AccountPayload = { + name: "Account" + objects: { + user: Prisma.$UserPayload + } + scalars: $Extensions.GetPayloadResult<{ + id: string + id_user: string + id_provider: string + id_token: string | null + type: string + scope: string | null + provider: string + expires_at: number | null + token_type: string | null + access_token: string | null + refresh_token: string | null + session_state: string | null + }, ExtArgs["result"]["account"]> + composites: {} + } + + type AccountGetPayload = $Result.GetResult + + type AccountCountArgs = + Omit & { + select?: AccountCountAggregateInputType | true + } + + export interface AccountDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Account'], meta: { name: 'Account' } } + /** + * Find zero or one Account that matches the filter. + * @param {AccountFindUniqueArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Account that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {AccountFindUniqueOrThrowArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Account that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountFindFirstArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Account that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountFindFirstOrThrowArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Accounts that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Accounts + * const accounts = await prisma.account.findMany() + * + * // Get first 10 Accounts + * const accounts = await prisma.account.findMany({ take: 10 }) + * + * // Only select the `id` + * const accountWithIdOnly = await prisma.account.findMany({ select: { id: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Account. + * @param {AccountCreateArgs} args - Arguments to create a Account. + * @example + * // Create one Account + * const Account = await prisma.account.create({ + * data: { + * // ... data to create a Account + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Accounts. + * @param {AccountCreateManyArgs} args - Arguments to create many Accounts. + * @example + * // Create many Accounts + * const account = await prisma.account.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Accounts and returns the data saved in the database. + * @param {AccountCreateManyAndReturnArgs} args - Arguments to create many Accounts. + * @example + * // Create many Accounts + * const account = await prisma.account.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Accounts and only return the `id` + * const accountWithIdOnly = await prisma.account.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Account. + * @param {AccountDeleteArgs} args - Arguments to delete one Account. + * @example + * // Delete one Account + * const Account = await prisma.account.delete({ + * where: { + * // ... filter to delete one Account + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Account. + * @param {AccountUpdateArgs} args - Arguments to update one Account. + * @example + * // Update one Account + * const account = await prisma.account.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Accounts. + * @param {AccountDeleteManyArgs} args - Arguments to filter Accounts to delete. + * @example + * // Delete a few Accounts + * const { count } = await prisma.account.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Accounts. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Accounts + * const account = await prisma.account.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Accounts and returns the data updated in the database. + * @param {AccountUpdateManyAndReturnArgs} args - Arguments to update many Accounts. + * @example + * // Update many Accounts + * const account = await prisma.account.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Accounts and only return the `id` + * const accountWithIdOnly = await prisma.account.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Account. + * @param {AccountUpsertArgs} args - Arguments to update or create a Account. + * @example + * // Update or create a Account + * const account = await prisma.account.upsert({ + * create: { + * // ... data to create a Account + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Account we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Accounts. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountCountArgs} args - Arguments to filter Accounts to count. + * @example + * // Count the number of Accounts + * const count = await prisma.account.count({ + * where: { + * // ... the filter for the Accounts we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Account. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Account. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends AccountGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: AccountGroupByArgs['orderBy'] } + : { orderBy?: AccountGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetAccountGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Account model + */ + readonly fields: AccountFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Account. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__AccountClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Account model + */ + interface AccountFieldRefs { + readonly id: FieldRef<"Account", 'String'> + readonly id_user: FieldRef<"Account", 'String'> + readonly id_provider: FieldRef<"Account", 'String'> + readonly id_token: FieldRef<"Account", 'String'> + readonly type: FieldRef<"Account", 'String'> + readonly scope: FieldRef<"Account", 'String'> + readonly provider: FieldRef<"Account", 'String'> + readonly expires_at: FieldRef<"Account", 'Int'> + readonly token_type: FieldRef<"Account", 'String'> + readonly access_token: FieldRef<"Account", 'String'> + readonly refresh_token: FieldRef<"Account", 'String'> + readonly session_state: FieldRef<"Account", 'String'> + } + + + // Custom InputTypes + /** + * Account findUnique + */ + export type AccountFindUniqueArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where: AccountWhereUniqueInput + } + + /** + * Account findUniqueOrThrow + */ + export type AccountFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where: AccountWhereUniqueInput + } + + /** + * Account findFirst + */ + export type AccountFindFirstArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where?: AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Accounts. + */ + cursor?: AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Accounts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Accounts. + */ + distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] + } + + /** + * Account findFirstOrThrow + */ + export type AccountFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where?: AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Accounts. + */ + cursor?: AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Accounts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Accounts. + */ + distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] + } + + /** + * Account findMany + */ + export type AccountFindManyArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * Filter, which Accounts to fetch. + */ + where?: AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Accounts. + */ + cursor?: AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Accounts. + */ + skip?: number + distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] + } + + /** + * Account create + */ + export type AccountCreateArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * The data needed to create a Account. + */ + data: XOR + } + + /** + * Account createMany + */ + export type AccountCreateManyArgs = { + /** + * The data used to create many Accounts. + */ + data: AccountCreateManyInput | AccountCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Account createManyAndReturn + */ + export type AccountCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * The data used to create many Accounts. + */ + data: AccountCreateManyInput | AccountCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountIncludeCreateManyAndReturn | null + } + + /** + * Account update + */ + export type AccountUpdateArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * The data needed to update a Account. + */ + data: XOR + /** + * Choose, which Account to update. + */ + where: AccountWhereUniqueInput + } + + /** + * Account updateMany + */ + export type AccountUpdateManyArgs = { + /** + * The data used to update Accounts. + */ + data: XOR + /** + * Filter which Accounts to update + */ + where?: AccountWhereInput + /** + * Limit how many Accounts to update. + */ + limit?: number + } + + /** + * Account updateManyAndReturn + */ + export type AccountUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * The data used to update Accounts. + */ + data: XOR + /** + * Filter which Accounts to update + */ + where?: AccountWhereInput + /** + * Limit how many Accounts to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountIncludeUpdateManyAndReturn | null + } + + /** + * Account upsert + */ + export type AccountUpsertArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * The filter to search for the Account to update in case it exists. + */ + where: AccountWhereUniqueInput + /** + * In case the Account found by the `where` argument doesn't exist, create a new Account with this data. + */ + create: XOR + /** + * In case the Account was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Account delete + */ + export type AccountDeleteArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + /** + * Filter which Account to delete. + */ + where: AccountWhereUniqueInput + } + + /** + * Account deleteMany + */ + export type AccountDeleteManyArgs = { + /** + * Filter which Accounts to delete + */ + where?: AccountWhereInput + /** + * Limit how many Accounts to delete. + */ + limit?: number + } + + /** + * Account without action + */ + export type AccountDefaultArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: AccountInclude | null + } + + + /** + * Model Session + */ + + export type AggregateSession = { + _count: SessionCountAggregateOutputType | null + _min: SessionMinAggregateOutputType | null + _max: SessionMaxAggregateOutputType | null + } + + export type SessionMinAggregateOutputType = { + id: string | null + id_user: string | null + session_token: string | null + expires: Date | null + } + + export type SessionMaxAggregateOutputType = { + id: string | null + id_user: string | null + session_token: string | null + expires: Date | null + } + + export type SessionCountAggregateOutputType = { + id: number + id_user: number + session_token: number + expires: number + _all: number + } + + + export type SessionMinAggregateInputType = { + id?: true + id_user?: true + session_token?: true + expires?: true + } + + export type SessionMaxAggregateInputType = { + id?: true + id_user?: true + session_token?: true + expires?: true + } + + export type SessionCountAggregateInputType = { + id?: true + id_user?: true + session_token?: true + expires?: true + _all?: true + } + + export type SessionAggregateArgs = { + /** + * Filter which Session to aggregate. + */ + where?: SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Sessions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Sessions + **/ + _count?: true | SessionCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: SessionMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: SessionMaxAggregateInputType + } + + export type GetSessionAggregateType = { + [P in keyof T & keyof AggregateSession]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type SessionGroupByArgs = { + where?: SessionWhereInput + orderBy?: SessionOrderByWithAggregationInput | SessionOrderByWithAggregationInput[] + by: SessionScalarFieldEnum[] | SessionScalarFieldEnum + having?: SessionScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: SessionCountAggregateInputType | true + _min?: SessionMinAggregateInputType + _max?: SessionMaxAggregateInputType + } + + export type SessionGroupByOutputType = { + id: string + id_user: string + session_token: string + expires: Date + _count: SessionCountAggregateOutputType | null + _min: SessionMinAggregateOutputType | null + _max: SessionMaxAggregateOutputType | null + } + + type GetSessionGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof SessionGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type SessionSelect = $Extensions.GetSelect<{ + id?: boolean + id_user?: boolean + session_token?: boolean + expires?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["session"]> + + export type SessionSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + id_user?: boolean + session_token?: boolean + expires?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["session"]> + + export type SessionSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id?: boolean + id_user?: boolean + session_token?: boolean + expires?: boolean + user?: boolean | UserDefaultArgs + }, ExtArgs["result"]["session"]> + + export type SessionSelectScalar = { + id?: boolean + id_user?: boolean + session_token?: boolean + expires?: boolean + } + + export type SessionOmit = $Extensions.GetOmit<"id" | "id_user" | "session_token" | "expires", ExtArgs["result"]["session"]> + export type SessionInclude = { + user?: boolean | UserDefaultArgs + } + export type SessionIncludeCreateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + export type SessionIncludeUpdateManyAndReturn = { + user?: boolean | UserDefaultArgs + } + + export type $SessionPayload = { + name: "Session" + objects: { + user: Prisma.$UserPayload + } + scalars: $Extensions.GetPayloadResult<{ + id: string + id_user: string + session_token: string + expires: Date + }, ExtArgs["result"]["session"]> + composites: {} + } + + type SessionGetPayload = $Result.GetResult + + type SessionCountArgs = + Omit & { + select?: SessionCountAggregateInputType | true + } + + export interface SessionDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Session'], meta: { name: 'Session' } } + /** + * Find zero or one Session that matches the filter. + * @param {SessionFindUniqueArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Session that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {SessionFindUniqueOrThrowArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Session that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionFindFirstArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Session that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionFindFirstOrThrowArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Sessions that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Sessions + * const sessions = await prisma.session.findMany() + * + * // Get first 10 Sessions + * const sessions = await prisma.session.findMany({ take: 10 }) + * + * // Only select the `id` + * const sessionWithIdOnly = await prisma.session.findMany({ select: { id: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Session. + * @param {SessionCreateArgs} args - Arguments to create a Session. + * @example + * // Create one Session + * const Session = await prisma.session.create({ + * data: { + * // ... data to create a Session + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Sessions. + * @param {SessionCreateManyArgs} args - Arguments to create many Sessions. + * @example + * // Create many Sessions + * const session = await prisma.session.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Sessions and returns the data saved in the database. + * @param {SessionCreateManyAndReturnArgs} args - Arguments to create many Sessions. + * @example + * // Create many Sessions + * const session = await prisma.session.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Sessions and only return the `id` + * const sessionWithIdOnly = await prisma.session.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Session. + * @param {SessionDeleteArgs} args - Arguments to delete one Session. + * @example + * // Delete one Session + * const Session = await prisma.session.delete({ + * where: { + * // ... filter to delete one Session + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Session. + * @param {SessionUpdateArgs} args - Arguments to update one Session. + * @example + * // Update one Session + * const session = await prisma.session.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Sessions. + * @param {SessionDeleteManyArgs} args - Arguments to filter Sessions to delete. + * @example + * // Delete a few Sessions + * const { count } = await prisma.session.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Sessions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Sessions + * const session = await prisma.session.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Sessions and returns the data updated in the database. + * @param {SessionUpdateManyAndReturnArgs} args - Arguments to update many Sessions. + * @example + * // Update many Sessions + * const session = await prisma.session.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Sessions and only return the `id` + * const sessionWithIdOnly = await prisma.session.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Session. + * @param {SessionUpsertArgs} args - Arguments to update or create a Session. + * @example + * // Update or create a Session + * const session = await prisma.session.upsert({ + * create: { + * // ... data to create a Session + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Session we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Sessions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionCountArgs} args - Arguments to filter Sessions to count. + * @example + * // Count the number of Sessions + * const count = await prisma.session.count({ + * where: { + * // ... the filter for the Sessions we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Session. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Session. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends SessionGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: SessionGroupByArgs['orderBy'] } + : { orderBy?: SessionGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetSessionGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Session model + */ + readonly fields: SessionFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Session. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__SessionClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Session model + */ + interface SessionFieldRefs { + readonly id: FieldRef<"Session", 'String'> + readonly id_user: FieldRef<"Session", 'String'> + readonly session_token: FieldRef<"Session", 'String'> + readonly expires: FieldRef<"Session", 'DateTime'> + } + + + // Custom InputTypes + /** + * Session findUnique + */ + export type SessionFindUniqueArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where: SessionWhereUniqueInput + } + + /** + * Session findUniqueOrThrow + */ + export type SessionFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where: SessionWhereUniqueInput + } + + /** + * Session findFirst + */ + export type SessionFindFirstArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where?: SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Sessions. + */ + cursor?: SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Sessions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Sessions. + */ + distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] + } + + /** + * Session findFirstOrThrow + */ + export type SessionFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where?: SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Sessions. + */ + cursor?: SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Sessions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Sessions. + */ + distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] + } + + /** + * Session findMany + */ + export type SessionFindManyArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * Filter, which Sessions to fetch. + */ + where?: SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Sessions. + */ + cursor?: SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Sessions. + */ + skip?: number + distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] + } + + /** + * Session create + */ + export type SessionCreateArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * The data needed to create a Session. + */ + data: XOR + } + + /** + * Session createMany + */ + export type SessionCreateManyArgs = { + /** + * The data used to create many Sessions. + */ + data: SessionCreateManyInput | SessionCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Session createManyAndReturn + */ + export type SessionCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * The data used to create many Sessions. + */ + data: SessionCreateManyInput | SessionCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionIncludeCreateManyAndReturn | null + } + + /** + * Session update + */ + export type SessionUpdateArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * The data needed to update a Session. + */ + data: XOR + /** + * Choose, which Session to update. + */ + where: SessionWhereUniqueInput + } + + /** + * Session updateMany + */ + export type SessionUpdateManyArgs = { + /** + * The data used to update Sessions. + */ + data: XOR + /** + * Filter which Sessions to update + */ + where?: SessionWhereInput + /** + * Limit how many Sessions to update. + */ + limit?: number + } + + /** + * Session updateManyAndReturn + */ + export type SessionUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * The data used to update Sessions. + */ + data: XOR + /** + * Filter which Sessions to update + */ + where?: SessionWhereInput + /** + * Limit how many Sessions to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionIncludeUpdateManyAndReturn | null + } + + /** + * Session upsert + */ + export type SessionUpsertArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * The filter to search for the Session to update in case it exists. + */ + where: SessionWhereUniqueInput + /** + * In case the Session found by the `where` argument doesn't exist, create a new Session with this data. + */ + create: XOR + /** + * In case the Session was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Session delete + */ + export type SessionDeleteArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + /** + * Filter which Session to delete. + */ + where: SessionWhereUniqueInput + } + + /** + * Session deleteMany + */ + export type SessionDeleteManyArgs = { + /** + * Filter which Sessions to delete + */ + where?: SessionWhereInput + /** + * Limit how many Sessions to delete. + */ + limit?: number + } + + /** + * Session without action + */ + export type SessionDefaultArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: SessionInclude | null + } + + + /** + * Model VerificationToken + */ + + export type AggregateVerificationToken = { + _count: VerificationTokenCountAggregateOutputType | null + _min: VerificationTokenMinAggregateOutputType | null + _max: VerificationTokenMaxAggregateOutputType | null + } + + export type VerificationTokenMinAggregateOutputType = { + identifier: string | null + token: string | null + expires: Date | null + } + + export type VerificationTokenMaxAggregateOutputType = { + identifier: string | null + token: string | null + expires: Date | null + } + + export type VerificationTokenCountAggregateOutputType = { + identifier: number + token: number + expires: number + _all: number + } + + + export type VerificationTokenMinAggregateInputType = { + identifier?: true + token?: true + expires?: true + } + + export type VerificationTokenMaxAggregateInputType = { + identifier?: true + token?: true + expires?: true + } + + export type VerificationTokenCountAggregateInputType = { + identifier?: true + token?: true + expires?: true + _all?: true + } + + export type VerificationTokenAggregateArgs = { + /** + * Filter which VerificationToken to aggregate. + */ + where?: VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationTokens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned VerificationTokens + **/ + _count?: true | VerificationTokenCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: VerificationTokenMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: VerificationTokenMaxAggregateInputType + } + + export type GetVerificationTokenAggregateType = { + [P in keyof T & keyof AggregateVerificationToken]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type VerificationTokenGroupByArgs = { + where?: VerificationTokenWhereInput + orderBy?: VerificationTokenOrderByWithAggregationInput | VerificationTokenOrderByWithAggregationInput[] + by: VerificationTokenScalarFieldEnum[] | VerificationTokenScalarFieldEnum + having?: VerificationTokenScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: VerificationTokenCountAggregateInputType | true + _min?: VerificationTokenMinAggregateInputType + _max?: VerificationTokenMaxAggregateInputType + } + + export type VerificationTokenGroupByOutputType = { + identifier: string + token: string + expires: Date + _count: VerificationTokenCountAggregateOutputType | null + _min: VerificationTokenMinAggregateOutputType | null + _max: VerificationTokenMaxAggregateOutputType | null + } + + type GetVerificationTokenGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof VerificationTokenGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type VerificationTokenSelect = $Extensions.GetSelect<{ + identifier?: boolean + token?: boolean + expires?: boolean + }, ExtArgs["result"]["verificationToken"]> + + export type VerificationTokenSelectCreateManyAndReturn = $Extensions.GetSelect<{ + identifier?: boolean + token?: boolean + expires?: boolean + }, ExtArgs["result"]["verificationToken"]> + + export type VerificationTokenSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + identifier?: boolean + token?: boolean + expires?: boolean + }, ExtArgs["result"]["verificationToken"]> + + export type VerificationTokenSelectScalar = { + identifier?: boolean + token?: boolean + expires?: boolean + } + + export type VerificationTokenOmit = $Extensions.GetOmit<"identifier" | "token" | "expires", ExtArgs["result"]["verificationToken"]> + + export type $VerificationTokenPayload = { + name: "VerificationToken" + objects: {} + scalars: $Extensions.GetPayloadResult<{ + identifier: string + token: string + expires: Date + }, ExtArgs["result"]["verificationToken"]> + composites: {} + } + + type VerificationTokenGetPayload = $Result.GetResult + + type VerificationTokenCountArgs = + Omit & { + select?: VerificationTokenCountAggregateInputType | true + } + + export interface VerificationTokenDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['VerificationToken'], meta: { name: 'VerificationToken' } } + /** + * Find zero or one VerificationToken that matches the filter. + * @param {VerificationTokenFindUniqueArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one VerificationToken that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {VerificationTokenFindUniqueOrThrowArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first VerificationToken that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenFindFirstArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first VerificationToken that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenFindFirstOrThrowArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more VerificationTokens that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all VerificationTokens + * const verificationTokens = await prisma.verificationToken.findMany() + * + * // Get first 10 VerificationTokens + * const verificationTokens = await prisma.verificationToken.findMany({ take: 10 }) + * + * // Only select the `identifier` + * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.findMany({ select: { identifier: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a VerificationToken. + * @param {VerificationTokenCreateArgs} args - Arguments to create a VerificationToken. + * @example + * // Create one VerificationToken + * const VerificationToken = await prisma.verificationToken.create({ + * data: { + * // ... data to create a VerificationToken + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many VerificationTokens. + * @param {VerificationTokenCreateManyArgs} args - Arguments to create many VerificationTokens. + * @example + * // Create many VerificationTokens + * const verificationToken = await prisma.verificationToken.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many VerificationTokens and returns the data saved in the database. + * @param {VerificationTokenCreateManyAndReturnArgs} args - Arguments to create many VerificationTokens. + * @example + * // Create many VerificationTokens + * const verificationToken = await prisma.verificationToken.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many VerificationTokens and only return the `identifier` + * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.createManyAndReturn({ + * select: { identifier: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a VerificationToken. + * @param {VerificationTokenDeleteArgs} args - Arguments to delete one VerificationToken. + * @example + * // Delete one VerificationToken + * const VerificationToken = await prisma.verificationToken.delete({ + * where: { + * // ... filter to delete one VerificationToken + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one VerificationToken. + * @param {VerificationTokenUpdateArgs} args - Arguments to update one VerificationToken. + * @example + * // Update one VerificationToken + * const verificationToken = await prisma.verificationToken.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more VerificationTokens. + * @param {VerificationTokenDeleteManyArgs} args - Arguments to filter VerificationTokens to delete. + * @example + * // Delete a few VerificationTokens + * const { count } = await prisma.verificationToken.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more VerificationTokens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many VerificationTokens + * const verificationToken = await prisma.verificationToken.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more VerificationTokens and returns the data updated in the database. + * @param {VerificationTokenUpdateManyAndReturnArgs} args - Arguments to update many VerificationTokens. + * @example + * // Update many VerificationTokens + * const verificationToken = await prisma.verificationToken.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more VerificationTokens and only return the `identifier` + * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.updateManyAndReturn({ + * select: { identifier: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one VerificationToken. + * @param {VerificationTokenUpsertArgs} args - Arguments to update or create a VerificationToken. + * @example + * // Update or create a VerificationToken + * const verificationToken = await prisma.verificationToken.upsert({ + * create: { + * // ... data to create a VerificationToken + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the VerificationToken we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of VerificationTokens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenCountArgs} args - Arguments to filter VerificationTokens to count. + * @example + * // Count the number of VerificationTokens + * const count = await prisma.verificationToken.count({ + * where: { + * // ... the filter for the VerificationTokens we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a VerificationToken. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by VerificationToken. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends VerificationTokenGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: VerificationTokenGroupByArgs['orderBy'] } + : { orderBy?: VerificationTokenGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetVerificationTokenGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the VerificationToken model + */ + readonly fields: VerificationTokenFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for VerificationToken. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__VerificationTokenClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the VerificationToken model + */ + interface VerificationTokenFieldRefs { + readonly identifier: FieldRef<"VerificationToken", 'String'> + readonly token: FieldRef<"VerificationToken", 'String'> + readonly expires: FieldRef<"VerificationToken", 'DateTime'> + } + + + // Custom InputTypes + /** + * VerificationToken findUnique + */ + export type VerificationTokenFindUniqueArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where: VerificationTokenWhereUniqueInput + } + + /** + * VerificationToken findUniqueOrThrow + */ + export type VerificationTokenFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where: VerificationTokenWhereUniqueInput + } + + /** + * VerificationToken findFirst + */ + export type VerificationTokenFindFirstArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where?: VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for VerificationTokens. + */ + cursor?: VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationTokens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of VerificationTokens. + */ + distinct?: VerificationTokenScalarFieldEnum | VerificationTokenScalarFieldEnum[] + } + + /** + * VerificationToken findFirstOrThrow + */ + export type VerificationTokenFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where?: VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for VerificationTokens. + */ + cursor?: VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationTokens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of VerificationTokens. + */ + distinct?: VerificationTokenScalarFieldEnum | VerificationTokenScalarFieldEnum[] + } + + /** + * VerificationToken findMany + */ + export type VerificationTokenFindManyArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * Filter, which VerificationTokens to fetch. + */ + where?: VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing VerificationTokens. + */ + cursor?: VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationTokens. + */ + skip?: number + distinct?: VerificationTokenScalarFieldEnum | VerificationTokenScalarFieldEnum[] + } + + /** + * VerificationToken create + */ + export type VerificationTokenCreateArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * The data needed to create a VerificationToken. + */ + data: XOR + } + + /** + * VerificationToken createMany + */ + export type VerificationTokenCreateManyArgs = { + /** + * The data used to create many VerificationTokens. + */ + data: VerificationTokenCreateManyInput | VerificationTokenCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * VerificationToken createManyAndReturn + */ + export type VerificationTokenCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelectCreateManyAndReturn | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * The data used to create many VerificationTokens. + */ + data: VerificationTokenCreateManyInput | VerificationTokenCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * VerificationToken update + */ + export type VerificationTokenUpdateArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * The data needed to update a VerificationToken. + */ + data: XOR + /** + * Choose, which VerificationToken to update. + */ + where: VerificationTokenWhereUniqueInput + } + + /** + * VerificationToken updateMany + */ + export type VerificationTokenUpdateManyArgs = { + /** + * The data used to update VerificationTokens. + */ + data: XOR + /** + * Filter which VerificationTokens to update + */ + where?: VerificationTokenWhereInput + /** + * Limit how many VerificationTokens to update. + */ + limit?: number + } + + /** + * VerificationToken updateManyAndReturn + */ + export type VerificationTokenUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * The data used to update VerificationTokens. + */ + data: XOR + /** + * Filter which VerificationTokens to update + */ + where?: VerificationTokenWhereInput + /** + * Limit how many VerificationTokens to update. + */ + limit?: number + } + + /** + * VerificationToken upsert + */ + export type VerificationTokenUpsertArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * The filter to search for the VerificationToken to update in case it exists. + */ + where: VerificationTokenWhereUniqueInput + /** + * In case the VerificationToken found by the `where` argument doesn't exist, create a new VerificationToken with this data. + */ + create: XOR + /** + * In case the VerificationToken was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * VerificationToken delete + */ + export type VerificationTokenDeleteArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + /** + * Filter which VerificationToken to delete. + */ + where: VerificationTokenWhereUniqueInput + } + + /** + * VerificationToken deleteMany + */ + export type VerificationTokenDeleteManyArgs = { + /** + * Filter which VerificationTokens to delete + */ + where?: VerificationTokenWhereInput + /** + * Limit how many VerificationTokens to delete. + */ + limit?: number + } + + /** + * VerificationToken without action + */ + export type VerificationTokenDefaultArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: VerificationTokenOmit | null + } + + + /** + * Model Kecamatan + */ + + export type AggregateKecamatan = { + _count: KecamatanCountAggregateOutputType | null + _avg: KecamatanAvgAggregateOutputType | null + _sum: KecamatanSumAggregateOutputType | null + _min: KecamatanMinAggregateOutputType | null + _max: KecamatanMaxAggregateOutputType | null + } + + export type KecamatanAvgAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + area: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KecamatanSumAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + area: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KecamatanMinAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + nama_kecamatan: string | null + deskripsi: string | null + gambar: string | null + area: number | null + posisi_x: number | null + posisi_y: number | null + created_at: Date | null + updated_at: Date | null + } + + export type KecamatanMaxAggregateOutputType = { + id_kecamatan: number | null + id_komoditas: number | null + nama_kecamatan: string | null + deskripsi: string | null + gambar: string | null + area: number | null + posisi_x: number | null + posisi_y: number | null + created_at: Date | null + updated_at: Date | null + } + + export type KecamatanCountAggregateOutputType = { + id_kecamatan: number + id_komoditas: number + nama_kecamatan: number + deskripsi: number + gambar: number + area: number + posisi_x: number + posisi_y: number + created_at: number + updated_at: number + _all: number + } + + + export type KecamatanAvgAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + area?: true + posisi_x?: true + posisi_y?: true + } + + export type KecamatanSumAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + area?: true + posisi_x?: true + posisi_y?: true + } + + export type KecamatanMinAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + nama_kecamatan?: true + deskripsi?: true + gambar?: true + area?: true + posisi_x?: true + posisi_y?: true + created_at?: true + updated_at?: true + } + + export type KecamatanMaxAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + nama_kecamatan?: true + deskripsi?: true + gambar?: true + area?: true + posisi_x?: true + posisi_y?: true + created_at?: true + updated_at?: true + } + + export type KecamatanCountAggregateInputType = { + id_kecamatan?: true + id_komoditas?: true + nama_kecamatan?: true + deskripsi?: true + gambar?: true + area?: true + posisi_x?: true + posisi_y?: true + created_at?: true + updated_at?: true + _all?: true + } + + export type KecamatanAggregateArgs = { + /** + * Filter which Kecamatan to aggregate. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Kecamatans + **/ + _count?: true | KecamatanCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: KecamatanAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: KecamatanSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: KecamatanMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: KecamatanMaxAggregateInputType + } + + export type GetKecamatanAggregateType = { + [P in keyof T & keyof AggregateKecamatan]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type KecamatanGroupByArgs = { + where?: KecamatanWhereInput + orderBy?: KecamatanOrderByWithAggregationInput | KecamatanOrderByWithAggregationInput[] + by: KecamatanScalarFieldEnum[] | KecamatanScalarFieldEnum + having?: KecamatanScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: KecamatanCountAggregateInputType | true + _avg?: KecamatanAvgAggregateInputType + _sum?: KecamatanSumAggregateInputType + _min?: KecamatanMinAggregateInputType + _max?: KecamatanMaxAggregateInputType + } + + export type KecamatanGroupByOutputType = { + id_kecamatan: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at: Date + updated_at: Date + _count: KecamatanCountAggregateOutputType | null + _avg: KecamatanAvgAggregateOutputType | null + _sum: KecamatanSumAggregateOutputType | null + _min: KecamatanMinAggregateOutputType | null + _max: KecamatanMaxAggregateOutputType | null + } + + type GetKecamatanGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof KecamatanGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type KecamatanSelect = $Extensions.GetSelect<{ + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + komoditas?: boolean | KomoditasDefaultArgs + penduduk?: boolean | Kecamatan$pendudukArgs + hasil_panen?: boolean | Kecamatan$hasil_panenArgs + prediksi_panen?: boolean | Kecamatan$prediksi_panenArgs + _count?: boolean | KecamatanCountOutputTypeDefaultArgs + }, ExtArgs["result"]["kecamatan"]> + + export type KecamatanSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["kecamatan"]> + + export type KecamatanSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["kecamatan"]> + + export type KecamatanSelectScalar = { + id_kecamatan?: boolean + id_komoditas?: boolean + nama_kecamatan?: boolean + deskripsi?: boolean + gambar?: boolean + area?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + } + + export type KecamatanOmit = $Extensions.GetOmit<"id_kecamatan" | "id_komoditas" | "nama_kecamatan" | "deskripsi" | "gambar" | "area" | "posisi_x" | "posisi_y" | "created_at" | "updated_at", ExtArgs["result"]["kecamatan"]> + export type KecamatanInclude = { + komoditas?: boolean | KomoditasDefaultArgs + penduduk?: boolean | Kecamatan$pendudukArgs + hasil_panen?: boolean | Kecamatan$hasil_panenArgs + prediksi_panen?: boolean | Kecamatan$prediksi_panenArgs + _count?: boolean | KecamatanCountOutputTypeDefaultArgs + } + export type KecamatanIncludeCreateManyAndReturn = { + komoditas?: boolean | KomoditasDefaultArgs + } + export type KecamatanIncludeUpdateManyAndReturn = { + komoditas?: boolean | KomoditasDefaultArgs + } + + export type $KecamatanPayload = { + name: "Kecamatan" + objects: { + komoditas: Prisma.$KomoditasPayload + penduduk: Prisma.$PendudukPayload[] + hasil_panen: Prisma.$HasilPanenPayload[] + prediksi_panen: Prisma.$PrediksiPanenPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + id_kecamatan: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at: Date + updated_at: Date + }, ExtArgs["result"]["kecamatan"]> + composites: {} + } + + type KecamatanGetPayload = $Result.GetResult + + type KecamatanCountArgs = + Omit & { + select?: KecamatanCountAggregateInputType | true + } + + export interface KecamatanDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Kecamatan'], meta: { name: 'Kecamatan' } } + /** + * Find zero or one Kecamatan that matches the filter. + * @param {KecamatanFindUniqueArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Kecamatan that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {KecamatanFindUniqueOrThrowArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Kecamatan that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanFindFirstArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Kecamatan that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanFindFirstOrThrowArgs} args - Arguments to find a Kecamatan + * @example + * // Get one Kecamatan + * const kecamatan = await prisma.kecamatan.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Kecamatans that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Kecamatans + * const kecamatans = await prisma.kecamatan.findMany() + * + * // Get first 10 Kecamatans + * const kecamatans = await prisma.kecamatan.findMany({ take: 10 }) + * + * // Only select the `id_kecamatan` + * const kecamatanWithId_kecamatanOnly = await prisma.kecamatan.findMany({ select: { id_kecamatan: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Kecamatan. + * @param {KecamatanCreateArgs} args - Arguments to create a Kecamatan. + * @example + * // Create one Kecamatan + * const Kecamatan = await prisma.kecamatan.create({ + * data: { + * // ... data to create a Kecamatan + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Kecamatans. + * @param {KecamatanCreateManyArgs} args - Arguments to create many Kecamatans. + * @example + * // Create many Kecamatans + * const kecamatan = await prisma.kecamatan.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Kecamatans and returns the data saved in the database. + * @param {KecamatanCreateManyAndReturnArgs} args - Arguments to create many Kecamatans. + * @example + * // Create many Kecamatans + * const kecamatan = await prisma.kecamatan.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Kecamatans and only return the `id_kecamatan` + * const kecamatanWithId_kecamatanOnly = await prisma.kecamatan.createManyAndReturn({ + * select: { id_kecamatan: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Kecamatan. + * @param {KecamatanDeleteArgs} args - Arguments to delete one Kecamatan. + * @example + * // Delete one Kecamatan + * const Kecamatan = await prisma.kecamatan.delete({ + * where: { + * // ... filter to delete one Kecamatan + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Kecamatan. + * @param {KecamatanUpdateArgs} args - Arguments to update one Kecamatan. + * @example + * // Update one Kecamatan + * const kecamatan = await prisma.kecamatan.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Kecamatans. + * @param {KecamatanDeleteManyArgs} args - Arguments to filter Kecamatans to delete. + * @example + * // Delete a few Kecamatans + * const { count } = await prisma.kecamatan.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Kecamatans. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Kecamatans + * const kecamatan = await prisma.kecamatan.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Kecamatans and returns the data updated in the database. + * @param {KecamatanUpdateManyAndReturnArgs} args - Arguments to update many Kecamatans. + * @example + * // Update many Kecamatans + * const kecamatan = await prisma.kecamatan.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Kecamatans and only return the `id_kecamatan` + * const kecamatanWithId_kecamatanOnly = await prisma.kecamatan.updateManyAndReturn({ + * select: { id_kecamatan: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Kecamatan. + * @param {KecamatanUpsertArgs} args - Arguments to update or create a Kecamatan. + * @example + * // Update or create a Kecamatan + * const kecamatan = await prisma.kecamatan.upsert({ + * create: { + * // ... data to create a Kecamatan + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Kecamatan we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__KecamatanClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Kecamatans. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanCountArgs} args - Arguments to filter Kecamatans to count. + * @example + * // Count the number of Kecamatans + * const count = await prisma.kecamatan.count({ + * where: { + * // ... the filter for the Kecamatans we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Kecamatan. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Kecamatan. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KecamatanGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends KecamatanGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: KecamatanGroupByArgs['orderBy'] } + : { orderBy?: KecamatanGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetKecamatanGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Kecamatan model + */ + readonly fields: KecamatanFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Kecamatan. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__KecamatanClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + komoditas = {}>(args?: Subset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + penduduk = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + hasil_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + prediksi_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Kecamatan model + */ + interface KecamatanFieldRefs { + readonly id_kecamatan: FieldRef<"Kecamatan", 'Int'> + readonly id_komoditas: FieldRef<"Kecamatan", 'Int'> + readonly nama_kecamatan: FieldRef<"Kecamatan", 'String'> + readonly deskripsi: FieldRef<"Kecamatan", 'String'> + readonly gambar: FieldRef<"Kecamatan", 'String'> + readonly area: FieldRef<"Kecamatan", 'Float'> + readonly posisi_x: FieldRef<"Kecamatan", 'Int'> + readonly posisi_y: FieldRef<"Kecamatan", 'Int'> + readonly created_at: FieldRef<"Kecamatan", 'DateTime'> + readonly updated_at: FieldRef<"Kecamatan", 'DateTime'> + } + + + // Custom InputTypes + /** + * Kecamatan findUnique + */ + export type KecamatanFindUniqueArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan findUniqueOrThrow + */ + export type KecamatanFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan findFirst + */ + export type KecamatanFindFirstArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Kecamatans. + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Kecamatans. + */ + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Kecamatan findFirstOrThrow + */ + export type KecamatanFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatan to fetch. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Kecamatans. + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Kecamatans. + */ + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Kecamatan findMany + */ + export type KecamatanFindManyArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter, which Kecamatans to fetch. + */ + where?: KecamatanWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Kecamatans to fetch. + */ + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Kecamatans. + */ + cursor?: KecamatanWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Kecamatans from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Kecamatans. + */ + skip?: number + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Kecamatan create + */ + export type KecamatanCreateArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * The data needed to create a Kecamatan. + */ + data: XOR + } + + /** + * Kecamatan createMany + */ + export type KecamatanCreateManyArgs = { + /** + * The data used to create many Kecamatans. + */ + data: KecamatanCreateManyInput | KecamatanCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Kecamatan createManyAndReturn + */ + export type KecamatanCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * The data used to create many Kecamatans. + */ + data: KecamatanCreateManyInput | KecamatanCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanIncludeCreateManyAndReturn | null + } + + /** + * Kecamatan update + */ + export type KecamatanUpdateArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * The data needed to update a Kecamatan. + */ + data: XOR + /** + * Choose, which Kecamatan to update. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan updateMany + */ + export type KecamatanUpdateManyArgs = { + /** + * The data used to update Kecamatans. + */ + data: XOR + /** + * Filter which Kecamatans to update + */ + where?: KecamatanWhereInput + /** + * Limit how many Kecamatans to update. + */ + limit?: number + } + + /** + * Kecamatan updateManyAndReturn + */ + export type KecamatanUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * The data used to update Kecamatans. + */ + data: XOR + /** + * Filter which Kecamatans to update + */ + where?: KecamatanWhereInput + /** + * Limit how many Kecamatans to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanIncludeUpdateManyAndReturn | null + } + + /** + * Kecamatan upsert + */ + export type KecamatanUpsertArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * The filter to search for the Kecamatan to update in case it exists. + */ + where: KecamatanWhereUniqueInput + /** + * In case the Kecamatan found by the `where` argument doesn't exist, create a new Kecamatan with this data. + */ + create: XOR + /** + * In case the Kecamatan was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Kecamatan delete + */ + export type KecamatanDeleteArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + /** + * Filter which Kecamatan to delete. + */ + where: KecamatanWhereUniqueInput + } + + /** + * Kecamatan deleteMany + */ + export type KecamatanDeleteManyArgs = { + /** + * Filter which Kecamatans to delete + */ + where?: KecamatanWhereInput + /** + * Limit how many Kecamatans to delete. + */ + limit?: number + } + + /** + * Kecamatan.penduduk + */ + export type Kecamatan$pendudukArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + where?: PendudukWhereInput + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + cursor?: PendudukWhereUniqueInput + take?: number + skip?: number + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Kecamatan.hasil_panen + */ + export type Kecamatan$hasil_panenArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + where?: HasilPanenWhereInput + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + cursor?: HasilPanenWhereUniqueInput + take?: number + skip?: number + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * Kecamatan.prediksi_panen + */ + export type Kecamatan$prediksi_panenArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + where?: PrediksiPanenWhereInput + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + cursor?: PrediksiPanenWhereUniqueInput + take?: number + skip?: number + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * Kecamatan without action + */ + export type KecamatanDefaultArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + } + + + /** + * Model Penduduk + */ + + export type AggregatePenduduk = { + _count: PendudukCountAggregateOutputType | null + _avg: PendudukAvgAggregateOutputType | null + _sum: PendudukSumAggregateOutputType | null + _min: PendudukMinAggregateOutputType | null + _max: PendudukMaxAggregateOutputType | null + } + + export type PendudukAvgAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + } + + export type PendudukSumAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + } + + export type PendudukMinAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + laju_pertumbuhan: string | null + created_at: Date | null + updated_at: Date | null + } + + export type PendudukMaxAggregateOutputType = { + id_penduduk: number | null + id_kecamatan: number | null + data_tahun: number | null + jumlah_penduduk: number | null + laju_pertumbuhan: string | null + created_at: Date | null + updated_at: Date | null + } + + export type PendudukCountAggregateOutputType = { + id_penduduk: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: number + created_at: number + updated_at: number + _all: number + } + + + export type PendudukAvgAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + } + + export type PendudukSumAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + } + + export type PendudukMinAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + laju_pertumbuhan?: true + created_at?: true + updated_at?: true + } + + export type PendudukMaxAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + laju_pertumbuhan?: true + created_at?: true + updated_at?: true + } + + export type PendudukCountAggregateInputType = { + id_penduduk?: true + id_kecamatan?: true + data_tahun?: true + jumlah_penduduk?: true + laju_pertumbuhan?: true + created_at?: true + updated_at?: true + _all?: true + } + + export type PendudukAggregateArgs = { + /** + * Filter which Penduduk to aggregate. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Penduduks + **/ + _count?: true | PendudukCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: PendudukAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: PendudukSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: PendudukMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: PendudukMaxAggregateInputType + } + + export type GetPendudukAggregateType = { + [P in keyof T & keyof AggregatePenduduk]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type PendudukGroupByArgs = { + where?: PendudukWhereInput + orderBy?: PendudukOrderByWithAggregationInput | PendudukOrderByWithAggregationInput[] + by: PendudukScalarFieldEnum[] | PendudukScalarFieldEnum + having?: PendudukScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: PendudukCountAggregateInputType | true + _avg?: PendudukAvgAggregateInputType + _sum?: PendudukSumAggregateInputType + _min?: PendudukMinAggregateInputType + _max?: PendudukMaxAggregateInputType + } + + export type PendudukGroupByOutputType = { + id_penduduk: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at: Date + updated_at: Date + _count: PendudukCountAggregateOutputType | null + _avg: PendudukAvgAggregateOutputType | null + _sum: PendudukSumAggregateOutputType | null + _min: PendudukMinAggregateOutputType | null + _max: PendudukMaxAggregateOutputType | null + } + + type GetPendudukGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof PendudukGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type PendudukSelect = $Extensions.GetSelect<{ + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + }, ExtArgs["result"]["penduduk"]> + + export type PendudukSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + }, ExtArgs["result"]["penduduk"]> + + export type PendudukSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + }, ExtArgs["result"]["penduduk"]> + + export type PendudukSelectScalar = { + id_penduduk?: boolean + id_kecamatan?: boolean + data_tahun?: boolean + jumlah_penduduk?: boolean + laju_pertumbuhan?: boolean + created_at?: boolean + updated_at?: boolean + } + + export type PendudukOmit = $Extensions.GetOmit<"id_penduduk" | "id_kecamatan" | "data_tahun" | "jumlah_penduduk" | "laju_pertumbuhan" | "created_at" | "updated_at", ExtArgs["result"]["penduduk"]> + export type PendudukInclude = { + kecamatan?: boolean | KecamatanDefaultArgs + } + export type PendudukIncludeCreateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + } + export type PendudukIncludeUpdateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + } + + export type $PendudukPayload = { + name: "Penduduk" + objects: { + kecamatan: Prisma.$KecamatanPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_penduduk: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at: Date + updated_at: Date + }, ExtArgs["result"]["penduduk"]> + composites: {} + } + + type PendudukGetPayload = $Result.GetResult + + type PendudukCountArgs = + Omit & { + select?: PendudukCountAggregateInputType | true + } + + export interface PendudukDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Penduduk'], meta: { name: 'Penduduk' } } + /** + * Find zero or one Penduduk that matches the filter. + * @param {PendudukFindUniqueArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Penduduk that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {PendudukFindUniqueOrThrowArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Penduduk that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukFindFirstArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Penduduk that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukFindFirstOrThrowArgs} args - Arguments to find a Penduduk + * @example + * // Get one Penduduk + * const penduduk = await prisma.penduduk.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Penduduks that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Penduduks + * const penduduks = await prisma.penduduk.findMany() + * + * // Get first 10 Penduduks + * const penduduks = await prisma.penduduk.findMany({ take: 10 }) + * + * // Only select the `id_penduduk` + * const pendudukWithId_pendudukOnly = await prisma.penduduk.findMany({ select: { id_penduduk: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Penduduk. + * @param {PendudukCreateArgs} args - Arguments to create a Penduduk. + * @example + * // Create one Penduduk + * const Penduduk = await prisma.penduduk.create({ + * data: { + * // ... data to create a Penduduk + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Penduduks. + * @param {PendudukCreateManyArgs} args - Arguments to create many Penduduks. + * @example + * // Create many Penduduks + * const penduduk = await prisma.penduduk.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Penduduks and returns the data saved in the database. + * @param {PendudukCreateManyAndReturnArgs} args - Arguments to create many Penduduks. + * @example + * // Create many Penduduks + * const penduduk = await prisma.penduduk.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Penduduks and only return the `id_penduduk` + * const pendudukWithId_pendudukOnly = await prisma.penduduk.createManyAndReturn({ + * select: { id_penduduk: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Penduduk. + * @param {PendudukDeleteArgs} args - Arguments to delete one Penduduk. + * @example + * // Delete one Penduduk + * const Penduduk = await prisma.penduduk.delete({ + * where: { + * // ... filter to delete one Penduduk + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Penduduk. + * @param {PendudukUpdateArgs} args - Arguments to update one Penduduk. + * @example + * // Update one Penduduk + * const penduduk = await prisma.penduduk.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Penduduks. + * @param {PendudukDeleteManyArgs} args - Arguments to filter Penduduks to delete. + * @example + * // Delete a few Penduduks + * const { count } = await prisma.penduduk.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Penduduks. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Penduduks + * const penduduk = await prisma.penduduk.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Penduduks and returns the data updated in the database. + * @param {PendudukUpdateManyAndReturnArgs} args - Arguments to update many Penduduks. + * @example + * // Update many Penduduks + * const penduduk = await prisma.penduduk.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Penduduks and only return the `id_penduduk` + * const pendudukWithId_pendudukOnly = await prisma.penduduk.updateManyAndReturn({ + * select: { id_penduduk: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Penduduk. + * @param {PendudukUpsertArgs} args - Arguments to update or create a Penduduk. + * @example + * // Update or create a Penduduk + * const penduduk = await prisma.penduduk.upsert({ + * create: { + * // ... data to create a Penduduk + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Penduduk we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__PendudukClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Penduduks. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukCountArgs} args - Arguments to filter Penduduks to count. + * @example + * // Count the number of Penduduks + * const count = await prisma.penduduk.count({ + * where: { + * // ... the filter for the Penduduks we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Penduduk. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Penduduk. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PendudukGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends PendudukGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: PendudukGroupByArgs['orderBy'] } + : { orderBy?: PendudukGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetPendudukGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Penduduk model + */ + readonly fields: PendudukFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Penduduk. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__PendudukClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Penduduk model + */ + interface PendudukFieldRefs { + readonly id_penduduk: FieldRef<"Penduduk", 'Int'> + readonly id_kecamatan: FieldRef<"Penduduk", 'Int'> + readonly data_tahun: FieldRef<"Penduduk", 'Int'> + readonly jumlah_penduduk: FieldRef<"Penduduk", 'Float'> + readonly laju_pertumbuhan: FieldRef<"Penduduk", 'String'> + readonly created_at: FieldRef<"Penduduk", 'DateTime'> + readonly updated_at: FieldRef<"Penduduk", 'DateTime'> + } + + + // Custom InputTypes + /** + * Penduduk findUnique + */ + export type PendudukFindUniqueArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk findUniqueOrThrow + */ + export type PendudukFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk findFirst + */ + export type PendudukFindFirstArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Penduduks. + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Penduduks. + */ + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Penduduk findFirstOrThrow + */ + export type PendudukFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduk to fetch. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Penduduks. + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Penduduks. + */ + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Penduduk findMany + */ + export type PendudukFindManyArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter, which Penduduks to fetch. + */ + where?: PendudukWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Penduduks to fetch. + */ + orderBy?: PendudukOrderByWithRelationInput | PendudukOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Penduduks. + */ + cursor?: PendudukWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Penduduks from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Penduduks. + */ + skip?: number + distinct?: PendudukScalarFieldEnum | PendudukScalarFieldEnum[] + } + + /** + * Penduduk create + */ + export type PendudukCreateArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * The data needed to create a Penduduk. + */ + data: XOR + } + + /** + * Penduduk createMany + */ + export type PendudukCreateManyArgs = { + /** + * The data used to create many Penduduks. + */ + data: PendudukCreateManyInput | PendudukCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Penduduk createManyAndReturn + */ + export type PendudukCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * The data used to create many Penduduks. + */ + data: PendudukCreateManyInput | PendudukCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukIncludeCreateManyAndReturn | null + } + + /** + * Penduduk update + */ + export type PendudukUpdateArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * The data needed to update a Penduduk. + */ + data: XOR + /** + * Choose, which Penduduk to update. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk updateMany + */ + export type PendudukUpdateManyArgs = { + /** + * The data used to update Penduduks. + */ + data: XOR + /** + * Filter which Penduduks to update + */ + where?: PendudukWhereInput + /** + * Limit how many Penduduks to update. + */ + limit?: number + } + + /** + * Penduduk updateManyAndReturn + */ + export type PendudukUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * The data used to update Penduduks. + */ + data: XOR + /** + * Filter which Penduduks to update + */ + where?: PendudukWhereInput + /** + * Limit how many Penduduks to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukIncludeUpdateManyAndReturn | null + } + + /** + * Penduduk upsert + */ + export type PendudukUpsertArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * The filter to search for the Penduduk to update in case it exists. + */ + where: PendudukWhereUniqueInput + /** + * In case the Penduduk found by the `where` argument doesn't exist, create a new Penduduk with this data. + */ + create: XOR + /** + * In case the Penduduk was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Penduduk delete + */ + export type PendudukDeleteArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + /** + * Filter which Penduduk to delete. + */ + where: PendudukWhereUniqueInput + } + + /** + * Penduduk deleteMany + */ + export type PendudukDeleteManyArgs = { + /** + * Filter which Penduduks to delete + */ + where?: PendudukWhereInput + /** + * Limit how many Penduduks to delete. + */ + limit?: number + } + + /** + * Penduduk without action + */ + export type PendudukDefaultArgs = { + /** + * Select specific fields to fetch from the Penduduk + */ + select?: PendudukSelect | null + /** + * Omit specific fields from the Penduduk + */ + omit?: PendudukOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PendudukInclude | null + } + + + /** + * Model Komoditas + */ + + export type AggregateKomoditas = { + _count: KomoditasCountAggregateOutputType | null + _avg: KomoditasAvgAggregateOutputType | null + _sum: KomoditasSumAggregateOutputType | null + _min: KomoditasMinAggregateOutputType | null + _max: KomoditasMaxAggregateOutputType | null + } + + export type KomoditasAvgAggregateOutputType = { + id_komoditas: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KomoditasSumAggregateOutputType = { + id_komoditas: number | null + posisi_x: number | null + posisi_y: number | null + } + + export type KomoditasMinAggregateOutputType = { + id_komoditas: number | null + nama_komoditas: string | null + posisi_x: number | null + posisi_y: number | null + created_at: Date | null + updated_at: Date | null + deleted_at: Date | null + } + + export type KomoditasMaxAggregateOutputType = { + id_komoditas: number | null + nama_komoditas: string | null + posisi_x: number | null + posisi_y: number | null + created_at: Date | null + updated_at: Date | null + deleted_at: Date | null + } + + export type KomoditasCountAggregateOutputType = { + id_komoditas: number + nama_komoditas: number + posisi_x: number + posisi_y: number + created_at: number + updated_at: number + deleted_at: number + _all: number + } + + + export type KomoditasAvgAggregateInputType = { + id_komoditas?: true + posisi_x?: true + posisi_y?: true + } + + export type KomoditasSumAggregateInputType = { + id_komoditas?: true + posisi_x?: true + posisi_y?: true + } + + export type KomoditasMinAggregateInputType = { + id_komoditas?: true + nama_komoditas?: true + posisi_x?: true + posisi_y?: true + created_at?: true + updated_at?: true + deleted_at?: true + } + + export type KomoditasMaxAggregateInputType = { + id_komoditas?: true + nama_komoditas?: true + posisi_x?: true + posisi_y?: true + created_at?: true + updated_at?: true + deleted_at?: true + } + + export type KomoditasCountAggregateInputType = { + id_komoditas?: true + nama_komoditas?: true + posisi_x?: true + posisi_y?: true + created_at?: true + updated_at?: true + deleted_at?: true + _all?: true + } + + export type KomoditasAggregateArgs = { + /** + * Filter which Komoditas to aggregate. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Komoditas + **/ + _count?: true | KomoditasCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: KomoditasAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: KomoditasSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: KomoditasMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: KomoditasMaxAggregateInputType + } + + export type GetKomoditasAggregateType = { + [P in keyof T & keyof AggregateKomoditas]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type KomoditasGroupByArgs = { + where?: KomoditasWhereInput + orderBy?: KomoditasOrderByWithAggregationInput | KomoditasOrderByWithAggregationInput[] + by: KomoditasScalarFieldEnum[] | KomoditasScalarFieldEnum + having?: KomoditasScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: KomoditasCountAggregateInputType | true + _avg?: KomoditasAvgAggregateInputType + _sum?: KomoditasSumAggregateInputType + _min?: KomoditasMinAggregateInputType + _max?: KomoditasMaxAggregateInputType + } + + export type KomoditasGroupByOutputType = { + id_komoditas: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at: Date + updated_at: Date + deleted_at: Date | null + _count: KomoditasCountAggregateOutputType | null + _avg: KomoditasAvgAggregateOutputType | null + _sum: KomoditasSumAggregateOutputType | null + _min: KomoditasMinAggregateOutputType | null + _max: KomoditasMaxAggregateOutputType | null + } + + type GetKomoditasGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof KomoditasGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type KomoditasSelect = $Extensions.GetSelect<{ + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + deleted_at?: boolean + kecamatan?: boolean | Komoditas$kecamatanArgs + hasil_panen?: boolean | Komoditas$hasil_panenArgs + prediksi_panen?: boolean | Komoditas$prediksi_panenArgs + _count?: boolean | KomoditasCountOutputTypeDefaultArgs + }, ExtArgs["result"]["komoditas"]> + + export type KomoditasSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + deleted_at?: boolean + }, ExtArgs["result"]["komoditas"]> + + export type KomoditasSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + deleted_at?: boolean + }, ExtArgs["result"]["komoditas"]> + + export type KomoditasSelectScalar = { + id_komoditas?: boolean + nama_komoditas?: boolean + posisi_x?: boolean + posisi_y?: boolean + created_at?: boolean + updated_at?: boolean + deleted_at?: boolean + } + + export type KomoditasOmit = $Extensions.GetOmit<"id_komoditas" | "nama_komoditas" | "posisi_x" | "posisi_y" | "created_at" | "updated_at" | "deleted_at", ExtArgs["result"]["komoditas"]> + export type KomoditasInclude = { + kecamatan?: boolean | Komoditas$kecamatanArgs + hasil_panen?: boolean | Komoditas$hasil_panenArgs + prediksi_panen?: boolean | Komoditas$prediksi_panenArgs + _count?: boolean | KomoditasCountOutputTypeDefaultArgs + } + export type KomoditasIncludeCreateManyAndReturn = {} + export type KomoditasIncludeUpdateManyAndReturn = {} + + export type $KomoditasPayload = { + name: "Komoditas" + objects: { + kecamatan: Prisma.$KecamatanPayload[] + hasil_panen: Prisma.$HasilPanenPayload[] + prediksi_panen: Prisma.$PrediksiPanenPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + id_komoditas: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at: Date + updated_at: Date + deleted_at: Date | null + }, ExtArgs["result"]["komoditas"]> + composites: {} + } + + type KomoditasGetPayload = $Result.GetResult + + type KomoditasCountArgs = + Omit & { + select?: KomoditasCountAggregateInputType | true + } + + export interface KomoditasDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Komoditas'], meta: { name: 'Komoditas' } } + /** + * Find zero or one Komoditas that matches the filter. + * @param {KomoditasFindUniqueArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Komoditas that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {KomoditasFindUniqueOrThrowArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Komoditas that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasFindFirstArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Komoditas that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasFindFirstOrThrowArgs} args - Arguments to find a Komoditas + * @example + * // Get one Komoditas + * const komoditas = await prisma.komoditas.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Komoditas that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Komoditas + * const komoditas = await prisma.komoditas.findMany() + * + * // Get first 10 Komoditas + * const komoditas = await prisma.komoditas.findMany({ take: 10 }) + * + * // Only select the `id_komoditas` + * const komoditasWithId_komoditasOnly = await prisma.komoditas.findMany({ select: { id_komoditas: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Komoditas. + * @param {KomoditasCreateArgs} args - Arguments to create a Komoditas. + * @example + * // Create one Komoditas + * const Komoditas = await prisma.komoditas.create({ + * data: { + * // ... data to create a Komoditas + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Komoditas. + * @param {KomoditasCreateManyArgs} args - Arguments to create many Komoditas. + * @example + * // Create many Komoditas + * const komoditas = await prisma.komoditas.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Komoditas and returns the data saved in the database. + * @param {KomoditasCreateManyAndReturnArgs} args - Arguments to create many Komoditas. + * @example + * // Create many Komoditas + * const komoditas = await prisma.komoditas.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Komoditas and only return the `id_komoditas` + * const komoditasWithId_komoditasOnly = await prisma.komoditas.createManyAndReturn({ + * select: { id_komoditas: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Komoditas. + * @param {KomoditasDeleteArgs} args - Arguments to delete one Komoditas. + * @example + * // Delete one Komoditas + * const Komoditas = await prisma.komoditas.delete({ + * where: { + * // ... filter to delete one Komoditas + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Komoditas. + * @param {KomoditasUpdateArgs} args - Arguments to update one Komoditas. + * @example + * // Update one Komoditas + * const komoditas = await prisma.komoditas.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Komoditas. + * @param {KomoditasDeleteManyArgs} args - Arguments to filter Komoditas to delete. + * @example + * // Delete a few Komoditas + * const { count } = await prisma.komoditas.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Komoditas + * const komoditas = await prisma.komoditas.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Komoditas and returns the data updated in the database. + * @param {KomoditasUpdateManyAndReturnArgs} args - Arguments to update many Komoditas. + * @example + * // Update many Komoditas + * const komoditas = await prisma.komoditas.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Komoditas and only return the `id_komoditas` + * const komoditasWithId_komoditasOnly = await prisma.komoditas.updateManyAndReturn({ + * select: { id_komoditas: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Komoditas. + * @param {KomoditasUpsertArgs} args - Arguments to update or create a Komoditas. + * @example + * // Update or create a Komoditas + * const komoditas = await prisma.komoditas.upsert({ + * create: { + * // ... data to create a Komoditas + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Komoditas we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__KomoditasClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasCountArgs} args - Arguments to filter Komoditas to count. + * @example + * // Count the number of Komoditas + * const count = await prisma.komoditas.count({ + * where: { + * // ... the filter for the Komoditas we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Komoditas. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {KomoditasGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends KomoditasGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: KomoditasGroupByArgs['orderBy'] } + : { orderBy?: KomoditasGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetKomoditasGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Komoditas model + */ + readonly fields: KomoditasFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Komoditas. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__KomoditasClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + hasil_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + prediksi_panen = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Komoditas model + */ + interface KomoditasFieldRefs { + readonly id_komoditas: FieldRef<"Komoditas", 'Int'> + readonly nama_komoditas: FieldRef<"Komoditas", 'String'> + readonly posisi_x: FieldRef<"Komoditas", 'Int'> + readonly posisi_y: FieldRef<"Komoditas", 'Int'> + readonly created_at: FieldRef<"Komoditas", 'DateTime'> + readonly updated_at: FieldRef<"Komoditas", 'DateTime'> + readonly deleted_at: FieldRef<"Komoditas", 'DateTime'> + } + + + // Custom InputTypes + /** + * Komoditas findUnique + */ + export type KomoditasFindUniqueArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas findUniqueOrThrow + */ + export type KomoditasFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas findFirst + */ + export type KomoditasFindFirstArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Komoditas. + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Komoditas. + */ + distinct?: KomoditasScalarFieldEnum | KomoditasScalarFieldEnum[] + } + + /** + * Komoditas findFirstOrThrow + */ + export type KomoditasFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Komoditas. + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Komoditas. + */ + distinct?: KomoditasScalarFieldEnum | KomoditasScalarFieldEnum[] + } + + /** + * Komoditas findMany + */ + export type KomoditasFindManyArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter, which Komoditas to fetch. + */ + where?: KomoditasWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Komoditas to fetch. + */ + orderBy?: KomoditasOrderByWithRelationInput | KomoditasOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Komoditas. + */ + cursor?: KomoditasWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Komoditas from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Komoditas. + */ + skip?: number + distinct?: KomoditasScalarFieldEnum | KomoditasScalarFieldEnum[] + } + + /** + * Komoditas create + */ + export type KomoditasCreateArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * The data needed to create a Komoditas. + */ + data: XOR + } + + /** + * Komoditas createMany + */ + export type KomoditasCreateManyArgs = { + /** + * The data used to create many Komoditas. + */ + data: KomoditasCreateManyInput | KomoditasCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Komoditas createManyAndReturn + */ + export type KomoditasCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * The data used to create many Komoditas. + */ + data: KomoditasCreateManyInput | KomoditasCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Komoditas update + */ + export type KomoditasUpdateArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * The data needed to update a Komoditas. + */ + data: XOR + /** + * Choose, which Komoditas to update. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas updateMany + */ + export type KomoditasUpdateManyArgs = { + /** + * The data used to update Komoditas. + */ + data: XOR + /** + * Filter which Komoditas to update + */ + where?: KomoditasWhereInput + /** + * Limit how many Komoditas to update. + */ + limit?: number + } + + /** + * Komoditas updateManyAndReturn + */ + export type KomoditasUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * The data used to update Komoditas. + */ + data: XOR + /** + * Filter which Komoditas to update + */ + where?: KomoditasWhereInput + /** + * Limit how many Komoditas to update. + */ + limit?: number + } + + /** + * Komoditas upsert + */ + export type KomoditasUpsertArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * The filter to search for the Komoditas to update in case it exists. + */ + where: KomoditasWhereUniqueInput + /** + * In case the Komoditas found by the `where` argument doesn't exist, create a new Komoditas with this data. + */ + create: XOR + /** + * In case the Komoditas was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Komoditas delete + */ + export type KomoditasDeleteArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + /** + * Filter which Komoditas to delete. + */ + where: KomoditasWhereUniqueInput + } + + /** + * Komoditas deleteMany + */ + export type KomoditasDeleteManyArgs = { + /** + * Filter which Komoditas to delete + */ + where?: KomoditasWhereInput + /** + * Limit how many Komoditas to delete. + */ + limit?: number + } + + /** + * Komoditas.kecamatan + */ + export type Komoditas$kecamatanArgs = { + /** + * Select specific fields to fetch from the Kecamatan + */ + select?: KecamatanSelect | null + /** + * Omit specific fields from the Kecamatan + */ + omit?: KecamatanOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KecamatanInclude | null + where?: KecamatanWhereInput + orderBy?: KecamatanOrderByWithRelationInput | KecamatanOrderByWithRelationInput[] + cursor?: KecamatanWhereUniqueInput + take?: number + skip?: number + distinct?: KecamatanScalarFieldEnum | KecamatanScalarFieldEnum[] + } + + /** + * Komoditas.hasil_panen + */ + export type Komoditas$hasil_panenArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + where?: HasilPanenWhereInput + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + cursor?: HasilPanenWhereUniqueInput + take?: number + skip?: number + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * Komoditas.prediksi_panen + */ + export type Komoditas$prediksi_panenArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + where?: PrediksiPanenWhereInput + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + cursor?: PrediksiPanenWhereUniqueInput + take?: number + skip?: number + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * Komoditas without action + */ + export type KomoditasDefaultArgs = { + /** + * Select specific fields to fetch from the Komoditas + */ + select?: KomoditasSelect | null + /** + * Omit specific fields from the Komoditas + */ + omit?: KomoditasOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: KomoditasInclude | null + } + + + /** + * Model HasilPanen + */ + + export type AggregateHasilPanen = { + _count: HasilPanenCountAggregateOutputType | null + _avg: HasilPanenAvgAggregateOutputType | null + _sum: HasilPanenSumAggregateOutputType | null + _min: HasilPanenMinAggregateOutputType | null + _max: HasilPanenMaxAggregateOutputType | null + } + + export type HasilPanenAvgAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + } + + export type HasilPanenSumAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + } + + export type HasilPanenMinAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + created_at: Date | null + updated_at: Date | null + } + + export type HasilPanenMaxAggregateOutputType = { + id_panen: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_panen: number | null + produksi: number | null + luas_panen: number | null + produktivitas: number | null + created_at: Date | null + updated_at: Date | null + } + + export type HasilPanenCountAggregateOutputType = { + id_panen: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at: number + updated_at: number + _all: number + } + + + export type HasilPanenAvgAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + } + + export type HasilPanenSumAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + } + + export type HasilPanenMinAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + created_at?: true + updated_at?: true + } + + export type HasilPanenMaxAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + created_at?: true + updated_at?: true + } + + export type HasilPanenCountAggregateInputType = { + id_panen?: true + id_kecamatan?: true + id_komoditas?: true + tahun_panen?: true + produksi?: true + luas_panen?: true + produktivitas?: true + created_at?: true + updated_at?: true + _all?: true + } + + export type HasilPanenAggregateArgs = { + /** + * Filter which HasilPanen to aggregate. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned HasilPanens + **/ + _count?: true | HasilPanenCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: HasilPanenAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: HasilPanenSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: HasilPanenMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: HasilPanenMaxAggregateInputType + } + + export type GetHasilPanenAggregateType = { + [P in keyof T & keyof AggregateHasilPanen]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type HasilPanenGroupByArgs = { + where?: HasilPanenWhereInput + orderBy?: HasilPanenOrderByWithAggregationInput | HasilPanenOrderByWithAggregationInput[] + by: HasilPanenScalarFieldEnum[] | HasilPanenScalarFieldEnum + having?: HasilPanenScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: HasilPanenCountAggregateInputType | true + _avg?: HasilPanenAvgAggregateInputType + _sum?: HasilPanenSumAggregateInputType + _min?: HasilPanenMinAggregateInputType + _max?: HasilPanenMaxAggregateInputType + } + + export type HasilPanenGroupByOutputType = { + id_panen: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at: Date + updated_at: Date + _count: HasilPanenCountAggregateOutputType | null + _avg: HasilPanenAvgAggregateOutputType | null + _sum: HasilPanenSumAggregateOutputType | null + _min: HasilPanenMinAggregateOutputType | null + _max: HasilPanenMaxAggregateOutputType | null + } + + type GetHasilPanenGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof HasilPanenGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type HasilPanenSelect = $Extensions.GetSelect<{ + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["hasilPanen"]> + + export type HasilPanenSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["hasilPanen"]> + + export type HasilPanenSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["hasilPanen"]> + + export type HasilPanenSelectScalar = { + id_panen?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_panen?: boolean + produksi?: boolean + luas_panen?: boolean + produktivitas?: boolean + created_at?: boolean + updated_at?: boolean + } + + export type HasilPanenOmit = $Extensions.GetOmit<"id_panen" | "id_kecamatan" | "id_komoditas" | "tahun_panen" | "produksi" | "luas_panen" | "produktivitas" | "created_at" | "updated_at", ExtArgs["result"]["hasilPanen"]> + export type HasilPanenInclude = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type HasilPanenIncludeCreateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type HasilPanenIncludeUpdateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + + export type $HasilPanenPayload = { + name: "HasilPanen" + objects: { + kecamatan: Prisma.$KecamatanPayload + komoditas: Prisma.$KomoditasPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_panen: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at: Date + updated_at: Date + }, ExtArgs["result"]["hasilPanen"]> + composites: {} + } + + type HasilPanenGetPayload = $Result.GetResult + + type HasilPanenCountArgs = + Omit & { + select?: HasilPanenCountAggregateInputType | true + } + + export interface HasilPanenDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['HasilPanen'], meta: { name: 'HasilPanen' } } + /** + * Find zero or one HasilPanen that matches the filter. + * @param {HasilPanenFindUniqueArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one HasilPanen that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {HasilPanenFindUniqueOrThrowArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first HasilPanen that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenFindFirstArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first HasilPanen that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenFindFirstOrThrowArgs} args - Arguments to find a HasilPanen + * @example + * // Get one HasilPanen + * const hasilPanen = await prisma.hasilPanen.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more HasilPanens that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all HasilPanens + * const hasilPanens = await prisma.hasilPanen.findMany() + * + * // Get first 10 HasilPanens + * const hasilPanens = await prisma.hasilPanen.findMany({ take: 10 }) + * + * // Only select the `id_panen` + * const hasilPanenWithId_panenOnly = await prisma.hasilPanen.findMany({ select: { id_panen: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a HasilPanen. + * @param {HasilPanenCreateArgs} args - Arguments to create a HasilPanen. + * @example + * // Create one HasilPanen + * const HasilPanen = await prisma.hasilPanen.create({ + * data: { + * // ... data to create a HasilPanen + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many HasilPanens. + * @param {HasilPanenCreateManyArgs} args - Arguments to create many HasilPanens. + * @example + * // Create many HasilPanens + * const hasilPanen = await prisma.hasilPanen.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many HasilPanens and returns the data saved in the database. + * @param {HasilPanenCreateManyAndReturnArgs} args - Arguments to create many HasilPanens. + * @example + * // Create many HasilPanens + * const hasilPanen = await prisma.hasilPanen.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many HasilPanens and only return the `id_panen` + * const hasilPanenWithId_panenOnly = await prisma.hasilPanen.createManyAndReturn({ + * select: { id_panen: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a HasilPanen. + * @param {HasilPanenDeleteArgs} args - Arguments to delete one HasilPanen. + * @example + * // Delete one HasilPanen + * const HasilPanen = await prisma.hasilPanen.delete({ + * where: { + * // ... filter to delete one HasilPanen + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one HasilPanen. + * @param {HasilPanenUpdateArgs} args - Arguments to update one HasilPanen. + * @example + * // Update one HasilPanen + * const hasilPanen = await prisma.hasilPanen.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more HasilPanens. + * @param {HasilPanenDeleteManyArgs} args - Arguments to filter HasilPanens to delete. + * @example + * // Delete a few HasilPanens + * const { count } = await prisma.hasilPanen.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more HasilPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many HasilPanens + * const hasilPanen = await prisma.hasilPanen.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more HasilPanens and returns the data updated in the database. + * @param {HasilPanenUpdateManyAndReturnArgs} args - Arguments to update many HasilPanens. + * @example + * // Update many HasilPanens + * const hasilPanen = await prisma.hasilPanen.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more HasilPanens and only return the `id_panen` + * const hasilPanenWithId_panenOnly = await prisma.hasilPanen.updateManyAndReturn({ + * select: { id_panen: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one HasilPanen. + * @param {HasilPanenUpsertArgs} args - Arguments to update or create a HasilPanen. + * @example + * // Update or create a HasilPanen + * const hasilPanen = await prisma.hasilPanen.upsert({ + * create: { + * // ... data to create a HasilPanen + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the HasilPanen we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__HasilPanenClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of HasilPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenCountArgs} args - Arguments to filter HasilPanens to count. + * @example + * // Count the number of HasilPanens + * const count = await prisma.hasilPanen.count({ + * where: { + * // ... the filter for the HasilPanens we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a HasilPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by HasilPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {HasilPanenGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends HasilPanenGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: HasilPanenGroupByArgs['orderBy'] } + : { orderBy?: HasilPanenGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetHasilPanenGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the HasilPanen model + */ + readonly fields: HasilPanenFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for HasilPanen. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__HasilPanenClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + komoditas = {}>(args?: Subset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the HasilPanen model + */ + interface HasilPanenFieldRefs { + readonly id_panen: FieldRef<"HasilPanen", 'Int'> + readonly id_kecamatan: FieldRef<"HasilPanen", 'Int'> + readonly id_komoditas: FieldRef<"HasilPanen", 'Int'> + readonly tahun_panen: FieldRef<"HasilPanen", 'Int'> + readonly produksi: FieldRef<"HasilPanen", 'Float'> + readonly luas_panen: FieldRef<"HasilPanen", 'Float'> + readonly produktivitas: FieldRef<"HasilPanen", 'Float'> + readonly created_at: FieldRef<"HasilPanen", 'DateTime'> + readonly updated_at: FieldRef<"HasilPanen", 'DateTime'> + } + + + // Custom InputTypes + /** + * HasilPanen findUnique + */ + export type HasilPanenFindUniqueArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen findUniqueOrThrow + */ + export type HasilPanenFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen findFirst + */ + export type HasilPanenFindFirstArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for HasilPanens. + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of HasilPanens. + */ + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * HasilPanen findFirstOrThrow + */ + export type HasilPanenFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanen to fetch. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for HasilPanens. + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of HasilPanens. + */ + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * HasilPanen findMany + */ + export type HasilPanenFindManyArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter, which HasilPanens to fetch. + */ + where?: HasilPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of HasilPanens to fetch. + */ + orderBy?: HasilPanenOrderByWithRelationInput | HasilPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing HasilPanens. + */ + cursor?: HasilPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` HasilPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` HasilPanens. + */ + skip?: number + distinct?: HasilPanenScalarFieldEnum | HasilPanenScalarFieldEnum[] + } + + /** + * HasilPanen create + */ + export type HasilPanenCreateArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * The data needed to create a HasilPanen. + */ + data: XOR + } + + /** + * HasilPanen createMany + */ + export type HasilPanenCreateManyArgs = { + /** + * The data used to create many HasilPanens. + */ + data: HasilPanenCreateManyInput | HasilPanenCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * HasilPanen createManyAndReturn + */ + export type HasilPanenCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelectCreateManyAndReturn | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * The data used to create many HasilPanens. + */ + data: HasilPanenCreateManyInput | HasilPanenCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenIncludeCreateManyAndReturn | null + } + + /** + * HasilPanen update + */ + export type HasilPanenUpdateArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * The data needed to update a HasilPanen. + */ + data: XOR + /** + * Choose, which HasilPanen to update. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen updateMany + */ + export type HasilPanenUpdateManyArgs = { + /** + * The data used to update HasilPanens. + */ + data: XOR + /** + * Filter which HasilPanens to update + */ + where?: HasilPanenWhereInput + /** + * Limit how many HasilPanens to update. + */ + limit?: number + } + + /** + * HasilPanen updateManyAndReturn + */ + export type HasilPanenUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * The data used to update HasilPanens. + */ + data: XOR + /** + * Filter which HasilPanens to update + */ + where?: HasilPanenWhereInput + /** + * Limit how many HasilPanens to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenIncludeUpdateManyAndReturn | null + } + + /** + * HasilPanen upsert + */ + export type HasilPanenUpsertArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * The filter to search for the HasilPanen to update in case it exists. + */ + where: HasilPanenWhereUniqueInput + /** + * In case the HasilPanen found by the `where` argument doesn't exist, create a new HasilPanen with this data. + */ + create: XOR + /** + * In case the HasilPanen was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * HasilPanen delete + */ + export type HasilPanenDeleteArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + /** + * Filter which HasilPanen to delete. + */ + where: HasilPanenWhereUniqueInput + } + + /** + * HasilPanen deleteMany + */ + export type HasilPanenDeleteManyArgs = { + /** + * Filter which HasilPanens to delete + */ + where?: HasilPanenWhereInput + /** + * Limit how many HasilPanens to delete. + */ + limit?: number + } + + /** + * HasilPanen without action + */ + export type HasilPanenDefaultArgs = { + /** + * Select specific fields to fetch from the HasilPanen + */ + select?: HasilPanenSelect | null + /** + * Omit specific fields from the HasilPanen + */ + omit?: HasilPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: HasilPanenInclude | null + } + + + /** + * Model PrediksiPanen + */ + + export type AggregatePrediksiPanen = { + _count: PrediksiPanenCountAggregateOutputType | null + _avg: PrediksiPanenAvgAggregateOutputType | null + _sum: PrediksiPanenSumAggregateOutputType | null + _min: PrediksiPanenMinAggregateOutputType | null + _max: PrediksiPanenMaxAggregateOutputType | null + } + + export type PrediksiPanenAvgAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + } + + export type PrediksiPanenSumAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + } + + export type PrediksiPanenMinAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + created_at: Date | null + updated_at: Date | null + } + + export type PrediksiPanenMaxAggregateOutputType = { + id_prediksi: number | null + id_kecamatan: number | null + id_komoditas: number | null + tahun_prediksi: number | null + hasil_prediksi: number | null + created_at: Date | null + updated_at: Date | null + } + + export type PrediksiPanenCountAggregateOutputType = { + id_prediksi: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at: number + updated_at: number + _all: number + } + + + export type PrediksiPanenAvgAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + } + + export type PrediksiPanenSumAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + } + + export type PrediksiPanenMinAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + created_at?: true + updated_at?: true + } + + export type PrediksiPanenMaxAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + created_at?: true + updated_at?: true + } + + export type PrediksiPanenCountAggregateInputType = { + id_prediksi?: true + id_kecamatan?: true + id_komoditas?: true + tahun_prediksi?: true + hasil_prediksi?: true + created_at?: true + updated_at?: true + _all?: true + } + + export type PrediksiPanenAggregateArgs = { + /** + * Filter which PrediksiPanen to aggregate. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned PrediksiPanens + **/ + _count?: true | PrediksiPanenCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: PrediksiPanenAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: PrediksiPanenSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: PrediksiPanenMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: PrediksiPanenMaxAggregateInputType + } + + export type GetPrediksiPanenAggregateType = { + [P in keyof T & keyof AggregatePrediksiPanen]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type PrediksiPanenGroupByArgs = { + where?: PrediksiPanenWhereInput + orderBy?: PrediksiPanenOrderByWithAggregationInput | PrediksiPanenOrderByWithAggregationInput[] + by: PrediksiPanenScalarFieldEnum[] | PrediksiPanenScalarFieldEnum + having?: PrediksiPanenScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: PrediksiPanenCountAggregateInputType | true + _avg?: PrediksiPanenAvgAggregateInputType + _sum?: PrediksiPanenSumAggregateInputType + _min?: PrediksiPanenMinAggregateInputType + _max?: PrediksiPanenMaxAggregateInputType + } + + export type PrediksiPanenGroupByOutputType = { + id_prediksi: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at: Date + updated_at: Date + _count: PrediksiPanenCountAggregateOutputType | null + _avg: PrediksiPanenAvgAggregateOutputType | null + _sum: PrediksiPanenSumAggregateOutputType | null + _min: PrediksiPanenMinAggregateOutputType | null + _max: PrediksiPanenMaxAggregateOutputType | null + } + + type GetPrediksiPanenGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof PrediksiPanenGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type PrediksiPanenSelect = $Extensions.GetSelect<{ + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["prediksiPanen"]> + + export type PrediksiPanenSelectCreateManyAndReturn = $Extensions.GetSelect<{ + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["prediksiPanen"]> + + export type PrediksiPanenSelectUpdateManyAndReturn = $Extensions.GetSelect<{ + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + created_at?: boolean + updated_at?: boolean + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + }, ExtArgs["result"]["prediksiPanen"]> + + export type PrediksiPanenSelectScalar = { + id_prediksi?: boolean + id_kecamatan?: boolean + id_komoditas?: boolean + tahun_prediksi?: boolean + hasil_prediksi?: boolean + created_at?: boolean + updated_at?: boolean + } + + export type PrediksiPanenOmit = $Extensions.GetOmit<"id_prediksi" | "id_kecamatan" | "id_komoditas" | "tahun_prediksi" | "hasil_prediksi" | "created_at" | "updated_at", ExtArgs["result"]["prediksiPanen"]> + export type PrediksiPanenInclude = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type PrediksiPanenIncludeCreateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + export type PrediksiPanenIncludeUpdateManyAndReturn = { + kecamatan?: boolean | KecamatanDefaultArgs + komoditas?: boolean | KomoditasDefaultArgs + } + + export type $PrediksiPanenPayload = { + name: "PrediksiPanen" + objects: { + kecamatan: Prisma.$KecamatanPayload + komoditas: Prisma.$KomoditasPayload + } + scalars: $Extensions.GetPayloadResult<{ + id_prediksi: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at: Date + updated_at: Date + }, ExtArgs["result"]["prediksiPanen"]> + composites: {} + } + + type PrediksiPanenGetPayload = $Result.GetResult + + type PrediksiPanenCountArgs = + Omit & { + select?: PrediksiPanenCountAggregateInputType | true + } + + export interface PrediksiPanenDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['PrediksiPanen'], meta: { name: 'PrediksiPanen' } } + /** + * Find zero or one PrediksiPanen that matches the filter. + * @param {PrediksiPanenFindUniqueArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one PrediksiPanen that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {PrediksiPanenFindUniqueOrThrowArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first PrediksiPanen that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenFindFirstArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first PrediksiPanen that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenFindFirstOrThrowArgs} args - Arguments to find a PrediksiPanen + * @example + * // Get one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more PrediksiPanens that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all PrediksiPanens + * const prediksiPanens = await prisma.prediksiPanen.findMany() + * + * // Get first 10 PrediksiPanens + * const prediksiPanens = await prisma.prediksiPanen.findMany({ take: 10 }) + * + * // Only select the `id_prediksi` + * const prediksiPanenWithId_prediksiOnly = await prisma.prediksiPanen.findMany({ select: { id_prediksi: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> + + /** + * Create a PrediksiPanen. + * @param {PrediksiPanenCreateArgs} args - Arguments to create a PrediksiPanen. + * @example + * // Create one PrediksiPanen + * const PrediksiPanen = await prisma.prediksiPanen.create({ + * data: { + * // ... data to create a PrediksiPanen + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many PrediksiPanens. + * @param {PrediksiPanenCreateManyArgs} args - Arguments to create many PrediksiPanens. + * @example + * // Create many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many PrediksiPanens and returns the data saved in the database. + * @param {PrediksiPanenCreateManyAndReturnArgs} args - Arguments to create many PrediksiPanens. + * @example + * // Create many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many PrediksiPanens and only return the `id_prediksi` + * const prediksiPanenWithId_prediksiOnly = await prisma.prediksiPanen.createManyAndReturn({ + * select: { id_prediksi: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a PrediksiPanen. + * @param {PrediksiPanenDeleteArgs} args - Arguments to delete one PrediksiPanen. + * @example + * // Delete one PrediksiPanen + * const PrediksiPanen = await prisma.prediksiPanen.delete({ + * where: { + * // ... filter to delete one PrediksiPanen + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one PrediksiPanen. + * @param {PrediksiPanenUpdateArgs} args - Arguments to update one PrediksiPanen. + * @example + * // Update one PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more PrediksiPanens. + * @param {PrediksiPanenDeleteManyArgs} args - Arguments to filter PrediksiPanens to delete. + * @example + * // Delete a few PrediksiPanens + * const { count } = await prisma.prediksiPanen.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more PrediksiPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more PrediksiPanens and returns the data updated in the database. + * @param {PrediksiPanenUpdateManyAndReturnArgs} args - Arguments to update many PrediksiPanens. + * @example + * // Update many PrediksiPanens + * const prediksiPanen = await prisma.prediksiPanen.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more PrediksiPanens and only return the `id_prediksi` + * const prediksiPanenWithId_prediksiOnly = await prisma.prediksiPanen.updateManyAndReturn({ + * select: { id_prediksi: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one PrediksiPanen. + * @param {PrediksiPanenUpsertArgs} args - Arguments to update or create a PrediksiPanen. + * @example + * // Update or create a PrediksiPanen + * const prediksiPanen = await prisma.prediksiPanen.upsert({ + * create: { + * // ... data to create a PrediksiPanen + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the PrediksiPanen we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__PrediksiPanenClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of PrediksiPanens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenCountArgs} args - Arguments to filter PrediksiPanens to count. + * @example + * // Count the number of PrediksiPanens + * const count = await prisma.prediksiPanen.count({ + * where: { + * // ... the filter for the PrediksiPanens we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a PrediksiPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by PrediksiPanen. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PrediksiPanenGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends PrediksiPanenGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: PrediksiPanenGroupByArgs['orderBy'] } + : { orderBy?: PrediksiPanenGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetPrediksiPanenGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the PrediksiPanen model + */ + readonly fields: PrediksiPanenFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for PrediksiPanen. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__PrediksiPanenClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + kecamatan = {}>(args?: Subset>): Prisma__KecamatanClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + komoditas = {}>(args?: Subset>): Prisma__KomoditasClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the PrediksiPanen model + */ + interface PrediksiPanenFieldRefs { + readonly id_prediksi: FieldRef<"PrediksiPanen", 'Int'> + readonly id_kecamatan: FieldRef<"PrediksiPanen", 'Int'> + readonly id_komoditas: FieldRef<"PrediksiPanen", 'Int'> + readonly tahun_prediksi: FieldRef<"PrediksiPanen", 'Int'> + readonly hasil_prediksi: FieldRef<"PrediksiPanen", 'Int'> + readonly created_at: FieldRef<"PrediksiPanen", 'DateTime'> + readonly updated_at: FieldRef<"PrediksiPanen", 'DateTime'> + } + + + // Custom InputTypes + /** + * PrediksiPanen findUnique + */ + export type PrediksiPanenFindUniqueArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen findUniqueOrThrow + */ + export type PrediksiPanenFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen findFirst + */ + export type PrediksiPanenFindFirstArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for PrediksiPanens. + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of PrediksiPanens. + */ + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * PrediksiPanen findFirstOrThrow + */ + export type PrediksiPanenFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanen to fetch. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for PrediksiPanens. + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of PrediksiPanens. + */ + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * PrediksiPanen findMany + */ + export type PrediksiPanenFindManyArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter, which PrediksiPanens to fetch. + */ + where?: PrediksiPanenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of PrediksiPanens to fetch. + */ + orderBy?: PrediksiPanenOrderByWithRelationInput | PrediksiPanenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing PrediksiPanens. + */ + cursor?: PrediksiPanenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` PrediksiPanens from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` PrediksiPanens. + */ + skip?: number + distinct?: PrediksiPanenScalarFieldEnum | PrediksiPanenScalarFieldEnum[] + } + + /** + * PrediksiPanen create + */ + export type PrediksiPanenCreateArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * The data needed to create a PrediksiPanen. + */ + data: XOR + } + + /** + * PrediksiPanen createMany + */ + export type PrediksiPanenCreateManyArgs = { + /** + * The data used to create many PrediksiPanens. + */ + data: PrediksiPanenCreateManyInput | PrediksiPanenCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * PrediksiPanen createManyAndReturn + */ + export type PrediksiPanenCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelectCreateManyAndReturn | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * The data used to create many PrediksiPanens. + */ + data: PrediksiPanenCreateManyInput | PrediksiPanenCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenIncludeCreateManyAndReturn | null + } + + /** + * PrediksiPanen update + */ + export type PrediksiPanenUpdateArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * The data needed to update a PrediksiPanen. + */ + data: XOR + /** + * Choose, which PrediksiPanen to update. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen updateMany + */ + export type PrediksiPanenUpdateManyArgs = { + /** + * The data used to update PrediksiPanens. + */ + data: XOR + /** + * Filter which PrediksiPanens to update + */ + where?: PrediksiPanenWhereInput + /** + * Limit how many PrediksiPanens to update. + */ + limit?: number + } + + /** + * PrediksiPanen updateManyAndReturn + */ + export type PrediksiPanenUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * The data used to update PrediksiPanens. + */ + data: XOR + /** + * Filter which PrediksiPanens to update + */ + where?: PrediksiPanenWhereInput + /** + * Limit how many PrediksiPanens to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenIncludeUpdateManyAndReturn | null + } + + /** + * PrediksiPanen upsert + */ + export type PrediksiPanenUpsertArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * The filter to search for the PrediksiPanen to update in case it exists. + */ + where: PrediksiPanenWhereUniqueInput + /** + * In case the PrediksiPanen found by the `where` argument doesn't exist, create a new PrediksiPanen with this data. + */ + create: XOR + /** + * In case the PrediksiPanen was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * PrediksiPanen delete + */ + export type PrediksiPanenDeleteArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + /** + * Filter which PrediksiPanen to delete. + */ + where: PrediksiPanenWhereUniqueInput + } + + /** + * PrediksiPanen deleteMany + */ + export type PrediksiPanenDeleteManyArgs = { + /** + * Filter which PrediksiPanens to delete + */ + where?: PrediksiPanenWhereInput + /** + * Limit how many PrediksiPanens to delete. + */ + limit?: number + } + + /** + * PrediksiPanen without action + */ + export type PrediksiPanenDefaultArgs = { + /** + * Select specific fields to fetch from the PrediksiPanen + */ + select?: PrediksiPanenSelect | null + /** + * Omit specific fields from the PrediksiPanen + */ + omit?: PrediksiPanenOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: PrediksiPanenInclude | null + } + + + /** + * Enums + */ + + export const TransactionIsolationLevel: { + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' + }; + + export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + + export const UserScalarFieldEnum: { + id: 'id', + first_name: 'first_name', + last_name: 'last_name', + email: 'email', + email_verified: 'email_verified', + password: 'password', + image: 'image', + created_at: 'created_at', + updated_at: 'updated_at' + }; + + export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + + export const DetailScalarFieldEnum: { + id_detail: 'id_detail', + id_tax: 'id_tax', + phone: 'phone', + bio: 'bio', + city: 'city', + country: 'country', + post_kode: 'post_kode' + }; + + export type DetailScalarFieldEnum = (typeof DetailScalarFieldEnum)[keyof typeof DetailScalarFieldEnum] + + + export const AccountScalarFieldEnum: { + id: 'id', + id_user: 'id_user', + id_provider: 'id_provider', + id_token: 'id_token', + type: 'type', + scope: 'scope', + provider: 'provider', + expires_at: 'expires_at', + token_type: 'token_type', + access_token: 'access_token', + refresh_token: 'refresh_token', + session_state: 'session_state' + }; + + export type AccountScalarFieldEnum = (typeof AccountScalarFieldEnum)[keyof typeof AccountScalarFieldEnum] + + + export const SessionScalarFieldEnum: { + id: 'id', + id_user: 'id_user', + session_token: 'session_token', + expires: 'expires' + }; + + export type SessionScalarFieldEnum = (typeof SessionScalarFieldEnum)[keyof typeof SessionScalarFieldEnum] + + + export const VerificationTokenScalarFieldEnum: { + identifier: 'identifier', + token: 'token', + expires: 'expires' + }; + + export type VerificationTokenScalarFieldEnum = (typeof VerificationTokenScalarFieldEnum)[keyof typeof VerificationTokenScalarFieldEnum] + + + export const KecamatanScalarFieldEnum: { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at' + }; + + export type KecamatanScalarFieldEnum = (typeof KecamatanScalarFieldEnum)[keyof typeof KecamatanScalarFieldEnum] + + + export const PendudukScalarFieldEnum: { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan', + created_at: 'created_at', + updated_at: 'updated_at' + }; + + export type PendudukScalarFieldEnum = (typeof PendudukScalarFieldEnum)[keyof typeof PendudukScalarFieldEnum] + + + export const KomoditasScalarFieldEnum: { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' + }; + + export type KomoditasScalarFieldEnum = (typeof KomoditasScalarFieldEnum)[keyof typeof KomoditasScalarFieldEnum] + + + export const HasilPanenScalarFieldEnum: { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas', + created_at: 'created_at', + updated_at: 'updated_at' + }; + + export type HasilPanenScalarFieldEnum = (typeof HasilPanenScalarFieldEnum)[keyof typeof HasilPanenScalarFieldEnum] + + + export const PrediksiPanenScalarFieldEnum: { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi', + created_at: 'created_at', + updated_at: 'updated_at' + }; + + export type PrediksiPanenScalarFieldEnum = (typeof PrediksiPanenScalarFieldEnum)[keyof typeof PrediksiPanenScalarFieldEnum] + + + export const SortOrder: { + asc: 'asc', + desc: 'desc' + }; + + export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + + export const QueryMode: { + default: 'default', + insensitive: 'insensitive' + }; + + export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + + export const NullsOrder: { + first: 'first', + last: 'last' + }; + + export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + + /** + * Field references + */ + + + /** + * Reference to a field of type 'String' + */ + export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> + + + + /** + * Reference to a field of type 'String[]' + */ + export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'> + + + + /** + * Reference to a field of type 'DateTime' + */ + export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'> + + + + /** + * Reference to a field of type 'DateTime[]' + */ + export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'> + + + + /** + * Reference to a field of type 'Int' + */ + export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + + /** + * Reference to a field of type 'Int[]' + */ + export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'> + + + + /** + * Reference to a field of type 'Float' + */ + export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'> + + + + /** + * Reference to a field of type 'Float[]' + */ + export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'> + + /** + * Deep Input Types + */ + + + export type UserWhereInput = { + AND?: UserWhereInput | UserWhereInput[] + OR?: UserWhereInput[] + NOT?: UserWhereInput | UserWhereInput[] + id?: StringFilter<"User"> | string + first_name?: StringNullableFilter<"User"> | string | null + last_name?: StringNullableFilter<"User"> | string | null + email?: StringNullableFilter<"User"> | string | null + email_verified?: DateTimeNullableFilter<"User"> | Date | string | null + password?: StringNullableFilter<"User"> | string | null + image?: StringNullableFilter<"User"> | string | null + created_at?: DateTimeFilter<"User"> | Date | string + updated_at?: DateTimeFilter<"User"> | Date | string + detail?: XOR | null + accounts?: AccountListRelationFilter + sessions?: SessionListRelationFilter + } + + export type UserOrderByWithRelationInput = { + id?: SortOrder + first_name?: SortOrderInput | SortOrder + last_name?: SortOrderInput | SortOrder + email?: SortOrderInput | SortOrder + email_verified?: SortOrderInput | SortOrder + password?: SortOrderInput | SortOrder + image?: SortOrderInput | SortOrder + created_at?: SortOrder + updated_at?: SortOrder + detail?: DetailOrderByWithRelationInput + accounts?: AccountOrderByRelationAggregateInput + sessions?: SessionOrderByRelationAggregateInput + } + + export type UserWhereUniqueInput = Prisma.AtLeast<{ + id?: string + email?: string + AND?: UserWhereInput | UserWhereInput[] + OR?: UserWhereInput[] + NOT?: UserWhereInput | UserWhereInput[] + first_name?: StringNullableFilter<"User"> | string | null + last_name?: StringNullableFilter<"User"> | string | null + email_verified?: DateTimeNullableFilter<"User"> | Date | string | null + password?: StringNullableFilter<"User"> | string | null + image?: StringNullableFilter<"User"> | string | null + created_at?: DateTimeFilter<"User"> | Date | string + updated_at?: DateTimeFilter<"User"> | Date | string + detail?: XOR | null + accounts?: AccountListRelationFilter + sessions?: SessionListRelationFilter + }, "id" | "email"> + + export type UserOrderByWithAggregationInput = { + id?: SortOrder + first_name?: SortOrderInput | SortOrder + last_name?: SortOrderInput | SortOrder + email?: SortOrderInput | SortOrder + email_verified?: SortOrderInput | SortOrder + password?: SortOrderInput | SortOrder + image?: SortOrderInput | SortOrder + created_at?: SortOrder + updated_at?: SortOrder + _count?: UserCountOrderByAggregateInput + _max?: UserMaxOrderByAggregateInput + _min?: UserMinOrderByAggregateInput + } + + export type UserScalarWhereWithAggregatesInput = { + AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] + OR?: UserScalarWhereWithAggregatesInput[] + NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] + id?: StringWithAggregatesFilter<"User"> | string + first_name?: StringNullableWithAggregatesFilter<"User"> | string | null + last_name?: StringNullableWithAggregatesFilter<"User"> | string | null + email?: StringNullableWithAggregatesFilter<"User"> | string | null + email_verified?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null + password?: StringNullableWithAggregatesFilter<"User"> | string | null + image?: StringNullableWithAggregatesFilter<"User"> | string | null + created_at?: DateTimeWithAggregatesFilter<"User"> | Date | string + updated_at?: DateTimeWithAggregatesFilter<"User"> | Date | string + } + + export type DetailWhereInput = { + AND?: DetailWhereInput | DetailWhereInput[] + OR?: DetailWhereInput[] + NOT?: DetailWhereInput | DetailWhereInput[] + id_detail?: StringFilter<"Detail"> | string + id_tax?: StringFilter<"Detail"> | string + phone?: StringFilter<"Detail"> | string + bio?: StringFilter<"Detail"> | string + city?: StringFilter<"Detail"> | string + country?: StringFilter<"Detail"> | string + post_kode?: StringFilter<"Detail"> | string + user?: XOR + } + + export type DetailOrderByWithRelationInput = { + id_detail?: SortOrder + id_tax?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + country?: SortOrder + post_kode?: SortOrder + user?: UserOrderByWithRelationInput + } + + export type DetailWhereUniqueInput = Prisma.AtLeast<{ + id_detail?: string + id_tax?: string + AND?: DetailWhereInput | DetailWhereInput[] + OR?: DetailWhereInput[] + NOT?: DetailWhereInput | DetailWhereInput[] + phone?: StringFilter<"Detail"> | string + bio?: StringFilter<"Detail"> | string + city?: StringFilter<"Detail"> | string + country?: StringFilter<"Detail"> | string + post_kode?: StringFilter<"Detail"> | string + user?: XOR + }, "id_detail" | "id_tax"> + + export type DetailOrderByWithAggregationInput = { + id_detail?: SortOrder + id_tax?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + country?: SortOrder + post_kode?: SortOrder + _count?: DetailCountOrderByAggregateInput + _max?: DetailMaxOrderByAggregateInput + _min?: DetailMinOrderByAggregateInput + } + + export type DetailScalarWhereWithAggregatesInput = { + AND?: DetailScalarWhereWithAggregatesInput | DetailScalarWhereWithAggregatesInput[] + OR?: DetailScalarWhereWithAggregatesInput[] + NOT?: DetailScalarWhereWithAggregatesInput | DetailScalarWhereWithAggregatesInput[] + id_detail?: StringWithAggregatesFilter<"Detail"> | string + id_tax?: StringWithAggregatesFilter<"Detail"> | string + phone?: StringWithAggregatesFilter<"Detail"> | string + bio?: StringWithAggregatesFilter<"Detail"> | string + city?: StringWithAggregatesFilter<"Detail"> | string + country?: StringWithAggregatesFilter<"Detail"> | string + post_kode?: StringWithAggregatesFilter<"Detail"> | string + } + + export type AccountWhereInput = { + AND?: AccountWhereInput | AccountWhereInput[] + OR?: AccountWhereInput[] + NOT?: AccountWhereInput | AccountWhereInput[] + id?: StringFilter<"Account"> | string + id_user?: StringFilter<"Account"> | string + id_provider?: StringFilter<"Account"> | string + id_token?: StringNullableFilter<"Account"> | string | null + type?: StringFilter<"Account"> | string + scope?: StringNullableFilter<"Account"> | string | null + provider?: StringFilter<"Account"> | string + expires_at?: IntNullableFilter<"Account"> | number | null + token_type?: StringNullableFilter<"Account"> | string | null + access_token?: StringNullableFilter<"Account"> | string | null + refresh_token?: StringNullableFilter<"Account"> | string | null + session_state?: StringNullableFilter<"Account"> | string | null + user?: XOR + } + + export type AccountOrderByWithRelationInput = { + id?: SortOrder + id_user?: SortOrder + id_provider?: SortOrder + id_token?: SortOrderInput | SortOrder + type?: SortOrder + scope?: SortOrderInput | SortOrder + provider?: SortOrder + expires_at?: SortOrderInput | SortOrder + token_type?: SortOrderInput | SortOrder + access_token?: SortOrderInput | SortOrder + refresh_token?: SortOrderInput | SortOrder + session_state?: SortOrderInput | SortOrder + user?: UserOrderByWithRelationInput + } + + export type AccountWhereUniqueInput = Prisma.AtLeast<{ + id?: string + provider_id_provider?: AccountProviderId_providerCompoundUniqueInput + AND?: AccountWhereInput | AccountWhereInput[] + OR?: AccountWhereInput[] + NOT?: AccountWhereInput | AccountWhereInput[] + id_user?: StringFilter<"Account"> | string + id_provider?: StringFilter<"Account"> | string + id_token?: StringNullableFilter<"Account"> | string | null + type?: StringFilter<"Account"> | string + scope?: StringNullableFilter<"Account"> | string | null + provider?: StringFilter<"Account"> | string + expires_at?: IntNullableFilter<"Account"> | number | null + token_type?: StringNullableFilter<"Account"> | string | null + access_token?: StringNullableFilter<"Account"> | string | null + refresh_token?: StringNullableFilter<"Account"> | string | null + session_state?: StringNullableFilter<"Account"> | string | null + user?: XOR + }, "id" | "provider_id_provider"> + + export type AccountOrderByWithAggregationInput = { + id?: SortOrder + id_user?: SortOrder + id_provider?: SortOrder + id_token?: SortOrderInput | SortOrder + type?: SortOrder + scope?: SortOrderInput | SortOrder + provider?: SortOrder + expires_at?: SortOrderInput | SortOrder + token_type?: SortOrderInput | SortOrder + access_token?: SortOrderInput | SortOrder + refresh_token?: SortOrderInput | SortOrder + session_state?: SortOrderInput | SortOrder + _count?: AccountCountOrderByAggregateInput + _avg?: AccountAvgOrderByAggregateInput + _max?: AccountMaxOrderByAggregateInput + _min?: AccountMinOrderByAggregateInput + _sum?: AccountSumOrderByAggregateInput + } + + export type AccountScalarWhereWithAggregatesInput = { + AND?: AccountScalarWhereWithAggregatesInput | AccountScalarWhereWithAggregatesInput[] + OR?: AccountScalarWhereWithAggregatesInput[] + NOT?: AccountScalarWhereWithAggregatesInput | AccountScalarWhereWithAggregatesInput[] + id?: StringWithAggregatesFilter<"Account"> | string + id_user?: StringWithAggregatesFilter<"Account"> | string + id_provider?: StringWithAggregatesFilter<"Account"> | string + id_token?: StringNullableWithAggregatesFilter<"Account"> | string | null + type?: StringWithAggregatesFilter<"Account"> | string + scope?: StringNullableWithAggregatesFilter<"Account"> | string | null + provider?: StringWithAggregatesFilter<"Account"> | string + expires_at?: IntNullableWithAggregatesFilter<"Account"> | number | null + token_type?: StringNullableWithAggregatesFilter<"Account"> | string | null + access_token?: StringNullableWithAggregatesFilter<"Account"> | string | null + refresh_token?: StringNullableWithAggregatesFilter<"Account"> | string | null + session_state?: StringNullableWithAggregatesFilter<"Account"> | string | null + } + + export type SessionWhereInput = { + AND?: SessionWhereInput | SessionWhereInput[] + OR?: SessionWhereInput[] + NOT?: SessionWhereInput | SessionWhereInput[] + id?: StringFilter<"Session"> | string + id_user?: StringFilter<"Session"> | string + session_token?: StringFilter<"Session"> | string + expires?: DateTimeFilter<"Session"> | Date | string + user?: XOR + } + + export type SessionOrderByWithRelationInput = { + id?: SortOrder + id_user?: SortOrder + session_token?: SortOrder + expires?: SortOrder + user?: UserOrderByWithRelationInput + } + + export type SessionWhereUniqueInput = Prisma.AtLeast<{ + id?: string + session_token?: string + AND?: SessionWhereInput | SessionWhereInput[] + OR?: SessionWhereInput[] + NOT?: SessionWhereInput | SessionWhereInput[] + id_user?: StringFilter<"Session"> | string + expires?: DateTimeFilter<"Session"> | Date | string + user?: XOR + }, "id" | "session_token"> + + export type SessionOrderByWithAggregationInput = { + id?: SortOrder + id_user?: SortOrder + session_token?: SortOrder + expires?: SortOrder + _count?: SessionCountOrderByAggregateInput + _max?: SessionMaxOrderByAggregateInput + _min?: SessionMinOrderByAggregateInput + } + + export type SessionScalarWhereWithAggregatesInput = { + AND?: SessionScalarWhereWithAggregatesInput | SessionScalarWhereWithAggregatesInput[] + OR?: SessionScalarWhereWithAggregatesInput[] + NOT?: SessionScalarWhereWithAggregatesInput | SessionScalarWhereWithAggregatesInput[] + id?: StringWithAggregatesFilter<"Session"> | string + id_user?: StringWithAggregatesFilter<"Session"> | string + session_token?: StringWithAggregatesFilter<"Session"> | string + expires?: DateTimeWithAggregatesFilter<"Session"> | Date | string + } + + export type VerificationTokenWhereInput = { + AND?: VerificationTokenWhereInput | VerificationTokenWhereInput[] + OR?: VerificationTokenWhereInput[] + NOT?: VerificationTokenWhereInput | VerificationTokenWhereInput[] + identifier?: StringFilter<"VerificationToken"> | string + token?: StringFilter<"VerificationToken"> | string + expires?: DateTimeFilter<"VerificationToken"> | Date | string + } + + export type VerificationTokenOrderByWithRelationInput = { + identifier?: SortOrder + token?: SortOrder + expires?: SortOrder + } + + export type VerificationTokenWhereUniqueInput = Prisma.AtLeast<{ + token?: string + identifier_token?: VerificationTokenIdentifierTokenCompoundUniqueInput + AND?: VerificationTokenWhereInput | VerificationTokenWhereInput[] + OR?: VerificationTokenWhereInput[] + NOT?: VerificationTokenWhereInput | VerificationTokenWhereInput[] + identifier?: StringFilter<"VerificationToken"> | string + expires?: DateTimeFilter<"VerificationToken"> | Date | string + }, "token" | "identifier_token"> + + export type VerificationTokenOrderByWithAggregationInput = { + identifier?: SortOrder + token?: SortOrder + expires?: SortOrder + _count?: VerificationTokenCountOrderByAggregateInput + _max?: VerificationTokenMaxOrderByAggregateInput + _min?: VerificationTokenMinOrderByAggregateInput + } + + export type VerificationTokenScalarWhereWithAggregatesInput = { + AND?: VerificationTokenScalarWhereWithAggregatesInput | VerificationTokenScalarWhereWithAggregatesInput[] + OR?: VerificationTokenScalarWhereWithAggregatesInput[] + NOT?: VerificationTokenScalarWhereWithAggregatesInput | VerificationTokenScalarWhereWithAggregatesInput[] + identifier?: StringWithAggregatesFilter<"VerificationToken"> | string + token?: StringWithAggregatesFilter<"VerificationToken"> | string + expires?: DateTimeWithAggregatesFilter<"VerificationToken"> | Date | string + } + + export type KecamatanWhereInput = { + AND?: KecamatanWhereInput | KecamatanWhereInput[] + OR?: KecamatanWhereInput[] + NOT?: KecamatanWhereInput | KecamatanWhereInput[] + id_kecamatan?: IntFilter<"Kecamatan"> | number + id_komoditas?: IntFilter<"Kecamatan"> | number + nama_kecamatan?: StringFilter<"Kecamatan"> | string + deskripsi?: StringFilter<"Kecamatan"> | string + gambar?: StringFilter<"Kecamatan"> | string + area?: FloatFilter<"Kecamatan"> | number + posisi_x?: IntFilter<"Kecamatan"> | number + posisi_y?: IntFilter<"Kecamatan"> | number + created_at?: DateTimeFilter<"Kecamatan"> | Date | string + updated_at?: DateTimeFilter<"Kecamatan"> | Date | string + komoditas?: XOR + penduduk?: PendudukListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + } + + export type KecamatanOrderByWithRelationInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + komoditas?: KomoditasOrderByWithRelationInput + penduduk?: PendudukOrderByRelationAggregateInput + hasil_panen?: HasilPanenOrderByRelationAggregateInput + prediksi_panen?: PrediksiPanenOrderByRelationAggregateInput + } + + export type KecamatanWhereUniqueInput = Prisma.AtLeast<{ + id_kecamatan?: number + AND?: KecamatanWhereInput | KecamatanWhereInput[] + OR?: KecamatanWhereInput[] + NOT?: KecamatanWhereInput | KecamatanWhereInput[] + id_komoditas?: IntFilter<"Kecamatan"> | number + nama_kecamatan?: StringFilter<"Kecamatan"> | string + deskripsi?: StringFilter<"Kecamatan"> | string + gambar?: StringFilter<"Kecamatan"> | string + area?: FloatFilter<"Kecamatan"> | number + posisi_x?: IntFilter<"Kecamatan"> | number + posisi_y?: IntFilter<"Kecamatan"> | number + created_at?: DateTimeFilter<"Kecamatan"> | Date | string + updated_at?: DateTimeFilter<"Kecamatan"> | Date | string + komoditas?: XOR + penduduk?: PendudukListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + }, "id_kecamatan"> + + export type KecamatanOrderByWithAggregationInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + _count?: KecamatanCountOrderByAggregateInput + _avg?: KecamatanAvgOrderByAggregateInput + _max?: KecamatanMaxOrderByAggregateInput + _min?: KecamatanMinOrderByAggregateInput + _sum?: KecamatanSumOrderByAggregateInput + } + + export type KecamatanScalarWhereWithAggregatesInput = { + AND?: KecamatanScalarWhereWithAggregatesInput | KecamatanScalarWhereWithAggregatesInput[] + OR?: KecamatanScalarWhereWithAggregatesInput[] + NOT?: KecamatanScalarWhereWithAggregatesInput | KecamatanScalarWhereWithAggregatesInput[] + id_kecamatan?: IntWithAggregatesFilter<"Kecamatan"> | number + id_komoditas?: IntWithAggregatesFilter<"Kecamatan"> | number + nama_kecamatan?: StringWithAggregatesFilter<"Kecamatan"> | string + deskripsi?: StringWithAggregatesFilter<"Kecamatan"> | string + gambar?: StringWithAggregatesFilter<"Kecamatan"> | string + area?: FloatWithAggregatesFilter<"Kecamatan"> | number + posisi_x?: IntWithAggregatesFilter<"Kecamatan"> | number + posisi_y?: IntWithAggregatesFilter<"Kecamatan"> | number + created_at?: DateTimeWithAggregatesFilter<"Kecamatan"> | Date | string + updated_at?: DateTimeWithAggregatesFilter<"Kecamatan"> | Date | string + } + + export type PendudukWhereInput = { + AND?: PendudukWhereInput | PendudukWhereInput[] + OR?: PendudukWhereInput[] + NOT?: PendudukWhereInput | PendudukWhereInput[] + id_penduduk?: IntFilter<"Penduduk"> | number + id_kecamatan?: IntFilter<"Penduduk"> | number + data_tahun?: IntFilter<"Penduduk"> | number + jumlah_penduduk?: FloatFilter<"Penduduk"> | number + laju_pertumbuhan?: StringFilter<"Penduduk"> | string + created_at?: DateTimeFilter<"Penduduk"> | Date | string + updated_at?: DateTimeFilter<"Penduduk"> | Date | string + kecamatan?: XOR + } + + export type PendudukOrderByWithRelationInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + kecamatan?: KecamatanOrderByWithRelationInput + } + + export type PendudukWhereUniqueInput = Prisma.AtLeast<{ + id_penduduk?: number + AND?: PendudukWhereInput | PendudukWhereInput[] + OR?: PendudukWhereInput[] + NOT?: PendudukWhereInput | PendudukWhereInput[] + id_kecamatan?: IntFilter<"Penduduk"> | number + data_tahun?: IntFilter<"Penduduk"> | number + jumlah_penduduk?: FloatFilter<"Penduduk"> | number + laju_pertumbuhan?: StringFilter<"Penduduk"> | string + created_at?: DateTimeFilter<"Penduduk"> | Date | string + updated_at?: DateTimeFilter<"Penduduk"> | Date | string + kecamatan?: XOR + }, "id_penduduk"> + + export type PendudukOrderByWithAggregationInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + _count?: PendudukCountOrderByAggregateInput + _avg?: PendudukAvgOrderByAggregateInput + _max?: PendudukMaxOrderByAggregateInput + _min?: PendudukMinOrderByAggregateInput + _sum?: PendudukSumOrderByAggregateInput + } + + export type PendudukScalarWhereWithAggregatesInput = { + AND?: PendudukScalarWhereWithAggregatesInput | PendudukScalarWhereWithAggregatesInput[] + OR?: PendudukScalarWhereWithAggregatesInput[] + NOT?: PendudukScalarWhereWithAggregatesInput | PendudukScalarWhereWithAggregatesInput[] + id_penduduk?: IntWithAggregatesFilter<"Penduduk"> | number + id_kecamatan?: IntWithAggregatesFilter<"Penduduk"> | number + data_tahun?: IntWithAggregatesFilter<"Penduduk"> | number + jumlah_penduduk?: FloatWithAggregatesFilter<"Penduduk"> | number + laju_pertumbuhan?: StringWithAggregatesFilter<"Penduduk"> | string + created_at?: DateTimeWithAggregatesFilter<"Penduduk"> | Date | string + updated_at?: DateTimeWithAggregatesFilter<"Penduduk"> | Date | string + } + + export type KomoditasWhereInput = { + AND?: KomoditasWhereInput | KomoditasWhereInput[] + OR?: KomoditasWhereInput[] + NOT?: KomoditasWhereInput | KomoditasWhereInput[] + id_komoditas?: IntFilter<"Komoditas"> | number + nama_komoditas?: StringFilter<"Komoditas"> | string + posisi_x?: IntFilter<"Komoditas"> | number + posisi_y?: IntFilter<"Komoditas"> | number + created_at?: DateTimeFilter<"Komoditas"> | Date | string + updated_at?: DateTimeFilter<"Komoditas"> | Date | string + deleted_at?: DateTimeNullableFilter<"Komoditas"> | Date | string | null + kecamatan?: KecamatanListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + } + + export type KomoditasOrderByWithRelationInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + deleted_at?: SortOrderInput | SortOrder + kecamatan?: KecamatanOrderByRelationAggregateInput + hasil_panen?: HasilPanenOrderByRelationAggregateInput + prediksi_panen?: PrediksiPanenOrderByRelationAggregateInput + } + + export type KomoditasWhereUniqueInput = Prisma.AtLeast<{ + id_komoditas?: number + AND?: KomoditasWhereInput | KomoditasWhereInput[] + OR?: KomoditasWhereInput[] + NOT?: KomoditasWhereInput | KomoditasWhereInput[] + nama_komoditas?: StringFilter<"Komoditas"> | string + posisi_x?: IntFilter<"Komoditas"> | number + posisi_y?: IntFilter<"Komoditas"> | number + created_at?: DateTimeFilter<"Komoditas"> | Date | string + updated_at?: DateTimeFilter<"Komoditas"> | Date | string + deleted_at?: DateTimeNullableFilter<"Komoditas"> | Date | string | null + kecamatan?: KecamatanListRelationFilter + hasil_panen?: HasilPanenListRelationFilter + prediksi_panen?: PrediksiPanenListRelationFilter + }, "id_komoditas"> + + export type KomoditasOrderByWithAggregationInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + deleted_at?: SortOrderInput | SortOrder + _count?: KomoditasCountOrderByAggregateInput + _avg?: KomoditasAvgOrderByAggregateInput + _max?: KomoditasMaxOrderByAggregateInput + _min?: KomoditasMinOrderByAggregateInput + _sum?: KomoditasSumOrderByAggregateInput + } + + export type KomoditasScalarWhereWithAggregatesInput = { + AND?: KomoditasScalarWhereWithAggregatesInput | KomoditasScalarWhereWithAggregatesInput[] + OR?: KomoditasScalarWhereWithAggregatesInput[] + NOT?: KomoditasScalarWhereWithAggregatesInput | KomoditasScalarWhereWithAggregatesInput[] + id_komoditas?: IntWithAggregatesFilter<"Komoditas"> | number + nama_komoditas?: StringWithAggregatesFilter<"Komoditas"> | string + posisi_x?: IntWithAggregatesFilter<"Komoditas"> | number + posisi_y?: IntWithAggregatesFilter<"Komoditas"> | number + created_at?: DateTimeWithAggregatesFilter<"Komoditas"> | Date | string + updated_at?: DateTimeWithAggregatesFilter<"Komoditas"> | Date | string + deleted_at?: DateTimeNullableWithAggregatesFilter<"Komoditas"> | Date | string | null + } + + export type HasilPanenWhereInput = { + AND?: HasilPanenWhereInput | HasilPanenWhereInput[] + OR?: HasilPanenWhereInput[] + NOT?: HasilPanenWhereInput | HasilPanenWhereInput[] + id_panen?: IntFilter<"HasilPanen"> | number + id_kecamatan?: IntFilter<"HasilPanen"> | number + id_komoditas?: IntFilter<"HasilPanen"> | number + tahun_panen?: IntFilter<"HasilPanen"> | number + produksi?: FloatFilter<"HasilPanen"> | number + luas_panen?: FloatFilter<"HasilPanen"> | number + produktivitas?: FloatFilter<"HasilPanen"> | number + created_at?: DateTimeFilter<"HasilPanen"> | Date | string + updated_at?: DateTimeFilter<"HasilPanen"> | Date | string + kecamatan?: XOR + komoditas?: XOR + } + + export type HasilPanenOrderByWithRelationInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + kecamatan?: KecamatanOrderByWithRelationInput + komoditas?: KomoditasOrderByWithRelationInput + } + + export type HasilPanenWhereUniqueInput = Prisma.AtLeast<{ + id_panen?: number + AND?: HasilPanenWhereInput | HasilPanenWhereInput[] + OR?: HasilPanenWhereInput[] + NOT?: HasilPanenWhereInput | HasilPanenWhereInput[] + id_kecamatan?: IntFilter<"HasilPanen"> | number + id_komoditas?: IntFilter<"HasilPanen"> | number + tahun_panen?: IntFilter<"HasilPanen"> | number + produksi?: FloatFilter<"HasilPanen"> | number + luas_panen?: FloatFilter<"HasilPanen"> | number + produktivitas?: FloatFilter<"HasilPanen"> | number + created_at?: DateTimeFilter<"HasilPanen"> | Date | string + updated_at?: DateTimeFilter<"HasilPanen"> | Date | string + kecamatan?: XOR + komoditas?: XOR + }, "id_panen"> + + export type HasilPanenOrderByWithAggregationInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + _count?: HasilPanenCountOrderByAggregateInput + _avg?: HasilPanenAvgOrderByAggregateInput + _max?: HasilPanenMaxOrderByAggregateInput + _min?: HasilPanenMinOrderByAggregateInput + _sum?: HasilPanenSumOrderByAggregateInput + } + + export type HasilPanenScalarWhereWithAggregatesInput = { + AND?: HasilPanenScalarWhereWithAggregatesInput | HasilPanenScalarWhereWithAggregatesInput[] + OR?: HasilPanenScalarWhereWithAggregatesInput[] + NOT?: HasilPanenScalarWhereWithAggregatesInput | HasilPanenScalarWhereWithAggregatesInput[] + id_panen?: IntWithAggregatesFilter<"HasilPanen"> | number + id_kecamatan?: IntWithAggregatesFilter<"HasilPanen"> | number + id_komoditas?: IntWithAggregatesFilter<"HasilPanen"> | number + tahun_panen?: IntWithAggregatesFilter<"HasilPanen"> | number + produksi?: FloatWithAggregatesFilter<"HasilPanen"> | number + luas_panen?: FloatWithAggregatesFilter<"HasilPanen"> | number + produktivitas?: FloatWithAggregatesFilter<"HasilPanen"> | number + created_at?: DateTimeWithAggregatesFilter<"HasilPanen"> | Date | string + updated_at?: DateTimeWithAggregatesFilter<"HasilPanen"> | Date | string + } + + export type PrediksiPanenWhereInput = { + AND?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + OR?: PrediksiPanenWhereInput[] + NOT?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + id_prediksi?: IntFilter<"PrediksiPanen"> | number + id_kecamatan?: IntFilter<"PrediksiPanen"> | number + id_komoditas?: IntFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntFilter<"PrediksiPanen"> | number + created_at?: DateTimeFilter<"PrediksiPanen"> | Date | string + updated_at?: DateTimeFilter<"PrediksiPanen"> | Date | string + kecamatan?: XOR + komoditas?: XOR + } + + export type PrediksiPanenOrderByWithRelationInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + kecamatan?: KecamatanOrderByWithRelationInput + komoditas?: KomoditasOrderByWithRelationInput + } + + export type PrediksiPanenWhereUniqueInput = Prisma.AtLeast<{ + id_prediksi?: number + AND?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + OR?: PrediksiPanenWhereInput[] + NOT?: PrediksiPanenWhereInput | PrediksiPanenWhereInput[] + id_kecamatan?: IntFilter<"PrediksiPanen"> | number + id_komoditas?: IntFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntFilter<"PrediksiPanen"> | number + created_at?: DateTimeFilter<"PrediksiPanen"> | Date | string + updated_at?: DateTimeFilter<"PrediksiPanen"> | Date | string + kecamatan?: XOR + komoditas?: XOR + }, "id_prediksi"> + + export type PrediksiPanenOrderByWithAggregationInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + _count?: PrediksiPanenCountOrderByAggregateInput + _avg?: PrediksiPanenAvgOrderByAggregateInput + _max?: PrediksiPanenMaxOrderByAggregateInput + _min?: PrediksiPanenMinOrderByAggregateInput + _sum?: PrediksiPanenSumOrderByAggregateInput + } + + export type PrediksiPanenScalarWhereWithAggregatesInput = { + AND?: PrediksiPanenScalarWhereWithAggregatesInput | PrediksiPanenScalarWhereWithAggregatesInput[] + OR?: PrediksiPanenScalarWhereWithAggregatesInput[] + NOT?: PrediksiPanenScalarWhereWithAggregatesInput | PrediksiPanenScalarWhereWithAggregatesInput[] + id_prediksi?: IntWithAggregatesFilter<"PrediksiPanen"> | number + id_kecamatan?: IntWithAggregatesFilter<"PrediksiPanen"> | number + id_komoditas?: IntWithAggregatesFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntWithAggregatesFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntWithAggregatesFilter<"PrediksiPanen"> | number + created_at?: DateTimeWithAggregatesFilter<"PrediksiPanen"> | Date | string + updated_at?: DateTimeWithAggregatesFilter<"PrediksiPanen"> | Date | string + } + + export type UserCreateInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + detail?: DetailCreateNestedOneWithoutUserInput + accounts?: AccountCreateNestedManyWithoutUserInput + sessions?: SessionCreateNestedManyWithoutUserInput + } + + export type UserUncheckedCreateInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + detail?: DetailUncheckedCreateNestedOneWithoutUserInput + accounts?: AccountUncheckedCreateNestedManyWithoutUserInput + sessions?: SessionUncheckedCreateNestedManyWithoutUserInput + } + + export type UserUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUpdateOneWithoutUserNestedInput + accounts?: AccountUpdateManyWithoutUserNestedInput + sessions?: SessionUpdateManyWithoutUserNestedInput + } + + export type UserUncheckedUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUncheckedUpdateOneWithoutUserNestedInput + accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput + sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput + } + + export type UserCreateManyInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + } + + export type UserUpdateManyMutationInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type UserUncheckedUpdateManyInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type DetailCreateInput = { + id_detail?: string + phone: string + bio: string + city: string + country: string + post_kode: string + user: UserCreateNestedOneWithoutDetailInput + } + + export type DetailUncheckedCreateInput = { + id_detail?: string + id_tax: string + phone: string + bio: string + city: string + country: string + post_kode: string + } + + export type DetailUpdateInput = { + id_detail?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + country?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + user?: UserUpdateOneRequiredWithoutDetailNestedInput + } + + export type DetailUncheckedUpdateInput = { + id_detail?: StringFieldUpdateOperationsInput | string + id_tax?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + country?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + } + + export type DetailCreateManyInput = { + id_detail?: string + id_tax: string + phone: string + bio: string + city: string + country: string + post_kode: string + } + + export type DetailUpdateManyMutationInput = { + id_detail?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + country?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + } + + export type DetailUncheckedUpdateManyInput = { + id_detail?: StringFieldUpdateOperationsInput | string + id_tax?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + country?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + } + + export type AccountCreateInput = { + id?: string + id_provider: string + id_token?: string | null + type: string + scope?: string | null + provider: string + expires_at?: number | null + token_type?: string | null + access_token?: string | null + refresh_token?: string | null + session_state?: string | null + user: UserCreateNestedOneWithoutAccountsInput + } + + export type AccountUncheckedCreateInput = { + id?: string + id_user: string + id_provider: string + id_token?: string | null + type: string + scope?: string | null + provider: string + expires_at?: number | null + token_type?: string | null + access_token?: string | null + refresh_token?: string | null + session_state?: string | null + } + + export type AccountUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + user?: UserUpdateOneRequiredWithoutAccountsNestedInput + } + + export type AccountUncheckedUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + id_user?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + } + + export type AccountCreateManyInput = { + id?: string + id_user: string + id_provider: string + id_token?: string | null + type: string + scope?: string | null + provider: string + expires_at?: number | null + token_type?: string | null + access_token?: string | null + refresh_token?: string | null + session_state?: string | null + } + + export type AccountUpdateManyMutationInput = { + id?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + } + + export type AccountUncheckedUpdateManyInput = { + id?: StringFieldUpdateOperationsInput | string + id_user?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + } + + export type SessionCreateInput = { + id?: string + session_token: string + expires: Date | string + user: UserCreateNestedOneWithoutSessionsInput + } + + export type SessionUncheckedCreateInput = { + id?: string + id_user: string + session_token: string + expires: Date | string + } + + export type SessionUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + user?: UserUpdateOneRequiredWithoutSessionsNestedInput + } + + export type SessionUncheckedUpdateInput = { + id?: StringFieldUpdateOperationsInput | string + id_user?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type SessionCreateManyInput = { + id?: string + id_user: string + session_token: string + expires: Date | string + } + + export type SessionUpdateManyMutationInput = { + id?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type SessionUncheckedUpdateManyInput = { + id?: StringFieldUpdateOperationsInput | string + id_user?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationTokenCreateInput = { + identifier: string + token: string + expires: Date | string + } + + export type VerificationTokenUncheckedCreateInput = { + identifier: string + token: string + expires: Date | string + } + + export type VerificationTokenUpdateInput = { + identifier?: StringFieldUpdateOperationsInput | string + token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationTokenUncheckedUpdateInput = { + identifier?: StringFieldUpdateOperationsInput | string + token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationTokenCreateManyInput = { + identifier: string + token: string + expires: Date | string + } + + export type VerificationTokenUpdateManyMutationInput = { + identifier?: StringFieldUpdateOperationsInput | string + token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationTokenUncheckedUpdateManyInput = { + identifier?: StringFieldUpdateOperationsInput | string + token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type KecamatanCreateInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUpdateInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanCreateManyInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + } + + export type KecamatanUpdateManyMutationInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type KecamatanUncheckedUpdateManyInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PendudukCreateInput = { + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at?: Date | string + updated_at?: Date | string + kecamatan: KecamatanCreateNestedOneWithoutPendudukInput + } + + export type PendudukUncheckedCreateInput = { + id_penduduk?: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at?: Date | string + updated_at?: Date | string + } + + export type PendudukUpdateInput = { + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + kecamatan?: KecamatanUpdateOneRequiredWithoutPendudukNestedInput + } + + export type PendudukUncheckedUpdateInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PendudukCreateManyInput = { + id_penduduk?: number + id_kecamatan: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at?: Date | string + updated_at?: Date | string + } + + export type PendudukUpdateManyMutationInput = { + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PendudukUncheckedUpdateManyInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type KomoditasCreateInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + kecamatan?: KecamatanCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + kecamatan?: KecamatanUncheckedCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUpdateInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + kecamatan?: KecamatanUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + kecamatan?: KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasCreateManyInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + } + + export type KomoditasUpdateManyMutationInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + } + + export type KomoditasUncheckedUpdateManyInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + } + + export type HasilPanenCreateInput = { + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + kecamatan: KecamatanCreateNestedOneWithoutHasil_panenInput + komoditas: KomoditasCreateNestedOneWithoutHasil_panenInput + } + + export type HasilPanenUncheckedCreateInput = { + id_panen?: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + } + + export type HasilPanenUpdateInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + kecamatan?: KecamatanUpdateOneRequiredWithoutHasil_panenNestedInput + komoditas?: KomoditasUpdateOneRequiredWithoutHasil_panenNestedInput + } + + export type HasilPanenUncheckedUpdateInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type HasilPanenCreateManyInput = { + id_panen?: number + id_kecamatan: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + } + + export type HasilPanenUpdateManyMutationInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type HasilPanenUncheckedUpdateManyInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenCreateInput = { + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + kecamatan: KecamatanCreateNestedOneWithoutPrediksi_panenInput + komoditas: KomoditasCreateNestedOneWithoutPrediksi_panenInput + } + + export type PrediksiPanenUncheckedCreateInput = { + id_prediksi?: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PrediksiPanenUpdateInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + kecamatan?: KecamatanUpdateOneRequiredWithoutPrediksi_panenNestedInput + komoditas?: KomoditasUpdateOneRequiredWithoutPrediksi_panenNestedInput + } + + export type PrediksiPanenUncheckedUpdateInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenCreateManyInput = { + id_prediksi?: number + id_kecamatan: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PrediksiPanenUpdateManyMutationInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenUncheckedUpdateManyInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type StringFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringFilter<$PrismaModel> | string + } + + export type StringNullableFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringNullableFilter<$PrismaModel> | string | null + } + + export type DateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null + } + + export type DateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeFilter<$PrismaModel> | Date | string + } + + export type DetailNullableScalarRelationFilter = { + is?: DetailWhereInput | null + isNot?: DetailWhereInput | null + } + + export type AccountListRelationFilter = { + every?: AccountWhereInput + some?: AccountWhereInput + none?: AccountWhereInput + } + + export type SessionListRelationFilter = { + every?: SessionWhereInput + some?: SessionWhereInput + none?: SessionWhereInput + } + + export type SortOrderInput = { + sort: SortOrder + nulls?: NullsOrder + } + + export type AccountOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type SessionOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type UserCountOrderByAggregateInput = { + id?: SortOrder + first_name?: SortOrder + last_name?: SortOrder + email?: SortOrder + email_verified?: SortOrder + password?: SortOrder + image?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type UserMaxOrderByAggregateInput = { + id?: SortOrder + first_name?: SortOrder + last_name?: SortOrder + email?: SortOrder + email_verified?: SortOrder + password?: SortOrder + image?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type UserMinOrderByAggregateInput = { + id?: SortOrder + first_name?: SortOrder + last_name?: SortOrder + email?: SortOrder + email_verified?: SortOrder + password?: SortOrder + image?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type StringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedStringFilter<$PrismaModel> + _max?: NestedStringFilter<$PrismaModel> + } + + export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedStringNullableFilter<$PrismaModel> + _max?: NestedStringNullableFilter<$PrismaModel> + } + + export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedDateTimeNullableFilter<$PrismaModel> + _max?: NestedDateTimeNullableFilter<$PrismaModel> + } + + export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedDateTimeFilter<$PrismaModel> + _max?: NestedDateTimeFilter<$PrismaModel> + } + + export type UserScalarRelationFilter = { + is?: UserWhereInput + isNot?: UserWhereInput + } + + export type DetailCountOrderByAggregateInput = { + id_detail?: SortOrder + id_tax?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + country?: SortOrder + post_kode?: SortOrder + } + + export type DetailMaxOrderByAggregateInput = { + id_detail?: SortOrder + id_tax?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + country?: SortOrder + post_kode?: SortOrder + } + + export type DetailMinOrderByAggregateInput = { + id_detail?: SortOrder + id_tax?: SortOrder + phone?: SortOrder + bio?: SortOrder + city?: SortOrder + country?: SortOrder + post_kode?: SortOrder + } + + export type IntNullableFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> | null + in?: number[] | ListIntFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntNullableFilter<$PrismaModel> | number | null + } + + export type AccountProviderId_providerCompoundUniqueInput = { + provider: string + id_provider: string + } + + export type AccountCountOrderByAggregateInput = { + id?: SortOrder + id_user?: SortOrder + id_provider?: SortOrder + id_token?: SortOrder + type?: SortOrder + scope?: SortOrder + provider?: SortOrder + expires_at?: SortOrder + token_type?: SortOrder + access_token?: SortOrder + refresh_token?: SortOrder + session_state?: SortOrder + } + + export type AccountAvgOrderByAggregateInput = { + expires_at?: SortOrder + } + + export type AccountMaxOrderByAggregateInput = { + id?: SortOrder + id_user?: SortOrder + id_provider?: SortOrder + id_token?: SortOrder + type?: SortOrder + scope?: SortOrder + provider?: SortOrder + expires_at?: SortOrder + token_type?: SortOrder + access_token?: SortOrder + refresh_token?: SortOrder + session_state?: SortOrder + } + + export type AccountMinOrderByAggregateInput = { + id?: SortOrder + id_user?: SortOrder + id_provider?: SortOrder + id_token?: SortOrder + type?: SortOrder + scope?: SortOrder + provider?: SortOrder + expires_at?: SortOrder + token_type?: SortOrder + access_token?: SortOrder + refresh_token?: SortOrder + session_state?: SortOrder + } + + export type AccountSumOrderByAggregateInput = { + expires_at?: SortOrder + } + + export type IntNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> | null + in?: number[] | ListIntFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null + _count?: NestedIntNullableFilter<$PrismaModel> + _avg?: NestedFloatNullableFilter<$PrismaModel> + _sum?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedIntNullableFilter<$PrismaModel> + _max?: NestedIntNullableFilter<$PrismaModel> + } + + export type SessionCountOrderByAggregateInput = { + id?: SortOrder + id_user?: SortOrder + session_token?: SortOrder + expires?: SortOrder + } + + export type SessionMaxOrderByAggregateInput = { + id?: SortOrder + id_user?: SortOrder + session_token?: SortOrder + expires?: SortOrder + } + + export type SessionMinOrderByAggregateInput = { + id?: SortOrder + id_user?: SortOrder + session_token?: SortOrder + expires?: SortOrder + } + + export type VerificationTokenIdentifierTokenCompoundUniqueInput = { + identifier: string + token: string + } + + export type VerificationTokenCountOrderByAggregateInput = { + identifier?: SortOrder + token?: SortOrder + expires?: SortOrder + } + + export type VerificationTokenMaxOrderByAggregateInput = { + identifier?: SortOrder + token?: SortOrder + expires?: SortOrder + } + + export type VerificationTokenMinOrderByAggregateInput = { + identifier?: SortOrder + token?: SortOrder + expires?: SortOrder + } + + export type IntFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntFilter<$PrismaModel> | number + } + + export type FloatFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatFilter<$PrismaModel> | number + } + + export type KomoditasScalarRelationFilter = { + is?: KomoditasWhereInput + isNot?: KomoditasWhereInput + } + + export type PendudukListRelationFilter = { + every?: PendudukWhereInput + some?: PendudukWhereInput + none?: PendudukWhereInput + } + + export type HasilPanenListRelationFilter = { + every?: HasilPanenWhereInput + some?: HasilPanenWhereInput + none?: HasilPanenWhereInput + } + + export type PrediksiPanenListRelationFilter = { + every?: PrediksiPanenWhereInput + some?: PrediksiPanenWhereInput + none?: PrediksiPanenWhereInput + } + + export type PendudukOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type HasilPanenOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type PrediksiPanenOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type KecamatanCountOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type KecamatanAvgOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KecamatanMaxOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type KecamatanMinOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + nama_kecamatan?: SortOrder + deskripsi?: SortOrder + gambar?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type KecamatanSumOrderByAggregateInput = { + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + area?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type IntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedIntFilter<$PrismaModel> + _min?: NestedIntFilter<$PrismaModel> + _max?: NestedIntFilter<$PrismaModel> + } + + export type FloatWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedFloatFilter<$PrismaModel> + _min?: NestedFloatFilter<$PrismaModel> + _max?: NestedFloatFilter<$PrismaModel> + } + + export type KecamatanScalarRelationFilter = { + is?: KecamatanWhereInput + isNot?: KecamatanWhereInput + } + + export type PendudukCountOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type PendudukAvgOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + } + + export type PendudukMaxOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type PendudukMinOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + laju_pertumbuhan?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type PendudukSumOrderByAggregateInput = { + id_penduduk?: SortOrder + id_kecamatan?: SortOrder + data_tahun?: SortOrder + jumlah_penduduk?: SortOrder + } + + export type KecamatanListRelationFilter = { + every?: KecamatanWhereInput + some?: KecamatanWhereInput + none?: KecamatanWhereInput + } + + export type KecamatanOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type KomoditasCountOrderByAggregateInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + deleted_at?: SortOrder + } + + export type KomoditasAvgOrderByAggregateInput = { + id_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type KomoditasMaxOrderByAggregateInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + deleted_at?: SortOrder + } + + export type KomoditasMinOrderByAggregateInput = { + id_komoditas?: SortOrder + nama_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + deleted_at?: SortOrder + } + + export type KomoditasSumOrderByAggregateInput = { + id_komoditas?: SortOrder + posisi_x?: SortOrder + posisi_y?: SortOrder + } + + export type HasilPanenCountOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type HasilPanenAvgOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type HasilPanenMaxOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type HasilPanenMinOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type HasilPanenSumOrderByAggregateInput = { + id_panen?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_panen?: SortOrder + produksi?: SortOrder + luas_panen?: SortOrder + produktivitas?: SortOrder + } + + export type PrediksiPanenCountOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type PrediksiPanenAvgOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type PrediksiPanenMaxOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type PrediksiPanenMinOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + created_at?: SortOrder + updated_at?: SortOrder + } + + export type PrediksiPanenSumOrderByAggregateInput = { + id_prediksi?: SortOrder + id_kecamatan?: SortOrder + id_komoditas?: SortOrder + tahun_prediksi?: SortOrder + hasil_prediksi?: SortOrder + } + + export type DetailCreateNestedOneWithoutUserInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + connect?: DetailWhereUniqueInput + } + + export type AccountCreateNestedManyWithoutUserInput = { + create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] + createMany?: AccountCreateManyUserInputEnvelope + connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + } + + export type SessionCreateNestedManyWithoutUserInput = { + create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] + createMany?: SessionCreateManyUserInputEnvelope + connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + } + + export type DetailUncheckedCreateNestedOneWithoutUserInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + connect?: DetailWhereUniqueInput + } + + export type AccountUncheckedCreateNestedManyWithoutUserInput = { + create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] + createMany?: AccountCreateManyUserInputEnvelope + connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + } + + export type SessionUncheckedCreateNestedManyWithoutUserInput = { + create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] + createMany?: SessionCreateManyUserInputEnvelope + connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + } + + export type StringFieldUpdateOperationsInput = { + set?: string + } + + export type NullableStringFieldUpdateOperationsInput = { + set?: string | null + } + + export type NullableDateTimeFieldUpdateOperationsInput = { + set?: Date | string | null + } + + export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string + } + + export type DetailUpdateOneWithoutUserNestedInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + upsert?: DetailUpsertWithoutUserInput + disconnect?: DetailWhereInput | boolean + delete?: DetailWhereInput | boolean + connect?: DetailWhereUniqueInput + update?: XOR, DetailUncheckedUpdateWithoutUserInput> + } + + export type AccountUpdateManyWithoutUserNestedInput = { + create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] + upsert?: AccountUpsertWithWhereUniqueWithoutUserInput | AccountUpsertWithWhereUniqueWithoutUserInput[] + createMany?: AccountCreateManyUserInputEnvelope + set?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + disconnect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + delete?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + update?: AccountUpdateWithWhereUniqueWithoutUserInput | AccountUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: AccountUpdateManyWithWhereWithoutUserInput | AccountUpdateManyWithWhereWithoutUserInput[] + deleteMany?: AccountScalarWhereInput | AccountScalarWhereInput[] + } + + export type SessionUpdateManyWithoutUserNestedInput = { + create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] + upsert?: SessionUpsertWithWhereUniqueWithoutUserInput | SessionUpsertWithWhereUniqueWithoutUserInput[] + createMany?: SessionCreateManyUserInputEnvelope + set?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + disconnect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + delete?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + update?: SessionUpdateWithWhereUniqueWithoutUserInput | SessionUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: SessionUpdateManyWithWhereWithoutUserInput | SessionUpdateManyWithWhereWithoutUserInput[] + deleteMany?: SessionScalarWhereInput | SessionScalarWhereInput[] + } + + export type DetailUncheckedUpdateOneWithoutUserNestedInput = { + create?: XOR + connectOrCreate?: DetailCreateOrConnectWithoutUserInput + upsert?: DetailUpsertWithoutUserInput + disconnect?: DetailWhereInput | boolean + delete?: DetailWhereInput | boolean + connect?: DetailWhereUniqueInput + update?: XOR, DetailUncheckedUpdateWithoutUserInput> + } + + export type AccountUncheckedUpdateManyWithoutUserNestedInput = { + create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] + upsert?: AccountUpsertWithWhereUniqueWithoutUserInput | AccountUpsertWithWhereUniqueWithoutUserInput[] + createMany?: AccountCreateManyUserInputEnvelope + set?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + disconnect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + delete?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] + update?: AccountUpdateWithWhereUniqueWithoutUserInput | AccountUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: AccountUpdateManyWithWhereWithoutUserInput | AccountUpdateManyWithWhereWithoutUserInput[] + deleteMany?: AccountScalarWhereInput | AccountScalarWhereInput[] + } + + export type SessionUncheckedUpdateManyWithoutUserNestedInput = { + create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] + upsert?: SessionUpsertWithWhereUniqueWithoutUserInput | SessionUpsertWithWhereUniqueWithoutUserInput[] + createMany?: SessionCreateManyUserInputEnvelope + set?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + disconnect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + delete?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] + update?: SessionUpdateWithWhereUniqueWithoutUserInput | SessionUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: SessionUpdateManyWithWhereWithoutUserInput | SessionUpdateManyWithWhereWithoutUserInput[] + deleteMany?: SessionScalarWhereInput | SessionScalarWhereInput[] + } + + export type UserCreateNestedOneWithoutDetailInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutDetailInput + connect?: UserWhereUniqueInput + } + + export type UserUpdateOneRequiredWithoutDetailNestedInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutDetailInput + upsert?: UserUpsertWithoutDetailInput + connect?: UserWhereUniqueInput + update?: XOR, UserUncheckedUpdateWithoutDetailInput> + } + + export type UserCreateNestedOneWithoutAccountsInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutAccountsInput + connect?: UserWhereUniqueInput + } + + export type NullableIntFieldUpdateOperationsInput = { + set?: number | null + increment?: number + decrement?: number + multiply?: number + divide?: number + } + + export type UserUpdateOneRequiredWithoutAccountsNestedInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutAccountsInput + upsert?: UserUpsertWithoutAccountsInput + connect?: UserWhereUniqueInput + update?: XOR, UserUncheckedUpdateWithoutAccountsInput> + } + + export type UserCreateNestedOneWithoutSessionsInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutSessionsInput + connect?: UserWhereUniqueInput + } + + export type UserUpdateOneRequiredWithoutSessionsNestedInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutSessionsInput + upsert?: UserUpsertWithoutSessionsInput + connect?: UserWhereUniqueInput + update?: XOR, UserUncheckedUpdateWithoutSessionsInput> + } + + export type KomoditasCreateNestedOneWithoutKecamatanInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutKecamatanInput + connect?: KomoditasWhereUniqueInput + } + + export type PendudukCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + } + + export type HasilPanenCreateNestedManyWithoutKecamatanInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type PendudukUncheckedCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + } + + export type HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type FloatFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number + } + + export type IntFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number + } + + export type KomoditasUpdateOneRequiredWithoutKecamatanNestedInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutKecamatanInput + upsert?: KomoditasUpsertWithoutKecamatanInput + connect?: KomoditasWhereUniqueInput + update?: XOR, KomoditasUncheckedUpdateWithoutKecamatanInput> + } + + export type PendudukUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + upsert?: PendudukUpsertWithWhereUniqueWithoutKecamatanInput | PendudukUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + set?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + disconnect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + delete?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + update?: PendudukUpdateWithWhereUniqueWithoutKecamatanInput | PendudukUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PendudukUpdateManyWithWhereWithoutKecamatanInput | PendudukUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + } + + export type HasilPanenUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput | HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput | HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKecamatanInput | HasilPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput | PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type PendudukUncheckedUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PendudukCreateWithoutKecamatanInput[] | PendudukUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PendudukCreateOrConnectWithoutKecamatanInput | PendudukCreateOrConnectWithoutKecamatanInput[] + upsert?: PendudukUpsertWithWhereUniqueWithoutKecamatanInput | PendudukUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PendudukCreateManyKecamatanInputEnvelope + set?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + disconnect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + delete?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + connect?: PendudukWhereUniqueInput | PendudukWhereUniqueInput[] + update?: PendudukUpdateWithWhereUniqueWithoutKecamatanInput | PendudukUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PendudukUpdateManyWithWhereWithoutKecamatanInput | PendudukUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + } + + export type HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | HasilPanenCreateWithoutKecamatanInput[] | HasilPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKecamatanInput | HasilPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput | HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: HasilPanenCreateManyKecamatanInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput | HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKecamatanInput | HasilPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKecamatanInput[] | PrediksiPanenUncheckedCreateWithoutKecamatanInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKecamatanInput | PrediksiPanenCreateOrConnectWithoutKecamatanInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput[] + createMany?: PrediksiPanenCreateManyKecamatanInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput | PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput | PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type KecamatanCreateNestedOneWithoutPendudukInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPendudukInput + connect?: KecamatanWhereUniqueInput + } + + export type KecamatanUpdateOneRequiredWithoutPendudukNestedInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPendudukInput + upsert?: KecamatanUpsertWithoutPendudukInput + connect?: KecamatanWhereUniqueInput + update?: XOR, KecamatanUncheckedUpdateWithoutPendudukInput> + } + + export type KecamatanCreateNestedManyWithoutKomoditasInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + } + + export type HasilPanenCreateNestedManyWithoutKomoditasInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenCreateNestedManyWithoutKomoditasInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type KecamatanUncheckedCreateNestedManyWithoutKomoditasInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + } + + export type HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + } + + export type PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + } + + export type KecamatanUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + upsert?: KecamatanUpsertWithWhereUniqueWithoutKomoditasInput | KecamatanUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + set?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + disconnect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + delete?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + update?: KecamatanUpdateWithWhereUniqueWithoutKomoditasInput | KecamatanUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: KecamatanUpdateManyWithWhereWithoutKomoditasInput | KecamatanUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + } + + export type HasilPanenUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput | HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput | HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKomoditasInput | HasilPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput | PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | KecamatanCreateWithoutKomoditasInput[] | KecamatanUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: KecamatanCreateOrConnectWithoutKomoditasInput | KecamatanCreateOrConnectWithoutKomoditasInput[] + upsert?: KecamatanUpsertWithWhereUniqueWithoutKomoditasInput | KecamatanUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: KecamatanCreateManyKomoditasInputEnvelope + set?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + disconnect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + delete?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + connect?: KecamatanWhereUniqueInput | KecamatanWhereUniqueInput[] + update?: KecamatanUpdateWithWhereUniqueWithoutKomoditasInput | KecamatanUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: KecamatanUpdateManyWithWhereWithoutKomoditasInput | KecamatanUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + } + + export type HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | HasilPanenCreateWithoutKomoditasInput[] | HasilPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: HasilPanenCreateOrConnectWithoutKomoditasInput | HasilPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput | HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: HasilPanenCreateManyKomoditasInputEnvelope + set?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + disconnect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + delete?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + connect?: HasilPanenWhereUniqueInput | HasilPanenWhereUniqueInput[] + update?: HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput | HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: HasilPanenUpdateManyWithWhereWithoutKomoditasInput | HasilPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput = { + create?: XOR | PrediksiPanenCreateWithoutKomoditasInput[] | PrediksiPanenUncheckedCreateWithoutKomoditasInput[] + connectOrCreate?: PrediksiPanenCreateOrConnectWithoutKomoditasInput | PrediksiPanenCreateOrConnectWithoutKomoditasInput[] + upsert?: PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput[] + createMany?: PrediksiPanenCreateManyKomoditasInputEnvelope + set?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + disconnect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + delete?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + connect?: PrediksiPanenWhereUniqueInput | PrediksiPanenWhereUniqueInput[] + update?: PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput | PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput[] + updateMany?: PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput | PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput[] + deleteMany?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + } + + export type KecamatanCreateNestedOneWithoutHasil_panenInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutHasil_panenInput + connect?: KecamatanWhereUniqueInput + } + + export type KomoditasCreateNestedOneWithoutHasil_panenInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutHasil_panenInput + connect?: KomoditasWhereUniqueInput + } + + export type KecamatanUpdateOneRequiredWithoutHasil_panenNestedInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutHasil_panenInput + upsert?: KecamatanUpsertWithoutHasil_panenInput + connect?: KecamatanWhereUniqueInput + update?: XOR, KecamatanUncheckedUpdateWithoutHasil_panenInput> + } + + export type KomoditasUpdateOneRequiredWithoutHasil_panenNestedInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutHasil_panenInput + upsert?: KomoditasUpsertWithoutHasil_panenInput + connect?: KomoditasWhereUniqueInput + update?: XOR, KomoditasUncheckedUpdateWithoutHasil_panenInput> + } + + export type KecamatanCreateNestedOneWithoutPrediksi_panenInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPrediksi_panenInput + connect?: KecamatanWhereUniqueInput + } + + export type KomoditasCreateNestedOneWithoutPrediksi_panenInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutPrediksi_panenInput + connect?: KomoditasWhereUniqueInput + } + + export type KecamatanUpdateOneRequiredWithoutPrediksi_panenNestedInput = { + create?: XOR + connectOrCreate?: KecamatanCreateOrConnectWithoutPrediksi_panenInput + upsert?: KecamatanUpsertWithoutPrediksi_panenInput + connect?: KecamatanWhereUniqueInput + update?: XOR, KecamatanUncheckedUpdateWithoutPrediksi_panenInput> + } + + export type KomoditasUpdateOneRequiredWithoutPrediksi_panenNestedInput = { + create?: XOR + connectOrCreate?: KomoditasCreateOrConnectWithoutPrediksi_panenInput + upsert?: KomoditasUpsertWithoutPrediksi_panenInput + connect?: KomoditasWhereUniqueInput + update?: XOR, KomoditasUncheckedUpdateWithoutPrediksi_panenInput> + } + + export type NestedStringFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringFilter<$PrismaModel> | string + } + + export type NestedStringNullableFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringNullableFilter<$PrismaModel> | string | null + } + + export type NestedDateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null + } + + export type NestedDateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeFilter<$PrismaModel> | Date | string + } + + export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedStringFilter<$PrismaModel> + _max?: NestedStringFilter<$PrismaModel> + } + + export type NestedIntFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntFilter<$PrismaModel> | number + } + + export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedStringNullableFilter<$PrismaModel> + _max?: NestedStringNullableFilter<$PrismaModel> + } + + export type NestedIntNullableFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> | null + in?: number[] | ListIntFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntNullableFilter<$PrismaModel> | number | null + } + + export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedDateTimeNullableFilter<$PrismaModel> + _max?: NestedDateTimeNullableFilter<$PrismaModel> + } + + export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedDateTimeFilter<$PrismaModel> + _max?: NestedDateTimeFilter<$PrismaModel> + } + + export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> | null + in?: number[] | ListIntFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null + _count?: NestedIntNullableFilter<$PrismaModel> + _avg?: NestedFloatNullableFilter<$PrismaModel> + _sum?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedIntNullableFilter<$PrismaModel> + _max?: NestedIntNullableFilter<$PrismaModel> + } + + export type NestedFloatNullableFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> | null + in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatNullableFilter<$PrismaModel> | number | null + } + + export type NestedFloatFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatFilter<$PrismaModel> | number + } + + export type NestedIntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedIntFilter<$PrismaModel> + _min?: NestedIntFilter<$PrismaModel> + _max?: NestedIntFilter<$PrismaModel> + } + + export type NestedFloatWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | FloatFieldRefInput<$PrismaModel> + in?: number[] | ListFloatFieldRefInput<$PrismaModel> + notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> + lt?: number | FloatFieldRefInput<$PrismaModel> + lte?: number | FloatFieldRefInput<$PrismaModel> + gt?: number | FloatFieldRefInput<$PrismaModel> + gte?: number | FloatFieldRefInput<$PrismaModel> + not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number + _count?: NestedIntFilter<$PrismaModel> + _avg?: NestedFloatFilter<$PrismaModel> + _sum?: NestedFloatFilter<$PrismaModel> + _min?: NestedFloatFilter<$PrismaModel> + _max?: NestedFloatFilter<$PrismaModel> + } + + export type DetailCreateWithoutUserInput = { + id_detail?: string + phone: string + bio: string + city: string + country: string + post_kode: string + } + + export type DetailUncheckedCreateWithoutUserInput = { + id_detail?: string + phone: string + bio: string + city: string + country: string + post_kode: string + } + + export type DetailCreateOrConnectWithoutUserInput = { + where: DetailWhereUniqueInput + create: XOR + } + + export type AccountCreateWithoutUserInput = { + id?: string + id_provider: string + id_token?: string | null + type: string + scope?: string | null + provider: string + expires_at?: number | null + token_type?: string | null + access_token?: string | null + refresh_token?: string | null + session_state?: string | null + } + + export type AccountUncheckedCreateWithoutUserInput = { + id?: string + id_provider: string + id_token?: string | null + type: string + scope?: string | null + provider: string + expires_at?: number | null + token_type?: string | null + access_token?: string | null + refresh_token?: string | null + session_state?: string | null + } + + export type AccountCreateOrConnectWithoutUserInput = { + where: AccountWhereUniqueInput + create: XOR + } + + export type AccountCreateManyUserInputEnvelope = { + data: AccountCreateManyUserInput | AccountCreateManyUserInput[] + skipDuplicates?: boolean + } + + export type SessionCreateWithoutUserInput = { + id?: string + session_token: string + expires: Date | string + } + + export type SessionUncheckedCreateWithoutUserInput = { + id?: string + session_token: string + expires: Date | string + } + + export type SessionCreateOrConnectWithoutUserInput = { + where: SessionWhereUniqueInput + create: XOR + } + + export type SessionCreateManyUserInputEnvelope = { + data: SessionCreateManyUserInput | SessionCreateManyUserInput[] + skipDuplicates?: boolean + } + + export type DetailUpsertWithoutUserInput = { + update: XOR + create: XOR + where?: DetailWhereInput + } + + export type DetailUpdateToOneWithWhereWithoutUserInput = { + where?: DetailWhereInput + data: XOR + } + + export type DetailUpdateWithoutUserInput = { + id_detail?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + country?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + } + + export type DetailUncheckedUpdateWithoutUserInput = { + id_detail?: StringFieldUpdateOperationsInput | string + phone?: StringFieldUpdateOperationsInput | string + bio?: StringFieldUpdateOperationsInput | string + city?: StringFieldUpdateOperationsInput | string + country?: StringFieldUpdateOperationsInput | string + post_kode?: StringFieldUpdateOperationsInput | string + } + + export type AccountUpsertWithWhereUniqueWithoutUserInput = { + where: AccountWhereUniqueInput + update: XOR + create: XOR + } + + export type AccountUpdateWithWhereUniqueWithoutUserInput = { + where: AccountWhereUniqueInput + data: XOR + } + + export type AccountUpdateManyWithWhereWithoutUserInput = { + where: AccountScalarWhereInput + data: XOR + } + + export type AccountScalarWhereInput = { + AND?: AccountScalarWhereInput | AccountScalarWhereInput[] + OR?: AccountScalarWhereInput[] + NOT?: AccountScalarWhereInput | AccountScalarWhereInput[] + id?: StringFilter<"Account"> | string + id_user?: StringFilter<"Account"> | string + id_provider?: StringFilter<"Account"> | string + id_token?: StringNullableFilter<"Account"> | string | null + type?: StringFilter<"Account"> | string + scope?: StringNullableFilter<"Account"> | string | null + provider?: StringFilter<"Account"> | string + expires_at?: IntNullableFilter<"Account"> | number | null + token_type?: StringNullableFilter<"Account"> | string | null + access_token?: StringNullableFilter<"Account"> | string | null + refresh_token?: StringNullableFilter<"Account"> | string | null + session_state?: StringNullableFilter<"Account"> | string | null + } + + export type SessionUpsertWithWhereUniqueWithoutUserInput = { + where: SessionWhereUniqueInput + update: XOR + create: XOR + } + + export type SessionUpdateWithWhereUniqueWithoutUserInput = { + where: SessionWhereUniqueInput + data: XOR + } + + export type SessionUpdateManyWithWhereWithoutUserInput = { + where: SessionScalarWhereInput + data: XOR + } + + export type SessionScalarWhereInput = { + AND?: SessionScalarWhereInput | SessionScalarWhereInput[] + OR?: SessionScalarWhereInput[] + NOT?: SessionScalarWhereInput | SessionScalarWhereInput[] + id?: StringFilter<"Session"> | string + id_user?: StringFilter<"Session"> | string + session_token?: StringFilter<"Session"> | string + expires?: DateTimeFilter<"Session"> | Date | string + } + + export type UserCreateWithoutDetailInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + accounts?: AccountCreateNestedManyWithoutUserInput + sessions?: SessionCreateNestedManyWithoutUserInput + } + + export type UserUncheckedCreateWithoutDetailInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + accounts?: AccountUncheckedCreateNestedManyWithoutUserInput + sessions?: SessionUncheckedCreateNestedManyWithoutUserInput + } + + export type UserCreateOrConnectWithoutDetailInput = { + where: UserWhereUniqueInput + create: XOR + } + + export type UserUpsertWithoutDetailInput = { + update: XOR + create: XOR + where?: UserWhereInput + } + + export type UserUpdateToOneWithWhereWithoutDetailInput = { + where?: UserWhereInput + data: XOR + } + + export type UserUpdateWithoutDetailInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + accounts?: AccountUpdateManyWithoutUserNestedInput + sessions?: SessionUpdateManyWithoutUserNestedInput + } + + export type UserUncheckedUpdateWithoutDetailInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput + sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput + } + + export type UserCreateWithoutAccountsInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + detail?: DetailCreateNestedOneWithoutUserInput + sessions?: SessionCreateNestedManyWithoutUserInput + } + + export type UserUncheckedCreateWithoutAccountsInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + detail?: DetailUncheckedCreateNestedOneWithoutUserInput + sessions?: SessionUncheckedCreateNestedManyWithoutUserInput + } + + export type UserCreateOrConnectWithoutAccountsInput = { + where: UserWhereUniqueInput + create: XOR + } + + export type UserUpsertWithoutAccountsInput = { + update: XOR + create: XOR + where?: UserWhereInput + } + + export type UserUpdateToOneWithWhereWithoutAccountsInput = { + where?: UserWhereInput + data: XOR + } + + export type UserUpdateWithoutAccountsInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUpdateOneWithoutUserNestedInput + sessions?: SessionUpdateManyWithoutUserNestedInput + } + + export type UserUncheckedUpdateWithoutAccountsInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUncheckedUpdateOneWithoutUserNestedInput + sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput + } + + export type UserCreateWithoutSessionsInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + detail?: DetailCreateNestedOneWithoutUserInput + accounts?: AccountCreateNestedManyWithoutUserInput + } + + export type UserUncheckedCreateWithoutSessionsInput = { + id?: string + first_name?: string | null + last_name?: string | null + email?: string | null + email_verified?: Date | string | null + password?: string | null + image?: string | null + created_at?: Date | string + updated_at?: Date | string + detail?: DetailUncheckedCreateNestedOneWithoutUserInput + accounts?: AccountUncheckedCreateNestedManyWithoutUserInput + } + + export type UserCreateOrConnectWithoutSessionsInput = { + where: UserWhereUniqueInput + create: XOR + } + + export type UserUpsertWithoutSessionsInput = { + update: XOR + create: XOR + where?: UserWhereInput + } + + export type UserUpdateToOneWithWhereWithoutSessionsInput = { + where?: UserWhereInput + data: XOR + } + + export type UserUpdateWithoutSessionsInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUpdateOneWithoutUserNestedInput + accounts?: AccountUpdateManyWithoutUserNestedInput + } + + export type UserUncheckedUpdateWithoutSessionsInput = { + id?: StringFieldUpdateOperationsInput | string + first_name?: NullableStringFieldUpdateOperationsInput | string | null + last_name?: NullableStringFieldUpdateOperationsInput | string | null + email?: NullableStringFieldUpdateOperationsInput | string | null + email_verified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + password?: NullableStringFieldUpdateOperationsInput | string | null + image?: NullableStringFieldUpdateOperationsInput | string | null + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + detail?: DetailUncheckedUpdateOneWithoutUserNestedInput + accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput + } + + export type KomoditasCreateWithoutKecamatanInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + hasil_panen?: HasilPanenCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateWithoutKecamatanInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasCreateOrConnectWithoutKecamatanInput = { + where: KomoditasWhereUniqueInput + create: XOR + } + + export type PendudukCreateWithoutKecamatanInput = { + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at?: Date | string + updated_at?: Date | string + } + + export type PendudukUncheckedCreateWithoutKecamatanInput = { + id_penduduk?: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at?: Date | string + updated_at?: Date | string + } + + export type PendudukCreateOrConnectWithoutKecamatanInput = { + where: PendudukWhereUniqueInput + create: XOR + } + + export type PendudukCreateManyKecamatanInputEnvelope = { + data: PendudukCreateManyKecamatanInput | PendudukCreateManyKecamatanInput[] + skipDuplicates?: boolean + } + + export type HasilPanenCreateWithoutKecamatanInput = { + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + komoditas: KomoditasCreateNestedOneWithoutHasil_panenInput + } + + export type HasilPanenUncheckedCreateWithoutKecamatanInput = { + id_panen?: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + } + + export type HasilPanenCreateOrConnectWithoutKecamatanInput = { + where: HasilPanenWhereUniqueInput + create: XOR + } + + export type HasilPanenCreateManyKecamatanInputEnvelope = { + data: HasilPanenCreateManyKecamatanInput | HasilPanenCreateManyKecamatanInput[] + skipDuplicates?: boolean + } + + export type PrediksiPanenCreateWithoutKecamatanInput = { + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + komoditas: KomoditasCreateNestedOneWithoutPrediksi_panenInput + } + + export type PrediksiPanenUncheckedCreateWithoutKecamatanInput = { + id_prediksi?: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PrediksiPanenCreateOrConnectWithoutKecamatanInput = { + where: PrediksiPanenWhereUniqueInput + create: XOR + } + + export type PrediksiPanenCreateManyKecamatanInputEnvelope = { + data: PrediksiPanenCreateManyKecamatanInput | PrediksiPanenCreateManyKecamatanInput[] + skipDuplicates?: boolean + } + + export type KomoditasUpsertWithoutKecamatanInput = { + update: XOR + create: XOR + where?: KomoditasWhereInput + } + + export type KomoditasUpdateToOneWithWhereWithoutKecamatanInput = { + where?: KomoditasWhereInput + data: XOR + } + + export type KomoditasUpdateWithoutKecamatanInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + hasil_panen?: HasilPanenUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateWithoutKecamatanInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type PendudukUpsertWithWhereUniqueWithoutKecamatanInput = { + where: PendudukWhereUniqueInput + update: XOR + create: XOR + } + + export type PendudukUpdateWithWhereUniqueWithoutKecamatanInput = { + where: PendudukWhereUniqueInput + data: XOR + } + + export type PendudukUpdateManyWithWhereWithoutKecamatanInput = { + where: PendudukScalarWhereInput + data: XOR + } + + export type PendudukScalarWhereInput = { + AND?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + OR?: PendudukScalarWhereInput[] + NOT?: PendudukScalarWhereInput | PendudukScalarWhereInput[] + id_penduduk?: IntFilter<"Penduduk"> | number + id_kecamatan?: IntFilter<"Penduduk"> | number + data_tahun?: IntFilter<"Penduduk"> | number + jumlah_penduduk?: FloatFilter<"Penduduk"> | number + laju_pertumbuhan?: StringFilter<"Penduduk"> | string + created_at?: DateTimeFilter<"Penduduk"> | Date | string + updated_at?: DateTimeFilter<"Penduduk"> | Date | string + } + + export type HasilPanenUpsertWithWhereUniqueWithoutKecamatanInput = { + where: HasilPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type HasilPanenUpdateWithWhereUniqueWithoutKecamatanInput = { + where: HasilPanenWhereUniqueInput + data: XOR + } + + export type HasilPanenUpdateManyWithWhereWithoutKecamatanInput = { + where: HasilPanenScalarWhereInput + data: XOR + } + + export type HasilPanenScalarWhereInput = { + AND?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + OR?: HasilPanenScalarWhereInput[] + NOT?: HasilPanenScalarWhereInput | HasilPanenScalarWhereInput[] + id_panen?: IntFilter<"HasilPanen"> | number + id_kecamatan?: IntFilter<"HasilPanen"> | number + id_komoditas?: IntFilter<"HasilPanen"> | number + tahun_panen?: IntFilter<"HasilPanen"> | number + produksi?: FloatFilter<"HasilPanen"> | number + luas_panen?: FloatFilter<"HasilPanen"> | number + produktivitas?: FloatFilter<"HasilPanen"> | number + created_at?: DateTimeFilter<"HasilPanen"> | Date | string + updated_at?: DateTimeFilter<"HasilPanen"> | Date | string + } + + export type PrediksiPanenUpsertWithWhereUniqueWithoutKecamatanInput = { + where: PrediksiPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type PrediksiPanenUpdateWithWhereUniqueWithoutKecamatanInput = { + where: PrediksiPanenWhereUniqueInput + data: XOR + } + + export type PrediksiPanenUpdateManyWithWhereWithoutKecamatanInput = { + where: PrediksiPanenScalarWhereInput + data: XOR + } + + export type PrediksiPanenScalarWhereInput = { + AND?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + OR?: PrediksiPanenScalarWhereInput[] + NOT?: PrediksiPanenScalarWhereInput | PrediksiPanenScalarWhereInput[] + id_prediksi?: IntFilter<"PrediksiPanen"> | number + id_kecamatan?: IntFilter<"PrediksiPanen"> | number + id_komoditas?: IntFilter<"PrediksiPanen"> | number + tahun_prediksi?: IntFilter<"PrediksiPanen"> | number + hasil_prediksi?: IntFilter<"PrediksiPanen"> | number + created_at?: DateTimeFilter<"PrediksiPanen"> | Date | string + updated_at?: DateTimeFilter<"PrediksiPanen"> | Date | string + } + + export type KecamatanCreateWithoutPendudukInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutPendudukInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutPendudukInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KecamatanUpsertWithoutPendudukInput = { + update: XOR + create: XOR + where?: KecamatanWhereInput + } + + export type KecamatanUpdateToOneWithWhereWithoutPendudukInput = { + where?: KecamatanWhereInput + data: XOR + } + + export type KecamatanUpdateWithoutPendudukInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutPendudukInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanCreateWithoutKomoditasInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutKomoditasInput = { + id_kecamatan?: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutKomoditasInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KecamatanCreateManyKomoditasInputEnvelope = { + data: KecamatanCreateManyKomoditasInput | KecamatanCreateManyKomoditasInput[] + skipDuplicates?: boolean + } + + export type HasilPanenCreateWithoutKomoditasInput = { + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + kecamatan: KecamatanCreateNestedOneWithoutHasil_panenInput + } + + export type HasilPanenUncheckedCreateWithoutKomoditasInput = { + id_panen?: number + id_kecamatan: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + } + + export type HasilPanenCreateOrConnectWithoutKomoditasInput = { + where: HasilPanenWhereUniqueInput + create: XOR + } + + export type HasilPanenCreateManyKomoditasInputEnvelope = { + data: HasilPanenCreateManyKomoditasInput | HasilPanenCreateManyKomoditasInput[] + skipDuplicates?: boolean + } + + export type PrediksiPanenCreateWithoutKomoditasInput = { + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + kecamatan: KecamatanCreateNestedOneWithoutPrediksi_panenInput + } + + export type PrediksiPanenUncheckedCreateWithoutKomoditasInput = { + id_prediksi?: number + id_kecamatan: number + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PrediksiPanenCreateOrConnectWithoutKomoditasInput = { + where: PrediksiPanenWhereUniqueInput + create: XOR + } + + export type PrediksiPanenCreateManyKomoditasInputEnvelope = { + data: PrediksiPanenCreateManyKomoditasInput | PrediksiPanenCreateManyKomoditasInput[] + skipDuplicates?: boolean + } + + export type KecamatanUpsertWithWhereUniqueWithoutKomoditasInput = { + where: KecamatanWhereUniqueInput + update: XOR + create: XOR + } + + export type KecamatanUpdateWithWhereUniqueWithoutKomoditasInput = { + where: KecamatanWhereUniqueInput + data: XOR + } + + export type KecamatanUpdateManyWithWhereWithoutKomoditasInput = { + where: KecamatanScalarWhereInput + data: XOR + } + + export type KecamatanScalarWhereInput = { + AND?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + OR?: KecamatanScalarWhereInput[] + NOT?: KecamatanScalarWhereInput | KecamatanScalarWhereInput[] + id_kecamatan?: IntFilter<"Kecamatan"> | number + id_komoditas?: IntFilter<"Kecamatan"> | number + nama_kecamatan?: StringFilter<"Kecamatan"> | string + deskripsi?: StringFilter<"Kecamatan"> | string + gambar?: StringFilter<"Kecamatan"> | string + area?: FloatFilter<"Kecamatan"> | number + posisi_x?: IntFilter<"Kecamatan"> | number + posisi_y?: IntFilter<"Kecamatan"> | number + created_at?: DateTimeFilter<"Kecamatan"> | Date | string + updated_at?: DateTimeFilter<"Kecamatan"> | Date | string + } + + export type HasilPanenUpsertWithWhereUniqueWithoutKomoditasInput = { + where: HasilPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type HasilPanenUpdateWithWhereUniqueWithoutKomoditasInput = { + where: HasilPanenWhereUniqueInput + data: XOR + } + + export type HasilPanenUpdateManyWithWhereWithoutKomoditasInput = { + where: HasilPanenScalarWhereInput + data: XOR + } + + export type PrediksiPanenUpsertWithWhereUniqueWithoutKomoditasInput = { + where: PrediksiPanenWhereUniqueInput + update: XOR + create: XOR + } + + export type PrediksiPanenUpdateWithWhereUniqueWithoutKomoditasInput = { + where: PrediksiPanenWhereUniqueInput + data: XOR + } + + export type PrediksiPanenUpdateManyWithWhereWithoutKomoditasInput = { + where: PrediksiPanenScalarWhereInput + data: XOR + } + + export type KecamatanCreateWithoutHasil_panenInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutHasil_panenInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutHasil_panenInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KomoditasCreateWithoutHasil_panenInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + kecamatan?: KecamatanCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateWithoutHasil_panenInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + kecamatan?: KecamatanUncheckedCreateNestedManyWithoutKomoditasInput + prediksi_panen?: PrediksiPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasCreateOrConnectWithoutHasil_panenInput = { + where: KomoditasWhereUniqueInput + create: XOR + } + + export type KecamatanUpsertWithoutHasil_panenInput = { + update: XOR + create: XOR + where?: KecamatanWhereInput + } + + export type KecamatanUpdateToOneWithWhereWithoutHasil_panenInput = { + where?: KecamatanWhereInput + data: XOR + } + + export type KecamatanUpdateWithoutHasil_panenInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutHasil_panenInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KomoditasUpsertWithoutHasil_panenInput = { + update: XOR + create: XOR + where?: KomoditasWhereInput + } + + export type KomoditasUpdateToOneWithWhereWithoutHasil_panenInput = { + where?: KomoditasWhereInput + data: XOR + } + + export type KomoditasUpdateWithoutHasil_panenInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + kecamatan?: KecamatanUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateWithoutHasil_panenInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + kecamatan?: KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type KecamatanCreateWithoutPrediksi_panenInput = { + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + komoditas: KomoditasCreateNestedOneWithoutKecamatanInput + penduduk?: PendudukCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanUncheckedCreateWithoutPrediksi_panenInput = { + id_kecamatan?: number + id_komoditas: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + penduduk?: PendudukUncheckedCreateNestedManyWithoutKecamatanInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKecamatanInput + } + + export type KecamatanCreateOrConnectWithoutPrediksi_panenInput = { + where: KecamatanWhereUniqueInput + create: XOR + } + + export type KomoditasCreateWithoutPrediksi_panenInput = { + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + kecamatan?: KecamatanCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasUncheckedCreateWithoutPrediksi_panenInput = { + id_komoditas?: number + nama_komoditas: string + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + kecamatan?: KecamatanUncheckedCreateNestedManyWithoutKomoditasInput + hasil_panen?: HasilPanenUncheckedCreateNestedManyWithoutKomoditasInput + } + + export type KomoditasCreateOrConnectWithoutPrediksi_panenInput = { + where: KomoditasWhereUniqueInput + create: XOR + } + + export type KecamatanUpsertWithoutPrediksi_panenInput = { + update: XOR + create: XOR + where?: KecamatanWhereInput + } + + export type KecamatanUpdateToOneWithWhereWithoutPrediksi_panenInput = { + where?: KecamatanWhereInput + data: XOR + } + + export type KecamatanUpdateWithoutPrediksi_panenInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + komoditas?: KomoditasUpdateOneRequiredWithoutKecamatanNestedInput + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutPrediksi_panenInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KomoditasUpsertWithoutPrediksi_panenInput = { + update: XOR + create: XOR + where?: KomoditasWhereInput + } + + export type KomoditasUpdateToOneWithWhereWithoutPrediksi_panenInput = { + where?: KomoditasWhereInput + data: XOR + } + + export type KomoditasUpdateWithoutPrediksi_panenInput = { + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + kecamatan?: KecamatanUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKomoditasNestedInput + } + + export type KomoditasUncheckedUpdateWithoutPrediksi_panenInput = { + id_komoditas?: IntFieldUpdateOperationsInput | number + nama_komoditas?: StringFieldUpdateOperationsInput | string + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + kecamatan?: KecamatanUncheckedUpdateManyWithoutKomoditasNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKomoditasNestedInput + } + + export type AccountCreateManyUserInput = { + id?: string + id_provider: string + id_token?: string | null + type: string + scope?: string | null + provider: string + expires_at?: number | null + token_type?: string | null + access_token?: string | null + refresh_token?: string | null + session_state?: string | null + } + + export type SessionCreateManyUserInput = { + id?: string + session_token: string + expires: Date | string + } + + export type AccountUpdateWithoutUserInput = { + id?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + } + + export type AccountUncheckedUpdateWithoutUserInput = { + id?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + } + + export type AccountUncheckedUpdateManyWithoutUserInput = { + id?: StringFieldUpdateOperationsInput | string + id_provider?: StringFieldUpdateOperationsInput | string + id_token?: NullableStringFieldUpdateOperationsInput | string | null + type?: StringFieldUpdateOperationsInput | string + scope?: NullableStringFieldUpdateOperationsInput | string | null + provider?: StringFieldUpdateOperationsInput | string + expires_at?: NullableIntFieldUpdateOperationsInput | number | null + token_type?: NullableStringFieldUpdateOperationsInput | string | null + access_token?: NullableStringFieldUpdateOperationsInput | string | null + refresh_token?: NullableStringFieldUpdateOperationsInput | string | null + session_state?: NullableStringFieldUpdateOperationsInput | string | null + } + + export type SessionUpdateWithoutUserInput = { + id?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type SessionUncheckedUpdateWithoutUserInput = { + id?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type SessionUncheckedUpdateManyWithoutUserInput = { + id?: StringFieldUpdateOperationsInput | string + session_token?: StringFieldUpdateOperationsInput | string + expires?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PendudukCreateManyKecamatanInput = { + id_penduduk?: number + data_tahun: number + jumlah_penduduk: number + laju_pertumbuhan: string + created_at?: Date | string + updated_at?: Date | string + } + + export type HasilPanenCreateManyKecamatanInput = { + id_panen?: number + id_komoditas: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PrediksiPanenCreateManyKecamatanInput = { + id_prediksi?: number + id_komoditas: number + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PendudukUpdateWithoutKecamatanInput = { + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PendudukUncheckedUpdateWithoutKecamatanInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PendudukUncheckedUpdateManyWithoutKecamatanInput = { + id_penduduk?: IntFieldUpdateOperationsInput | number + data_tahun?: IntFieldUpdateOperationsInput | number + jumlah_penduduk?: FloatFieldUpdateOperationsInput | number + laju_pertumbuhan?: StringFieldUpdateOperationsInput | string + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type HasilPanenUpdateWithoutKecamatanInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + komoditas?: KomoditasUpdateOneRequiredWithoutHasil_panenNestedInput + } + + export type HasilPanenUncheckedUpdateWithoutKecamatanInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type HasilPanenUncheckedUpdateManyWithoutKecamatanInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenUpdateWithoutKecamatanInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + komoditas?: KomoditasUpdateOneRequiredWithoutPrediksi_panenNestedInput + } + + export type PrediksiPanenUncheckedUpdateWithoutKecamatanInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKecamatanInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_komoditas?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type KecamatanCreateManyKomoditasInput = { + id_kecamatan?: number + nama_kecamatan: string + deskripsi: string + gambar: string + area: number + posisi_x: number + posisi_y: number + created_at?: Date | string + updated_at?: Date | string + } + + export type HasilPanenCreateManyKomoditasInput = { + id_panen?: number + id_kecamatan: number + tahun_panen: number + produksi: number + luas_panen: number + produktivitas: number + created_at?: Date | string + updated_at?: Date | string + } + + export type PrediksiPanenCreateManyKomoditasInput = { + id_prediksi?: number + id_kecamatan: number + tahun_prediksi: number + hasil_prediksi: number + created_at?: Date | string + updated_at?: Date | string + } + + export type KecamatanUpdateWithoutKomoditasInput = { + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + penduduk?: PendudukUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateWithoutKomoditasInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + penduduk?: PendudukUncheckedUpdateManyWithoutKecamatanNestedInput + hasil_panen?: HasilPanenUncheckedUpdateManyWithoutKecamatanNestedInput + prediksi_panen?: PrediksiPanenUncheckedUpdateManyWithoutKecamatanNestedInput + } + + export type KecamatanUncheckedUpdateManyWithoutKomoditasInput = { + id_kecamatan?: IntFieldUpdateOperationsInput | number + nama_kecamatan?: StringFieldUpdateOperationsInput | string + deskripsi?: StringFieldUpdateOperationsInput | string + gambar?: StringFieldUpdateOperationsInput | string + area?: FloatFieldUpdateOperationsInput | number + posisi_x?: IntFieldUpdateOperationsInput | number + posisi_y?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type HasilPanenUpdateWithoutKomoditasInput = { + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + kecamatan?: KecamatanUpdateOneRequiredWithoutHasil_panenNestedInput + } + + export type HasilPanenUncheckedUpdateWithoutKomoditasInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type HasilPanenUncheckedUpdateManyWithoutKomoditasInput = { + id_panen?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_panen?: IntFieldUpdateOperationsInput | number + produksi?: FloatFieldUpdateOperationsInput | number + luas_panen?: FloatFieldUpdateOperationsInput | number + produktivitas?: FloatFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenUpdateWithoutKomoditasInput = { + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + kecamatan?: KecamatanUpdateOneRequiredWithoutPrediksi_panenNestedInput + } + + export type PrediksiPanenUncheckedUpdateWithoutKomoditasInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type PrediksiPanenUncheckedUpdateManyWithoutKomoditasInput = { + id_prediksi?: IntFieldUpdateOperationsInput | number + id_kecamatan?: IntFieldUpdateOperationsInput | number + tahun_prediksi?: IntFieldUpdateOperationsInput | number + hasil_prediksi?: IntFieldUpdateOperationsInput | number + created_at?: DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: DateTimeFieldUpdateOperationsInput | Date | string + } + + + + /** + * Batch Payload for updateMany & deleteMany & createMany + */ + + export type BatchPayload = { + count: number + } + + /** + * DMMF + */ + export const dmmf: runtime.BaseDMMF +} \ No newline at end of file diff --git a/src/lib/generated/prisma/index.js b/src/lib/generated/prisma/index.js new file mode 100644 index 0000000..cc80d16 --- /dev/null +++ b/src/lib/generated/prisma/index.js @@ -0,0 +1,318 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + PrismaClientKnownRequestError, + PrismaClientUnknownRequestError, + PrismaClientRustPanicError, + PrismaClientInitializationError, + PrismaClientValidationError, + getPrismaClient, + sqltag, + empty, + join, + raw, + skip, + Decimal, + Debug, + objectEnumValues, + makeStrictEnum, + Extensions, + warnOnce, + defineDmmfProperty, + Public, + getRuntime, + createParam, +} = require('./runtime/library.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError; +Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError +Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError +Prisma.PrismaClientInitializationError = PrismaClientInitializationError +Prisma.PrismaClientValidationError = PrismaClientValidationError +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = sqltag +Prisma.empty = empty +Prisma.join = join +Prisma.raw = raw +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = Extensions.getExtensionContext +Prisma.defineExtension = Extensions.defineExtension + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + + + const path = require('path') + +/** + * Enums + */ +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + first_name: 'first_name', + last_name: 'last_name', + email: 'email', + email_verified: 'email_verified', + password: 'password', + image: 'image', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.DetailScalarFieldEnum = { + id_detail: 'id_detail', + id_tax: 'id_tax', + phone: 'phone', + bio: 'bio', + city: 'city', + country: 'country', + post_kode: 'post_kode' +}; + +exports.Prisma.AccountScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + id_provider: 'id_provider', + id_token: 'id_token', + type: 'type', + scope: 'scope', + provider: 'provider', + expires_at: 'expires_at', + token_type: 'token_type', + access_token: 'access_token', + refresh_token: 'refresh_token', + session_state: 'session_state' +}; + +exports.Prisma.SessionScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + session_token: 'session_token', + expires: 'expires' +}; + +exports.Prisma.VerificationTokenScalarFieldEnum = { + identifier: 'identifier', + token: 'token', + expires: 'expires' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Account: 'Account', + Session: 'Session', + VerificationToken: 'VerificationToken', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; +/** + * Create the Client + */ +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "C:\\xampp\\htdocs\\PANDAWA-main\\src\\lib\\generated\\prisma", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "windows", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "C:\\xampp\\htdocs\\PANDAWA-main\\prisma\\schema.prisma", + "isCustomOutput": true + }, + "relativeEnvPaths": { + "rootEnvPath": null, + "schemaEnvPath": "../../../../.env" + }, + "relativePath": "../../../../prisma", + "clientVersion": "6.6.0", + "engineVersion": "f676762280b54cd07c770017ed3711ddde35f37a", + "datasourceNames": [ + "database" + ], + "activeProvider": "postgresql", + "postinstall": false, + "inlineDatasources": { + "database": { + "url": { + "fromEnvVar": "POSTGRES_PRISMA_URL", + "value": null + } + } + }, + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/lib/generated/prisma\"\n}\n\ndatasource database {\n provider = \"postgresql\"\n url = env(\"POSTGRES_PRISMA_URL\")\n directUrl = env(\"POSTGRES_URL_NON_POOLING\")\n}\n\nmodel User {\n id String @id @default(uuid())\n first_name String?\n last_name String?\n email String? @unique\n email_verified DateTime?\n password String?\n image String?\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n detail Detail?\n accounts Account[]\n sessions Session[]\n\n @@map(\"users\")\n}\n\nmodel Detail {\n id_detail String @id @default(uuid())\n id_tax String @unique\n phone String\n bio String\n city String\n country String\n post_kode String\n\n user User @relation(fields: [id_tax], references: [id])\n\n @@map(\"detail\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n id_user String @map(\"id_user\")\n id_provider String\n id_token String? @database.Text\n type String\n scope String?\n provider String\n expires_at Int?\n token_type String?\n access_token String? @database.Text\n refresh_token String? @database.Text\n session_state String?\n\n user User @relation(fields: [id_user], references: [id], onDelete: Cascade)\n\n @@unique([provider, id_provider])\n @@map(\"account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n id_user String @map(\"id_user\")\n session_token String @unique\n expires DateTime\n\n user User @relation(fields: [id_user], references: [id], onDelete: Cascade)\n\n @@map(\"session\")\n}\n\nmodel VerificationToken {\n identifier String\n token String @unique\n expires DateTime\n\n @@unique([identifier, token])\n @@map(\"token\")\n}\n\nmodel Kecamatan {\n id_kecamatan Int @id @default(autoincrement())\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n nama_kecamatan String @database.VarChar(100)\n deskripsi String @database.Text\n gambar String @database.Text\n area Float\n posisi_x Int\n posisi_y Int\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n penduduk Penduduk[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_kecamatan\")\n}\n\nmodel Penduduk {\n id_penduduk Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n data_tahun Int\n jumlah_penduduk Float\n laju_pertumbuhan String @database.VarChar(30)\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"data_penduduk\")\n}\n\nmodel Komoditas {\n id_komoditas Int @id @default(autoincrement())\n nama_komoditas String @database.VarChar(100)\n posisi_x Int\n posisi_y Int\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n deleted_at DateTime? @map(\"deleted_at\")\n\n kecamatan Kecamatan[]\n hasil_panen HasilPanen[]\n prediksi_panen PrediksiPanen[]\n\n @@map(\"data_komoditas\")\n}\n\nmodel HasilPanen {\n id_panen Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_panen Int\n produksi Float\n luas_panen Float\n produktivitas Float\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"hasil_panen\")\n}\n\nmodel PrediksiPanen {\n id_prediksi Int @id @default(autoincrement())\n id_kecamatan Int\n kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan])\n id_komoditas Int\n komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas])\n tahun_prediksi Int\n hasil_prediksi Int\n\n created_at DateTime @default(now()) @map(\"created_at\")\n updated_at DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"prediksi_panen\")\n}\n", + "inlineSchemaHash": "1853bf07270b83e04b413ca98e15f38898f36b3969e70379578bf256f552b087", + "copyEngine": true +} + +const fs = require('fs') + +config.dirname = __dirname +if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) { + const alternativePaths = [ + "src/lib/generated/prisma", + "lib/generated/prisma", + ] + + const alternativePath = alternativePaths.find((altPath) => { + return fs.existsSync(path.join(process.cwd(), altPath, 'schema.prisma')) + }) ?? alternativePaths[0] + + config.dirname = path.join(process.cwd(), alternativePath) + config.isBundled = true +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"first_name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"last_name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"detail\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Detail\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accounts\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Account\",\"nativeType\":null,\"relationName\":\"AccountToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Session\",\"nativeType\":null,\"relationName\":\"SessionToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Detail\":{\"dbName\":\"detail\",\"schema\":null,\"fields\":[{\"name\":\"id_detail\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_tax\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phone\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bio\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"city\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"country\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"post_kode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"DetailToUser\",\"relationFromFields\":[\"id_tax\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Account\":{\"dbName\":\"account\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_user\",\"dbName\":\"id_user\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_provider\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scope\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"provider\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"session_state\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"AccountToUser\",\"relationFromFields\":[\"id_user\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"provider\",\"id_provider\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"provider\",\"id_provider\"]}],\"isGenerated\":false},\"Session\":{\"dbName\":\"session\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_user\",\"dbName\":\"id_user\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"SessionToUser\",\"relationFromFields\":[\"id_user\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationToken\":{\"dbName\":\"token\",\"schema\":null,\"fields\":[{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"identifier\",\"token\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"identifier\",\"token\"]}],\"isGenerated\":false},\"Kecamatan\":{\"dbName\":\"data_kecamatan\",\"schema\":null,\"fields\":[{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"deskripsi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"gambar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"area\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"penduduk\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Penduduk\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Penduduk\":{\"dbName\":\"data_penduduk\",\"schema\":null,\"fields\":[{\"name\":\"id_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPenduduk\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"data_tahun\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"jumlah_penduduk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"laju_pertumbuhan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"30\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Komoditas\":{\"dbName\":\"data_komoditas\",\"schema\":null,\"fields\":[{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nama_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_x\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"posisi_y\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"deleted_at\",\"dbName\":\"deleted_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"HasilPanen\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"prediksi_panen\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PrediksiPanen\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"HasilPanen\":{\"dbName\":\"hasil_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"HasilPanenToKecamatan\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"HasilPanenToKomoditas\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"luas_panen\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"produktivitas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"PrediksiPanen\":{\"dbName\":\"prediksi_panen\",\"schema\":null,\"fields\":[{\"name\":\"id_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_kecamatan\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kecamatan\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Kecamatan\",\"nativeType\":null,\"relationName\":\"KecamatanToPrediksiPanen\",\"relationFromFields\":[\"id_kecamatan\"],\"relationToFields\":[\"id_kecamatan\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"id_komoditas\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"komoditas\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Komoditas\",\"nativeType\":null,\"relationName\":\"KomoditasToPrediksiPanen\",\"relationFromFields\":[\"id_komoditas\"],\"relationToFields\":[\"id_komoditas\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tahun_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hasil_prediksi\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +defineDmmfProperty(exports.Prisma, config.runtimeDataModel) +config.engineWasm = undefined +config.compilerWasm = undefined + + +const { warnEnvConflicts } = require('./runtime/library.js') + +warnEnvConflicts({ + rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath), + schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath) +}) + +const PrismaClient = getPrismaClient(config) +exports.PrismaClient = PrismaClient +Object.assign(exports, Prisma) + +// file annotations for bundling tools to include these files +path.join(__dirname, "query_engine-windows.dll.node"); +path.join(process.cwd(), "src/lib/generated/prisma/query_engine-windows.dll.node") +// file annotations for bundling tools to include these files +path.join(__dirname, "schema.prisma"); +path.join(process.cwd(), "src/lib/generated/prisma/schema.prisma") diff --git a/src/lib/generated/prisma/package.json b/src/lib/generated/prisma/package.json new file mode 100644 index 0000000..3364b78 --- /dev/null +++ b/src/lib/generated/prisma/package.json @@ -0,0 +1,140 @@ +{ + "name": "prisma-client-8881bd4ab76afd82d71334454d31ea143e63d8ed200c6569cc8a8f8b695b6e7d", + "main": "index.js", + "types": "index.d.ts", + "browser": "index-browser.js", + "exports": { + "./client": { + "require": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "import": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "default": "./index.js" + }, + "./package.json": "./package.json", + ".": { + "require": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "import": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "default": "./index.js" + }, + "./edge": { + "types": "./edge.d.ts", + "require": "./edge.js", + "import": "./edge.js", + "default": "./edge.js" + }, + "./react-native": { + "types": "./react-native.d.ts", + "require": "./react-native.js", + "import": "./react-native.js", + "default": "./react-native.js" + }, + "./extension": { + "types": "./extension.d.ts", + "require": "./extension.js", + "import": "./extension.js", + "default": "./extension.js" + }, + "./index-browser": { + "types": "./index.d.ts", + "require": "./index-browser.js", + "import": "./index-browser.js", + "default": "./index-browser.js" + }, + "./index": { + "types": "./index.d.ts", + "require": "./index.js", + "import": "./index.js", + "default": "./index.js" + }, + "./wasm": { + "types": "./wasm.d.ts", + "require": "./wasm.js", + "import": "./wasm.mjs", + "default": "./wasm.mjs" + }, + "./runtime/client": { + "types": "./runtime/client.d.ts", + "require": "./runtime/client.js", + "import": "./runtime/client.mjs", + "default": "./runtime/client.mjs" + }, + "./runtime/library": { + "types": "./runtime/library.d.ts", + "require": "./runtime/library.js", + "import": "./runtime/library.mjs", + "default": "./runtime/library.mjs" + }, + "./runtime/binary": { + "types": "./runtime/binary.d.ts", + "require": "./runtime/binary.js", + "import": "./runtime/binary.mjs", + "default": "./runtime/binary.mjs" + }, + "./runtime/wasm": { + "types": "./runtime/wasm.d.ts", + "require": "./runtime/wasm.js", + "import": "./runtime/wasm.mjs", + "default": "./runtime/wasm.mjs" + }, + "./runtime/edge": { + "types": "./runtime/edge.d.ts", + "require": "./runtime/edge.js", + "import": "./runtime/edge-esm.js", + "default": "./runtime/edge-esm.js" + }, + "./runtime/react-native": { + "types": "./runtime/react-native.d.ts", + "require": "./runtime/react-native.js", + "import": "./runtime/react-native.js", + "default": "./runtime/react-native.js" + }, + "./generator-build": { + "require": "./generator-build/index.js", + "import": "./generator-build/index.js", + "default": "./generator-build/index.js" + }, + "./sql": { + "require": { + "types": "./sql.d.ts", + "node": "./sql.js", + "default": "./sql.js" + }, + "import": { + "types": "./sql.d.ts", + "node": "./sql.mjs", + "default": "./sql.mjs" + }, + "default": "./sql.js" + }, + "./*": "./*" + }, + "version": "6.6.0", + "sideEffects": false +} \ No newline at end of file diff --git a/src/lib/generated/prisma/query_engine-windows.dll.node b/src/lib/generated/prisma/query_engine-windows.dll.node new file mode 100644 index 0000000..97f9a43 Binary files /dev/null and b/src/lib/generated/prisma/query_engine-windows.dll.node differ diff --git a/src/lib/generated/prisma/runtime/edge-esm.js b/src/lib/generated/prisma/runtime/edge-esm.js new file mode 100644 index 0000000..2681fa9 --- /dev/null +++ b/src/lib/generated/prisma/runtime/edge-esm.js @@ -0,0 +1,31 @@ +var aa=Object.create;var en=Object.defineProperty;var la=Object.getOwnPropertyDescriptor;var ua=Object.getOwnPropertyNames;var ca=Object.getPrototypeOf,pa=Object.prototype.hasOwnProperty;var me=(e,t)=>()=>(e&&(t=e(e=0)),t);var Fe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ir=(e,t)=>{for(var r in t)en(e,r,{get:t[r],enumerable:!0})},ma=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ua(t))!pa.call(e,i)&&i!==r&&en(e,i,{get:()=>t[i],enumerable:!(n=la(t,i))||n.enumerable});return e};var Qe=(e,t,r)=>(r=e!=null?aa(ca(e)):{},ma(t||!e||!e.__esModule?en(r,"default",{value:e,enumerable:!0}):r,e));var y,u=me(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var b,c=me(()=>{"use strict";b=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,p=me(()=>{"use strict";E=()=>{};E.prototype=E});var m=me(()=>{"use strict"});var Ei=Fe(Ke=>{"use strict";d();u();c();p();m();var oi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),da=oi(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var D=A.indexOf("=");D===-1&&(D=R);var M=D===R?0:4-D%4;return[D,M]}function l(A){var R=a(A),D=R[0],M=R[1];return(D+M)*3/4-M}function f(A,R,D){return(R+D)*3/4-D}function g(A){var R,D=a(A),M=D[0],B=D[1],k=new n(f(A,M,B)),F=0,ie=B>0?M-4:M,G;for(G=0;G>16&255,k[F++]=R>>8&255,k[F++]=R&255;return B===2&&(R=r[A.charCodeAt(G)]<<2|r[A.charCodeAt(G+1)]>>4,k[F++]=R&255),B===1&&(R=r[A.charCodeAt(G)]<<10|r[A.charCodeAt(G+1)]<<4|r[A.charCodeAt(G+2)]>>2,k[F++]=R>>8&255,k[F++]=R&255),k}function h(A){return t[A>>18&63]+t[A>>12&63]+t[A>>6&63]+t[A&63]}function v(A,R,D){for(var M,B=[],k=R;kie?ie:F+k));return M===1?(R=A[D-1],B.push(t[R>>2]+t[R<<4&63]+"==")):M===2&&(R=(A[D-2]<<8)+A[D-1],B.push(t[R>>10]+t[R>>4&63]+t[R<<2&63]+"=")),B.join("")}}),fa=oi(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,f=(1<>1,h=-7,v=n?o-1:0,S=n?-1:1,A=t[r+v];for(v+=S,s=A&(1<<-h)-1,A>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=S,h-=8);if(s===0)s=1-g;else{if(s===f)return a?NaN:(A?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(A?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,f,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=i?0:s-1,R=i?1:-1,D=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(f=Math.pow(2,-a))<1&&(a--,f*=2),a+v>=1?r+=S/f:r+=S*Math.pow(2,1-v),r*f>=2&&(a++,f/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*f-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+A]=l&255,A+=R,l/=256,o-=8);for(a=a<0;t[n+A]=a&255,A+=R,a/=256,g-=8);t[n+A-R]|=D*128}}),tn=da(),We=fa(),ti=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ke.Buffer=T;Ke.SlowBuffer=ba;Ke.INSPECT_MAX_BYTES=50;var or=2147483647;Ke.kMaxLength=or;T.TYPED_ARRAY_SUPPORT=ga();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function ga(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function be(e){if(e>or)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return on(e)}return si(e,t,r)}T.poolSize=8192;function si(e,t,r){if(typeof e=="string")return ya(e,t);if(ArrayBuffer.isView(e))return wa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(de(e,ArrayBuffer)||e&&de(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(de(e,SharedArrayBuffer)||e&&de(e.buffer,SharedArrayBuffer)))return li(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=Ea(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return si(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ai(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function ha(e,t,r){return ai(e),e<=0?be(e):t!==void 0?typeof r=="string"?be(e).fill(t,r):be(e).fill(t):be(e)}T.alloc=function(e,t,r){return ha(e,t,r)};function on(e){return ai(e),be(e<0?0:sn(e)|0)}T.allocUnsafe=function(e){return on(e)};T.allocUnsafeSlow=function(e){return on(e)};function ya(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=ui(e,t)|0,n=be(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function rn(e){let t=e.length<0?0:sn(e.length)|0,r=be(t);for(let n=0;n=or)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+or.toString(16)+" bytes");return e|0}function ba(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),de(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function ui(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||de(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return nn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return wi(e).length;default:if(i)return n?-1:nn(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=ui;function xa(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Oa(this,t,r);case"utf8":case"utf-8":return pi(this,t,r);case"ascii":return ka(this,t,r);case"latin1":case"binary":return Ia(this,t,r);case"base64":return Ra(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Da(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Le(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};ti&&(T.prototype[ti]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),f=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,ln(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:ri(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):ri(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function ri(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let f;if(i){let g=-1;for(f=r;fs&&(r=s-a),f=r;f>=0;f--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return Pa(this,e,t,r);case"utf8":case"utf-8":return va(this,e,t,r);case"ascii":case"latin1":case"binary":return Ta(this,e,t,r);case"base64":return Ca(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Aa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Ra(e,t,r){return t===0&&r===e.length?tn.fromByteArray(e):tn.fromByteArray(e.slice(t,r))}function pi(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,f,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],f=e[i+2],(l&192)===128&&(f&192)===128&&(h=(o&15)<<12|(l&63)<<6|f&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],f=e[i+2],g=e[i+3],(l&192)===128&&(f&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(f&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return Sa(n)}var ni=4096;function Sa(e){let t=e.length;if(t<=ni)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Ae(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Ae(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&bt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),We.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),We.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!1,52,8)};function te(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function mi(e,t,r,n,i){yi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function di(e,t,r,n,i){yi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Ae(function(e,t=0){return mi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Ae(function(e,t=0){return di(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Ae(function(e,t=0){return mi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Ae(function(e,t=0){return di(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function fi(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function gi(e,t,r,n,i){return t=+t,r=r>>>0,i||fi(e,t,r,4,34028234663852886e22,-34028234663852886e22),We.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return gi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return gi(this,e,t,!1,r)};function hi(e,t,r,n,i){return t=+t,r=r>>>0,i||fi(e,t,r,8,17976931348623157e292,-17976931348623157e292),We.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return hi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return hi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ii(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ii(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ii(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Ma(e,t,r){He(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&bt(t,e.length-(r+1))}function yi(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Je.ERR_OUT_OF_RANGE("value",a,e)}Ma(n,i,o)}function He(e,t){if(typeof e!="number")throw new Je.ERR_INVALID_ARG_TYPE(t,"number",e)}function bt(e,t,r){throw Math.floor(e)!==e?(He(e,r),new Je.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Je.ERR_BUFFER_OUT_OF_BOUNDS:new Je.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var _a=/[^+/0-9A-Za-z-_]/g;function Na(e){if(e=e.split("=")[0],e=e.trim().replace(_a,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function nn(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Fa(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function wi(e){return tn.toByteArray(Na(e))}function sr(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function de(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function ln(e){return e!==e}var Ba=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Ae(e){return typeof BigInt>"u"?Ua:e}function Ua(){throw new Error("BigInt not supported")}});var w,d=me(()=>{"use strict";w=Qe(Ei())});function Qa(){return!1}function Bi(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function Ja(){return Bi()}function Wa(){return[]}function Ha(e){e(null,[])}function Ka(){return""}function za(){return""}function Ya(){}function Za(){}function Xa(){}function el(){}function tl(){}function rl(){}var nl,il,Ui,qi=me(()=>{"use strict";d();u();c();p();m();nl={},il={existsSync:Qa,lstatSync:Bi,statSync:Ja,readdirSync:Wa,readdir:Ha,readlinkSync:Ka,realpathSync:za,chmodSync:Ya,renameSync:Za,mkdirSync:Xa,rmdirSync:el,rmSync:tl,unlinkSync:rl,promises:nl},Ui=il});function ol(...e){return e.join("/")}function sl(...e){return e.join("/")}function al(e){let t=$i(e),r=ji(e),[n,i]=t.split(".");return{root:"/",dir:r,base:t,ext:i,name:n}}function $i(e){let t=e.split("/");return t[t.length-1]}function ji(e){return e.split("/").slice(0,-1).join("/")}var Vi,ll,ul,cr,Gi=me(()=>{"use strict";d();u();c();p();m();Vi="/",ll={sep:Vi},ul={basename:$i,dirname:ji,join:sl,parse:al,posix:ll,resolve:ol,sep:Vi},cr=ul});var Qi=Fe((sd,cl)=>{cl.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Ki=Fe((Cd,Hi)=>{"use strict";d();u();c();p();m();Hi.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var Zi=Fe((Ld,Yi)=>{"use strict";d();u();c();p();m();Yi.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var eo=Fe((Vd,Xi)=>{"use strict";d();u();c();p();m();var yl=Zi();Xi.exports=e=>typeof e=="string"?e.replace(yl(),""):e});var Pn=Fe((Dy,Eo)=>{"use strict";d();u();c();p();m();Eo.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";d();u();c();p();m()});var Co=me(()=>{"use strict";d();u();c();p();m()});var Jo=Fe((e1,ac)=>{ac.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Lr,Wo=me(()=>{"use strict";d();u();c();p();m();Lr=class{events={};on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});d();u();c();p();m();var Pi={};ir(Pi,{defineExtension:()=>bi,getExtensionContext:()=>xi});d();u();c();p();m();d();u();c();p();m();function bi(e){return typeof e=="function"?e:t=>t.$extends(e)}d();u();c();p();m();function xi(e){return e}var Ti={};ir(Ti,{validator:()=>vi});d();u();c();p();m();d();u();c();p();m();function vi(...e){return t=>t}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var un,Ci,Ai,Ri,Si=!0;typeof y<"u"&&({FORCE_COLOR:un,NODE_DISABLE_COLORS:Ci,NO_COLOR:Ai,TERM:Ri}=y.env||{},Si=y.stdout&&y.stdout.isTTY);var qa={enabled:!Ci&&Ai==null&&Ri!=="dumb"&&(un!=null&&un!=="0"||Si)};function j(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!qa.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var um=j(0,0),ar=j(1,22),lr=j(2,22),cm=j(3,23),ki=j(4,24),pm=j(7,27),mm=j(8,28),dm=j(9,29),fm=j(30,39),ze=j(31,39),Ii=j(32,39),Oi=j(33,39),Di=j(34,39),gm=j(35,39),Mi=j(36,39),hm=j(37,39),_i=j(90,39),ym=j(90,39),wm=j(40,49),Em=j(41,49),bm=j(42,49),xm=j(43,49),Pm=j(44,49),vm=j(45,49),Tm=j(46,49),Cm=j(47,49);d();u();c();p();m();var $a=100,Ni=["green","yellow","blue","magenta","cyan","red"],ur=[],Fi=Date.now(),ja=0,cn=typeof y<"u"?y.env:{};globalThis.DEBUG??=cn.DEBUG??"";globalThis.DEBUG_COLORS??=cn.DEBUG_COLORS?cn.DEBUG_COLORS==="true":!0;var xt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Va(e){let t={color:Ni[ja++%Ni.length],enabled:xt.enabled(e),namespace:e,log:xt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&ur.push([o,...n]),ur.length>$a&&ur.shift(),xt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:Ga(g)),f=`+${Date.now()-Fi}ms`;Fi=Date.now(),a(o,...l,f)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var Y=new Proxy(Va,{get:(e,t)=>xt[t],set:(e,t,r)=>xt[t]=r});function Ga(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Li(){ur.length=0}d();u();c();p();m();d();u();c();p();m();var pl=Qi(),pn=pl.version;d();u();c();p();m();var Ji="library";function Ye(e){let t=ml();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":e?.config.engineType==="client"?"client":Ji)}function ml(){let e=y.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":e==="client"?"client":void 0}d();u();c();p();m();var Wi="prisma+postgres",pr=`${Wi}:`;function mn(e){return e?.startsWith(`${pr}//`)??!1}var vt={};ir(vt,{error:()=>gl,info:()=>fl,log:()=>dl,query:()=>hl,should:()=>zi,tags:()=>Pt,warn:()=>dn});d();u();c();p();m();var Pt={error:ze("prisma:error"),warn:Oi("prisma:warn"),info:Mi("prisma:info"),query:Di("prisma:query")},zi={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function dl(...e){console.log(...e)}function dn(e,...t){zi.warn()&&console.warn(`${Pt.warn} ${e}`,...t)}function fl(e,...t){console.info(`${Pt.info} ${e}`,...t)}function gl(e,...t){console.error(`${Pt.error} ${e}`,...t)}function hl(e,...t){console.log(`${Pt.query} ${e}`,...t)}d();u();c();p();m();function xe(e,t){throw new Error(t)}d();u();c();p();m();function fn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}d();u();c();p();m();function Ze(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}d();u();c();p();m();function gn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{to.has(e)||(to.add(e),dn(t,...r))};var Q=class e extends Error{clientVersion;errorCode;retryable;constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};N(Q,"PrismaClientInitializationError");d();u();c();p();m();var oe=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};N(oe,"PrismaClientKnownRequestError");d();u();c();p();m();var Re=class extends Error{clientVersion;constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};N(Re,"PrismaClientRustPanicError");d();u();c();p();m();var se=class extends Error{clientVersion;batchRequestIdx;constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};N(se,"PrismaClientUnknownRequestError");d();u();c();p();m();var X=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(t,{clientVersion:r}){super(t),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};N(X,"PrismaClientValidationError");d();u();c();p();m();d();u();c();p();m();var Xe=9e15,Oe=1e9,hn="0123456789abcdef",gr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",hr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",yn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Xe,maxE:Xe,crypto:!1},so,Pe,_=!0,wr="[DecimalError] ",Ie=wr+"Invalid argument: ",ao=wr+"Precision limit exceeded",lo=wr+"crypto unavailable",uo="[object Decimal]",Z=Math.floor,J=Math.pow,wl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,El=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,bl=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,co=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ce=1e7,O=7,xl=9007199254740991,Pl=gr.length-1,wn=hr.length-1,C={toStringTag:uo};C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),I(e)};C.ceil=function(){return I(new this.constructor(this),this.e+1,2)};C.clampedTo=C.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ie+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,f=e.s;if(!s||!a)return!l||!f?NaN:l!==f?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-f:0;if(l!==f)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=vl(n,ho(n,r)),n.precision=e,n.rounding=t,I(Pe==2||Pe==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,l,f,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(_=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=K(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=Z((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),f=l.plus(g),n=q(f.plus(g).times(a),f.plus(l),s+2,1),K(a.d).slice(0,s)===(r=K(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(I(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(I(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return _=!0,I(n,e,h.rounding,t)};C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-Z(this.e/O))*O,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};C.dividedBy=C.div=function(e){return q(this,new this.constructor(e))};C.dividedToIntegerBy=C.divToInt=function(e){var t=this,r=t.constructor;return I(q(t,new r(e),0,1,1),r.precision,r.rounding)};C.equals=C.eq=function(e){return this.cmp(e)===0};C.floor=function(){return I(new this.constructor(this),this.e+1,3)};C.greaterThan=C.gt=function(e){return this.cmp(e)>0};C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return t==1||t===0};C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/br(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=et(s,1,o.times(t),new s(1),!0);for(var l,f=e,g=new s(8);f--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return I(o,s.precision=r,s.rounding=n,!0)};C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/br(5,e)),i=et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),f=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(f))))}return o.precision=t,o.rounding=r,I(i,t,r,!0)};C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,q(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};C.inverseCosine=C.acos=function(){var e=this,t=e.constructor,r=e.abs().cmp(1),n=t.precision,i=t.rounding;return r!==-1?r===0?e.isNeg()?fe(t,n,i):new t(0):new t(NaN):e.isZero()?fe(t,n+4,i).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=i,e.times(2))};C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,_=!1,r=r.times(r).minus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,_=!1,r=r.times(r).plus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln())};C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?I(new o(i),e,t,!0):(o.precision=r=n-i.e,i=q(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=fe(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding;if(f.isFinite()){if(f.isZero())return new g(f);if(f.abs().eq(1)&&h+4<=wn)return s=fe(g,h+4,v).times(.25),s.s=f.s,s}else{if(!f.s)return new g(NaN);if(h+4<=wn)return s=fe(g,h+4,v).times(.5),s.s=f.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/O+2|0),e=r;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/O),n=1,l=f.times(f),s=new g(f),i=f;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};C.isNaN=function(){return!this.s};C.isNegative=C.isNeg=function(){return this.s<0};C.isPositive=C.isPos=function(){return this.s>0};C.isZero=function(){return!!this.d&&this.d[0]===0};C.lessThan=C.lt=function(e){return this.cmp(e)<0};C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1};C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=f.d,f.s<0||!r||!r[0]||f.eq(1))return new g(r&&!r[0]?-1/0:f.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(_=!1,a=h+S,s=ke(f,a),n=t?yr(g,a+10):ke(e,a),l=q(s,n,a,1),Tt(l.d,i=h,v))do if(a+=10,s=ke(f,a),n=t?yr(g,a+10):ke(e,a),l=q(s,n,a,1),!o){+K(l.d).slice(i+1,i+15)+1==1e14&&(l=I(l,h+1,0));break}while(Tt(l.d,i+=10,v));return _=!0,I(l,h,v)};C.minus=C.sub=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.constructor;if(e=new A(e),!S.d||!e.d)return!S.s||!e.s?e=new A(NaN):S.d?e.s=-e.s:e=new A(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(f=S.d,v=e.d,a=A.precision,l=A.rounding,!f[0]||!v[0]){if(v[0])e.s=-e.s;else if(f[0])e=new A(S);else return new A(l===3?-0:0);return _?I(e,a,l):e}if(r=Z(e.e/O),g=Z(S.e/O),f=f.slice(),o=g-r,o){for(h=o<0,h?(t=f,o=-o,s=v.length):(t=v,r=g,s=f.length),n=Math.max(Math.ceil(a/O),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=f.length,s=v.length,h=n0;--n)f[s++]=0;for(n=v.length;n>o;){if(f[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=f.length,i=g.length,s-i<0&&(i=s,r=g,g=f,f=r),t=0;i;)t=(f[--i]=f[i]+g[i]+t)/ce|0,f[i]%=ce;for(t&&(f.unshift(t),++n),s=f.length;f[--s]==0;)f.pop();return e.d=f,e.e=Er(f,n),_?I(e,a,l):e};C.precision=C.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ie+e);return r.d?(t=po(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};C.round=function(){var e=this,t=e.constructor;return I(new t(e),e.e+1,t.rounding)};C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=Cl(n,ho(n,r)),n.precision=e,n.rounding=t,I(Pe>2?r.neg():r,e,t,!0)):new n(NaN)};C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,f=s.s,g=s.constructor;if(f!==1||!a||!a[0])return new g(!f||f<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,f=Math.sqrt(+s),f==0||f==1/0?(t=K(a),(t.length+l)%2==0&&(t+="0"),f=Math.sqrt(t),l=Z((l+1)/2)-(l<0||l%2),f==1/0?t="5e"+l:(t=f.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(f.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(q(s,o,r+2,1)).times(.5),K(o.d).slice(0,r)===(t=K(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(I(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(I(n,l+1,1),e=!n.times(n).eq(s));break}return _=!0,I(n,l,g.rounding,e)};C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=q(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,I(Pe==2||Pe==4?r.neg():r,e,t,!0)):new n(NaN)};C.times=C.mul=function(e){var t,r,n,i,o,s,a,l,f,g=this,h=g.constructor,v=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!S||!S[0])return new h(!e.s||v&&!v[0]&&!S||S&&!S[0]&&!v?NaN:!v||!S?e.s/0:e.s*0);for(r=Z(g.e/O)+Z(e.e/O),l=v.length,f=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*v[i-n-1]+t,o[i--]=a%ce|0,t=a/ce|0;o[i]=(o[i]+t)%ce|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=Er(o,r),_?I(e,h.precision,h.rounding):e};C.toBinary=function(e,t){return bn(this,2,e,t)};C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(re(e,0,Oe),t===void 0?t=n.rounding:re(t,0,8),I(r,e+r.e+1,t))};C.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,!0):(re(e,0,Oe),t===void 0?t=i.rounding:re(t,0,8),n=I(new i(n),e+1,t),r=ge(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=ge(i):(re(e,0,Oe),t===void 0?t=o.rounding:re(t,0,8),n=I(new o(i),e+i.e+1,t),r=ge(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};C.toFraction=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.d,R=S.constructor;if(!A)return new R(S);if(f=r=new R(1),n=l=new R(0),t=new R(n),o=t.e=po(A)-S.e-1,s=o%O,t.d[0]=J(10,s<0?O+s:s),e==null)e=o>0?t:f;else{if(a=new R(e),!a.isInt()||a.lt(f))throw Error(Ie+a);e=a.gt(t)?o>0?t:f:a}for(_=!1,a=new R(K(A)),g=R.precision,R.precision=o=A.length*O*2;h=q(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=f,f=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=q(e.minus(r),n,0,1,1),l=l.plus(i.times(f)),r=r.plus(i.times(n)),l.s=f.s=S.s,v=q(f,n,o,1).minus(S).abs().cmp(q(l,r,o,1).minus(S).abs())<1?[f,n]:[l,r],R.precision=g,_=!0,v};C.toHexadecimal=C.toHex=function(e,t){return bn(this,16,e,t)};C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:re(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(_=!1,r=q(r,e,0,t,1).times(e),_=!0,I(r)):(e.s=r.s,r=e),r};C.toNumber=function(){return+this};C.toOctal=function(e,t){return bn(this,8,e,t)};C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,f=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,f));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return I(a,n,o);if(t=Z(e.e/O),t>=e.d.length-1&&(r=f<0?-f:f)<=xl)return i=mo(l,a,r,n),e.s<0?new l(1).div(i):I(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(_=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=En(e.times(ke(a,n+r)),n),i.d&&(i=I(i,n+5,1),Tt(i.d,n,o)&&(t=n+10,i=I(En(e.times(ke(a,t+r)),t),t+5,1),+K(i.d).slice(n+1,n+15)+1==1e14&&(i=I(i,n+1,0)))),i.s=s,_=!0,l.rounding=o,I(i,n,o))};C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(re(e,1,Oe),t===void 0?t=i.rounding:re(t,0,8),n=I(new i(n),e,t),r=ge(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toSignificantDigits=C.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(re(e,1,Oe),t===void 0?t=n.rounding:re(t,0,8)),I(new n(r),e,t)};C.toString=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};C.truncated=C.trunc=function(){return I(new this.constructor(this),this.e+1,1)};C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function K(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(Ie+e)}function Tt(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=O,i=0):(i=Math.ceil((t+1)/O),t%=O),o=J(10,O-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function dr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function vl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/br(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var q=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var f,g,h,v,S,A,R,D,M,B,k,F,ie,G,Yr,tr,Et,Zr,ue,rr,nr=n.constructor,Xr=n.s==i.s?1:-1,z=n.d,$=i.d;if(!z||!z[0]||!$||!$[0])return new nr(!n.s||!i.s||(z?$&&z[0]==$[0]:!$)?NaN:z&&z[0]==0||!$?Xr*0:Xr/0);for(l?(S=1,g=n.e-i.e):(l=ce,S=O,g=Z(n.e/S)-Z(i.e/S)),ue=$.length,Et=z.length,M=new nr(Xr),B=M.d=[],h=0;$[h]==(z[h]||0);h++);if($[h]>(z[h]||0)&&g--,o==null?(G=o=nr.precision,s=nr.rounding):a?G=o+(n.e-i.e)+1:G=o,G<0)B.push(1),A=!0;else{if(G=G/S+2|0,h=0,ue==1){for(v=0,$=$[0],G++;(h1&&($=e($,v,l),z=e(z,v,l),ue=$.length,Et=z.length),tr=ue,k=z.slice(0,ue),F=k.length;F=l/2&&++Zr;do v=0,f=t($,k,ue,F),f<0?(ie=k[0],ue!=F&&(ie=ie*l+(k[1]||0)),v=ie/Zr|0,v>1?(v>=l&&(v=l-1),R=e($,v,l),D=R.length,F=k.length,f=t(R,k,D,F),f==1&&(v--,r(R,ue=10;v/=10)h++;M.e=h+g*S-1,I(M,a?o+M.e+1:o,s,A)}return M}}();function I(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=O,s=t,g=h[v=0],l=g/J(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/O),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=O,s=o-O+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=O,s=o-O+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%J(10,i-s-1)),f=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,f?(t-=e.e+1,h[0]=J(10,(O-t%O)%O),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=J(10,O-o),h[v]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),f)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==ce&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=ce)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return _&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Se(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Se(-i-1)+o,r&&(n=r-s)>0&&(o+=Se(n))):i>=s?(o+=Se(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Se(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Se(n))),o}function Er(e,t){var r=e[0];for(t*=O;r>=10;r/=10)t++;return t}function yr(e,t,r){if(t>Pl)throw _=!0,r&&(e.precision=r),Error(ao);return I(new e(gr),t,1,!0)}function fe(e,t,r){if(t>wn)throw Error(ao);return I(new e(hr),t,r,!0)}function po(e){var t=e.length-1,r=t*O+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Se(e){for(var t="";e--;)t+="0";return t}function mo(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/O+4);for(_=!1;;){if(r%2&&(o=o.times(t),io(o.d,s)&&(i=!0)),r=Z(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),io(t.d,s)}return _=!0,o}function no(e){return e.d[e.d.length-1]&1}function fo(e,t,r){for(var n,i,o=new e(t[0]),s=0;++s17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(_=!1,l=A):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=I(o.times(e),l,1),r=r.times(++g),a=s.plus(q(o,r,l,1)),K(a.d).slice(0,l)===K(s.d).slice(0,l)){for(i=h;i--;)s=I(s.times(s),l,1);if(t==null)if(f<3&&Tt(s.d,l-n,S,f))v.precision=l+=10,r=o=a=new v(1),g=0,f++;else return I(s,v.precision=A,S,_=!0);else return v.precision=A,s}s=a}}function ke(e,t){var r,n,i,o,s,a,l,f,g,h,v,S=1,A=10,R=e,D=R.d,M=R.constructor,B=M.rounding,k=M.precision;if(R.s<0||!D||!D[0]||!R.e&&D[0]==1&&D.length==1)return new M(D&&!D[0]?-1/0:R.s!=1?NaN:D?0:R);if(t==null?(_=!1,g=k):g=t,M.precision=g+=A,r=K(D),n=r.charAt(0),Math.abs(o=R.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)R=R.times(e),r=K(R.d),n=r.charAt(0),S++;o=R.e,n>1?(R=new M("0."+r),o++):R=new M(n+"."+r.slice(1))}else return f=yr(M,g+2,k).times(o+""),R=ke(new M(n+"."+r.slice(1)),g-A).plus(f),M.precision=k,t==null?I(R,k,B,_=!0):R;for(h=R,l=s=R=q(R.minus(1),R.plus(1),g,1),v=I(R.times(R),g,1),i=3;;){if(s=I(s.times(v),g,1),f=l.plus(q(s,new M(i),g,1)),K(f.d).slice(0,g)===K(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(yr(M,g+2,k).times(o+""))),l=q(l,new M(S),g,1),t==null)if(Tt(l.d,g-A,B,a))M.precision=g+=A,f=s=R=q(h.minus(1),h.plus(1),g,1),v=I(R.times(R),g,1),i=a=1;else return I(l,M.precision=k,B,_=!0);else return M.precision=k,l;l=f,i+=2}}function go(e){return String(e.s*e.s/0)}function fr(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%O,r<0&&(n+=O),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),co.test(t))return fr(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(El.test(t))r=16,t=t.toLowerCase();else if(wl.test(t))r=2;else if(bl.test(t))r=8;else throw Error(Ie+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=mo(n,new n(r),o,o*2)),f=dr(t,r,ce),g=f.length-1,o=g;f[o]===0;--o)f.pop();return o<0?new n(e.s*0):(e.e=Er(f,g),e.d=f,_=!1,s&&(e=q(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):Be.pow(2,l))),_=!0,e)}function Cl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/br(5,r)),t=et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function et(e,t,r,n,i){var o,s,a,l,f=1,g=e.precision,h=Math.ceil(g/O);for(_=!1,l=r.times(r),a=new e(n);;){if(s=q(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=q(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,f++}return _=!0,s.d.length=h+1,s}function br(e,t){for(var r=e;--t;)r*=e;return r}function ho(e,t){var r,n=t.s<0,i=fe(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Pe=n?4:1,t;if(r=t.divToInt(i),r.isZero())Pe=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Pe=no(r)?n?2:3:n?4:1,t;Pe=no(r)?n?1:4:n?3:2}return t.minus(i).abs()}function bn(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor,A=r!==void 0;if(A?(re(r,1,Oe),n===void 0?n=S.rounding:re(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=go(e);else{for(g=ge(e),s=g.indexOf("."),A?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new S(1),v.e=g.length-s,v.d=dr(ge(v),10,i),v.e=v.d.length),h=dr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=A?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=q(e,v,r,n,0,i),h=e.d,o=e.e,f=so),s=h[r],a=i/2,f=f||h[r+1]!==void 0,f=n<4?(s!==void 0||f)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||f||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,f)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=dr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function Al(e){return new this(e).abs()}function Rl(e){return new this(e).acos()}function Sl(e){return new this(e).acosh()}function kl(e,t){return new this(e).plus(t)}function Il(e){return new this(e).asin()}function Ol(e){return new this(e).asinh()}function Dl(e){return new this(e).atan()}function Ml(e){return new this(e).atanh()}function _l(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=fe(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?fe(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=fe(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(q(e,t,o,1)),t=fe(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(q(e,t,o,1)),r}function Nl(e){return new this(e).cbrt()}function Fl(e){return I(e=new this(e),e.e+1,2)}function Ll(e,t,r){return new this(e).clamp(t,r)}function Bl(e){if(!e||typeof e!="object")throw Error(wr+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,Oe,"rounding",0,8,"toExpNeg",-Xe,0,"toExpPos",0,Xe,"maxE",0,Xe,"minE",-Xe,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ie+r+": "+n);if(r="crypto",i&&(this[r]=yn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(lo);else this[r]=!1;else throw Error(Ie+r+": "+n);return this}function Ul(e){return new this(e).cos()}function ql(e){return new this(e).cosh()}function yo(e){var t,r,n;function i(o){var s,a,l,f=this;if(!(f instanceof i))return new i(o);if(f.constructor=i,oo(o)){f.s=o.s,_?!o.d||o.e>i.maxE?(f.e=NaN,f.d=null):o.e=10;a/=10)s++;_?s>i.maxE?(f.e=NaN,f.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(lo);else for(;o=10;i/=10)n++;nRt,datamodelEnumToSchemaEnum:()=>fu});d();u();c();p();m();d();u();c();p();m();function fu(e){return{name:e.name,values:e.values.map(t=>t.name)}}d();u();c();p();m();var Rt=(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.updateManyAndReturn="updateManyAndReturn",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw",k))(Rt||{});var gu=Qe(Ki());var hu={red:ze,gray:_i,dim:lr,bold:ar,underline:ki,highlightSource:e=>e.highlight()},yu={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function wu({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Eu({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],l=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)),t&&a.push(s.underline(bu(t))),i){a.push("");let f=[i.toString()];o&&(f.push(o),f.push(s.dim(")"))),a.push(f.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function bu(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function vr(e){let t=e.showColors?hu:yu,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=wu(e),Eu(r,t)}d();u();c();p();m();var Ro=Qe(Pn());d();u();c();p();m();function Po(e,t,r){let n=vo(e),i=xu(n),o=vu(i);o?Tr(o,t,r):t.addErrorMessage(()=>"Unknown error")}function vo(e){return e.errors.flatMap(t=>t.kind==="Union"?vo(t):[t])}function xu(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Pu(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Pu(e,t){return[...new Set(e.concat(t))]}function vu(e){return gn(e,(t,r)=>{let n=bo(t),i=bo(r);return n!==i?n-i:xo(t)-xo(r)})}function bo(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function xo(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}d();u();c();p();m();var ae=class{constructor(t,r){this.name=t;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};d();u();c();p();m();d();u();c();p();m();Co();d();u();c();p();m();var nt=class{constructor(t=0,r){this.context=r;this.currentIndent=t}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};To();d();u();c();p();m();d();u();c();p();m();var Cr=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};d();u();c();p();m();var Ar=e=>e,Rr={bold:Ar,red:Ar,green:Ar,dim:Ar,enabled:!1},Ao={bold:ar,red:ze,green:Ii,dim:lr,enabled:!0},it={write(e){e.writeLine(",")}};d();u();c();p();m();var ye=class{constructor(t){this.contents=t}isUnderlined=!1;color=t=>t;underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};d();u();c();p();m();var Me=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var ot=class extends Me{items=[];addItem(t){return this.items.push(new Cr(t)),this}getField(t){return this.items[t]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(t){if(this.items.length===0){this.writeEmpty(t);return}this.writeWithItems(t)}writeEmpty(t){let r=new ye("[]");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithItems(t){let{colors:r}=t.context;t.writeLine("[").withIndent(()=>t.writeJoined(it,this.items).newLine()).write("]"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var st=class e extends Me{fields={};suggestions=[];addField(t){this.fields[t.name]=t}addSuggestion(t){this.suggestions.push(t)}getField(t){return this.fields[t]}getDeepField(t){let[r,...n]=t,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof ot&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(t){return t.length===0?this:this.getDeepField(t)?.value}hasField(t){return!!this.getField(t)}removeAllFields(){this.fields={}}removeField(t){delete this.fields[t]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(t){return this.getField(t)?.value}getDeepSubSelectionValue(t){let r=this;for(let n of t){if(!(r instanceof e))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(t){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of t){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let t=this.getField("select")?.value.asObject();if(t)return{kind:"select",value:t};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(t){return this.getSelectionParent()?.value.fields[t].value}getPrintWidth(){let t=Object.values(this.fields);return t.length==0?2:Math.max(...t.map(n=>n.getPrintWidth()))+2}write(t){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(t);return}this.writeWithContents(t,r)}asObject(){return this}writeEmpty(t){let r=new ye("{}");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithContents(t,r){t.writeLine("{").withIndent(()=>{t.writeJoined(it,[...r,...this.suggestions]).newLine()}),t.write("}"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth())))})}};d();u();c();p();m();var H=class extends Me{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new ye(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};d();u();c();p();m();var St=class{fields=[];addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(it,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Tr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":Tu(e,t);break;case"IncludeOnScalar":Cu(e,t);break;case"EmptySelection":Au(e,t,r);break;case"UnknownSelectionField":Iu(e,t);break;case"InvalidSelectionValue":Ou(e,t);break;case"UnknownArgument":Du(e,t);break;case"UnknownInputField":Mu(e,t);break;case"RequiredArgumentMissing":_u(e,t);break;case"InvalidArgumentType":Nu(e,t);break;case"InvalidArgumentValue":Fu(e,t);break;case"ValueTooLarge":Lu(e,t);break;case"SomeFieldsMissing":Bu(e,t);break;case"TooManyFieldsGiven":Uu(e,t);break;case"Union":Po(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function Tu(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function Cu(e,t){let[r,n]=kt(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ae(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${It(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function Au(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Ru(e,t,i);return}if(n.hasField("select")){Su(e,t);return}}if(r?.[De(e.outputType.name)]){ku(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Ru(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ae(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Su(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Io(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${It(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function ku(e,t){let r=new St;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ae("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=kt(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new st;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Iu(e,t){let r=Oo(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":Io(n,e.outputType);break;case"include":qu(n,e.outputType);break;case"omit":$u(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(It(n)),i.join(" ")})}function Ou(e,t){let r=Oo(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function Du(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),ju(n,e.arguments)),t.addErrorMessage(i=>So(i,r,e.arguments.map(o=>o.name)))}function Mu(e,t){let[r,n]=kt(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Do(o,e.inputType)}t.addErrorMessage(o=>So(o,n,e.inputType.fields.map(s=>s.name)))}function So(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=Gu(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(It(e)),n.join(" ")}function _u(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=kt(e.argumentPath),s=new St,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ae(o,s).makeRequired())}else{let l=e.inputTypes.map(ko).join(" | ");a.addSuggestion(new ae(o,l).makeRequired())}}function ko(e){return e.kind==="list"?`${ko(e.elementType)}[]`:e.name}function Nu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Sr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Fu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Sr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Lu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function Bu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Do(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Sr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(It(i)),o.join(" ")})}function Uu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Sr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function Io(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ae(r.name,"true"))}function qu(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ae(r.name,"true"))}function $u(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ae(r.name,"true"))}function ju(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ae(r.name,r.typeNames.join(" | ")))}function Oo(e,t){let[r,n]=kt(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Do(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ae(r.name,r.typeNames.join(" | ")))}function kt(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function It({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Sr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Vu=3;function Gu(e,t){let r=1/0,n;for(let i of t){let o=(0,Ro.default)(e,i);o>Vu||o`}};function at(e){return e instanceof Ot}d();u();c();p();m();var kr=Symbol(),Tn=new WeakMap,Te=class{constructor(t){t===kr?Tn.set(this,`Prisma.${this._getName()}`):Tn.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Tn.get(this)}},Dt=class extends Te{_getNamespace(){return"NullTypes"}},Mt=class extends Dt{_brand_DbNull};An(Mt,"DbNull");var _t=class extends Dt{_brand_JsonNull};An(_t,"JsonNull");var Nt=class extends Dt{_brand_AnyNull};An(Nt,"AnyNull");var Cn={classes:{DbNull:Mt,JsonNull:_t,AnyNull:Nt},instances:{DbNull:new Mt(kr),JsonNull:new _t(kr),AnyNull:new Nt(kr)}};function An(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}d();u();c();p();m();var Mo=": ",Ir=class{constructor(t,r){this.name=t;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Mo.length}write(t){let r=new ye(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Mo).write(this.value)}};var Rn=class{arguments;errorMessages=[];constructor(t){this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function lt(e){return new Rn(_o(e))}function _o(e){let t=new st;for(let[r,n]of Object.entries(e)){let i=new Ir(r,No(n));t.addField(i)}return t}function No(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(rt(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=xr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Te?new H(`Prisma.${e._getName()}`):at(e)?new H(`prisma.${De(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Qu(e):typeof e=="object"?_o(e):new H(Object.prototype.toString.call(e))}function Qu(e){let t=new ot;for(let r of e)t.addItem(No(r));return t}function Or(e,t){let r=t==="pretty"?Ao:Rr,n=e.renderAllMessages(r),i=new nt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function Dr({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=lt(e);for(let h of t)Tr(h,a,s);let{message:l,args:f}=Or(a,r),g=vr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:f});throw new X(g,{clientVersion:o})}d();u();c();p();m();d();u();c();p();m();function we(e){return e.replace(/^./,t=>t.toLowerCase())}d();u();c();p();m();function Lo(e,t,r){let n=we(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Ju({...e,...Fo(t.name,e,t.result.$allModels),...Fo(t.name,e,t.result[n])})}function Ju(e){let t=new he,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ze(e,n=>({...n,needs:r(n.name,new Set)}))}function Fo(e,t,r){return r?Ze(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Wu(t,o,i)})):{}}function Wu(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Bo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function Uo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Mr=class{constructor(t,r){this.extension=t;this.previous=r}computedFieldsCache=new he;modelExtensionsCache=new he;queryCallbacksCache=new he;clientExtensions=At(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=At(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t});getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>Lo(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=we(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ut=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Mr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Mr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};d();u();c();p();m();var _r=class{constructor(t){this.name=t}};function qo(e){return e instanceof _r}function Hu(e){return new _r(e)}d();u();c();p();m();d();u();c();p();m();var $o=Symbol(),Ft=class{constructor(t){if(t!==$o)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Sn:t}},Sn=new Ft($o);function Ee(e){return e instanceof Ft}var Ku={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},jo="explicitly `undefined` values are not allowed";function In({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ut.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g}){let h=new kn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g});return{modelName:e,action:Ku[t],query:Lt(r,h)}}function Lt({select:e,include:t,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Go(r,n),selection:zu(e,t,i,n)}}function zu(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),ec(e,n)):Yu(n,t,r)}function Yu(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&Zu(n,t,e),Xu(n,r,e),n}function Zu(e,t,r){for(let[n,i]of Object.entries(t)){if(Ee(i))continue;let o=r.nestSelection(n);if(On(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Lt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Lt(i,o)}}function Xu(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=Uo(i,n);for(let[s,a]of Object.entries(o)){if(Ee(a))continue;On(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function ec(e,t){let r={},n=t.getComputedFields(),i=Bo(e,n);for(let[o,s]of Object.entries(i)){if(Ee(s))continue;let a=t.nestSelection(o);On(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Ee(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Lt({},a):r[o]=!0;continue}r[o]=Lt(s,a)}}return r}function Vo(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(tt(e)){if(xr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(qo(e))return{$type:"Param",value:e.name};if(at(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return tc(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(rc(e))return e.values;if(rt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Te){if(e!==Cn.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(nc(e))return e.toJSON();if(typeof e=="object")return Go(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Go(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);Ee(i)||(i!==void 0?r[n]=Vo(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:jo}))}return r}function tc(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[De(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:xe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};d();u();c();p();m();function Qo(e){if(!e._hasPreviewFlag("metrics"))throw new X("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var Bt=class{_client;constructor(t){this._client=t}prometheus(t){return Qo(this._client),this._client._engine.metrics({format:"prometheus",...t})}json(t){return Qo(this._client),this._client._engine.metrics({format:"json",...t})}};d();u();c();p();m();function ic(e,t){let r=At(()=>oc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function oc(e){return{datamodel:{models:Dn(e.models),enums:Dn(e.enums),types:Dn(e.types)}}}function Dn(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}d();u();c();p();m();var Mn=new WeakMap,Nr="$$PrismaTypedSql",Ut=class{constructor(t,r){Mn.set(this,{sql:t,values:r}),Object.defineProperty(this,Nr,{value:Nr})}get sql(){return Mn.get(this).sql}get values(){return Mn.get(this).values}};function sc(e){return(...t)=>new Ut(e,t)}function Fr(e){return e!=null&&e[Nr]===Nr}d();u();c();p();m();var sa=Qe(Jo());d();u();c();p();m();Wo();qi();Gi();d();u();c();p();m();var le=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}d();u();c();p();m();d();u();c();p();m();var Br={enumerable:!0,configurable:!0,writable:!0};function Ur(e){let t=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>Br,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var zo=Symbol.for("nodejs.util.inspect.custom");function pe(e,t){let r=cc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Yo(Reflect.ownKeys(o),r),a=Yo(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Br,...l?.getPropertyDescriptor(s)}:Br:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[zo]=function(){let o={...this};return delete o[zo],o},i}function cc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function Yo(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}d();u();c();p();m();function ct(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}d();u();c();p();m();function qr(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}d();u();c();p();m();function Zo(e){if(e===void 0)return"";let t=lt(e);return new nt(0,{colors:Rr}).write(t).toString()}d();u();c();p();m();var pc="P2037";function $r({error:e,user_facing_error:t},r,n){return t.error_code?new oe(mc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new se(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function mc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===pc&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var _n=class{getLocation(){return null}};function _e(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new _n}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var Xo={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function pt(e={}){let t=fc(e);return Object.entries(t).reduce((n,[i,o])=>(Xo[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function fc(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function jr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function es(e,t){let r=jr(e);return t({action:"aggregate",unpacker:r,argsMapper:pt})(e)}d();u();c();p();m();function gc(e={}){let{select:t,...r}=e;return typeof t=="object"?pt({...r,_count:t}):pt({...r,_count:{_all:!0}})}function hc(e={}){return typeof e.select=="object"?t=>jr(e)(t)._count:t=>jr(e)(t)._count._all}function ts(e,t){return t({action:"count",unpacker:hc(e),argsMapper:gc})(e)}d();u();c();p();m();function yc(e={}){let t=pt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function wc(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function rs(e,t){return t({action:"groupBy",unpacker:wc(e),argsMapper:yc})(e)}function ns(e,t,r){if(t==="aggregate")return n=>es(n,r);if(t==="count")return n=>ts(n,r);if(t==="groupBy")return n=>rs(n,r)}d();u();c();p();m();function is(e,t){let r=t.fields.filter(i=>!i.relationName),n=wo(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Ot(e,o,s.type,s.isList,s.kind==="enum")},...Ur(Object.keys(n))})}d();u();c();p();m();d();u();c();p();m();var os=e=>Array.isArray(e)?e:e.split("."),Nn=(e,t)=>os(t).reduce((r,n)=>r&&r[n],e),ss=(e,t,r)=>os(t).reduceRight((n,i,o,s)=>Object.assign({},Nn(e,s.slice(0,o)),{[i]:n}),r);function Ec(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function bc(e,t,r){return t===void 0?e??{}:ss(t,r,e||!0)}function Fn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,f)=>({...l,[f.name]:f}),{});return l=>{let f=_e(e._errorFormat),g=Ec(n,i),h=bc(l,o,g),v=r({dataPath:g,callsite:f})(h),S=xc(e,t);return new Proxy(v,{get(A,R){if(!S.includes(R))return A[R];let M=[a[R].type,r,R],B=[g,h];return Fn(e,...M,...B)},...Ur([...S,...Object.getOwnPropertyNames(v)])})}}function xc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Pc=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],vc=["aggregate","count","groupBy"];function Ln(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[Tc(e,t),Ac(e,t),qt(r),ee("name",()=>t),ee("$name",()=>t),ee("$parent",()=>e._appliedParent)];return pe({},n)}function Tc(e,t){let r=we(t),n=Object.keys(Rt).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let f=_e(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:f};return e._request({...h,...a})},{action:o,args:l,model:t})};return Pc.includes(o)?Fn(e,t,s):Cc(i)?ns(e,i,s):s({})}}}function Cc(e){return vc.includes(e)}function Ac(e,t){return Ue(ee("fields",()=>{let r=e._runtimeDataModel.models[t];return is(t,r)}))}d();u();c();p();m();function as(e){return e.replace(/^./,t=>t.toUpperCase())}var Bn=Symbol();function $t(e){let t=[Rc(e),Sc(e),ee(Bn,()=>e),ee("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(qt(r)),pe(e,t)}function Rc(e){let t=Object.getPrototypeOf(e._originalClient),r=[...new Set(Object.getOwnPropertyNames(t))];return{getKeys(){return r},getPropertyValue(n){return e[n]}}}function Sc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(we),n=[...new Set(t.concat(r))];return Ue({getKeys(){return n},getPropertyValue(i){let o=as(i);if(e._runtimeDataModel.models[o]!==void 0)return Ln(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Ln(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function ls(e){return e[Bn]?e[Bn]:e}function us(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return $t(t)}d();u();c();p();m();d();u();c();p();m();function cs({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let f=l.needs.filter(g=>n[g]);f.length>0&&a.push(ct(f))}else if(r){if(!r[l.name])continue;let f=l.needs.filter(g=>!r[g]);f.length>0&&a.push(ct(f))}kc(e,l.needs)&&s.push(Ic(l,pe(e,s)))}return s.length>0||a.length>0?pe(e,[...s,...a]):e}function kc(e,t){return t.every(r=>fn(e,r))}function Ic(e,t){return Ue(ee(e.name,()=>e.compute(t)))}d();u();c();p();m();function Vr({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let f=typeof s=="object"?s:{};t[o]=Vr({visitor:i,result:t[o],args:f,modelName:l.type,runtimeDataModel:n})}}function ms({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Vr({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,f)=>{let g=we(l);return cs({result:a,modelName:g,select:f.select,omit:f.select?void 0:{...o?.[g],...f.omit},extensions:n})}})}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var Oc=["$connect","$disconnect","$on","$transaction","$use","$extends"],ds=Oc;function fs(e){if(e instanceof le)return Dc(e);if(Fr(e))return Mc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:fs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=bs(o,l),a.args=s,hs(e,a,r,n+1)}})})}function ys(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return hs(e,t,s)}function ws(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?Es(r,n,0,e):e(r)}}function Es(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=bs(i,l),Es(a,t,r+1,n)}})}var gs=e=>e;function bs(e=gs,t=gs){return r=>e(t(r))}d();u();c();p();m();var xs=Y("prisma:client"),Ps={Vercel:"vercel","Netlify CI":"netlify"};function vs({postinstall:e,ciName:t,clientVersion:r}){if(xs("checkPlatformCaching:postinstall",e),xs("checkPlatformCaching:ciName",t),e===!0&&t&&t in Ps){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${Ps[t]}-build`;throw console.error(n),new Q(n,r)}}d();u();c();p();m();function Ts(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}d();u();c();p();m();d();u();c();p();m();var _c=()=>globalThis.process?.release?.name==="node",Nc=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,Fc=()=>!!globalThis.Deno,Lc=()=>typeof globalThis.Netlify=="object",Bc=()=>typeof globalThis.EdgeRuntime=="object",Uc=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function qc(){return[[Lc,"netlify"],[Bc,"edge-light"],[Uc,"workerd"],[Fc,"deno"],[Nc,"bun"],[_c,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var $c={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Un(){let e=qc();return{id:e,prettyName:$c[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();function mt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Un().id==="workerd"?new Q(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new Q(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new Q("error: Missing URL environment variable, value, or override.",n);return i}d();u();c();p();m();d();u();c();p();m();var Gr=class extends Error{clientVersion;cause;constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var ne=class extends Gr{isRetryable;constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};d();u();c();p();m();d();u();c();p();m();function L(e,t){return{...e,isRetryable:t}}var dt=class extends ne{name="ForcedRetryError";code="P5001";constructor(t){super("This request must be retried",L(t,!0))}};N(dt,"ForcedRetryError");d();u();c();p();m();var qe=class extends ne{name="InvalidDatasourceError";code="P6001";constructor(t,r){super(t,L(r,!1))}};N(qe,"InvalidDatasourceError");d();u();c();p();m();var $e=class extends ne{name="NotImplementedYetError";code="P5004";constructor(t,r){super(t,L(r,!1))}};N($e,"NotImplementedYetError");d();u();c();p();m();d();u();c();p();m();var V=class extends ne{response;constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var je=class extends V{name="SchemaMissingError";code="P5005";constructor(t){super("Schema needs to be uploaded",L(t,!0))}};N(je,"SchemaMissingError");d();u();c();p();m();d();u();c();p();m();var qn="This request could not be understood by the server",Vt=class extends V{name="BadRequestError";code="P5000";constructor(t,r,n){super(r||qn,L(t,!1)),n&&(this.code=n)}};N(Vt,"BadRequestError");d();u();c();p();m();var Gt=class extends V{name="HealthcheckTimeoutError";code="P5013";logs;constructor(t,r){super("Engine not started: healthcheck timeout",L(t,!0)),this.logs=r}};N(Gt,"HealthcheckTimeoutError");d();u();c();p();m();var Qt=class extends V{name="EngineStartupError";code="P5014";logs;constructor(t,r,n){super(r,L(t,!0)),this.logs=n}};N(Qt,"EngineStartupError");d();u();c();p();m();var Jt=class extends V{name="EngineVersionNotSupportedError";code="P5012";constructor(t){super("Engine version is not supported",L(t,!1))}};N(Jt,"EngineVersionNotSupportedError");d();u();c();p();m();var $n="Request timed out",Wt=class extends V{name="GatewayTimeoutError";code="P5009";constructor(t,r=$n){super(r,L(t,!1))}};N(Wt,"GatewayTimeoutError");d();u();c();p();m();var jc="Interactive transaction error",Ht=class extends V{name="InteractiveTransactionError";code="P5015";constructor(t,r=jc){super(r,L(t,!1))}};N(Ht,"InteractiveTransactionError");d();u();c();p();m();var Vc="Request parameters are invalid",Kt=class extends V{name="InvalidRequestError";code="P5011";constructor(t,r=Vc){super(r,L(t,!1))}};N(Kt,"InvalidRequestError");d();u();c();p();m();var jn="Requested resource does not exist",zt=class extends V{name="NotFoundError";code="P5003";constructor(t,r=jn){super(r,L(t,!1))}};N(zt,"NotFoundError");d();u();c();p();m();var Vn="Unknown server error",ft=class extends V{name="ServerError";code="P5006";logs;constructor(t,r,n){super(r||Vn,L(t,!0)),this.logs=n}};N(ft,"ServerError");d();u();c();p();m();var Gn="Unauthorized, check your connection string",Yt=class extends V{name="UnauthorizedError";code="P5007";constructor(t,r=Gn){super(r,L(t,!1))}};N(Yt,"UnauthorizedError");d();u();c();p();m();var Qn="Usage exceeded, retry again later",Zt=class extends V{name="UsageExceededError";code="P5008";constructor(t,r=Qn){super(r,L(t,!0))}};N(Zt,"UsageExceededError");async function Gc(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function Xt(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await Gc(e);if(n.type==="QueryEngineError")throw new oe(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new ft(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new je(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Jt(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Qt(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new Q(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Gt(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Ht(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Kt(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Yt(r,gt(Gn,n));if(e.status===404)return new zt(r,gt(jn,n));if(e.status===429)throw new Zt(r,gt(Qn,n));if(e.status===504)throw new Wt(r,gt($n,n));if(e.status>=500)throw new ft(r,gt(Vn,n));if(e.status>=400)throw new Vt(r,gt(qn,n))}function gt(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}d();u();c();p();m();function Cs(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}d();u();c();p();m();var Ce="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function As(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,f,g;for(let h=0;h>18,a=(g&258048)>>12,l=(g&4032)>>6,f=g&63,r+=Ce[s]+Ce[a]+Ce[l]+Ce[f];return i==1?(g=t[o],s=(g&252)>>2,a=(g&3)<<4,r+=Ce[s]+Ce[a]+"=="):i==2&&(g=t[o]<<8|t[o+1],s=(g&64512)>>10,a=(g&1008)>>4,l=(g&15)<<2,r+=Ce[s]+Ce[a]+Ce[l]+"="),r}d();u();c();p();m();function Rs(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new Q("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}d();u();c();p();m();function Qc(e){return e[0]*1e3+e[1]/1e6}function Jn(e){return new Date(Qc(e))}d();u();c();p();m();var Ss={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};d();u();c();p();m();d();u();c();p();m();var er=class extends ne{name="RequestError";code="P5010";constructor(t,r){super(`Cannot fetch data from service: +${t}`,L(r,!0))}};N(er,"RequestError");async function Ve(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new er(a,{clientVersion:n,cause:s})}}var Wc=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,ks=Y("prisma:client:dataproxyEngine");async function Hc(e,t){let r=Ss["@prisma/engines-version"],n=t.clientVersion??"unknown";if(y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&Wc.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,f]=s.split("."),g=Kc(`<=${a}.${l}.${f}`),h=await Ve(g,{clientVersion:n});if(!h.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${h.status} ${h.statusText}, response body: ${await h.text()||""}`);let v=await h.text();ks("length of body fetched from unpkg.com",v.length);let S;try{S=JSON.parse(v)}catch(A){throw console.error("JSON.parse error: body fetched from unpkg.com: ",v),A}return S.version}throw new $e("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Is(e,t){let r=await Hc(e,t);return ks("version",r),r}function Kc(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var Os=3,Qr=Y("prisma:client:dataproxyEngine"),Wn=class{apiKey;tracingHelper;logLevel;logQueries;engineHash;constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},ht=class{name="DataProxyEngine";inlineSchema;inlineSchemaHash;inlineDatasources;config;logEmitter;env;clientVersion;engineHash;tracingHelper;remoteClientVersion;host;headerBuilder;startPromise;constructor(t){Rs(t),this.config=t,this.env={...t.env,...typeof y<"u"?y.env:{}},this.inlineSchema=As(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new Wn({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Is(t,this.config),Qr("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":Qr(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:Jn(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:Jn(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await Ve(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||Qr("schema response status",r.status);let n=await Xt(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=qr(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||Qr("graphql response status",a.status),await this.handleError(await Xt(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await Ve(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Xt(l,this.clientVersion));let f=await l.json(),{extensions:g}=f;g&&this.propagateResponseExtensions(g);let h=f.id,v=f["data-proxy"].endpoint;return{id:h,payload:{endpoint:v}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Xt(a,this.clientVersion));let l=await a.json(),{extensions:f}=l;f&&this.propagateResponseExtensions(f);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=mt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!==pr)throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new qe(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new $e("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof ne)||!i.isRetryable)throw i;if(r>=Os)throw i instanceof dt?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${Os} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Cs(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof je)throw await this.uploadSchema(),new dt({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?$r(t[0],this.config.clientVersion,this.config.activeProvider):new se(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function Ds({copyEngine:e=!0},t){let r;try{r=mt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||mn(r));e&&n&&mr("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ye(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary",f=i==="client";if(o&&s||s){let g;throw g=["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.","Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."],new X(g.join(` +`),{clientVersion:t.clientVersion})}return o?new ht(t):new ht(t)}d();u();c();p();m();function Jr({generator:e}){return e?.previewFeatures??[]}d();u();c();p();m();var Ms=e=>({command:e});d();u();c();p();m();d();u();c();p();m();var _s=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);d();u();c();p();m();function yt(e){try{return Ns(e,"fast")}catch{return Ns(e,"slow")}}function Ns(e,t){return JSON.stringify(e.map(r=>Ls(r,t)))}function Ls(e,t){if(Array.isArray(e))return e.map(r=>Ls(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(tt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ve.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(zc(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Bs(e):e}function zc(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Bs(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Fs);let t={};for(let r of Object.keys(e))t[r]=Fs(e[r]);return t}function Fs(e){return typeof e=="bigint"?e.toString():Bs(e)}var Yc=/^(\s*alter\s)/i,Us=Y("prisma:client");function Hn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Yc.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Kn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Fr(r))n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:yt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=_s(r),i={values:yt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Us(`prisma.${e}(${n}, ${i.values})`):Us(`prisma.${e}(${n})`),{query:n,parameters:i}},qs={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new le(t,r)}},$s={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};d();u();c();p();m();function zn(e){return function(r,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=js(r(s)):js(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function js(e){return typeof e.then=="function"?e:Promise.resolve(e)}d();u();c();p();m();var Zc=pn.split(".")[0],Xc={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Yn=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){let t=globalThis[`V${Zc}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return t?.helper??r?.helper??Xc}};function Vs(){return new Yn}d();u();c();p();m();function Gs(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}d();u();c();p();m();function Qs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}d();u();c();p();m();var Wr=class{_middlewares=[];use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};d();u();c();p();m();var Ws=Qe(eo());d();u();c();p();m();function Hr(e){return typeof e.batchRequestIdx=="number"}d();u();c();p();m();function Js(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(Zn(e.query.arguments)),t.push(Zn(e.query.selection)),t.join("")}function Zn(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${Zn(n)})`:r}).join(" ")})`}d();u();c();p();m();var ep={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function Xn(e){return ep[e]}d();u();c();p();m();var Kr=class{constructor(t){this.options=t;this.batches={}}batches;tickActive=!1;request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iGe("bigint",r));case"bytes-array":return t.map(r=>Ge("bytes",r));case"decimal-array":return t.map(r=>Ge("decimal",r));case"datetime-array":return t.map(r=>Ge("datetime",r));case"date-array":return t.map(r=>Ge("date",r));case"time-array":return t.map(r=>Ge("time",r));default:return t}}function ei(e){let t=[],r=tp(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),f=n.some(h=>Xn(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:np(o),containsWrite:f,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Hs(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Xn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Js(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(rp(t),ip(t,i))throw t;if(t instanceof oe&&op(t)){let f=Ks(t.meta);Dr({args:o,errors:[f],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=vr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let f=s?{modelName:s,...t.meta}:t.meta;throw new oe(l,{code:t.code,clientVersion:this.client._clientVersion,meta:f,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new Re(l,this.client._clientVersion);if(t instanceof se)throw new se(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof Q)throw new Q(l,this.client._clientVersion);if(t instanceof Re)throw new Re(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Ws.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(f=>f!=="select"&&f!=="include"),a=Nn(o,s),l=i==="queryRaw"?ei(a):Ct(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function np(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Hs(e)};xe(e,"Unknown transaction kind")}}function Hs(e){return{id:e.id,payload:e.payload}}function ip(e,t){return Hr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function op(e){return e.code==="P2009"||e.code==="P2012"}function Ks(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Ks)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}d();u();c();p();m();var zs="6.6.0";var Ys=zs;d();u();c();p();m();var ra=Qe(Pn());d();u();c();p();m();var U=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};N(U,"PrismaClientConstructorValidationError");var Zs=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Xs=["pretty","colorless","minimal"],ea=["info","query","warn","error"],ap={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=wt(r,t)||` Available datasources: ${t.join(", ")}`;throw new U(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new U(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(!e&&Ye(t.generator)==="client")throw new U('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new U('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Jr(t).includes("driverAdapters"))throw new U('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ye(t.generator)==="binary")throw new U('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!Xs.includes(e)){let t=wt(e,Xs);throw new U(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!ea.includes(r)){let n=wt(r,ea);throw new U(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=wt(i,o);throw new U(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new U(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new U(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new U(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new U('"omit" option is expected to be an object.');if(e===null)throw new U('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=up(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(f=>f.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new U(cp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new U(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=wt(r,t);throw new U(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function na(e,t){for(let[r,n]of Object.entries(e)){if(!Zs.includes(r)){let i=wt(r,Zs);throw new U(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}ap[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new U('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function wt(e,t){if(t.length===0||typeof e!="string")return"";let r=lp(e,t);return r?` Did you mean "${r}"?`:""}function lp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,ra.default)(e,i)}));r.sort((i,o)=>i.distanceDe(n)===t);if(r)return e[r]}function cp(e,t){let r=lt(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Or(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}d();u();c();p();m();function ia(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=f=>{o||(o=!0,r(f))};for(let f=0;f{n[f]=g,a()},g=>{if(!Hr(g)){l(g);return}g.batchRequestIdx===f?l(g):(i||(i=g),a())})})}var Ne=Y("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var pp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},mp=Symbol.for("prisma.client.transaction.id"),dp={id:0,nextId(){return++this.id}};function fp(e){class t{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Wr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=zn();constructor(n){e=n?.__internal?.configOverride?.(e)??e,vs(e),n&&na(n,e);let i=new Lr().on("error",()=>{});this._extensions=ut.empty(),this._previewFeatures=Jr(e),this._clientVersion=e.clientVersion??Ys,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Vs();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&cr.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&cr.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new Q(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new Q("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},f=l.__internal??{},g=f.debug===!0;g&&Y.enable("prisma:client");let h=cr.resolve(e.dirname,e.relativePath);Ui.existsSync(h)||(h=e.dirname),Ne("dirname",e.dirname),Ne("relativePath",e.relativePath),Ne("cwd",h);let v=f.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Qs(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ts(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:mt,getBatchRequestPayload:qr,prismaGraphQLToJSError:$r,PrismaClientUnknownRequestError:se,PrismaClientInitializationError:Q,PrismaClientKnownRequestError:oe,debug:Y("prisma:client:accelerateEngine"),engineVersion:sa.version,clientVersion:e.clientVersion}},Ne("clientVersion",e.clientVersion),this._engine=Ds(e,this._engineConfig),this._requestHandler=new zr(this,i),l.log)for(let S of l.log){let A=typeof S=="string"?S:S.emit==="stdout"?S.level:null;A&&this.$on(A,R=>{vt.log(`${vt.tags[A]??""}`,R.message||R.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=$t(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Li()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Kn({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=oa(n,i);return Hn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new X("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Hn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new X(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:Ms,callsite:_e(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Kn({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...oa(n,i));throw new X("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new X("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=dp.nextId(),s=Gs(n.length),a=n.map((l,f)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:f,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return ia(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let f={kind:"itx",...a};l=await n(this._createItxClient(f)),await this._engine.transaction("commit",o,a)}catch(f){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),f}return l}_createItxClient(n){return pe($t(pe(ls(this),[ee("_appliedParent",()=>this._appliedParent._createItxClient(n)),ee("_createPrismaPromise",()=>zn(n)),ee(mp,()=>n.id)])),[ct(ds)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??pp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async f=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,D=>g(f,M=>(D?.end(),l(M))));let{runInTransaction:h,args:v,...S}=f,A={...n,...S};v&&(A.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete A.transaction;let R=await ys(this,A);return A.model?ms({result:R,modelName:A.model,args:A.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):R};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:f,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:S}){try{n=f?f(n):n;let A={name:"serialize"},R=this._tracingHelper.runInChildSpan(A,()=>In({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return Y.enabled("prisma:client")&&(Ne("Prisma Client call:"),Ne(`prisma.${i}(${Zo(n)})`),Ne("Generated request:"),Ne(JSON.stringify(R,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:R,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(A){throw A.clientVersion=this._clientVersion,A}}$metrics=new Bt(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=us}return t}function oa(e,t){return gp(e)?[new le(e,t),qs]:[e,$s]}function gp(e){return Array.isArray(e)&&Array.isArray(e.raw)}d();u();c();p();m();var hp=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function yp(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!hp.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}d();u();c();p();m();var export_warnEnvConflicts=void 0;export{Pr as DMMF,Y as Debug,ve as Decimal,Pi as Extensions,Bt as MetricsClient,Q as PrismaClientInitializationError,oe as PrismaClientKnownRequestError,Re as PrismaClientRustPanicError,se as PrismaClientUnknownRequestError,X as PrismaClientValidationError,Ti as Public,le as Sql,Hu as createParam,ic as defineDmmfProperty,Ct as deserializeJsonResponse,ei as deserializeRawResult,du as dmmfToRuntimeDataModel,uc as empty,fp as getPrismaClient,Un as getRuntime,lc as join,yp as makeStrictEnum,sc as makeTypedQueryFactory,Cn as objectEnumValues,Ho as raw,In as serializeJsonQuery,Sn as skip,Ko as sqltag,export_warnEnvConflicts as warnEnvConflicts,mr as warnOnce}; +//# sourceMappingURL=edge-esm.js.map diff --git a/src/lib/generated/prisma/runtime/edge.js b/src/lib/generated/prisma/runtime/edge.js new file mode 100644 index 0000000..441111f --- /dev/null +++ b/src/lib/generated/prisma/runtime/edge.js @@ -0,0 +1,31 @@ +"use strict";var ya=Object.create;var ar=Object.defineProperty;var wa=Object.getOwnPropertyDescriptor;var Ea=Object.getOwnPropertyNames;var ba=Object.getPrototypeOf,xa=Object.prototype.hasOwnProperty;var me=(e,t)=>()=>(e&&(t=e(e=0)),t);var Fe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Pt=(e,t)=>{for(var r in t)ar(e,r,{get:t[r],enumerable:!0})},oi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ea(t))!xa.call(e,i)&&i!==r&&ar(e,i,{get:()=>t[i],enumerable:!(n=wa(t,i))||n.enumerable});return e};var Qe=(e,t,r)=>(r=e!=null?ya(ba(e)):{},oi(t||!e||!e.__esModule?ar(r,"default",{value:e,enumerable:!0}):r,e)),Pa=e=>oi(ar({},"__esModule",{value:!0}),e);var y,u=me(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var b,c=me(()=>{"use strict";b=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,p=me(()=>{"use strict";E=()=>{};E.prototype=E});var m=me(()=>{"use strict"});var Ti=Fe(Ke=>{"use strict";d();u();c();p();m();var ci=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),va=ci(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var D=A.indexOf("=");D===-1&&(D=R);var M=D===R?0:4-D%4;return[D,M]}function l(A){var R=a(A),D=R[0],M=R[1];return(D+M)*3/4-M}function f(A,R,D){return(R+D)*3/4-D}function g(A){var R,D=a(A),M=D[0],B=D[1],k=new n(f(A,M,B)),F=0,ae=B>0?M-4:M,G;for(G=0;G>16&255,k[F++]=R>>8&255,k[F++]=R&255;return B===2&&(R=r[A.charCodeAt(G)]<<2|r[A.charCodeAt(G+1)]>>4,k[F++]=R&255),B===1&&(R=r[A.charCodeAt(G)]<<10|r[A.charCodeAt(G+1)]<<4|r[A.charCodeAt(G+2)]>>2,k[F++]=R>>8&255,k[F++]=R&255),k}function h(A){return t[A>>18&63]+t[A>>12&63]+t[A>>6&63]+t[A&63]}function v(A,R,D){for(var M,B=[],k=R;kae?ae:F+k));return M===1?(R=A[D-1],B.push(t[R>>2]+t[R<<4&63]+"==")):M===2&&(R=(A[D-2]<<8)+A[D-1],B.push(t[R>>10]+t[R>>4&63]+t[R<<2&63]+"=")),B.join("")}}),Ta=ci(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,f=(1<>1,h=-7,v=n?o-1:0,S=n?-1:1,A=t[r+v];for(v+=S,s=A&(1<<-h)-1,A>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=S,h-=8);if(s===0)s=1-g;else{if(s===f)return a?NaN:(A?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(A?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,f,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=i?0:s-1,R=i?1:-1,D=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(f=Math.pow(2,-a))<1&&(a--,f*=2),a+v>=1?r+=S/f:r+=S*Math.pow(2,1-v),r*f>=2&&(a++,f/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*f-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+A]=l&255,A+=R,l/=256,o-=8);for(a=a<0;t[n+A]=a&255,A+=R,a/=256,g-=8);t[n+A-R]|=D*128}}),an=va(),We=Ta(),si=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ke.Buffer=T;Ke.SlowBuffer=Ia;Ke.INSPECT_MAX_BYTES=50;var lr=2147483647;Ke.kMaxLength=lr;T.TYPED_ARRAY_SUPPORT=Ca();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function Ca(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function xe(e){if(e>lr)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return cn(e)}return pi(e,t,r)}T.poolSize=8192;function pi(e,t,r){if(typeof e=="string")return Ra(e,t);if(ArrayBuffer.isView(e))return Sa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(de(e,ArrayBuffer)||e&&de(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(de(e,SharedArrayBuffer)||e&&de(e.buffer,SharedArrayBuffer)))return di(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=ka(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return pi(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function mi(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function Aa(e,t,r){return mi(e),e<=0?xe(e):t!==void 0?typeof r=="string"?xe(e).fill(t,r):xe(e).fill(t):xe(e)}T.alloc=function(e,t,r){return Aa(e,t,r)};function cn(e){return mi(e),xe(e<0?0:pn(e)|0)}T.allocUnsafe=function(e){return cn(e)};T.allocUnsafeSlow=function(e){return cn(e)};function Ra(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=fi(e,t)|0,n=xe(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function ln(e){let t=e.length<0?0:pn(e.length)|0,r=xe(t);for(let n=0;n=lr)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+lr.toString(16)+" bytes");return e|0}function Ia(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),de(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function fi(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||de(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return un(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return vi(e).length;default:if(i)return n?-1:un(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=fi;function Oa(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return $a(this,t,r);case"utf8":case"utf-8":return hi(this,t,r);case"ascii":return Ua(this,t,r);case"latin1":case"binary":return qa(this,t,r);case"base64":return La(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ja(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Le(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};si&&(T.prototype[si]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(de(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),f=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,dn(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:ai(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):ai(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function ai(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let f;if(i){let g=-1;for(f=r;fs&&(r=s-a),f=r;f>=0;f--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return Da(this,e,t,r);case"utf8":case"utf-8":return Ma(this,e,t,r);case"ascii":case"latin1":case"binary":return _a(this,e,t,r);case"base64":return Na(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Fa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function La(e,t,r){return t===0&&r===e.length?an.fromByteArray(e):an.fromByteArray(e.slice(t,r))}function hi(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,f,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],f=e[i+2],(l&192)===128&&(f&192)===128&&(h=(o&15)<<12|(l&63)<<6|f&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],f=e[i+2],g=e[i+3],(l&192)===128&&(f&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(f&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return Ba(n)}var li=4096;function Ba(e){let t=e.length;if(t<=li)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Re(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Re(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&vt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),We.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),We.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!1,52,8)};function te(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function yi(e,t,r,n,i){Pi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function wi(e,t,r,n,i){Pi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Re(function(e,t=0){return yi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Re(function(e,t=0){return wi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Re(function(e,t=0){return yi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Re(function(e,t=0){return wi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ei(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function bi(e,t,r,n,i){return t=+t,r=r>>>0,i||Ei(e,t,r,4,34028234663852886e22,-34028234663852886e22),We.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return bi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return bi(this,e,t,!1,r)};function xi(e,t,r,n,i){return t=+t,r=r>>>0,i||Ei(e,t,r,8,17976931348623157e292,-17976931348623157e292),We.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return xi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return xi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ui(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ui(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ui(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Va(e,t,r){He(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&vt(t,e.length-(r+1))}function Pi(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Je.ERR_OUT_OF_RANGE("value",a,e)}Va(n,i,o)}function He(e,t){if(typeof e!="number")throw new Je.ERR_INVALID_ARG_TYPE(t,"number",e)}function vt(e,t,r){throw Math.floor(e)!==e?(He(e,r),new Je.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Je.ERR_BUFFER_OUT_OF_BOUNDS:new Je.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Ga=/[^+/0-9A-Za-z-_]/g;function Qa(e){if(e=e.split("=")[0],e=e.trim().replace(Ga,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function un(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Ja(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function vi(e){return an.toByteArray(Qa(e))}function ur(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function de(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function dn(e){return e!==e}var Ha=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Re(e){return typeof BigInt>"u"?Ka:e}function Ka(){throw new Error("BigInt not supported")}});var w,d=me(()=>{"use strict";w=Qe(Ti())});function tl(){return!1}function $i(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function rl(){return $i()}function nl(){return[]}function il(e){e(null,[])}function ol(){return""}function sl(){return""}function al(){}function ll(){}function ul(){}function cl(){}function pl(){}function ml(){}var dl,fl,ji,Vi=me(()=>{"use strict";d();u();c();p();m();dl={},fl={existsSync:tl,lstatSync:$i,statSync:rl,readdirSync:nl,readdir:il,readlinkSync:ol,realpathSync:sl,chmodSync:al,renameSync:ll,mkdirSync:ul,rmdirSync:cl,rmSync:pl,unlinkSync:ml,promises:dl},ji=fl});function gl(...e){return e.join("/")}function hl(...e){return e.join("/")}function yl(e){let t=Gi(e),r=Qi(e),[n,i]=t.split(".");return{root:"/",dir:r,base:t,ext:i,name:n}}function Gi(e){let t=e.split("/");return t[t.length-1]}function Qi(e){return e.split("/").slice(0,-1).join("/")}var Ji,wl,El,dr,Wi=me(()=>{"use strict";d();u();c();p();m();Ji="/",wl={sep:Ji},El={basename:Gi,dirname:Qi,join:hl,parse:yl,posix:wl,resolve:gl,sep:Ji},dr=El});var Hi=Fe((ld,bl)=>{bl.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Zi=Fe((Rd,Yi)=>{"use strict";d();u();c();p();m();Yi.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var to=Fe((Ud,eo)=>{"use strict";d();u();c();p();m();eo.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var no=Fe((Qd,ro)=>{"use strict";d();u();c();p();m();var Rl=to();ro.exports=e=>typeof e=="string"?e.replace(Rl(),""):e});var kn=Fe((_y,vo)=>{"use strict";d();u();c();p();m();vo.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";d();u();c();p();m()});var ko=me(()=>{"use strict";d();u();c();p();m()});var Xo=Fe((r1,dc)=>{dc.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var $r,es=me(()=>{"use strict";d();u();c();p();m();$r=class{events={};on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var bp={};Pt(bp,{DMMF:()=>Ot,Debug:()=>K,Decimal:()=>he,Extensions:()=>fn,MetricsClient:()=>pt,PrismaClientInitializationError:()=>Q,PrismaClientKnownRequestError:()=>re,PrismaClientRustPanicError:()=>ve,PrismaClientUnknownRequestError:()=>ne,PrismaClientValidationError:()=>Z,Public:()=>gn,Sql:()=>oe,createParam:()=>Qo,defineDmmfProperty:()=>Yo,deserializeJsonResponse:()=>tt,deserializeRawResult:()=>tn,dmmfToRuntimeDataModel:()=>Po,empty:()=>rs,getPrismaClient:()=>fa,getRuntime:()=>Hr,join:()=>ts,makeStrictEnum:()=>ga,makeTypedQueryFactory:()=>Zo,objectEnumValues:()=>Or,raw:()=>Bn,serializeJsonQuery:()=>Br,skip:()=>Lr,sqltag:()=>Un,warnEnvConflicts:()=>void 0,warnOnce:()=>Rt});module.exports=Pa(bp);d();u();c();p();m();var fn={};Pt(fn,{defineExtension:()=>Ci,getExtensionContext:()=>Ai});d();u();c();p();m();d();u();c();p();m();function Ci(e){return typeof e=="function"?e:t=>t.$extends(e)}d();u();c();p();m();function Ai(e){return e}var gn={};Pt(gn,{validator:()=>Ri});d();u();c();p();m();d();u();c();p();m();function Ri(...e){return t=>t}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var hn,Si,ki,Ii,Oi=!0;typeof y<"u"&&({FORCE_COLOR:hn,NODE_DISABLE_COLORS:Si,NO_COLOR:ki,TERM:Ii}=y.env||{},Oi=y.stdout&&y.stdout.isTTY);var za={enabled:!Si&&ki==null&&Ii!=="dumb"&&(hn!=null&&hn!=="0"||Oi)};function j(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!za.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var pm=j(0,0),cr=j(1,22),pr=j(2,22),mm=j(3,23),Di=j(4,24),dm=j(7,27),fm=j(8,28),gm=j(9,29),hm=j(30,39),ze=j(31,39),Mi=j(32,39),_i=j(33,39),Ni=j(34,39),ym=j(35,39),Fi=j(36,39),wm=j(37,39),Li=j(90,39),Em=j(90,39),bm=j(40,49),xm=j(41,49),Pm=j(42,49),vm=j(43,49),Tm=j(44,49),Cm=j(45,49),Am=j(46,49),Rm=j(47,49);d();u();c();p();m();var Ya=100,Bi=["green","yellow","blue","magenta","cyan","red"],mr=[],Ui=Date.now(),Za=0,yn=typeof y<"u"?y.env:{};globalThis.DEBUG??=yn.DEBUG??"";globalThis.DEBUG_COLORS??=yn.DEBUG_COLORS?yn.DEBUG_COLORS==="true":!0;var Tt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Xa(e){let t={color:Bi[Za++%Bi.length],enabled:Tt.enabled(e),namespace:e,log:Tt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&mr.push([o,...n]),mr.length>Ya&&mr.shift(),Tt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:el(g)),f=`+${Date.now()-Ui}ms`;Ui=Date.now(),a(o,...l,f)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var K=new Proxy(Xa,{get:(e,t)=>Tt[t],set:(e,t,r)=>Tt[t]=r});function el(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function qi(){mr.length=0}d();u();c();p();m();d();u();c();p();m();var xl=Hi(),wn=xl.version;d();u();c();p();m();var Ki="library";function Ye(e){let t=Pl();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":e?.config.engineType==="client"?"client":Ki)}function Pl(){let e=y.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":e==="client"?"client":void 0}d();u();c();p();m();var zi="prisma+postgres",fr=`${zi}:`;function En(e){return e?.startsWith(`${fr}//`)??!1}var At={};Pt(At,{error:()=>Cl,info:()=>Tl,log:()=>vl,query:()=>Al,should:()=>Xi,tags:()=>Ct,warn:()=>bn});d();u();c();p();m();var Ct={error:ze("prisma:error"),warn:_i("prisma:warn"),info:Fi("prisma:info"),query:Ni("prisma:query")},Xi={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function vl(...e){console.log(...e)}function bn(e,...t){Xi.warn()&&console.warn(`${Ct.warn} ${e}`,...t)}function Tl(e,...t){console.info(`${Ct.info} ${e}`,...t)}function Cl(e,...t){console.error(`${Ct.error} ${e}`,...t)}function Al(e,...t){console.log(`${Ct.query} ${e}`,...t)}d();u();c();p();m();function Pe(e,t){throw new Error(t)}d();u();c();p();m();function xn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}d();u();c();p();m();function Ze(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}d();u();c();p();m();function Pn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{io.has(e)||(io.add(e),bn(t,...r))};var Q=class e extends Error{clientVersion;errorCode;retryable;constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};N(Q,"PrismaClientInitializationError");d();u();c();p();m();var re=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};N(re,"PrismaClientKnownRequestError");d();u();c();p();m();var ve=class extends Error{clientVersion;constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};N(ve,"PrismaClientRustPanicError");d();u();c();p();m();var ne=class extends Error{clientVersion;batchRequestIdx;constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};N(ne,"PrismaClientUnknownRequestError");d();u();c();p();m();var Z=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(t,{clientVersion:r}){super(t),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};N(Z,"PrismaClientValidationError");d();u();c();p();m();d();u();c();p();m();var Xe=9e15,Oe=1e9,vn="0123456789abcdef",yr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",wr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Tn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Xe,maxE:Xe,crypto:!1},uo,Te,_=!0,br="[DecimalError] ",Ie=br+"Invalid argument: ",co=br+"Precision limit exceeded",po=br+"crypto unavailable",mo="[object Decimal]",X=Math.floor,J=Math.pow,Sl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,kl=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Il=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,fo=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ce=1e7,O=7,Ol=9007199254740991,Dl=yr.length-1,Cn=wr.length-1,C={toStringTag:mo};C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),I(e)};C.ceil=function(){return I(new this.constructor(this),this.e+1,2)};C.clampedTo=C.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ie+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,f=e.s;if(!s||!a)return!l||!f?NaN:l!==f?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-f:0;if(l!==f)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=Ml(n,Eo(n,r)),n.precision=e,n.rounding=t,I(Te==2||Te==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,l,f,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(_=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=z(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=X((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),f=l.plus(g),n=q(f.plus(g).times(a),f.plus(l),s+2,1),z(a.d).slice(0,s)===(r=z(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(I(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(I(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return _=!0,I(n,e,h.rounding,t)};C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-X(this.e/O))*O,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};C.dividedBy=C.div=function(e){return q(this,new this.constructor(e))};C.dividedToIntegerBy=C.divToInt=function(e){var t=this,r=t.constructor;return I(q(t,new r(e),0,1,1),r.precision,r.rounding)};C.equals=C.eq=function(e){return this.cmp(e)===0};C.floor=function(){return I(new this.constructor(this),this.e+1,3)};C.greaterThan=C.gt=function(e){return this.cmp(e)>0};C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return t==1||t===0};C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/Pr(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=et(s,1,o.times(t),new s(1),!0);for(var l,f=e,g=new s(8);f--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return I(o,s.precision=r,s.rounding=n,!0)};C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/Pr(5,e)),i=et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),f=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(f))))}return o.precision=t,o.rounding=r,I(i,t,r,!0)};C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,q(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};C.inverseCosine=C.acos=function(){var e=this,t=e.constructor,r=e.abs().cmp(1),n=t.precision,i=t.rounding;return r!==-1?r===0?e.isNeg()?fe(t,n,i):new t(0):new t(NaN):e.isZero()?fe(t,n+4,i).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=i,e.times(2))};C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,_=!1,r=r.times(r).minus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,_=!1,r=r.times(r).plus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln())};C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?I(new o(i),e,t,!0):(o.precision=r=n-i.e,i=q(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=fe(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding;if(f.isFinite()){if(f.isZero())return new g(f);if(f.abs().eq(1)&&h+4<=Cn)return s=fe(g,h+4,v).times(.25),s.s=f.s,s}else{if(!f.s)return new g(NaN);if(h+4<=Cn)return s=fe(g,h+4,v).times(.5),s.s=f.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/O+2|0),e=r;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/O),n=1,l=f.times(f),s=new g(f),i=f;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};C.isNaN=function(){return!this.s};C.isNegative=C.isNeg=function(){return this.s<0};C.isPositive=C.isPos=function(){return this.s>0};C.isZero=function(){return!!this.d&&this.d[0]===0};C.lessThan=C.lt=function(e){return this.cmp(e)<0};C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1};C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,l,f=this,g=f.constructor,h=g.precision,v=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=f.d,f.s<0||!r||!r[0]||f.eq(1))return new g(r&&!r[0]?-1/0:f.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(_=!1,a=h+S,s=ke(f,a),n=t?Er(g,a+10):ke(e,a),l=q(s,n,a,1),St(l.d,i=h,v))do if(a+=10,s=ke(f,a),n=t?Er(g,a+10):ke(e,a),l=q(s,n,a,1),!o){+z(l.d).slice(i+1,i+15)+1==1e14&&(l=I(l,h+1,0));break}while(St(l.d,i+=10,v));return _=!0,I(l,h,v)};C.minus=C.sub=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.constructor;if(e=new A(e),!S.d||!e.d)return!S.s||!e.s?e=new A(NaN):S.d?e.s=-e.s:e=new A(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(f=S.d,v=e.d,a=A.precision,l=A.rounding,!f[0]||!v[0]){if(v[0])e.s=-e.s;else if(f[0])e=new A(S);else return new A(l===3?-0:0);return _?I(e,a,l):e}if(r=X(e.e/O),g=X(S.e/O),f=f.slice(),o=g-r,o){for(h=o<0,h?(t=f,o=-o,s=v.length):(t=v,r=g,s=f.length),n=Math.max(Math.ceil(a/O),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=f.length,s=v.length,h=n0;--n)f[s++]=0;for(n=v.length;n>o;){if(f[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=f.length,i=g.length,s-i<0&&(i=s,r=g,g=f,f=r),t=0;i;)t=(f[--i]=f[i]+g[i]+t)/ce|0,f[i]%=ce;for(t&&(f.unshift(t),++n),s=f.length;f[--s]==0;)f.pop();return e.d=f,e.e=xr(f,n),_?I(e,a,l):e};C.precision=C.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ie+e);return r.d?(t=go(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};C.round=function(){var e=this,t=e.constructor;return I(new t(e),e.e+1,t.rounding)};C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+O,n.rounding=1,r=Nl(n,Eo(n,r)),n.precision=e,n.rounding=t,I(Te>2?r.neg():r,e,t,!0)):new n(NaN)};C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,f=s.s,g=s.constructor;if(f!==1||!a||!a[0])return new g(!f||f<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,f=Math.sqrt(+s),f==0||f==1/0?(t=z(a),(t.length+l)%2==0&&(t+="0"),f=Math.sqrt(t),l=X((l+1)/2)-(l<0||l%2),f==1/0?t="5e"+l:(t=f.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(f.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(q(s,o,r+2,1)).times(.5),z(o.d).slice(0,r)===(t=z(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(I(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(I(n,l+1,1),e=!n.times(n).eq(s));break}return _=!0,I(n,l,g.rounding,e)};C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=q(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,I(Te==2||Te==4?r.neg():r,e,t,!0)):new n(NaN)};C.times=C.mul=function(e){var t,r,n,i,o,s,a,l,f,g=this,h=g.constructor,v=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!S||!S[0])return new h(!e.s||v&&!v[0]&&!S||S&&!S[0]&&!v?NaN:!v||!S?e.s/0:e.s*0);for(r=X(g.e/O)+X(e.e/O),l=v.length,f=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*v[i-n-1]+t,o[i--]=a%ce|0,t=a/ce|0;o[i]=(o[i]+t)%ce|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=xr(o,r),_?I(e,h.precision,h.rounding):e};C.toBinary=function(e,t){return Rn(this,2,e,t)};C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ie(e,0,Oe),t===void 0?t=n.rounding:ie(t,0,8),I(r,e+r.e+1,t))};C.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,!0):(ie(e,0,Oe),t===void 0?t=i.rounding:ie(t,0,8),n=I(new i(n),e+1,t),r=ge(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=ge(i):(ie(e,0,Oe),t===void 0?t=o.rounding:ie(t,0,8),n=I(new o(i),e+i.e+1,t),r=ge(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};C.toFraction=function(e){var t,r,n,i,o,s,a,l,f,g,h,v,S=this,A=S.d,R=S.constructor;if(!A)return new R(S);if(f=r=new R(1),n=l=new R(0),t=new R(n),o=t.e=go(A)-S.e-1,s=o%O,t.d[0]=J(10,s<0?O+s:s),e==null)e=o>0?t:f;else{if(a=new R(e),!a.isInt()||a.lt(f))throw Error(Ie+a);e=a.gt(t)?o>0?t:f:a}for(_=!1,a=new R(z(A)),g=R.precision,R.precision=o=A.length*O*2;h=q(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=f,f=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=q(e.minus(r),n,0,1,1),l=l.plus(i.times(f)),r=r.plus(i.times(n)),l.s=f.s=S.s,v=q(f,n,o,1).minus(S).abs().cmp(q(l,r,o,1).minus(S).abs())<1?[f,n]:[l,r],R.precision=g,_=!0,v};C.toHexadecimal=C.toHex=function(e,t){return Rn(this,16,e,t)};C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:ie(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(_=!1,r=q(r,e,0,t,1).times(e),_=!0,I(r)):(e.s=r.s,r=e),r};C.toNumber=function(){return+this};C.toOctal=function(e,t){return Rn(this,8,e,t)};C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,f=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,f));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return I(a,n,o);if(t=X(e.e/O),t>=e.d.length-1&&(r=f<0?-f:f)<=Ol)return i=ho(l,a,r,n),e.s<0?new l(1).div(i):I(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(_=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=An(e.times(ke(a,n+r)),n),i.d&&(i=I(i,n+5,1),St(i.d,n,o)&&(t=n+10,i=I(An(e.times(ke(a,t+r)),t),t+5,1),+z(i.d).slice(n+1,n+15)+1==1e14&&(i=I(i,n+1,0)))),i.s=s,_=!0,l.rounding=o,I(i,n,o))};C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ge(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,Oe),t===void 0?t=i.rounding:ie(t,0,8),n=I(new i(n),e,t),r=ge(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toSignificantDigits=C.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ie(e,1,Oe),t===void 0?t=n.rounding:ie(t,0,8)),I(new n(r),e,t)};C.toString=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};C.truncated=C.trunc=function(){return I(new this.constructor(this),this.e+1,1)};C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=ge(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function z(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(Ie+e)}function St(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=O,i=0):(i=Math.ceil((t+1)/O),t%=O),o=J(10,O-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function gr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function Ml(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/Pr(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var q=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var f,g,h,v,S,A,R,D,M,B,k,F,ae,G,nn,ir,xt,on,ue,or,sr=n.constructor,sn=n.s==i.s?1:-1,Y=n.d,$=i.d;if(!Y||!Y[0]||!$||!$[0])return new sr(!n.s||!i.s||(Y?$&&Y[0]==$[0]:!$)?NaN:Y&&Y[0]==0||!$?sn*0:sn/0);for(l?(S=1,g=n.e-i.e):(l=ce,S=O,g=X(n.e/S)-X(i.e/S)),ue=$.length,xt=Y.length,M=new sr(sn),B=M.d=[],h=0;$[h]==(Y[h]||0);h++);if($[h]>(Y[h]||0)&&g--,o==null?(G=o=sr.precision,s=sr.rounding):a?G=o+(n.e-i.e)+1:G=o,G<0)B.push(1),A=!0;else{if(G=G/S+2|0,h=0,ue==1){for(v=0,$=$[0],G++;(h1&&($=e($,v,l),Y=e(Y,v,l),ue=$.length,xt=Y.length),ir=ue,k=Y.slice(0,ue),F=k.length;F=l/2&&++on;do v=0,f=t($,k,ue,F),f<0?(ae=k[0],ue!=F&&(ae=ae*l+(k[1]||0)),v=ae/on|0,v>1?(v>=l&&(v=l-1),R=e($,v,l),D=R.length,F=k.length,f=t(R,k,D,F),f==1&&(v--,r(R,ue=10;v/=10)h++;M.e=h+g*S-1,I(M,a?o+M.e+1:o,s,A)}return M}}();function I(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=O,s=t,g=h[v=0],l=g/J(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/O),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=O,s=o-O+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=O,s=o-O+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%J(10,i-s-1)),f=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,f?(t-=e.e+1,h[0]=J(10,(O-t%O)%O),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=J(10,O-o),h[v]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),f)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==ce&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=ce)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return _&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Se(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Se(-i-1)+o,r&&(n=r-s)>0&&(o+=Se(n))):i>=s?(o+=Se(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Se(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Se(n))),o}function xr(e,t){var r=e[0];for(t*=O;r>=10;r/=10)t++;return t}function Er(e,t,r){if(t>Dl)throw _=!0,r&&(e.precision=r),Error(co);return I(new e(yr),t,1,!0)}function fe(e,t,r){if(t>Cn)throw Error(co);return I(new e(wr),t,r,!0)}function go(e){var t=e.length-1,r=t*O+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Se(e){for(var t="";e--;)t+="0";return t}function ho(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/O+4);for(_=!1;;){if(r%2&&(o=o.times(t),ao(o.d,s)&&(i=!0)),r=X(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),ao(t.d,s)}return _=!0,o}function so(e){return e.d[e.d.length-1]&1}function yo(e,t,r){for(var n,i,o=new e(t[0]),s=0;++s17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(_=!1,l=A):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=I(o.times(e),l,1),r=r.times(++g),a=s.plus(q(o,r,l,1)),z(a.d).slice(0,l)===z(s.d).slice(0,l)){for(i=h;i--;)s=I(s.times(s),l,1);if(t==null)if(f<3&&St(s.d,l-n,S,f))v.precision=l+=10,r=o=a=new v(1),g=0,f++;else return I(s,v.precision=A,S,_=!0);else return v.precision=A,s}s=a}}function ke(e,t){var r,n,i,o,s,a,l,f,g,h,v,S=1,A=10,R=e,D=R.d,M=R.constructor,B=M.rounding,k=M.precision;if(R.s<0||!D||!D[0]||!R.e&&D[0]==1&&D.length==1)return new M(D&&!D[0]?-1/0:R.s!=1?NaN:D?0:R);if(t==null?(_=!1,g=k):g=t,M.precision=g+=A,r=z(D),n=r.charAt(0),Math.abs(o=R.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)R=R.times(e),r=z(R.d),n=r.charAt(0),S++;o=R.e,n>1?(R=new M("0."+r),o++):R=new M(n+"."+r.slice(1))}else return f=Er(M,g+2,k).times(o+""),R=ke(new M(n+"."+r.slice(1)),g-A).plus(f),M.precision=k,t==null?I(R,k,B,_=!0):R;for(h=R,l=s=R=q(R.minus(1),R.plus(1),g,1),v=I(R.times(R),g,1),i=3;;){if(s=I(s.times(v),g,1),f=l.plus(q(s,new M(i),g,1)),z(f.d).slice(0,g)===z(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(Er(M,g+2,k).times(o+""))),l=q(l,new M(S),g,1),t==null)if(St(l.d,g-A,B,a))M.precision=g+=A,f=s=R=q(h.minus(1),h.plus(1),g,1),v=I(R.times(R),g,1),i=a=1;else return I(l,M.precision=k,B,_=!0);else return M.precision=k,l;l=f,i+=2}}function wo(e){return String(e.s*e.s/0)}function hr(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%O,r<0&&(n+=O),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),fo.test(t))return hr(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(kl.test(t))r=16,t=t.toLowerCase();else if(Sl.test(t))r=2;else if(Il.test(t))r=8;else throw Error(Ie+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=ho(n,new n(r),o,o*2)),f=gr(t,r,ce),g=f.length-1,o=g;f[o]===0;--o)f.pop();return o<0?new n(e.s*0):(e.e=xr(f,g),e.d=f,_=!1,s&&(e=q(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):Be.pow(2,l))),_=!0,e)}function Nl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/Pr(5,r)),t=et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function et(e,t,r,n,i){var o,s,a,l,f=1,g=e.precision,h=Math.ceil(g/O);for(_=!1,l=r.times(r),a=new e(n);;){if(s=q(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=q(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,f++}return _=!0,s.d.length=h+1,s}function Pr(e,t){for(var r=e;--t;)r*=e;return r}function Eo(e,t){var r,n=t.s<0,i=fe(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Te=n?4:1,t;if(r=t.divToInt(i),r.isZero())Te=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Te=so(r)?n?2:3:n?4:1,t;Te=so(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Rn(e,t,r,n){var i,o,s,a,l,f,g,h,v,S=e.constructor,A=r!==void 0;if(A?(ie(r,1,Oe),n===void 0?n=S.rounding:ie(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=wo(e);else{for(g=ge(e),s=g.indexOf("."),A?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new S(1),v.e=g.length-s,v.d=gr(ge(v),10,i),v.e=v.d.length),h=gr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=A?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=q(e,v,r,n,0,i),h=e.d,o=e.e,f=uo),s=h[r],a=i/2,f=f||h[r+1]!==void 0,f=n<4?(s!==void 0||f)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||f||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,f)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=gr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function Fl(e){return new this(e).abs()}function Ll(e){return new this(e).acos()}function Bl(e){return new this(e).acosh()}function Ul(e,t){return new this(e).plus(t)}function ql(e){return new this(e).asin()}function $l(e){return new this(e).asinh()}function jl(e){return new this(e).atan()}function Vl(e){return new this(e).atanh()}function Gl(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=fe(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?fe(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=fe(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(q(e,t,o,1)),t=fe(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(q(e,t,o,1)),r}function Ql(e){return new this(e).cbrt()}function Jl(e){return I(e=new this(e),e.e+1,2)}function Wl(e,t,r){return new this(e).clamp(t,r)}function Hl(e){if(!e||typeof e!="object")throw Error(br+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,Oe,"rounding",0,8,"toExpNeg",-Xe,0,"toExpPos",0,Xe,"maxE",0,Xe,"minE",-Xe,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ie+r+": "+n);if(r="crypto",i&&(this[r]=Tn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(po);else this[r]=!1;else throw Error(Ie+r+": "+n);return this}function Kl(e){return new this(e).cos()}function zl(e){return new this(e).cosh()}function bo(e){var t,r,n;function i(o){var s,a,l,f=this;if(!(f instanceof i))return new i(o);if(f.constructor=i,lo(o)){f.s=o.s,_?!o.d||o.e>i.maxE?(f.e=NaN,f.d=null):o.e=10;a/=10)s++;_?s>i.maxE?(f.e=NaN,f.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(po);else for(;o=10;i/=10)n++;nIt,datamodelEnumToSchemaEnum:()=>vu});d();u();c();p();m();d();u();c();p();m();function vu(e){return{name:e.name,values:e.values.map(t=>t.name)}}d();u();c();p();m();var It=(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.updateManyAndReturn="updateManyAndReturn",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw",k))(It||{});var Tu=Qe(Zi());var Cu={red:ze,gray:Li,dim:pr,bold:cr,underline:Di,highlightSource:e=>e.highlight()},Au={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ru({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Su({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],l=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)),t&&a.push(s.underline(ku(t))),i){a.push("");let f=[i.toString()];o&&(f.push(o),f.push(s.dim(")"))),a.push(f.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function ku(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function Tr(e){let t=e.showColors?Cu:Au,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=Ru(e),Su(r,t)}d();u();c();p();m();var Oo=Qe(kn());d();u();c();p();m();function Ao(e,t,r){let n=Ro(e),i=Iu(n),o=Du(i);o?Cr(o,t,r):t.addErrorMessage(()=>"Unknown error")}function Ro(e){return e.errors.flatMap(t=>t.kind==="Union"?Ro(t):[t])}function Iu(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Ou(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Ou(e,t){return[...new Set(e.concat(t))]}function Du(e){return Pn(e,(t,r)=>{let n=To(t),i=To(r);return n!==i?n-i:Co(t)-Co(r)})}function To(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function Co(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}d();u();c();p();m();var le=class{constructor(t,r){this.name=t;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};d();u();c();p();m();d();u();c();p();m();ko();d();u();c();p();m();var it=class{constructor(t=0,r){this.context=r;this.currentIndent=t}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};So();d();u();c();p();m();d();u();c();p();m();var Ar=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};d();u();c();p();m();var Rr=e=>e,Sr={bold:Rr,red:Rr,green:Rr,dim:Rr,enabled:!1},Io={bold:cr,red:ze,green:Mi,dim:pr,enabled:!0},ot={write(e){e.writeLine(",")}};d();u();c();p();m();var we=class{constructor(t){this.contents=t}isUnderlined=!1;color=t=>t;underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};d();u();c();p();m();var Me=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var st=class extends Me{items=[];addItem(t){return this.items.push(new Ar(t)),this}getField(t){return this.items[t]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(t){if(this.items.length===0){this.writeEmpty(t);return}this.writeWithItems(t)}writeEmpty(t){let r=new we("[]");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithItems(t){let{colors:r}=t.context;t.writeLine("[").withIndent(()=>t.writeJoined(ot,this.items).newLine()).write("]"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var at=class e extends Me{fields={};suggestions=[];addField(t){this.fields[t.name]=t}addSuggestion(t){this.suggestions.push(t)}getField(t){return this.fields[t]}getDeepField(t){let[r,...n]=t,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof st&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(t){return t.length===0?this:this.getDeepField(t)?.value}hasField(t){return!!this.getField(t)}removeAllFields(){this.fields={}}removeField(t){delete this.fields[t]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(t){return this.getField(t)?.value}getDeepSubSelectionValue(t){let r=this;for(let n of t){if(!(r instanceof e))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(t){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of t){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let t=this.getField("select")?.value.asObject();if(t)return{kind:"select",value:t};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(t){return this.getSelectionParent()?.value.fields[t].value}getPrintWidth(){let t=Object.values(this.fields);return t.length==0?2:Math.max(...t.map(n=>n.getPrintWidth()))+2}write(t){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(t);return}this.writeWithContents(t,r)}asObject(){return this}writeEmpty(t){let r=new we("{}");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithContents(t,r){t.writeLine("{").withIndent(()=>{t.writeJoined(ot,[...r,...this.suggestions]).newLine()}),t.write("}"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth())))})}};d();u();c();p();m();var H=class extends Me{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new we(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};d();u();c();p();m();var Dt=class{fields=[];addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(ot,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Cr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":Mu(e,t);break;case"IncludeOnScalar":_u(e,t);break;case"EmptySelection":Nu(e,t,r);break;case"UnknownSelectionField":Uu(e,t);break;case"InvalidSelectionValue":qu(e,t);break;case"UnknownArgument":$u(e,t);break;case"UnknownInputField":ju(e,t);break;case"RequiredArgumentMissing":Vu(e,t);break;case"InvalidArgumentType":Gu(e,t);break;case"InvalidArgumentValue":Qu(e,t);break;case"ValueTooLarge":Ju(e,t);break;case"SomeFieldsMissing":Wu(e,t);break;case"TooManyFieldsGiven":Hu(e,t);break;case"Union":Ao(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function Mu(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function _u(e,t){let[r,n]=Mt(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new le(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${_t(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function Nu(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Fu(e,t,i);return}if(n.hasField("select")){Lu(e,t);return}}if(r?.[De(e.outputType.name)]){Bu(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Fu(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new le(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Lu(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),_o(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${_t(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function Bu(e,t){let r=new Dt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new le("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=Mt(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new at;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Uu(e,t){let r=No(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":_o(n,e.outputType);break;case"include":Ku(n,e.outputType);break;case"omit":zu(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(_t(n)),i.join(" ")})}function qu(e,t){let r=No(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function $u(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Yu(n,e.arguments)),t.addErrorMessage(i=>Do(i,r,e.arguments.map(o=>o.name)))}function ju(e,t){let[r,n]=Mt(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Fo(o,e.inputType)}t.addErrorMessage(o=>Do(o,n,e.inputType.fields.map(s=>s.name)))}function Do(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=Xu(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(_t(e)),n.join(" ")}function Vu(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=Mt(e.argumentPath),s=new Dt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new le(o,s).makeRequired())}else{let l=e.inputTypes.map(Mo).join(" | ");a.addSuggestion(new le(o,l).makeRequired())}}function Mo(e){return e.kind==="list"?`${Mo(e.elementType)}[]`:e.name}function Gu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=kr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Qu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=kr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Ju(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function Wu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Fo(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${kr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(_t(i)),o.join(" ")})}function Hu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${kr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function _o(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new le(r.name,"true"))}function Ku(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new le(r.name,"true"))}function zu(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new le(r.name,"true"))}function Yu(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new le(r.name,r.typeNames.join(" | ")))}function No(e,t){let[r,n]=Mt(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Fo(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new le(r.name,r.typeNames.join(" | ")))}function Mt(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function _t({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function kr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Zu=3;function Xu(e,t){let r=1/0,n;for(let i of t){let o=(0,Oo.default)(e,i);o>Zu||o`}};function lt(e){return e instanceof Nt}d();u();c();p();m();var Ir=Symbol(),On=new WeakMap,Ce=class{constructor(t){t===Ir?On.set(this,`Prisma.${this._getName()}`):On.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return On.get(this)}},Ft=class extends Ce{_getNamespace(){return"NullTypes"}},Lt=class extends Ft{_brand_DbNull};Dn(Lt,"DbNull");var Bt=class extends Ft{_brand_JsonNull};Dn(Bt,"JsonNull");var Ut=class extends Ft{_brand_AnyNull};Dn(Ut,"AnyNull");var Or={classes:{DbNull:Lt,JsonNull:Bt,AnyNull:Ut},instances:{DbNull:new Lt(Ir),JsonNull:new Bt(Ir),AnyNull:new Ut(Ir)}};function Dn(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}d();u();c();p();m();var Lo=": ",Dr=class{constructor(t,r){this.name=t;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Lo.length}write(t){let r=new we(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Lo).write(this.value)}};var Mn=class{arguments;errorMessages=[];constructor(t){this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function ut(e){return new Mn(Bo(e))}function Bo(e){let t=new at;for(let[r,n]of Object.entries(e)){let i=new Dr(r,Uo(n));t.addField(i)}return t}function Uo(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(nt(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=vr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Ce?new H(`Prisma.${e._getName()}`):lt(e)?new H(`prisma.${De(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?ec(e):typeof e=="object"?Bo(e):new H(Object.prototype.toString.call(e))}function ec(e){let t=new st;for(let r of e)t.addItem(Uo(r));return t}function Mr(e,t){let r=t==="pretty"?Io:Sr,n=e.renderAllMessages(r),i=new it(0,{colors:r}).write(e).toString();return{message:n,args:i}}function _r({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=ut(e);for(let h of t)Cr(h,a,s);let{message:l,args:f}=Mr(a,r),g=Tr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:f});throw new Z(g,{clientVersion:o})}d();u();c();p();m();d();u();c();p();m();function Ee(e){return e.replace(/^./,t=>t.toLowerCase())}d();u();c();p();m();function $o(e,t,r){let n=Ee(r);return!t.result||!(t.result.$allModels||t.result[n])?e:tc({...e,...qo(t.name,e,t.result.$allModels),...qo(t.name,e,t.result[n])})}function tc(e){let t=new ye,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ze(e,n=>({...n,needs:r(n.name,new Set)}))}function qo(e,t,r){return r?Ze(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:rc(t,o,i)})):{}}function rc(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function jo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function Vo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Nr=class{constructor(t,r){this.extension=t;this.previous=r}computedFieldsCache=new ye;modelExtensionsCache=new ye;queryCallbacksCache=new ye;clientExtensions=kt(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=kt(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t});getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>$o(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Ee(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ct=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Nr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Nr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};d();u();c();p();m();var Fr=class{constructor(t){this.name=t}};function Go(e){return e instanceof Fr}function Qo(e){return new Fr(e)}d();u();c();p();m();d();u();c();p();m();var Jo=Symbol(),qt=class{constructor(t){if(t!==Jo)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Lr:t}},Lr=new qt(Jo);function be(e){return e instanceof qt}var nc={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Wo="explicitly `undefined` values are not allowed";function Br({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ct.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g}){let h=new _n({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:f,globalOmit:g});return{modelName:e,action:nc[t],query:$t(r,h)}}function $t({select:e,include:t,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Ko(r,n),selection:ic(e,t,i,n)}}function ic(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),lc(e,n)):oc(n,t,r)}function oc(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&sc(n,t,e),ac(n,r,e),n}function sc(e,t,r){for(let[n,i]of Object.entries(t)){if(be(i))continue;let o=r.nestSelection(n);if(Nn(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=$t(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=$t(i,o)}}function ac(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=Vo(i,n);for(let[s,a]of Object.entries(o)){if(be(a))continue;Nn(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function lc(e,t){let r={},n=t.getComputedFields(),i=jo(e,n);for(let[o,s]of Object.entries(i)){if(be(s))continue;let a=t.nestSelection(o);Nn(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||be(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=$t({},a):r[o]=!0;continue}r[o]=$t(s,a)}}return r}function Ho(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(rt(e)){if(vr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Go(e))return{$type:"Param",value:e.name};if(lt(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return uc(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(cc(e))return e.values;if(nt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ce){if(e!==Or.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(pc(e))return e.toJSON();if(typeof e=="object")return Ko(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Ko(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);be(i)||(i!==void 0?r[n]=Ho(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:Wo}))}return r}function uc(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[De(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Pe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};d();u();c();p();m();function zo(e){if(!e._hasPreviewFlag("metrics"))throw new Z("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var pt=class{_client;constructor(t){this._client=t}prometheus(t){return zo(this._client),this._client._engine.metrics({format:"prometheus",...t})}json(t){return zo(this._client),this._client._engine.metrics({format:"json",...t})}};d();u();c();p();m();function Yo(e,t){let r=kt(()=>mc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function mc(e){return{datamodel:{models:Fn(e.models),enums:Fn(e.enums),types:Fn(e.types)}}}function Fn(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}d();u();c();p();m();var Ln=new WeakMap,Ur="$$PrismaTypedSql",jt=class{constructor(t,r){Ln.set(this,{sql:t,values:r}),Object.defineProperty(this,Ur,{value:Ur})}get sql(){return Ln.get(this).sql}get values(){return Ln.get(this).values}};function Zo(e){return(...t)=>new jt(e,t)}function qr(e){return e!=null&&e[Ur]===Ur}d();u();c();p();m();var da=Qe(Xo());d();u();c();p();m();es();Vi();Wi();d();u();c();p();m();var oe=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}d();u();c();p();m();d();u();c();p();m();var jr={enumerable:!0,configurable:!0,writable:!0};function Vr(e){let t=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>jr,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var ns=Symbol.for("nodejs.util.inspect.custom");function pe(e,t){let r=fc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=is(Reflect.ownKeys(o),r),a=is(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...jr,...l?.getPropertyDescriptor(s)}:jr:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[ns]=function(){let o={...this};return delete o[ns],o},i}function fc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function is(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}d();u();c();p();m();function mt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}d();u();c();p();m();function Gr(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}d();u();c();p();m();function os(e){if(e===void 0)return"";let t=ut(e);return new it(0,{colors:Sr}).write(t).toString()}d();u();c();p();m();var gc="P2037";function Qr({error:e,user_facing_error:t},r,n){return t.error_code?new re(hc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new ne(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function hc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===gc&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var qn=class{getLocation(){return null}};function _e(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new qn}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var ss={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function dt(e={}){let t=wc(e);return Object.entries(t).reduce((n,[i,o])=>(ss[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function wc(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Jr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function as(e,t){let r=Jr(e);return t({action:"aggregate",unpacker:r,argsMapper:dt})(e)}d();u();c();p();m();function Ec(e={}){let{select:t,...r}=e;return typeof t=="object"?dt({...r,_count:t}):dt({...r,_count:{_all:!0}})}function bc(e={}){return typeof e.select=="object"?t=>Jr(e)(t)._count:t=>Jr(e)(t)._count._all}function ls(e,t){return t({action:"count",unpacker:bc(e),argsMapper:Ec})(e)}d();u();c();p();m();function xc(e={}){let t=dt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function Pc(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function us(e,t){return t({action:"groupBy",unpacker:Pc(e),argsMapper:xc})(e)}function cs(e,t,r){if(t==="aggregate")return n=>as(n,r);if(t==="count")return n=>ls(n,r);if(t==="groupBy")return n=>us(n,r)}d();u();c();p();m();function ps(e,t){let r=t.fields.filter(i=>!i.relationName),n=xo(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Nt(e,o,s.type,s.isList,s.kind==="enum")},...Vr(Object.keys(n))})}d();u();c();p();m();d();u();c();p();m();var ms=e=>Array.isArray(e)?e:e.split("."),$n=(e,t)=>ms(t).reduce((r,n)=>r&&r[n],e),ds=(e,t,r)=>ms(t).reduceRight((n,i,o,s)=>Object.assign({},$n(e,s.slice(0,o)),{[i]:n}),r);function vc(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function Tc(e,t,r){return t===void 0?e??{}:ds(t,r,e||!0)}function jn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,f)=>({...l,[f.name]:f}),{});return l=>{let f=_e(e._errorFormat),g=vc(n,i),h=Tc(l,o,g),v=r({dataPath:g,callsite:f})(h),S=Cc(e,t);return new Proxy(v,{get(A,R){if(!S.includes(R))return A[R];let M=[a[R].type,r,R],B=[g,h];return jn(e,...M,...B)},...Vr([...S,...Object.getOwnPropertyNames(v)])})}}function Cc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Ac=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Rc=["aggregate","count","groupBy"];function Vn(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[Sc(e,t),Ic(e,t),Vt(r),ee("name",()=>t),ee("$name",()=>t),ee("$parent",()=>e._appliedParent)];return pe({},n)}function Sc(e,t){let r=Ee(t),n=Object.keys(It).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let f=_e(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:f};return e._request({...h,...a})},{action:o,args:l,model:t})};return Ac.includes(o)?jn(e,t,s):kc(i)?cs(e,i,s):s({})}}}function kc(e){return Rc.includes(e)}function Ic(e,t){return Ue(ee("fields",()=>{let r=e._runtimeDataModel.models[t];return ps(t,r)}))}d();u();c();p();m();function fs(e){return e.replace(/^./,t=>t.toUpperCase())}var Gn=Symbol();function Gt(e){let t=[Oc(e),Dc(e),ee(Gn,()=>e),ee("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(Vt(r)),pe(e,t)}function Oc(e){let t=Object.getPrototypeOf(e._originalClient),r=[...new Set(Object.getOwnPropertyNames(t))];return{getKeys(){return r},getPropertyValue(n){return e[n]}}}function Dc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Ee),n=[...new Set(t.concat(r))];return Ue({getKeys(){return n},getPropertyValue(i){let o=fs(i);if(e._runtimeDataModel.models[o]!==void 0)return Vn(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Vn(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function gs(e){return e[Gn]?e[Gn]:e}function hs(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Gt(t)}d();u();c();p();m();d();u();c();p();m();function ys({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let f=l.needs.filter(g=>n[g]);f.length>0&&a.push(mt(f))}else if(r){if(!r[l.name])continue;let f=l.needs.filter(g=>!r[g]);f.length>0&&a.push(mt(f))}Mc(e,l.needs)&&s.push(_c(l,pe(e,s)))}return s.length>0||a.length>0?pe(e,[...s,...a]):e}function Mc(e,t){return t.every(r=>xn(e,r))}function _c(e,t){return Ue(ee(e.name,()=>e.compute(t)))}d();u();c();p();m();function Wr({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let f=typeof s=="object"?s:{};t[o]=Wr({visitor:i,result:t[o],args:f,modelName:l.type,runtimeDataModel:n})}}function Es({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Wr({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,f)=>{let g=Ee(l);return ys({result:a,modelName:g,select:f.select,omit:f.select?void 0:{...o?.[g],...f.omit},extensions:n})}})}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();var Nc=["$connect","$disconnect","$on","$transaction","$use","$extends"],bs=Nc;function xs(e){if(e instanceof oe)return Fc(e);if(qr(e))return Lc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:xs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=Rs(o,l),a.args=s,vs(e,a,r,n+1)}})})}function Ts(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return vs(e,t,s)}function Cs(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?As(r,n,0,e):e(r)}}function As(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=Rs(i,l),As(a,t,r+1,n)}})}var Ps=e=>e;function Rs(e=Ps,t=Ps){return r=>e(t(r))}d();u();c();p();m();var Ss=K("prisma:client"),ks={Vercel:"vercel","Netlify CI":"netlify"};function Is({postinstall:e,ciName:t,clientVersion:r}){if(Ss("checkPlatformCaching:postinstall",e),Ss("checkPlatformCaching:ciName",t),e===!0&&t&&t in ks){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ks[t]}-build`;throw console.error(n),new Q(n,r)}}d();u();c();p();m();function Os(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}d();u();c();p();m();d();u();c();p();m();var Bc=()=>globalThis.process?.release?.name==="node",Uc=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,qc=()=>!!globalThis.Deno,$c=()=>typeof globalThis.Netlify=="object",jc=()=>typeof globalThis.EdgeRuntime=="object",Vc=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function Gc(){return[[$c,"netlify"],[jc,"edge-light"],[Vc,"workerd"],[qc,"deno"],[Uc,"bun"],[Bc,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var Qc={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Hr(){let e=Gc();return{id:e,prettyName:Qc[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}d();u();c();p();m();d();u();c();p();m();d();u();c();p();m();function ft({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Hr().id==="workerd"?new Q(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new Q(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new Q("error: Missing URL environment variable, value, or override.",n);return i}d();u();c();p();m();d();u();c();p();m();var Kr=class extends Error{clientVersion;cause;constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends Kr{isRetryable;constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};d();u();c();p();m();d();u();c();p();m();function L(e,t){return{...e,isRetryable:t}}var gt=class extends se{name="ForcedRetryError";code="P5001";constructor(t){super("This request must be retried",L(t,!0))}};N(gt,"ForcedRetryError");d();u();c();p();m();var qe=class extends se{name="InvalidDatasourceError";code="P6001";constructor(t,r){super(t,L(r,!1))}};N(qe,"InvalidDatasourceError");d();u();c();p();m();var $e=class extends se{name="NotImplementedYetError";code="P5004";constructor(t,r){super(t,L(r,!1))}};N($e,"NotImplementedYetError");d();u();c();p();m();d();u();c();p();m();var V=class extends se{response;constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var je=class extends V{name="SchemaMissingError";code="P5005";constructor(t){super("Schema needs to be uploaded",L(t,!0))}};N(je,"SchemaMissingError");d();u();c();p();m();d();u();c();p();m();var Qn="This request could not be understood by the server",Jt=class extends V{name="BadRequestError";code="P5000";constructor(t,r,n){super(r||Qn,L(t,!1)),n&&(this.code=n)}};N(Jt,"BadRequestError");d();u();c();p();m();var Wt=class extends V{name="HealthcheckTimeoutError";code="P5013";logs;constructor(t,r){super("Engine not started: healthcheck timeout",L(t,!0)),this.logs=r}};N(Wt,"HealthcheckTimeoutError");d();u();c();p();m();var Ht=class extends V{name="EngineStartupError";code="P5014";logs;constructor(t,r,n){super(r,L(t,!0)),this.logs=n}};N(Ht,"EngineStartupError");d();u();c();p();m();var Kt=class extends V{name="EngineVersionNotSupportedError";code="P5012";constructor(t){super("Engine version is not supported",L(t,!1))}};N(Kt,"EngineVersionNotSupportedError");d();u();c();p();m();var Jn="Request timed out",zt=class extends V{name="GatewayTimeoutError";code="P5009";constructor(t,r=Jn){super(r,L(t,!1))}};N(zt,"GatewayTimeoutError");d();u();c();p();m();var Jc="Interactive transaction error",Yt=class extends V{name="InteractiveTransactionError";code="P5015";constructor(t,r=Jc){super(r,L(t,!1))}};N(Yt,"InteractiveTransactionError");d();u();c();p();m();var Wc="Request parameters are invalid",Zt=class extends V{name="InvalidRequestError";code="P5011";constructor(t,r=Wc){super(r,L(t,!1))}};N(Zt,"InvalidRequestError");d();u();c();p();m();var Wn="Requested resource does not exist",Xt=class extends V{name="NotFoundError";code="P5003";constructor(t,r=Wn){super(r,L(t,!1))}};N(Xt,"NotFoundError");d();u();c();p();m();var Hn="Unknown server error",ht=class extends V{name="ServerError";code="P5006";logs;constructor(t,r,n){super(r||Hn,L(t,!0)),this.logs=n}};N(ht,"ServerError");d();u();c();p();m();var Kn="Unauthorized, check your connection string",er=class extends V{name="UnauthorizedError";code="P5007";constructor(t,r=Kn){super(r,L(t,!1))}};N(er,"UnauthorizedError");d();u();c();p();m();var zn="Usage exceeded, retry again later",tr=class extends V{name="UsageExceededError";code="P5008";constructor(t,r=zn){super(r,L(t,!0))}};N(tr,"UsageExceededError");async function Hc(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function rr(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await Hc(e);if(n.type==="QueryEngineError")throw new re(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new ht(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new je(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Kt(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Ht(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new Q(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Wt(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Yt(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Zt(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new er(r,yt(Kn,n));if(e.status===404)return new Xt(r,yt(Wn,n));if(e.status===429)throw new tr(r,yt(zn,n));if(e.status===504)throw new zt(r,yt(Jn,n));if(e.status>=500)throw new ht(r,yt(Hn,n));if(e.status>=400)throw new Jt(r,yt(Qn,n))}function yt(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}d();u();c();p();m();function Ds(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}d();u();c();p();m();var Ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ms(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,f,g;for(let h=0;h>18,a=(g&258048)>>12,l=(g&4032)>>6,f=g&63,r+=Ae[s]+Ae[a]+Ae[l]+Ae[f];return i==1?(g=t[o],s=(g&252)>>2,a=(g&3)<<4,r+=Ae[s]+Ae[a]+"=="):i==2&&(g=t[o]<<8|t[o+1],s=(g&64512)>>10,a=(g&1008)>>4,l=(g&15)<<2,r+=Ae[s]+Ae[a]+Ae[l]+"="),r}d();u();c();p();m();function _s(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new Q("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}d();u();c();p();m();function Kc(e){return e[0]*1e3+e[1]/1e6}function Yn(e){return new Date(Kc(e))}d();u();c();p();m();var Ns={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};d();u();c();p();m();d();u();c();p();m();var nr=class extends se{name="RequestError";code="P5010";constructor(t,r){super(`Cannot fetch data from service: +${t}`,L(r,!0))}};N(nr,"RequestError");async function Ve(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new nr(a,{clientVersion:n,cause:s})}}var Yc=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,Fs=K("prisma:client:dataproxyEngine");async function Zc(e,t){let r=Ns["@prisma/engines-version"],n=t.clientVersion??"unknown";if(y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&Yc.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,f]=s.split("."),g=Xc(`<=${a}.${l}.${f}`),h=await Ve(g,{clientVersion:n});if(!h.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${h.status} ${h.statusText}, response body: ${await h.text()||""}`);let v=await h.text();Fs("length of body fetched from unpkg.com",v.length);let S;try{S=JSON.parse(v)}catch(A){throw console.error("JSON.parse error: body fetched from unpkg.com: ",v),A}return S.version}throw new $e("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Ls(e,t){let r=await Zc(e,t);return Fs("version",r),r}function Xc(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var Bs=3,zr=K("prisma:client:dataproxyEngine"),Zn=class{apiKey;tracingHelper;logLevel;logQueries;engineHash;constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},wt=class{name="DataProxyEngine";inlineSchema;inlineSchemaHash;inlineDatasources;config;logEmitter;env;clientVersion;engineHash;tracingHelper;remoteClientVersion;host;headerBuilder;startPromise;constructor(t){_s(t),this.config=t,this.env={...t.env,...typeof y<"u"?y.env:{}},this.inlineSchema=Ms(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new Zn({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Ls(t,this.config),zr("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":zr(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:Yn(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:Yn(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await Ve(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||zr("schema response status",r.status);let n=await rr(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=Gr(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||zr("graphql response status",a.status),await this.handleError(await rr(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await Ve(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await rr(l,this.clientVersion));let f=await l.json(),{extensions:g}=f;g&&this.propagateResponseExtensions(g);let h=f.id,v=f["data-proxy"].endpoint;return{id:h,payload:{endpoint:v}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await Ve(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await rr(a,this.clientVersion));let l=await a.json(),{extensions:f}=l;f&&this.propagateResponseExtensions(f);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=ft({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!==fr)throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new qe(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new $e("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(r>=Bs)throw i instanceof gt?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${Bs} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Ds(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof je)throw await this.uploadSchema(),new gt({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?Qr(t[0],this.config.clientVersion,this.config.activeProvider):new ne(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function Us({copyEngine:e=!0},t){let r;try{r=ft({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||En(r));e&&n&&Rt("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ye(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary",f=i==="client";if(o&&s||s){let g;throw g=["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.","Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."],new Z(g.join(` +`),{clientVersion:t.clientVersion})}return o?new wt(t):new wt(t)}d();u();c();p();m();function Yr({generator:e}){return e?.previewFeatures??[]}d();u();c();p();m();var qs=e=>({command:e});d();u();c();p();m();d();u();c();p();m();var $s=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);d();u();c();p();m();function Et(e){try{return js(e,"fast")}catch{return js(e,"slow")}}function js(e,t){return JSON.stringify(e.map(r=>Gs(r,t)))}function Gs(e,t){if(Array.isArray(e))return e.map(r=>Gs(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(rt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(he.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(ep(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Qs(e):e}function ep(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Qs(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Vs);let t={};for(let r of Object.keys(e))t[r]=Vs(e[r]);return t}function Vs(e){return typeof e=="bigint"?e.toString():Qs(e)}var tp=/^(\s*alter\s)/i,Js=K("prisma:client");function Xn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&tp.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var ei=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(qr(r))n=r.sql,i={values:Et(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:Et(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:Et(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:Et(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=$s(r),i={values:Et(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Js(`prisma.${e}(${n}, ${i.values})`):Js(`prisma.${e}(${n})`),{query:n,parameters:i}},Ws={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new oe(t,r)}},Hs={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};d();u();c();p();m();function ti(e){return function(r,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=Ks(r(s)):Ks(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function Ks(e){return typeof e.then=="function"?e:Promise.resolve(e)}d();u();c();p();m();var rp=wn.split(".")[0],np={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},ri=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){let t=globalThis[`V${rp}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return t?.helper??r?.helper??np}};function zs(){return new ri}d();u();c();p();m();function Ys(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}d();u();c();p();m();function Zs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}d();u();c();p();m();var Zr=class{_middlewares=[];use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};d();u();c();p();m();var ea=Qe(no());d();u();c();p();m();function Xr(e){return typeof e.batchRequestIdx=="number"}d();u();c();p();m();function Xs(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(ni(e.query.arguments)),t.push(ni(e.query.selection)),t.join("")}function ni(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${ni(n)})`:r}).join(" ")})`}d();u();c();p();m();var ip={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function ii(e){return ip[e]}d();u();c();p();m();var en=class{constructor(t){this.options=t;this.batches={}}batches;tickActive=!1;request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iGe("bigint",r));case"bytes-array":return t.map(r=>Ge("bytes",r));case"decimal-array":return t.map(r=>Ge("decimal",r));case"datetime-array":return t.map(r=>Ge("datetime",r));case"date-array":return t.map(r=>Ge("date",r));case"time-array":return t.map(r=>Ge("time",r));default:return t}}function tn(e){let t=[],r=op(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),f=n.some(h=>ii(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:ap(o),containsWrite:f,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?ta(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:ii(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Xs(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(sp(t),lp(t,i))throw t;if(t instanceof re&&up(t)){let f=ra(t.meta);_r({args:o,errors:[f],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=Tr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let f=s?{modelName:s,...t.meta}:t.meta;throw new re(l,{code:t.code,clientVersion:this.client._clientVersion,meta:f,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ve(l,this.client._clientVersion);if(t instanceof ne)throw new ne(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof Q)throw new Q(l,this.client._clientVersion);if(t instanceof ve)throw new ve(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,ea.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(f=>f!=="select"&&f!=="include"),a=$n(o,s),l=i==="queryRaw"?tn(a):tt(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function ap(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:ta(e)};Pe(e,"Unknown transaction kind")}}function ta(e){return{id:e.id,payload:e.payload}}function lp(e,t){return Xr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function up(e){return e.code==="P2009"||e.code==="P2012"}function ra(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(ra)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}d();u();c();p();m();var na="6.6.0";var ia=na;d();u();c();p();m();var ua=Qe(kn());d();u();c();p();m();var U=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};N(U,"PrismaClientConstructorValidationError");var oa=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],sa=["pretty","colorless","minimal"],aa=["info","query","warn","error"],pp={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=bt(r,t)||` Available datasources: ${t.join(", ")}`;throw new U(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new U(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(!e&&Ye(t.generator)==="client")throw new U('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new U('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Yr(t).includes("driverAdapters"))throw new U('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ye(t.generator)==="binary")throw new U('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!sa.includes(e)){let t=bt(e,sa);throw new U(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!aa.includes(r)){let n=bt(r,aa);throw new U(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=bt(i,o);throw new U(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new U(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new U(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new U(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new U('"omit" option is expected to be an object.');if(e===null)throw new U('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=dp(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(f=>f.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new U(fp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new U(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=bt(r,t);throw new U(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function ca(e,t){for(let[r,n]of Object.entries(e)){if(!oa.includes(r)){let i=bt(r,oa);throw new U(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}pp[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new U('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function bt(e,t){if(t.length===0||typeof e!="string")return"";let r=mp(e,t);return r?` Did you mean "${r}"?`:""}function mp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,ua.default)(e,i)}));r.sort((i,o)=>i.distanceDe(n)===t);if(r)return e[r]}function fp(e,t){let r=ut(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Mr(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}d();u();c();p();m();function pa(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=f=>{o||(o=!0,r(f))};for(let f=0;f{n[f]=g,a()},g=>{if(!Xr(g)){l(g);return}g.batchRequestIdx===f?l(g):(i||(i=g),a())})})}var Ne=K("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var gp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},hp=Symbol.for("prisma.client.transaction.id"),yp={id:0,nextId(){return++this.id}};function fa(e){class t{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Zr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=ti();constructor(n){e=n?.__internal?.configOverride?.(e)??e,Is(e),n&&ca(n,e);let i=new $r().on("error",()=>{});this._extensions=ct.empty(),this._previewFeatures=Yr(e),this._clientVersion=e.clientVersion??ia,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=zs();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&dr.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&dr.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new Q(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new Q("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},f=l.__internal??{},g=f.debug===!0;g&&K.enable("prisma:client");let h=dr.resolve(e.dirname,e.relativePath);ji.existsSync(h)||(h=e.dirname),Ne("dirname",e.dirname),Ne("relativePath",e.relativePath),Ne("cwd",h);let v=f.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Zs(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Os(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:ft,getBatchRequestPayload:Gr,prismaGraphQLToJSError:Qr,PrismaClientUnknownRequestError:ne,PrismaClientInitializationError:Q,PrismaClientKnownRequestError:re,debug:K("prisma:client:accelerateEngine"),engineVersion:da.version,clientVersion:e.clientVersion}},Ne("clientVersion",e.clientVersion),this._engine=Us(e,this._engineConfig),this._requestHandler=new rn(this,i),l.log)for(let S of l.log){let A=typeof S=="string"?S:S.emit==="stdout"?S.level:null;A&&this.$on(A,R=>{At.log(`${At.tags[A]??""}`,R.message||R.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=Gt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{qi()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:ei({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ma(n,i);return Xn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new Z("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Xn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new Z(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:qs,callsite:_e(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:ei({clientMethod:i,activeProvider:a}),callsite:_e(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ma(n,i));throw new Z("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new Z("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=yp.nextId(),s=Ys(n.length),a=n.map((l,f)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:f,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return pa(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let f={kind:"itx",...a};l=await n(this._createItxClient(f)),await this._engine.transaction("commit",o,a)}catch(f){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),f}return l}_createItxClient(n){return pe(Gt(pe(gs(this),[ee("_appliedParent",()=>this._appliedParent._createItxClient(n)),ee("_createPrismaPromise",()=>ti(n)),ee(hp,()=>n.id)])),[mt(bs)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??gp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async f=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,D=>g(f,M=>(D?.end(),l(M))));let{runInTransaction:h,args:v,...S}=f,A={...n,...S};v&&(A.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete A.transaction;let R=await Ts(this,A);return A.model?Es({result:R,modelName:A.model,args:A.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):R};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:f,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:S}){try{n=f?f(n):n;let A={name:"serialize"},R=this._tracingHelper.runInChildSpan(A,()=>Br({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return K.enabled("prisma:client")&&(Ne("Prisma Client call:"),Ne(`prisma.${i}(${os(n)})`),Ne("Generated request:"),Ne(JSON.stringify(R,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:R,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(A){throw A.clientVersion=this._clientVersion,A}}$metrics=new pt(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=hs}return t}function ma(e,t){return wp(e)?[new oe(e,t),Ws]:[e,Hs]}function wp(e){return Array.isArray(e)&&Array.isArray(e.raw)}d();u();c();p();m();var Ep=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function ga(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!Ep.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}d();u();c();p();m();0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=edge.js.map diff --git a/src/lib/generated/prisma/runtime/index-browser.d.ts b/src/lib/generated/prisma/runtime/index-browser.d.ts new file mode 100644 index 0000000..5563c2c --- /dev/null +++ b/src/lib/generated/prisma/runtime/index-browser.d.ts @@ -0,0 +1,370 @@ +declare class AnyNull extends NullTypesEnumValue { + private readonly _brand_AnyNull; +} + +declare type Args = T extends { + [K: symbol]: { + types: { + operations: { + [K in F]: { + args: any; + }; + }; + }; + }; +} ? T[symbol]['types']['operations'][F]['args'] : any; + +declare class DbNull extends NullTypesEnumValue { + private readonly _brand_DbNull; +} + +export declare function Decimal(n: Decimal.Value): Decimal; + +export declare namespace Decimal { + export type Constructor = typeof Decimal; + export type Instance = Decimal; + export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + export type Modulo = Rounding | 9; + export type Value = string | number | Decimal; + + // http://mikemcl.github.io/decimal.js/#constructor-properties + export interface Config { + precision?: number; + rounding?: Rounding; + toExpNeg?: number; + toExpPos?: number; + minE?: number; + maxE?: number; + crypto?: boolean; + modulo?: Modulo; + defaults?: boolean; + } +} + +export declare class Decimal { + readonly d: number[]; + readonly e: number; + readonly s: number; + + constructor(n: Decimal.Value); + + absoluteValue(): Decimal; + abs(): Decimal; + + ceil(): Decimal; + + clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; + clamp(min: Decimal.Value, max: Decimal.Value): Decimal; + + comparedTo(n: Decimal.Value): number; + cmp(n: Decimal.Value): number; + + cosine(): Decimal; + cos(): Decimal; + + cubeRoot(): Decimal; + cbrt(): Decimal; + + decimalPlaces(): number; + dp(): number; + + dividedBy(n: Decimal.Value): Decimal; + div(n: Decimal.Value): Decimal; + + dividedToIntegerBy(n: Decimal.Value): Decimal; + divToInt(n: Decimal.Value): Decimal; + + equals(n: Decimal.Value): boolean; + eq(n: Decimal.Value): boolean; + + floor(): Decimal; + + greaterThan(n: Decimal.Value): boolean; + gt(n: Decimal.Value): boolean; + + greaterThanOrEqualTo(n: Decimal.Value): boolean; + gte(n: Decimal.Value): boolean; + + hyperbolicCosine(): Decimal; + cosh(): Decimal; + + hyperbolicSine(): Decimal; + sinh(): Decimal; + + hyperbolicTangent(): Decimal; + tanh(): Decimal; + + inverseCosine(): Decimal; + acos(): Decimal; + + inverseHyperbolicCosine(): Decimal; + acosh(): Decimal; + + inverseHyperbolicSine(): Decimal; + asinh(): Decimal; + + inverseHyperbolicTangent(): Decimal; + atanh(): Decimal; + + inverseSine(): Decimal; + asin(): Decimal; + + inverseTangent(): Decimal; + atan(): Decimal; + + isFinite(): boolean; + + isInteger(): boolean; + isInt(): boolean; + + isNaN(): boolean; + + isNegative(): boolean; + isNeg(): boolean; + + isPositive(): boolean; + isPos(): boolean; + + isZero(): boolean; + + lessThan(n: Decimal.Value): boolean; + lt(n: Decimal.Value): boolean; + + lessThanOrEqualTo(n: Decimal.Value): boolean; + lte(n: Decimal.Value): boolean; + + logarithm(n?: Decimal.Value): Decimal; + log(n?: Decimal.Value): Decimal; + + minus(n: Decimal.Value): Decimal; + sub(n: Decimal.Value): Decimal; + + modulo(n: Decimal.Value): Decimal; + mod(n: Decimal.Value): Decimal; + + naturalExponential(): Decimal; + exp(): Decimal; + + naturalLogarithm(): Decimal; + ln(): Decimal; + + negated(): Decimal; + neg(): Decimal; + + plus(n: Decimal.Value): Decimal; + add(n: Decimal.Value): Decimal; + + precision(includeZeros?: boolean): number; + sd(includeZeros?: boolean): number; + + round(): Decimal; + + sine() : Decimal; + sin() : Decimal; + + squareRoot(): Decimal; + sqrt(): Decimal; + + tangent() : Decimal; + tan() : Decimal; + + times(n: Decimal.Value): Decimal; + mul(n: Decimal.Value) : Decimal; + + toBinary(significantDigits?: number): string; + toBinary(significantDigits: number, rounding: Decimal.Rounding): string; + + toDecimalPlaces(decimalPlaces?: number): Decimal; + toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + toDP(decimalPlaces?: number): Decimal; + toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + + toExponential(decimalPlaces?: number): string; + toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFixed(decimalPlaces?: number): string; + toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFraction(max_denominator?: Decimal.Value): Decimal[]; + + toHexadecimal(significantDigits?: number): string; + toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; + toHex(significantDigits?: number): string; + toHex(significantDigits: number, rounding?: Decimal.Rounding): string; + + toJSON(): string; + + toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; + + toNumber(): number; + + toOctal(significantDigits?: number): string; + toOctal(significantDigits: number, rounding: Decimal.Rounding): string; + + toPower(n: Decimal.Value): Decimal; + pow(n: Decimal.Value): Decimal; + + toPrecision(significantDigits?: number): string; + toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; + + toSignificantDigits(significantDigits?: number): Decimal; + toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; + toSD(significantDigits?: number): Decimal; + toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; + + toString(): string; + + truncated(): Decimal; + trunc(): Decimal; + + valueOf(): string; + + static abs(n: Decimal.Value): Decimal; + static acos(n: Decimal.Value): Decimal; + static acosh(n: Decimal.Value): Decimal; + static add(x: Decimal.Value, y: Decimal.Value): Decimal; + static asin(n: Decimal.Value): Decimal; + static asinh(n: Decimal.Value): Decimal; + static atan(n: Decimal.Value): Decimal; + static atanh(n: Decimal.Value): Decimal; + static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; + static cbrt(n: Decimal.Value): Decimal; + static ceil(n: Decimal.Value): Decimal; + static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; + static clone(object?: Decimal.Config): Decimal.Constructor; + static config(object: Decimal.Config): Decimal.Constructor; + static cos(n: Decimal.Value): Decimal; + static cosh(n: Decimal.Value): Decimal; + static div(x: Decimal.Value, y: Decimal.Value): Decimal; + static exp(n: Decimal.Value): Decimal; + static floor(n: Decimal.Value): Decimal; + static hypot(...n: Decimal.Value[]): Decimal; + static isDecimal(object: any): object is Decimal; + static ln(n: Decimal.Value): Decimal; + static log(n: Decimal.Value, base?: Decimal.Value): Decimal; + static log2(n: Decimal.Value): Decimal; + static log10(n: Decimal.Value): Decimal; + static max(...n: Decimal.Value[]): Decimal; + static min(...n: Decimal.Value[]): Decimal; + static mod(x: Decimal.Value, y: Decimal.Value): Decimal; + static mul(x: Decimal.Value, y: Decimal.Value): Decimal; + static noConflict(): Decimal.Constructor; // Browser only + static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; + static random(significantDigits?: number): Decimal; + static round(n: Decimal.Value): Decimal; + static set(object: Decimal.Config): Decimal.Constructor; + static sign(n: Decimal.Value): number; + static sin(n: Decimal.Value): Decimal; + static sinh(n: Decimal.Value): Decimal; + static sqrt(n: Decimal.Value): Decimal; + static sub(x: Decimal.Value, y: Decimal.Value): Decimal; + static sum(...n: Decimal.Value[]): Decimal; + static tan(n: Decimal.Value): Decimal; + static tanh(n: Decimal.Value): Decimal; + static trunc(n: Decimal.Value): Decimal; + + static readonly default?: Decimal.Constructor; + static readonly Decimal?: Decimal.Constructor; + + static readonly precision: number; + static readonly rounding: Decimal.Rounding; + static readonly toExpNeg: number; + static readonly toExpPos: number; + static readonly minE: number; + static readonly maxE: number; + static readonly crypto: boolean; + static readonly modulo: Decimal.Modulo; + + static readonly ROUND_UP: 0; + static readonly ROUND_DOWN: 1; + static readonly ROUND_CEIL: 2; + static readonly ROUND_FLOOR: 3; + static readonly ROUND_HALF_UP: 4; + static readonly ROUND_HALF_DOWN: 5; + static readonly ROUND_HALF_EVEN: 6; + static readonly ROUND_HALF_CEIL: 7; + static readonly ROUND_HALF_FLOOR: 8; + static readonly EUCLID: 9; +} + +declare type Exact = (A extends unknown ? (W extends A ? { + [K in keyof A]: Exact; +} : W) : never) | (A extends Narrowable ? A : never); + +export declare function getRuntime(): GetRuntimeOutput; + +declare type GetRuntimeOutput = { + id: RuntimeName; + prettyName: string; + isEdge: boolean; +}; + +declare class JsonNull extends NullTypesEnumValue { + private readonly _brand_JsonNull; +} + +/** + * Generates more strict variant of an enum which, unlike regular enum, + * throws on non-existing property access. This can be useful in following situations: + * - we have an API, that accepts both `undefined` and `SomeEnumType` as an input + * - enum values are generated dynamically from DMMF. + * + * In that case, if using normal enums and no compile-time typechecking, using non-existing property + * will result in `undefined` value being used, which will be accepted. Using strict enum + * in this case will help to have a runtime exception, telling you that you are probably doing something wrong. + * + * Note: if you need to check for existence of a value in the enum you can still use either + * `in` operator or `hasOwnProperty` function. + * + * @param definition + * @returns + */ +export declare function makeStrictEnum>(definition: T): T; + +declare type Narrowable = string | number | bigint | boolean | []; + +declare class NullTypesEnumValue extends ObjectEnumValue { + _getNamespace(): string; +} + +/** + * Base class for unique values of object-valued enums. + */ +declare abstract class ObjectEnumValue { + constructor(arg?: symbol); + abstract _getNamespace(): string; + _getName(): string; + toString(): string; +} + +export declare const objectEnumValues: { + classes: { + DbNull: typeof DbNull; + JsonNull: typeof JsonNull; + AnyNull: typeof AnyNull; + }; + instances: { + DbNull: DbNull; + JsonNull: JsonNull; + AnyNull: AnyNull; + }; +}; + +declare type Operation = 'findFirst' | 'findFirstOrThrow' | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'updateManyAndReturn' | 'upsert' | 'delete' | 'deleteMany' | 'aggregate' | 'count' | 'groupBy' | '$queryRaw' | '$executeRaw' | '$queryRawUnsafe' | '$executeRawUnsafe' | 'findRaw' | 'aggregateRaw' | '$runCommandRaw'; + +declare namespace Public { + export { + validator + } +} +export { Public } + +declare type RuntimeName = 'workerd' | 'deno' | 'netlify' | 'node' | 'bun' | 'edge-light' | ''; + +declare function validator(): (select: Exact) => S; + +declare function validator, O extends keyof C[M] & Operation>(client: C, model: M, operation: O): (select: Exact>) => S; + +declare function validator, O extends keyof C[M] & Operation, P extends keyof Args>(client: C, model: M, operation: O, prop: P): (select: Exact[P]>) => S; + +export { } diff --git a/src/lib/generated/prisma/runtime/index-browser.js b/src/lib/generated/prisma/runtime/index-browser.js new file mode 100644 index 0000000..59b567d --- /dev/null +++ b/src/lib/generated/prisma/runtime/index-browser.js @@ -0,0 +1,13 @@ +"use strict";var ne=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Je=Object.prototype.hasOwnProperty;var Xe=(e,n,i)=>n in e?ne(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i;var Ce=(e,n)=>{for(var i in n)ne(e,i,{get:n[i],enumerable:!0})},Ke=(e,n,i,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Ge(n))!Je.call(e,r)&&r!==i&&ne(e,r,{get:()=>n[r],enumerable:!(t=We(n,r))||t.enumerable});return e};var Qe=e=>Ke(ne({},"__esModule",{value:!0}),e);var ie=(e,n,i)=>Xe(e,typeof n!="symbol"?n+"":n,i);var yn={};Ce(yn,{Decimal:()=>je,Public:()=>ge,getRuntime:()=>Re,makeStrictEnum:()=>Oe,objectEnumValues:()=>Pe});module.exports=Qe(yn);var ge={};Ce(ge,{validator:()=>be});function be(...e){return n=>n}var te=Symbol(),me=new WeakMap,we=class{constructor(n){n===te?me.set(this,"Prisma.".concat(this._getName())):me.set(this,"new Prisma.".concat(this._getNamespace(),".").concat(this._getName(),"()"))}_getName(){return this.constructor.name}toString(){return me.get(this)}},G=class extends we{_getNamespace(){return"NullTypes"}},J=class extends G{constructor(){super(...arguments);ie(this,"_brand_DbNull")}};Ne(J,"DbNull");var X=class extends G{constructor(){super(...arguments);ie(this,"_brand_JsonNull")}};Ne(X,"JsonNull");var K=class extends G{constructor(){super(...arguments);ie(this,"_brand_AnyNull")}};Ne(K,"AnyNull");var Pe={classes:{DbNull:J,JsonNull:X,AnyNull:K},instances:{DbNull:new J(te),JsonNull:new X(te),AnyNull:new K(te)}};function Ne(e,n){Object.defineProperty(e,"name",{value:n,configurable:!0})}var Ye=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Oe(e){return new Proxy(e,{get(n,i){if(i in n)return n[i];if(!Ye.has(i))throw new TypeError("Invalid enum value: ".concat(String(i)))}})}var xe=()=>{var e,n;return((n=(e=globalThis.process)==null?void 0:e.release)==null?void 0:n.name)==="node"},ze=()=>{var e,n;return!!globalThis.Bun||!!((n=(e=globalThis.process)==null?void 0:e.versions)!=null&&n.bun)},ye=()=>!!globalThis.Deno,en=()=>typeof globalThis.Netlify=="object",nn=()=>typeof globalThis.EdgeRuntime=="object",tn=()=>{var e;return((e=globalThis.navigator)==null?void 0:e.userAgent)==="Cloudflare-Workers"};function rn(){var i;return(i=[[en,"netlify"],[nn,"edge-light"],[tn,"workerd"],[ye,"deno"],[ze,"bun"],[xe,"node"]].flatMap(t=>t[0]()?[t[1]]:[]).at(0))!=null?i:""}var sn={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Re(){let e=rn();return{id:e,prettyName:sn[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}var V=9e15,H=1e9,ve="0123456789abcdef",oe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ue="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Ee={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-V,maxE:V,crypto:!1},Te,Z,w=!0,ce="[DecimalError] ",$=ce+"Invalid argument: ",De=ce+"Precision limit exceeded",Fe=ce+"crypto unavailable",Le="[object Decimal]",R=Math.floor,C=Math.pow,on=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,un=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,fn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ie=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,D=1e7,m=7,cn=9007199254740991,ln=oe.length-1,ke=ue.length-1,h={toStringTag:Le};h.absoluteValue=h.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),p(e)};h.ceil=function(){return p(new this.constructor(this),this.e+1,2)};h.clampedTo=h.clamp=function(e,n){var i,t=this,r=t.constructor;if(e=new r(e),n=new r(n),!e.s||!n.s)return new r(NaN);if(e.gt(n))throw Error($+n);return i=t.cmp(e),i<0?e:t.cmp(n)>0?n:new r(t)};h.comparedTo=h.cmp=function(e){var n,i,t,r,s=this,o=s.d,u=(e=new s.constructor(e)).d,c=s.s,f=e.s;if(!o||!u)return!c||!f?NaN:c!==f?c:o===u?0:!o^c<0?1:-1;if(!o[0]||!u[0])return o[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==e.e)return s.e>e.e^c<0?1:-1;for(t=o.length,r=u.length,n=0,i=tu[n]^c<0?1:-1;return t===r?0:t>r^c<0?1:-1};h.cosine=h.cos=function(){var e,n,i=this,t=i.constructor;return i.d?i.d[0]?(e=t.precision,n=t.rounding,t.precision=e+Math.max(i.e,i.sd())+m,t.rounding=1,i=an(t,He(t,i)),t.precision=e,t.rounding=n,p(Z==2||Z==3?i.neg():i,e,n,!0)):new t(1):new t(NaN)};h.cubeRoot=h.cbrt=function(){var e,n,i,t,r,s,o,u,c,f,l=this,a=l.constructor;if(!l.isFinite()||l.isZero())return new a(l);for(w=!1,s=l.s*C(l.s*l,1/3),!s||Math.abs(s)==1/0?(i=b(l.d),e=l.e,(s=(e-i.length+1)%3)&&(i+=s==1||s==-2?"0":"00"),s=C(i,1/3),e=R((e+1)/3)-(e%3==(e<0?-1:2)),s==1/0?i="5e"+e:(i=s.toExponential(),i=i.slice(0,i.indexOf("e")+1)+e),t=new a(i),t.s=l.s):t=new a(s.toString()),o=(e=a.precision)+3;;)if(u=t,c=u.times(u).times(u),f=c.plus(l),t=k(f.plus(l).times(u),f.plus(c),o+2,1),b(u.d).slice(0,o)===(i=b(t.d)).slice(0,o))if(i=i.slice(o-3,o+1),i=="9999"||!r&&i=="4999"){if(!r&&(p(u,e+1,0),u.times(u).times(u).eq(l))){t=u;break}o+=4,r=1}else{(!+i||!+i.slice(1)&&i.charAt(0)=="5")&&(p(t,e+1,1),n=!t.times(t).times(t).eq(l));break}return w=!0,p(t,e,a.rounding,n)};h.decimalPlaces=h.dp=function(){var e,n=this.d,i=NaN;if(n){if(e=n.length-1,i=(e-R(this.e/m))*m,e=n[e],e)for(;e%10==0;e/=10)i--;i<0&&(i=0)}return i};h.dividedBy=h.div=function(e){return k(this,new this.constructor(e))};h.dividedToIntegerBy=h.divToInt=function(e){var n=this,i=n.constructor;return p(k(n,new i(e),0,1,1),i.precision,i.rounding)};h.equals=h.eq=function(e){return this.cmp(e)===0};h.floor=function(){return p(new this.constructor(this),this.e+1,3)};h.greaterThan=h.gt=function(e){return this.cmp(e)>0};h.greaterThanOrEqualTo=h.gte=function(e){var n=this.cmp(e);return n==1||n===0};h.hyperbolicCosine=h.cosh=function(){var e,n,i,t,r,s=this,o=s.constructor,u=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return u;i=o.precision,t=o.rounding,o.precision=i+Math.max(s.e,s.sd())+4,o.rounding=1,r=s.d.length,r<32?(e=Math.ceil(r/3),n=(1/ae(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),s=j(o,1,s.times(n),new o(1),!0);for(var c,f=e,l=new o(8);f--;)c=s.times(s),s=u.minus(c.times(l.minus(c.times(l))));return p(s,o.precision=i,o.rounding=t,!0)};h.hyperbolicSine=h.sinh=function(){var e,n,i,t,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(n=s.precision,i=s.rounding,s.precision=n+Math.max(r.e,r.sd())+4,s.rounding=1,t=r.d.length,t<3)r=j(s,2,r,r,!0);else{e=1.4*Math.sqrt(t),e=e>16?16:e|0,r=r.times(1/ae(5,e)),r=j(s,2,r,r,!0);for(var o,u=new s(5),c=new s(16),f=new s(20);e--;)o=r.times(r),r=r.times(u.plus(o.times(c.times(o).plus(f))))}return s.precision=n,s.rounding=i,p(r,n,i,!0)};h.hyperbolicTangent=h.tanh=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+7,t.rounding=1,k(i.sinh(),i.cosh(),t.precision=e,t.rounding=n)):new t(i.s)};h.inverseCosine=h.acos=function(){var e=this,n=e.constructor,i=e.abs().cmp(1),t=n.precision,r=n.rounding;return i!==-1?i===0?e.isNeg()?F(n,t,r):new n(0):new n(NaN):e.isZero()?F(n,t+4,r).times(.5):(n.precision=t+6,n.rounding=1,e=new n(1).minus(e).div(e.plus(1)).sqrt().atan(),n.precision=t,n.rounding=r,e.times(2))};h.inverseHyperbolicCosine=h.acosh=function(){var e,n,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(e=t.precision,n=t.rounding,t.precision=e+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,w=!1,i=i.times(i).minus(1).sqrt().plus(i),w=!0,t.precision=e,t.rounding=n,i.ln()):new t(i)};h.inverseHyperbolicSine=h.asinh=function(){var e,n,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,w=!1,i=i.times(i).plus(1).sqrt().plus(i),w=!0,t.precision=e,t.rounding=n,i.ln())};h.inverseHyperbolicTangent=h.atanh=function(){var e,n,i,t,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,n=s.rounding,t=r.sd(),Math.max(t,e)<2*-r.e-1?p(new s(r),e,n,!0):(s.precision=i=t-r.e,r=k(r.plus(1),new s(1).minus(r),i+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=n,r.times(.5))):new s(NaN)};h.inverseSine=h.asin=function(){var e,n,i,t,r=this,s=r.constructor;return r.isZero()?new s(r):(n=r.abs().cmp(1),i=s.precision,t=s.rounding,n!==-1?n===0?(e=F(s,i+4,t).times(.5),e.s=r.s,e):new s(NaN):(s.precision=i+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=i,s.rounding=t,r.times(2)))};h.inverseTangent=h.atan=function(){var e,n,i,t,r,s,o,u,c,f=this,l=f.constructor,a=l.precision,d=l.rounding;if(f.isFinite()){if(f.isZero())return new l(f);if(f.abs().eq(1)&&a+4<=ke)return o=F(l,a+4,d).times(.25),o.s=f.s,o}else{if(!f.s)return new l(NaN);if(a+4<=ke)return o=F(l,a+4,d).times(.5),o.s=f.s,o}for(l.precision=u=a+10,l.rounding=1,i=Math.min(28,u/m+2|0),e=i;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(w=!1,n=Math.ceil(u/m),t=1,c=f.times(f),o=new l(f),r=f;e!==-1;)if(r=r.times(c),s=o.minus(r.div(t+=2)),r=r.times(c),o=s.plus(r.div(t+=2)),o.d[n]!==void 0)for(e=n;o.d[e]===s.d[e]&&e--;);return i&&(o=o.times(2<this.d.length-2};h.isNaN=function(){return!this.s};h.isNegative=h.isNeg=function(){return this.s<0};h.isPositive=h.isPos=function(){return this.s>0};h.isZero=function(){return!!this.d&&this.d[0]===0};h.lessThan=h.lt=function(e){return this.cmp(e)<0};h.lessThanOrEqualTo=h.lte=function(e){return this.cmp(e)<1};h.logarithm=h.log=function(e){var n,i,t,r,s,o,u,c,f=this,l=f.constructor,a=l.precision,d=l.rounding,g=5;if(e==null)e=new l(10),n=!0;else{if(e=new l(e),i=e.d,e.s<0||!i||!i[0]||e.eq(1))return new l(NaN);n=e.eq(10)}if(i=f.d,f.s<0||!i||!i[0]||f.eq(1))return new l(i&&!i[0]?-1/0:f.s!=1?NaN:i?0:1/0);if(n)if(i.length>1)s=!0;else{for(r=i[0];r%10===0;)r/=10;s=r!==1}if(w=!1,u=a+g,o=B(f,u),t=n?fe(l,u+10):B(e,u),c=k(o,t,u,1),Q(c.d,r=a,d))do if(u+=10,o=B(f,u),t=n?fe(l,u+10):B(e,u),c=k(o,t,u,1),!s){+b(c.d).slice(r+1,r+15)+1==1e14&&(c=p(c,a+1,0));break}while(Q(c.d,r+=10,d));return w=!0,p(c,a,d)};h.minus=h.sub=function(e){var n,i,t,r,s,o,u,c,f,l,a,d,g=this,v=g.constructor;if(e=new v(e),!g.d||!e.d)return!g.s||!e.s?e=new v(NaN):g.d?e.s=-e.s:e=new v(e.d||g.s!==e.s?g:NaN),e;if(g.s!=e.s)return e.s=-e.s,g.plus(e);if(f=g.d,d=e.d,u=v.precision,c=v.rounding,!f[0]||!d[0]){if(d[0])e.s=-e.s;else if(f[0])e=new v(g);else return new v(c===3?-0:0);return w?p(e,u,c):e}if(i=R(e.e/m),l=R(g.e/m),f=f.slice(),s=l-i,s){for(a=s<0,a?(n=f,s=-s,o=d.length):(n=d,i=l,o=f.length),t=Math.max(Math.ceil(u/m),o)+2,s>t&&(s=t,n.length=1),n.reverse(),t=s;t--;)n.push(0);n.reverse()}else{for(t=f.length,o=d.length,a=t0;--t)f[o++]=0;for(t=d.length;t>s;){if(f[--t]o?s+1:o+1,r>o&&(r=o,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for(o=f.length,r=l.length,o-r<0&&(r=o,i=l,l=f,f=i),n=0;r;)n=(f[--r]=f[r]+l[r]+n)/D|0,f[r]%=D;for(n&&(f.unshift(n),++t),o=f.length;f[--o]==0;)f.pop();return e.d=f,e.e=le(f,t),w?p(e,u,c):e};h.precision=h.sd=function(e){var n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error($+e);return i.d?(n=Ze(i.d),e&&i.e+1>n&&(n=i.e+1)):n=NaN,n};h.round=function(){var e=this,n=e.constructor;return p(new n(e),e.e+1,n.rounding)};h.sine=h.sin=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+Math.max(i.e,i.sd())+m,t.rounding=1,i=hn(t,He(t,i)),t.precision=e,t.rounding=n,p(Z>2?i.neg():i,e,n,!0)):new t(NaN)};h.squareRoot=h.sqrt=function(){var e,n,i,t,r,s,o=this,u=o.d,c=o.e,f=o.s,l=o.constructor;if(f!==1||!u||!u[0])return new l(!f||f<0&&(!u||u[0])?NaN:u?o:1/0);for(w=!1,f=Math.sqrt(+o),f==0||f==1/0?(n=b(u),(n.length+c)%2==0&&(n+="0"),f=Math.sqrt(n),c=R((c+1)/2)-(c<0||c%2),f==1/0?n="5e"+c:(n=f.toExponential(),n=n.slice(0,n.indexOf("e")+1)+c),t=new l(n)):t=new l(f.toString()),i=(c=l.precision)+3;;)if(s=t,t=s.plus(k(o,s,i+2,1)).times(.5),b(s.d).slice(0,i)===(n=b(t.d)).slice(0,i))if(n=n.slice(i-3,i+1),n=="9999"||!r&&n=="4999"){if(!r&&(p(s,c+1,0),s.times(s).eq(o))){t=s;break}i+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(p(t,c+1,1),e=!t.times(t).eq(o));break}return w=!0,p(t,c,l.rounding,e)};h.tangent=h.tan=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+10,t.rounding=1,i=i.sin(),i.s=1,i=k(i,new t(1).minus(i.times(i)).sqrt(),e+10,0),t.precision=e,t.rounding=n,p(Z==2||Z==4?i.neg():i,e,n,!0)):new t(NaN)};h.times=h.mul=function(e){var n,i,t,r,s,o,u,c,f,l=this,a=l.constructor,d=l.d,g=(e=new a(e)).d;if(e.s*=l.s,!d||!d[0]||!g||!g[0])return new a(!e.s||d&&!d[0]&&!g||g&&!g[0]&&!d?NaN:!d||!g?e.s/0:e.s*0);for(i=R(l.e/m)+R(e.e/m),c=d.length,f=g.length,c=0;){for(n=0,r=c+t;r>t;)u=s[r]+g[t]*d[r-t-1]+n,s[r--]=u%D|0,n=u/D|0;s[r]=(s[r]+n)%D|0}for(;!s[--o];)s.pop();return n?++i:s.shift(),e.d=s,e.e=le(s,i),w?p(e,a.precision,a.rounding):e};h.toBinary=function(e,n){return Me(this,2,e,n)};h.toDecimalPlaces=h.toDP=function(e,n){var i=this,t=i.constructor;return i=new t(i),e===void 0?i:(q(e,0,H),n===void 0?n=t.rounding:q(n,0,8),p(i,e+i.e+1,n))};h.toExponential=function(e,n){var i,t=this,r=t.constructor;return e===void 0?i=L(t,!0):(q(e,0,H),n===void 0?n=r.rounding:q(n,0,8),t=p(new r(t),e+1,n),i=L(t,!0,e+1)),t.isNeg()&&!t.isZero()?"-"+i:i};h.toFixed=function(e,n){var i,t,r=this,s=r.constructor;return e===void 0?i=L(r):(q(e,0,H),n===void 0?n=s.rounding:q(n,0,8),t=p(new s(r),e+r.e+1,n),i=L(t,!1,e+t.e+1)),r.isNeg()&&!r.isZero()?"-"+i:i};h.toFraction=function(e){var n,i,t,r,s,o,u,c,f,l,a,d,g=this,v=g.d,N=g.constructor;if(!v)return new N(g);if(f=i=new N(1),t=c=new N(0),n=new N(t),s=n.e=Ze(v)-g.e-1,o=s%m,n.d[0]=C(10,o<0?m+o:o),e==null)e=s>0?n:f;else{if(u=new N(e),!u.isInt()||u.lt(f))throw Error($+u);e=u.gt(n)?s>0?n:f:u}for(w=!1,u=new N(b(v)),l=N.precision,N.precision=s=v.length*m*2;a=k(u,n,0,1,1),r=i.plus(a.times(t)),r.cmp(e)!=1;)i=t,t=r,r=f,f=c.plus(a.times(r)),c=r,r=n,n=u.minus(a.times(r)),u=r;return r=k(e.minus(i),t,0,1,1),c=c.plus(r.times(f)),i=i.plus(r.times(t)),c.s=f.s=g.s,d=k(f,t,s,1).minus(g).abs().cmp(k(c,i,s,1).minus(g).abs())<1?[f,t]:[c,i],N.precision=l,w=!0,d};h.toHexadecimal=h.toHex=function(e,n){return Me(this,16,e,n)};h.toNearest=function(e,n){var i=this,t=i.constructor;if(i=new t(i),e==null){if(!i.d)return i;e=new t(1),n=t.rounding}else{if(e=new t(e),n===void 0?n=t.rounding:q(n,0,8),!i.d)return e.s?i:e;if(!e.d)return e.s&&(e.s=i.s),e}return e.d[0]?(w=!1,i=k(i,e,0,n,1).times(e),w=!0,p(i)):(e.s=i.s,i=e),i};h.toNumber=function(){return+this};h.toOctal=function(e,n){return Me(this,8,e,n)};h.toPower=h.pow=function(e){var n,i,t,r,s,o,u=this,c=u.constructor,f=+(e=new c(e));if(!u.d||!e.d||!u.d[0]||!e.d[0])return new c(C(+u,f));if(u=new c(u),u.eq(1))return u;if(t=c.precision,s=c.rounding,e.eq(1))return p(u,t,s);if(n=R(e.e/m),n>=e.d.length-1&&(i=f<0?-f:f)<=cn)return r=Ue(c,u,i,t),e.s<0?new c(1).div(r):p(r,t,s);if(o=u.s,o<0){if(nc.maxE+1||n0?o/0:0):(w=!1,c.rounding=u.s=1,i=Math.min(12,(n+"").length),r=Se(e.times(B(u,t+i)),t),r.d&&(r=p(r,t+5,1),Q(r.d,t,s)&&(n=t+10,r=p(Se(e.times(B(u,n+i)),n),n+5,1),+b(r.d).slice(t+1,t+15)+1==1e14&&(r=p(r,t+1,0)))),r.s=o,w=!0,c.rounding=s,p(r,t,s))};h.toPrecision=function(e,n){var i,t=this,r=t.constructor;return e===void 0?i=L(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(q(e,1,H),n===void 0?n=r.rounding:q(n,0,8),t=p(new r(t),e,n),i=L(t,e<=t.e||t.e<=r.toExpNeg,e)),t.isNeg()&&!t.isZero()?"-"+i:i};h.toSignificantDigits=h.toSD=function(e,n){var i=this,t=i.constructor;return e===void 0?(e=t.precision,n=t.rounding):(q(e,1,H),n===void 0?n=t.rounding:q(n,0,8)),p(new t(i),e,n)};h.toString=function(){var e=this,n=e.constructor,i=L(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()&&!e.isZero()?"-"+i:i};h.truncated=h.trunc=function(){return p(new this.constructor(this),this.e+1,1)};h.valueOf=h.toJSON=function(){var e=this,n=e.constructor,i=L(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()?"-"+i:i};function b(e){var n,i,t,r=e.length-1,s="",o=e[0];if(r>0){for(s+=o,n=1;ni)throw Error($+e)}function Q(e,n,i,t){var r,s,o,u;for(s=e[0];s>=10;s/=10)--n;return--n<0?(n+=m,r=0):(r=Math.ceil((n+1)/m),n%=m),s=C(10,m-n),u=e[r]%s|0,t==null?n<3?(n==0?u=u/100|0:n==1&&(u=u/10|0),o=i<4&&u==99999||i>3&&u==49999||u==5e4||u==0):o=(i<4&&u+1==s||i>3&&u+1==s/2)&&(e[r+1]/s/100|0)==C(10,n-2)-1||(u==s/2||u==0)&&(e[r+1]/s/100|0)==0:n<4?(n==0?u=u/1e3|0:n==1?u=u/100|0:n==2&&(u=u/10|0),o=(t||i<4)&&u==9999||!t&&i>3&&u==4999):o=((t||i<4)&&u+1==s||!t&&i>3&&u+1==s/2)&&(e[r+1]/s/1e3|0)==C(10,n-3)-1,o}function re(e,n,i){for(var t,r=[0],s,o=0,u=e.length;oi-1&&(r[t+1]===void 0&&(r[t+1]=0),r[t+1]+=r[t]/i|0,r[t]%=i)}return r.reverse()}function an(e,n){var i,t,r;if(n.isZero())return n;t=n.d.length,t<32?(i=Math.ceil(t/3),r=(1/ae(4,i)).toString()):(i=16,r="2.3283064365386962890625e-10"),e.precision+=i,n=j(e,1,n.times(r),new e(1));for(var s=i;s--;){var o=n.times(n);n=o.times(o).minus(o).times(8).plus(1)}return e.precision-=i,n}var k=function(){function e(t,r,s){var o,u=0,c=t.length;for(t=t.slice();c--;)o=t[c]*r+u,t[c]=o%s|0,u=o/s|0;return u&&t.unshift(u),t}function n(t,r,s,o){var u,c;if(s!=o)c=s>o?1:-1;else for(u=c=0;ur[u]?1:-1;break}return c}function i(t,r,s,o){for(var u=0;s--;)t[s]-=u,u=t[s]1;)t.shift()}return function(t,r,s,o,u,c){var f,l,a,d,g,v,N,A,M,_,E,P,x,I,de,z,W,he,T,y,ee=t.constructor,pe=t.s==r.s?1:-1,O=t.d,S=r.d;if(!O||!O[0]||!S||!S[0])return new ee(!t.s||!r.s||(O?S&&O[0]==S[0]:!S)?NaN:O&&O[0]==0||!S?pe*0:pe/0);for(c?(g=1,l=t.e-r.e):(c=D,g=m,l=R(t.e/g)-R(r.e/g)),T=S.length,W=O.length,M=new ee(pe),_=M.d=[],a=0;S[a]==(O[a]||0);a++);if(S[a]>(O[a]||0)&&l--,s==null?(I=s=ee.precision,o=ee.rounding):u?I=s+(t.e-r.e)+1:I=s,I<0)_.push(1),v=!0;else{if(I=I/g+2|0,a=0,T==1){for(d=0,S=S[0],I++;(a1&&(S=e(S,d,c),O=e(O,d,c),T=S.length,W=O.length),z=T,E=O.slice(0,T),P=E.length;P=c/2&&++he;do d=0,f=n(S,E,T,P),f<0?(x=E[0],T!=P&&(x=x*c+(E[1]||0)),d=x/he|0,d>1?(d>=c&&(d=c-1),N=e(S,d,c),A=N.length,P=E.length,f=n(N,E,A,P),f==1&&(d--,i(N,T=10;d/=10)a++;M.e=a+l*g-1,p(M,u?s+M.e+1:s,o,v)}return M}}();function p(e,n,i,t){var r,s,o,u,c,f,l,a,d,g=e.constructor;e:if(n!=null){if(a=e.d,!a)return e;for(r=1,u=a[0];u>=10;u/=10)r++;if(s=n-r,s<0)s+=m,o=n,l=a[d=0],c=l/C(10,r-o-1)%10|0;else if(d=Math.ceil((s+1)/m),u=a.length,d>=u)if(t){for(;u++<=d;)a.push(0);l=c=0,r=1,s%=m,o=s-m+1}else break e;else{for(l=u=a[d],r=1;u>=10;u/=10)r++;s%=m,o=s-m+r,c=o<0?0:l/C(10,r-o-1)%10|0}if(t=t||n<0||a[d+1]!==void 0||(o<0?l:l%C(10,r-o-1)),f=i<4?(c||t)&&(i==0||i==(e.s<0?3:2)):c>5||c==5&&(i==4||t||i==6&&(s>0?o>0?l/C(10,r-o):0:a[d-1])%10&1||i==(e.s<0?8:7)),n<1||!a[0])return a.length=0,f?(n-=e.e+1,a[0]=C(10,(m-n%m)%m),e.e=-n||0):a[0]=e.e=0,e;if(s==0?(a.length=d,u=1,d--):(a.length=d+1,u=C(10,m-s),a[d]=o>0?(l/C(10,r-o)%C(10,o)|0)*u:0),f)for(;;)if(d==0){for(s=1,o=a[0];o>=10;o/=10)s++;for(o=a[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(e.e++,a[0]==D&&(a[0]=1));break}else{if(a[d]+=u,a[d]!=D)break;a[d--]=0,u=1}for(s=a.length;a[--s]===0;)a.pop()}return w&&(e.e>g.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+U(t):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):r<0?(s="0."+U(-r-1)+s,i&&(t=i-o)>0&&(s+=U(t))):r>=o?(s+=U(r+1-o),i&&(t=i-r-1)>0&&(s=s+"."+U(t))):((t=r+1)0&&(r+1===o&&(s+="."),s+=U(t))),s}function le(e,n){var i=e[0];for(n*=m;i>=10;i/=10)n++;return n}function fe(e,n,i){if(n>ln)throw w=!0,i&&(e.precision=i),Error(De);return p(new e(oe),n,1,!0)}function F(e,n,i){if(n>ke)throw Error(De);return p(new e(ue),n,i,!0)}function Ze(e){var n=e.length-1,i=n*m+1;if(n=e[n],n){for(;n%10==0;n/=10)i--;for(n=e[0];n>=10;n/=10)i++}return i}function U(e){for(var n="";e--;)n+="0";return n}function Ue(e,n,i,t){var r,s=new e(1),o=Math.ceil(t/m+4);for(w=!1;;){if(i%2&&(s=s.times(n),qe(s.d,o)&&(r=!0)),i=R(i/2),i===0){i=s.d.length-1,r&&s.d[i]===0&&++s.d[i];break}n=n.times(n),qe(n.d,o)}return w=!0,s}function Ae(e){return e.d[e.d.length-1]&1}function Be(e,n,i){for(var t,r,s=new e(n[0]),o=0;++o17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(n==null?(w=!1,c=v):c=n,u=new d(.03125);e.e>-2;)e=e.times(u),a+=5;for(t=Math.log(C(2,a))/Math.LN10*2+5|0,c+=t,i=s=o=new d(1),d.precision=c;;){if(s=p(s.times(e),c,1),i=i.times(++l),u=o.plus(k(s,i,c,1)),b(u.d).slice(0,c)===b(o.d).slice(0,c)){for(r=a;r--;)o=p(o.times(o),c,1);if(n==null)if(f<3&&Q(o.d,c-t,g,f))d.precision=c+=10,i=s=u=new d(1),l=0,f++;else return p(o,d.precision=v,g,w=!0);else return d.precision=v,o}o=u}}function B(e,n){var i,t,r,s,o,u,c,f,l,a,d,g=1,v=10,N=e,A=N.d,M=N.constructor,_=M.rounding,E=M.precision;if(N.s<0||!A||!A[0]||!N.e&&A[0]==1&&A.length==1)return new M(A&&!A[0]?-1/0:N.s!=1?NaN:A?0:N);if(n==null?(w=!1,l=E):l=n,M.precision=l+=v,i=b(A),t=i.charAt(0),Math.abs(s=N.e)<15e14){for(;t<7&&t!=1||t==1&&i.charAt(1)>3;)N=N.times(e),i=b(N.d),t=i.charAt(0),g++;s=N.e,t>1?(N=new M("0."+i),s++):N=new M(t+"."+i.slice(1))}else return f=fe(M,l+2,E).times(s+""),N=B(new M(t+"."+i.slice(1)),l-v).plus(f),M.precision=E,n==null?p(N,E,_,w=!0):N;for(a=N,c=o=N=k(N.minus(1),N.plus(1),l,1),d=p(N.times(N),l,1),r=3;;){if(o=p(o.times(d),l,1),f=c.plus(k(o,new M(r),l,1)),b(f.d).slice(0,l)===b(c.d).slice(0,l))if(c=c.times(2),s!==0&&(c=c.plus(fe(M,l+2,E).times(s+""))),c=k(c,new M(g),l,1),n==null)if(Q(c.d,l-v,_,u))M.precision=l+=v,f=o=N=k(a.minus(1),a.plus(1),l,1),d=p(N.times(N),l,1),r=u=1;else return p(c,M.precision=E,_,w=!0);else return M.precision=E,c;c=f,r+=2}}function $e(e){return String(e.s*e.s/0)}function se(e,n){var i,t,r;for((i=n.indexOf("."))>-1&&(n=n.replace(".","")),(t=n.search(/e/i))>0?(i<0&&(i=t),i+=+n.slice(t+1),n=n.substring(0,t)):i<0&&(i=n.length),t=0;n.charCodeAt(t)===48;t++);for(r=n.length;n.charCodeAt(r-1)===48;--r);if(n=n.slice(t,r),n){if(r-=t,e.e=i=i-t-1,e.d=[],t=(i+1)%m,i<0&&(t+=m),te.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),Ie.test(n))return se(e,n)}else if(n==="Infinity"||n==="NaN")return+n||(e.s=NaN),e.e=NaN,e.d=null,e;if(un.test(n))i=16,n=n.toLowerCase();else if(on.test(n))i=2;else if(fn.test(n))i=8;else throw Error($+n);for(s=n.search(/p/i),s>0?(c=+n.slice(s+1),n=n.substring(2,s)):n=n.slice(2),s=n.indexOf("."),o=s>=0,t=e.constructor,o&&(n=n.replace(".",""),u=n.length,s=u-s,r=Ue(t,new t(i),s,s*2)),f=re(n,i,D),l=f.length-1,s=l;f[s]===0;--s)f.pop();return s<0?new t(e.s*0):(e.e=le(f,l),e.d=f,w=!1,o&&(e=k(e,r,u*4)),c&&(e=e.times(Math.abs(c)<54?C(2,c):Y.pow(2,c))),w=!0,e)}function hn(e,n){var i,t=n.d.length;if(t<3)return n.isZero()?n:j(e,2,n,n);i=1.4*Math.sqrt(t),i=i>16?16:i|0,n=n.times(1/ae(5,i)),n=j(e,2,n,n);for(var r,s=new e(5),o=new e(16),u=new e(20);i--;)r=n.times(n),n=n.times(s.plus(r.times(o.times(r).minus(u))));return n}function j(e,n,i,t,r){var s,o,u,c,f=1,l=e.precision,a=Math.ceil(l/m);for(w=!1,c=i.times(i),u=new e(t);;){if(o=k(u.times(c),new e(n++*n++),l,1),u=r?t.plus(o):t.minus(o),t=k(o.times(c),new e(n++*n++),l,1),o=u.plus(t),o.d[a]!==void 0){for(s=a;o.d[s]===u.d[s]&&s--;);if(s==-1)break}s=u,u=t,t=o,o=s,f++}return w=!0,o.d.length=a+1,o}function ae(e,n){for(var i=e;--n;)i*=e;return i}function He(e,n){var i,t=n.s<0,r=F(e,e.precision,1),s=r.times(.5);if(n=n.abs(),n.lte(s))return Z=t?4:1,n;if(i=n.divToInt(r),i.isZero())Z=t?3:2;else{if(n=n.minus(i.times(r)),n.lte(s))return Z=Ae(i)?t?2:3:t?4:1,n;Z=Ae(i)?t?1:4:t?3:2}return n.minus(r).abs()}function Me(e,n,i,t){var r,s,o,u,c,f,l,a,d,g=e.constructor,v=i!==void 0;if(v?(q(i,1,H),t===void 0?t=g.rounding:q(t,0,8)):(i=g.precision,t=g.rounding),!e.isFinite())l=$e(e);else{for(l=L(e),o=l.indexOf("."),v?(r=2,n==16?i=i*4-3:n==8&&(i=i*3-2)):r=n,o>=0&&(l=l.replace(".",""),d=new g(1),d.e=l.length-o,d.d=re(L(d),10,r),d.e=d.d.length),a=re(l,10,r),s=c=a.length;a[--c]==0;)a.pop();if(!a[0])l=v?"0p+0":"0";else{if(o<0?s--:(e=new g(e),e.d=a,e.e=s,e=k(e,d,i,t,0,r),a=e.d,s=e.e,f=Te),o=a[i],u=r/2,f=f||a[i+1]!==void 0,f=t<4?(o!==void 0||f)&&(t===0||t===(e.s<0?3:2)):o>u||o===u&&(t===4||f||t===6&&a[i-1]&1||t===(e.s<0?8:7)),a.length=i,f)for(;++a[--i]>r-1;)a[i]=0,i||(++s,a.unshift(1));for(c=a.length;!a[c-1];--c);for(o=0,l="";o1)if(n==16||n==8){for(o=n==16?4:3,--c;c%o;c++)l+="0";for(a=re(l,r,n),c=a.length;!a[c-1];--c);for(o=1,l="1.";oc)for(s-=c;s--;)l+="0";else sn)return e.length=n,!0}function pn(e){return new this(e).abs()}function gn(e){return new this(e).acos()}function mn(e){return new this(e).acosh()}function wn(e,n){return new this(e).plus(n)}function Nn(e){return new this(e).asin()}function vn(e){return new this(e).asinh()}function En(e){return new this(e).atan()}function kn(e){return new this(e).atanh()}function Sn(e,n){e=new this(e),n=new this(n);var i,t=this.precision,r=this.rounding,s=t+4;return!e.s||!n.s?i=new this(NaN):!e.d&&!n.d?(i=F(this,s,1).times(n.s>0?.25:.75),i.s=e.s):!n.d||e.isZero()?(i=n.s<0?F(this,t,r):new this(0),i.s=e.s):!e.d||n.isZero()?(i=F(this,s,1).times(.5),i.s=e.s):n.s<0?(this.precision=s,this.rounding=1,i=this.atan(k(e,n,s,1)),n=F(this,s,1),this.precision=t,this.rounding=r,i=e.s<0?i.minus(n):i.plus(n)):i=this.atan(k(e,n,s,1)),i}function Mn(e){return new this(e).cbrt()}function Cn(e){return p(e=new this(e),e.e+1,2)}function bn(e,n,i){return new this(e).clamp(n,i)}function Pn(e){if(!e||typeof e!="object")throw Error(ce+"Object expected");var n,i,t,r=e.defaults===!0,s=["precision",1,H,"rounding",0,8,"toExpNeg",-V,0,"toExpPos",0,V,"maxE",0,V,"minE",-V,0,"modulo",0,9];for(n=0;n=s[n+1]&&t<=s[n+2])this[i]=t;else throw Error($+i+": "+t);if(i="crypto",r&&(this[i]=Ee[i]),(t=e[i])!==void 0)if(t===!0||t===!1||t===0||t===1)if(t)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[i]=!0;else throw Error(Fe);else this[i]=!1;else throw Error($+i+": "+t);return this}function On(e){return new this(e).cos()}function Rn(e){return new this(e).cosh()}function Ve(e){var n,i,t;function r(s){var o,u,c,f=this;if(!(f instanceof r))return new r(s);if(f.constructor=r,_e(s)){f.s=s.s,w?!s.d||s.e>r.maxE?(f.e=NaN,f.d=null):s.e=10;u/=10)o++;w?o>r.maxE?(f.e=NaN,f.d=null):o=429e7?n[s]=crypto.getRandomValues(new Uint32Array(1))[0]:u[s++]=r%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(t*=4);s=214e7?crypto.randomBytes(4).copy(n,s):(u.push(r%1e7),s+=4);s=t/4}else throw Error(Fe);else for(;s=10;r/=10)t++;t + * MIT Licence + *) +*/ +//# sourceMappingURL=index-browser.js.map diff --git a/src/lib/generated/prisma/runtime/library.d.ts b/src/lib/generated/prisma/runtime/library.d.ts new file mode 100644 index 0000000..6185f1f --- /dev/null +++ b/src/lib/generated/prisma/runtime/library.d.ts @@ -0,0 +1,3604 @@ +/** + * @param this + */ +declare function $extends(this: Client, extension: ExtensionArgs | ((client: Client) => Client)): Client; + +declare type AccelerateEngineConfig = { + inlineSchema: EngineConfig['inlineSchema']; + inlineSchemaHash: EngineConfig['inlineSchemaHash']; + env: EngineConfig['env']; + generator?: { + previewFeatures: string[]; + }; + inlineDatasources: EngineConfig['inlineDatasources']; + overrideDatasources: EngineConfig['overrideDatasources']; + clientVersion: EngineConfig['clientVersion']; + engineVersion: EngineConfig['engineVersion']; + logEmitter: EngineConfig['logEmitter']; + logQueries?: EngineConfig['logQueries']; + logLevel?: EngineConfig['logLevel']; + tracingHelper: EngineConfig['tracingHelper']; + accelerateUtils?: AccelerateUtils; +}; + +declare type AccelerateUtils = EngineConfig['accelerateUtils']; + +export declare type Action = keyof typeof DMMF_2.ModelAction | 'executeRaw' | 'queryRaw' | 'runCommandRaw'; + +declare type ActiveConnectorType = Exclude; + +/** + * An interface that exposes some basic information about the + * adapter like its name and provider type. + */ +declare interface AdapterInfo { + readonly provider: Provider; + readonly adapterName: (typeof officialPrismaAdapters)[number] | (string & {}); +} + +export declare type Aggregate = '_count' | '_max' | '_min' | '_avg' | '_sum'; + +export declare type AllModelsToStringIndex, K extends PropertyKey> = Args extends { + [P in K]: { + $allModels: infer AllModels; + }; +} ? { + [P in K]: Record; +} : {}; + +declare class AnyNull extends NullTypesEnumValue { + private readonly _brand_AnyNull; +} + +export declare type ApplyOmit = Compute<{ + [K in keyof T as OmitValue extends true ? never : K]: T[K]; +}>; + +export declare type Args = T extends { + [K: symbol]: { + types: { + operations: { + [K in F]: { + args: any; + }; + }; + }; + }; +} ? T[symbol]['types']['operations'][F]['args'] : any; + +export declare type Args_3 = Args; + +/** + * Original `quaint::ValueType` enum tag from Prisma's `quaint`. + * Query arguments marked with this type are sanitized before being sent to the database. + * Notice while a query argument may be `null`, `ArgType` is guaranteed to be defined. + */ +declare type ArgType = 'Int32' | 'Int64' | 'Float' | 'Double' | 'Text' | 'Enum' | 'EnumArray' | 'Bytes' | 'Boolean' | 'Char' | 'Array' | 'Numeric' | 'Json' | 'Xml' | 'Uuid' | 'DateTime' | 'Date' | 'Time'; + +/** + * Attributes is a map from string to attribute values. + * + * Note: only the own enumerable keys are counted as valid attribute keys. + */ +declare interface Attributes { + [attributeKey: string]: AttributeValue | undefined; +} + +/** + * Attribute values may be any non-nullish primitive value except an object. + * + * null or undefined attribute values are invalid and will result in undefined behavior. + */ +declare type AttributeValue = string | number | boolean | Array | Array | Array; + +export declare type BaseDMMF = { + readonly datamodel: Omit; +}; + +declare type BatchArgs = { + queries: BatchQuery[]; + transaction?: { + isolationLevel?: IsolationLevel; + }; +}; + +declare type BatchInternalParams = { + requests: RequestParams[]; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type BatchQuery = { + model: string | undefined; + operation: string; + args: JsArgs | RawQueryArgs; +}; + +declare type BatchQueryEngineResult = QueryEngineResultData | Error; + +declare type BatchQueryOptionsCb = (args: BatchQueryOptionsCbArgs) => Promise; + +declare type BatchQueryOptionsCbArgs = { + args: BatchArgs; + query: (args: BatchArgs, __internalParams?: BatchInternalParams) => Promise; + __internalParams: BatchInternalParams; +}; + +declare type BatchResponse = MultiBatchResponse | CompactedBatchResponse; + +declare type BatchTransactionOptions = { + isolationLevel?: IsolationLevel; +}; + +declare interface BinaryTargetsEnvValue { + fromEnvVar: string | null; + value: string; + native?: boolean; +} + +export declare type Call = (F & { + params: P; +})['returns']; + +declare interface CallSite { + getLocation(): LocationInFile | null; +} + +export declare type Cast = A extends W ? A : W; + +declare type Client = ReturnType extends new () => infer T ? T : never; + +export declare type ClientArg = { + [MethodName in string]: unknown; +}; + +export declare type ClientArgs = { + client: ClientArg; +}; + +export declare type ClientBuiltInProp = keyof DynamicClientExtensionThisBuiltin; + +export declare type ClientOptionDef = undefined | { + [K in string]: any; +}; + +export declare type ClientOtherOps = { + $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise; + $queryRawTyped(query: TypedSql): PrismaPromise; + $queryRawUnsafe(query: string, ...values: any[]): PrismaPromise; + $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise; + $executeRawUnsafe(query: string, ...values: any[]): PrismaPromise; + $runCommandRaw(command: InputJsonObject): PrismaPromise; +}; + +declare type ColumnType = (typeof ColumnTypeEnum)[keyof typeof ColumnTypeEnum]; + +declare const ColumnTypeEnum: { + readonly Int32: 0; + readonly Int64: 1; + readonly Float: 2; + readonly Double: 3; + readonly Numeric: 4; + readonly Boolean: 5; + readonly Character: 6; + readonly Text: 7; + readonly Date: 8; + readonly Time: 9; + readonly DateTime: 10; + readonly Json: 11; + readonly Enum: 12; + readonly Bytes: 13; + readonly Set: 14; + readonly Uuid: 15; + readonly Int32Array: 64; + readonly Int64Array: 65; + readonly FloatArray: 66; + readonly DoubleArray: 67; + readonly NumericArray: 68; + readonly BooleanArray: 69; + readonly CharacterArray: 70; + readonly TextArray: 71; + readonly DateArray: 72; + readonly TimeArray: 73; + readonly DateTimeArray: 74; + readonly JsonArray: 75; + readonly EnumArray: 76; + readonly BytesArray: 77; + readonly UuidArray: 78; + readonly UnknownNumber: 128; +}; + +declare type CompactedBatchResponse = { + type: 'compacted'; + plan: object; + arguments: Map[]; + nestedSelection: string[]; + keys: string[]; + expectNonEmpty: boolean; +}; + +declare type CompilerWasmLoadingConfig = { + /** + * WASM-bindgen runtime for corresponding module + */ + getRuntime: () => Promise<{ + __wbg_set_wasm(exports: unknown): void; + QueryCompiler: QueryCompilerConstructor; + }>; + /** + * Loads the raw wasm module for the wasm compiler engine. This configuration is + * generated specifically for each type of client, eg. Node.js client and Edge + * clients will have different implementations. + * @remarks this is a callback on purpose, we only load the wasm if needed. + * @remarks only used by ClientEngine + */ + getQueryCompilerWasmModule: () => Promise; +}; + +export declare type Compute = T extends Function ? T : { + [K in keyof T]: T[K]; +} & unknown; + +export declare type ComputeDeep = T extends Function ? T : { + [K in keyof T]: ComputeDeep; +} & unknown; + +declare type ComputedField = { + name: string; + needs: string[]; + compute: ResultArgsFieldCompute; +}; + +declare type ComputedFieldsMap = { + [fieldName: string]: ComputedField; +}; + +declare type ConnectionInfo = { + schemaName?: string; + maxBindValues?: number; +}; + +declare type ConnectorType = 'mysql' | 'mongodb' | 'sqlite' | 'postgresql' | 'postgres' | 'prisma+postgres' | 'sqlserver' | 'cockroachdb'; + +declare interface Context { + /** + * Get a value from the context. + * + * @param key key which identifies a context value + */ + getValue(key: symbol): unknown; + /** + * Create a new context which inherits from this context and has + * the given key set to the given value. + * + * @param key context key for which to set the value + * @param value value to set for the given key + */ + setValue(key: symbol, value: unknown): Context; + /** + * Return a new context which inherits from this context but does + * not contain a value for the given key. + * + * @param key context key for which to clear a value + */ + deleteValue(key: symbol): Context; +} + +declare type Context_2 = T extends { + [K: symbol]: { + ctx: infer C; + }; +} ? C & T & { + /** + * @deprecated Use `$name` instead. + */ + name?: string; + $name?: string; + $parent?: unknown; +} : T & { + /** + * @deprecated Use `$name` instead. + */ + name?: string; + $name?: string; + $parent?: unknown; +}; + +export declare type Count = { + [K in keyof O]: Count; +} & {}; + +export declare function createParam(name: string): Param; + +/** + * Custom fetch function for `DataProxyEngine`. + * + * We can't use the actual type of `globalThis.fetch` because this will result + * in API Extractor referencing Node.js type definitions in the `.d.ts` bundle + * for the client runtime. We can only use such types in internal types that + * don't end up exported anywhere. + + * It's also not possible to write a definition of `fetch` that would accept the + * actual `fetch` function from different environments such as Node.js and + * Cloudflare Workers (with their extensions to `RequestInit` and `Response`). + * `fetch` is used in both covariant and contravariant positions in + * `CustomDataProxyFetch`, making it invariant, so we need the exact same type. + * Even if we removed the argument and left `fetch` in covariant position only, + * then for an extension-supplied function to be assignable to `customDataProxyFetch`, + * the platform-specific (or custom) `fetch` function needs to be assignable + * to our `fetch` definition. This, in turn, requires the third-party `Response` + * to be a subtype of our `Response` (which is not a problem, we could declare + * a minimal `Response` type that only includes what we use) *and* requires the + * third-party `RequestInit` to be a supertype of our `RequestInit` (i.e. we + * have to declare all properties any `RequestInit` implementation in existence + * could possibly have), which is not possible. + * + * Since `@prisma/extension-accelerate` redefines the type of + * `__internalParams.customDataProxyFetch` to its own type anyway (probably for + * exactly this reason), our definition is never actually used and is completely + * ignored, so it doesn't matter, and we can just use `unknown` as the type of + * `fetch` here. + */ +declare type CustomDataProxyFetch = (fetch: unknown) => unknown; + +declare class DataLoader { + private options; + batches: { + [key: string]: Job[]; + }; + private tickActive; + constructor(options: DataLoaderOptions); + request(request: T): Promise; + private dispatchBatches; + get [Symbol.toStringTag](): string; +} + +declare type DataLoaderOptions = { + singleLoader: (request: T) => Promise; + batchLoader: (request: T[]) => Promise; + batchBy: (request: T) => string | undefined; + batchOrder: (requestA: T, requestB: T) => number; +}; + +declare type Datamodel = ReadonlyDeep_2<{ + models: Model[]; + enums: DatamodelEnum[]; + types: Model[]; + indexes: Index[]; +}>; + +declare type DatamodelEnum = ReadonlyDeep_2<{ + name: string; + values: EnumValue[]; + dbName?: string | null; + documentation?: string; +}>; + +declare function datamodelEnumToSchemaEnum(datamodelEnum: DatamodelEnum): SchemaEnum; + +declare type Datasource = { + url?: string; +}; + +declare type Datasources = { + [name in string]: Datasource; +}; + +declare class DbNull extends NullTypesEnumValue { + private readonly _brand_DbNull; +} + +export declare const Debug: typeof debugCreate & { + enable(namespace: any): void; + disable(): any; + enabled(namespace: string): boolean; + log: (...args: string[]) => void; + formatters: {}; +}; + +/** + * Create a new debug instance with the given namespace. + * + * @example + * ```ts + * import Debug from '@prisma/debug' + * const debug = Debug('prisma:client') + * debug('Hello World') + * ``` + */ +declare function debugCreate(namespace: string): ((...args: any[]) => void) & { + color: string; + enabled: boolean; + namespace: string; + log: (...args: string[]) => void; + extend: () => void; +}; + +export declare function Decimal(n: Decimal.Value): Decimal; + +export declare namespace Decimal { + export type Constructor = typeof Decimal; + export type Instance = Decimal; + export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + export type Modulo = Rounding | 9; + export type Value = string | number | Decimal; + + // http://mikemcl.github.io/decimal.js/#constructor-properties + export interface Config { + precision?: number; + rounding?: Rounding; + toExpNeg?: number; + toExpPos?: number; + minE?: number; + maxE?: number; + crypto?: boolean; + modulo?: Modulo; + defaults?: boolean; + } +} + +export declare class Decimal { + readonly d: number[]; + readonly e: number; + readonly s: number; + + constructor(n: Decimal.Value); + + absoluteValue(): Decimal; + abs(): Decimal; + + ceil(): Decimal; + + clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; + clamp(min: Decimal.Value, max: Decimal.Value): Decimal; + + comparedTo(n: Decimal.Value): number; + cmp(n: Decimal.Value): number; + + cosine(): Decimal; + cos(): Decimal; + + cubeRoot(): Decimal; + cbrt(): Decimal; + + decimalPlaces(): number; + dp(): number; + + dividedBy(n: Decimal.Value): Decimal; + div(n: Decimal.Value): Decimal; + + dividedToIntegerBy(n: Decimal.Value): Decimal; + divToInt(n: Decimal.Value): Decimal; + + equals(n: Decimal.Value): boolean; + eq(n: Decimal.Value): boolean; + + floor(): Decimal; + + greaterThan(n: Decimal.Value): boolean; + gt(n: Decimal.Value): boolean; + + greaterThanOrEqualTo(n: Decimal.Value): boolean; + gte(n: Decimal.Value): boolean; + + hyperbolicCosine(): Decimal; + cosh(): Decimal; + + hyperbolicSine(): Decimal; + sinh(): Decimal; + + hyperbolicTangent(): Decimal; + tanh(): Decimal; + + inverseCosine(): Decimal; + acos(): Decimal; + + inverseHyperbolicCosine(): Decimal; + acosh(): Decimal; + + inverseHyperbolicSine(): Decimal; + asinh(): Decimal; + + inverseHyperbolicTangent(): Decimal; + atanh(): Decimal; + + inverseSine(): Decimal; + asin(): Decimal; + + inverseTangent(): Decimal; + atan(): Decimal; + + isFinite(): boolean; + + isInteger(): boolean; + isInt(): boolean; + + isNaN(): boolean; + + isNegative(): boolean; + isNeg(): boolean; + + isPositive(): boolean; + isPos(): boolean; + + isZero(): boolean; + + lessThan(n: Decimal.Value): boolean; + lt(n: Decimal.Value): boolean; + + lessThanOrEqualTo(n: Decimal.Value): boolean; + lte(n: Decimal.Value): boolean; + + logarithm(n?: Decimal.Value): Decimal; + log(n?: Decimal.Value): Decimal; + + minus(n: Decimal.Value): Decimal; + sub(n: Decimal.Value): Decimal; + + modulo(n: Decimal.Value): Decimal; + mod(n: Decimal.Value): Decimal; + + naturalExponential(): Decimal; + exp(): Decimal; + + naturalLogarithm(): Decimal; + ln(): Decimal; + + negated(): Decimal; + neg(): Decimal; + + plus(n: Decimal.Value): Decimal; + add(n: Decimal.Value): Decimal; + + precision(includeZeros?: boolean): number; + sd(includeZeros?: boolean): number; + + round(): Decimal; + + sine() : Decimal; + sin() : Decimal; + + squareRoot(): Decimal; + sqrt(): Decimal; + + tangent() : Decimal; + tan() : Decimal; + + times(n: Decimal.Value): Decimal; + mul(n: Decimal.Value) : Decimal; + + toBinary(significantDigits?: number): string; + toBinary(significantDigits: number, rounding: Decimal.Rounding): string; + + toDecimalPlaces(decimalPlaces?: number): Decimal; + toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + toDP(decimalPlaces?: number): Decimal; + toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + + toExponential(decimalPlaces?: number): string; + toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFixed(decimalPlaces?: number): string; + toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFraction(max_denominator?: Decimal.Value): Decimal[]; + + toHexadecimal(significantDigits?: number): string; + toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; + toHex(significantDigits?: number): string; + toHex(significantDigits: number, rounding?: Decimal.Rounding): string; + + toJSON(): string; + + toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; + + toNumber(): number; + + toOctal(significantDigits?: number): string; + toOctal(significantDigits: number, rounding: Decimal.Rounding): string; + + toPower(n: Decimal.Value): Decimal; + pow(n: Decimal.Value): Decimal; + + toPrecision(significantDigits?: number): string; + toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; + + toSignificantDigits(significantDigits?: number): Decimal; + toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; + toSD(significantDigits?: number): Decimal; + toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; + + toString(): string; + + truncated(): Decimal; + trunc(): Decimal; + + valueOf(): string; + + static abs(n: Decimal.Value): Decimal; + static acos(n: Decimal.Value): Decimal; + static acosh(n: Decimal.Value): Decimal; + static add(x: Decimal.Value, y: Decimal.Value): Decimal; + static asin(n: Decimal.Value): Decimal; + static asinh(n: Decimal.Value): Decimal; + static atan(n: Decimal.Value): Decimal; + static atanh(n: Decimal.Value): Decimal; + static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; + static cbrt(n: Decimal.Value): Decimal; + static ceil(n: Decimal.Value): Decimal; + static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; + static clone(object?: Decimal.Config): Decimal.Constructor; + static config(object: Decimal.Config): Decimal.Constructor; + static cos(n: Decimal.Value): Decimal; + static cosh(n: Decimal.Value): Decimal; + static div(x: Decimal.Value, y: Decimal.Value): Decimal; + static exp(n: Decimal.Value): Decimal; + static floor(n: Decimal.Value): Decimal; + static hypot(...n: Decimal.Value[]): Decimal; + static isDecimal(object: any): object is Decimal; + static ln(n: Decimal.Value): Decimal; + static log(n: Decimal.Value, base?: Decimal.Value): Decimal; + static log2(n: Decimal.Value): Decimal; + static log10(n: Decimal.Value): Decimal; + static max(...n: Decimal.Value[]): Decimal; + static min(...n: Decimal.Value[]): Decimal; + static mod(x: Decimal.Value, y: Decimal.Value): Decimal; + static mul(x: Decimal.Value, y: Decimal.Value): Decimal; + static noConflict(): Decimal.Constructor; // Browser only + static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; + static random(significantDigits?: number): Decimal; + static round(n: Decimal.Value): Decimal; + static set(object: Decimal.Config): Decimal.Constructor; + static sign(n: Decimal.Value): number; + static sin(n: Decimal.Value): Decimal; + static sinh(n: Decimal.Value): Decimal; + static sqrt(n: Decimal.Value): Decimal; + static sub(x: Decimal.Value, y: Decimal.Value): Decimal; + static sum(...n: Decimal.Value[]): Decimal; + static tan(n: Decimal.Value): Decimal; + static tanh(n: Decimal.Value): Decimal; + static trunc(n: Decimal.Value): Decimal; + + static readonly default?: Decimal.Constructor; + static readonly Decimal?: Decimal.Constructor; + + static readonly precision: number; + static readonly rounding: Decimal.Rounding; + static readonly toExpNeg: number; + static readonly toExpPos: number; + static readonly minE: number; + static readonly maxE: number; + static readonly crypto: boolean; + static readonly modulo: Decimal.Modulo; + + static readonly ROUND_UP: 0; + static readonly ROUND_DOWN: 1; + static readonly ROUND_CEIL: 2; + static readonly ROUND_FLOOR: 3; + static readonly ROUND_HALF_UP: 4; + static readonly ROUND_HALF_DOWN: 5; + static readonly ROUND_HALF_EVEN: 6; + static readonly ROUND_HALF_CEIL: 7; + static readonly ROUND_HALF_FLOOR: 8; + static readonly EUCLID: 9; +} + +/** + * Interface for any Decimal.js-like library + * Allows us to accept Decimal.js from different + * versions and some compatible alternatives + */ +export declare interface DecimalJsLike { + d: number[]; + e: number; + s: number; + toFixed(): string; +} + +export declare type DefaultArgs = InternalArgs<{}, {}, {}, {}>; + +export declare type DefaultSelection = Args extends { + omit: infer LocalOmit; +} ? ApplyOmit['default'], PatchFlat>>> : ApplyOmit['default'], ExtractGlobalOmit>>; + +export declare function defineDmmfProperty(target: object, runtimeDataModel: RuntimeDataModel): void; + +declare function defineExtension(ext: ExtensionArgs | ((client: Client) => Client)): (client: Client) => Client; + +declare const denylist: readonly ["$connect", "$disconnect", "$on", "$transaction", "$use", "$extends"]; + +declare type Deprecation = ReadonlyDeep_2<{ + sinceVersion: string; + reason: string; + plannedRemovalVersion?: string; +}>; + +declare type DeserializedResponse = Array>; + +export declare function deserializeJsonResponse(result: unknown): unknown; + +export declare function deserializeRawResult(response: RawResponse): DeserializedResponse; + +export declare type DevTypeMapDef = { + meta: { + modelProps: string; + }; + model: { + [Model in PropertyKey]: { + [Operation in PropertyKey]: DevTypeMapFnDef; + }; + }; + other: { + [Operation in PropertyKey]: DevTypeMapFnDef; + }; +}; + +export declare type DevTypeMapFnDef = { + args: any; + result: any; + payload: OperationPayload; +}; + +export declare namespace DMMF { + export { + datamodelEnumToSchemaEnum, + Document_2 as Document, + Mappings, + OtherOperationMappings, + DatamodelEnum, + SchemaEnum, + EnumValue, + Datamodel, + uniqueIndex, + PrimaryKey, + Model, + FieldKind, + FieldNamespace, + FieldLocation, + Field, + FieldDefault, + FieldDefaultScalar, + Index, + IndexType, + IndexField, + SortOrder, + Schema, + Query, + QueryOutput, + TypeRef, + InputTypeRef, + SchemaArg, + OutputType, + SchemaField, + OutputTypeRef, + Deprecation, + InputType, + FieldRefType, + FieldRefAllowType, + ModelMapping, + ModelAction + } +} + +declare namespace DMMF_2 { + export { + datamodelEnumToSchemaEnum, + Document_2 as Document, + Mappings, + OtherOperationMappings, + DatamodelEnum, + SchemaEnum, + EnumValue, + Datamodel, + uniqueIndex, + PrimaryKey, + Model, + FieldKind, + FieldNamespace, + FieldLocation, + Field, + FieldDefault, + FieldDefaultScalar, + Index, + IndexType, + IndexField, + SortOrder, + Schema, + Query, + QueryOutput, + TypeRef, + InputTypeRef, + SchemaArg, + OutputType, + SchemaField, + OutputTypeRef, + Deprecation, + InputType, + FieldRefType, + FieldRefAllowType, + ModelMapping, + ModelAction + } +} + +export declare function dmmfToRuntimeDataModel(dmmfDataModel: DMMF_2.Datamodel): RuntimeDataModel; + +declare type Document_2 = ReadonlyDeep_2<{ + datamodel: Datamodel; + schema: Schema; + mappings: Mappings; +}>; + +/** + * A generic driver adapter factory that allows the user to instantiate a + * driver adapter. The query and result types are specific to the adapter. + */ +declare interface DriverAdapterFactory extends AdapterInfo { + /** + * Instantiate a driver adapter. + */ + connect(): Promise>; +} + +/** Client */ +export declare type DynamicClientExtensionArgs> = { + [P in keyof C_]: unknown; +} & { + [K: symbol]: { + ctx: Optional, ITXClientDenyList> & { + $parent: Optional, ITXClientDenyList>; + }; + }; +}; + +export declare type DynamicClientExtensionThis> = { + [P in keyof ExtArgs['client']]: Return; +} & { + [P in Exclude]: DynamicModelExtensionThis, ExtArgs>; +} & { + [P in Exclude]: P extends keyof ClientOtherOps ? ClientOtherOps[P] : never; +} & { + [P in Exclude]: DynamicClientExtensionThisBuiltin[P]; +} & { + [K: symbol]: { + types: TypeMap['other']; + }; +}; + +export declare type DynamicClientExtensionThisBuiltin> = { + $extends: ExtendsHook<'extends', TypeMapCb, ExtArgs, Call>; + $transaction

[]>(arg: [...P], options?: { + isolationLevel?: TypeMap['meta']['txIsolationLevel']; + }): Promise>; + $transaction(fn: (client: Omit, ITXClientDenyList>) => Promise, options?: { + maxWait?: number; + timeout?: number; + isolationLevel?: TypeMap['meta']['txIsolationLevel']; + }): Promise; + $disconnect(): Promise; + $connect(): Promise; +}; + +/** Model */ +export declare type DynamicModelExtensionArgs> = { + [K in keyof M_]: K extends '$allModels' ? { + [P in keyof M_[K]]?: unknown; + } & { + [K: symbol]: {}; + } : K extends TypeMap['meta']['modelProps'] ? { + [P in keyof M_[K]]?: unknown; + } & { + [K: symbol]: { + ctx: DynamicModelExtensionThis, ExtArgs> & { + $parent: DynamicClientExtensionThis; + } & { + $name: ModelKey; + } & { + /** + * @deprecated Use `$name` instead. + */ + name: ModelKey; + }; + }; + } : never; +}; + +export declare type DynamicModelExtensionFluentApi = { + [K in keyof TypeMap['model'][M]['payload']['objects']]: (args?: Exact>) => PrismaPromise, [K]> | Null> & DynamicModelExtensionFluentApi>; +}; + +export declare type DynamicModelExtensionFnResult = P extends FluentOperation ? DynamicModelExtensionFluentApi & PrismaPromise | Null> : PrismaPromise>; + +export declare type DynamicModelExtensionFnResultBase = GetResult; + +export declare type DynamicModelExtensionFnResultNull

= P extends 'findUnique' | 'findFirst' ? null : never; + +export declare type DynamicModelExtensionOperationFn = {} extends TypeMap['model'][M]['operations'][P]['args'] ? (args?: Exact) => DynamicModelExtensionFnResult> : (args: Exact) => DynamicModelExtensionFnResult>; + +export declare type DynamicModelExtensionThis> = { + [P in keyof ExtArgs['model'][Uncapitalize]]: Return][P]>; +} & { + [P in Exclude]>]: DynamicModelExtensionOperationFn; +} & { + [P in Exclude<'fields', keyof ExtArgs['model'][Uncapitalize]>]: TypeMap['model'][M]['fields']; +} & { + [K: symbol]: { + types: TypeMap['model'][M]; + }; +}; + +/** Query */ +export declare type DynamicQueryExtensionArgs = { + [K in keyof Q_]: K extends '$allOperations' ? (args: { + model?: string; + operation: string; + args: any; + query: (args: any) => PrismaPromise; + }) => Promise : K extends '$allModels' ? { + [P in keyof Q_[K] | keyof TypeMap['model'][keyof TypeMap['model']]['operations'] | '$allOperations']?: P extends '$allOperations' ? DynamicQueryExtensionCb : P extends keyof TypeMap['model'][keyof TypeMap['model']]['operations'] ? DynamicQueryExtensionCb : never; + } : K extends TypeMap['meta']['modelProps'] ? { + [P in keyof Q_[K] | keyof TypeMap['model'][ModelKey]['operations'] | '$allOperations']?: P extends '$allOperations' ? DynamicQueryExtensionCb, keyof TypeMap['model'][ModelKey]['operations']> : P extends keyof TypeMap['model'][ModelKey]['operations'] ? DynamicQueryExtensionCb, P> : never; + } : K extends keyof TypeMap['other']['operations'] ? DynamicQueryExtensionCb<[TypeMap], 0, 'other', K> : never; +}; + +export declare type DynamicQueryExtensionCb = >(args: A) => Promise; + +export declare type DynamicQueryExtensionCbArgs = (_1 extends unknown ? _2 extends unknown ? { + args: DynamicQueryExtensionCbArgsArgs; + model: _0 extends 0 ? undefined : _1; + operation: _2; + query: >(args: A) => PrismaPromise; +} : never : never) & { + query: (args: DynamicQueryExtensionCbArgsArgs) => PrismaPromise; +}; + +export declare type DynamicQueryExtensionCbArgsArgs = _2 extends '$queryRaw' | '$executeRaw' ? Sql : TypeMap[_0][_1]['operations'][_2]['args']; + +/** Result */ +export declare type DynamicResultExtensionArgs = { + [K in keyof R_]: { + [P in keyof R_[K]]?: { + needs?: DynamicResultExtensionNeeds, R_[K][P]>; + compute(data: DynamicResultExtensionData, R_[K][P]>): any; + }; + }; +}; + +export declare type DynamicResultExtensionData = GetFindResult; + +export declare type DynamicResultExtensionNeeds = { + [K in keyof S]: K extends keyof TypeMap['model'][M]['payload']['scalars'] ? S[K] : never; +} & { + [N in keyof TypeMap['model'][M]['payload']['scalars']]?: boolean; +}; + +/** + * Placeholder value for "no text". + */ +export declare const empty: Sql; + +export declare type EmptyToUnknown = T; + +declare interface Engine { + /** The name of the engine. This is meant to be consumed externally */ + readonly name: string; + onBeforeExit(callback: () => Promise): void; + start(): Promise; + stop(): Promise; + version(forceRun?: boolean): Promise | string; + request(query: JsonQuery, options: RequestOptions): Promise>; + requestBatch(queries: JsonQuery[], options: RequestBatchOptions): Promise[]>; + transaction(action: 'start', headers: Transaction_2.TransactionHeaders, options: Transaction_2.Options): Promise>; + transaction(action: 'commit', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo): Promise; + transaction(action: 'rollback', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo): Promise; + metrics(options: MetricsOptionsJson): Promise; + metrics(options: MetricsOptionsPrometheus): Promise; + applyPendingMigrations(): Promise; +} + +declare interface EngineConfig { + cwd: string; + dirname: string; + enableDebugLogs?: boolean; + allowTriggerPanic?: boolean; + prismaPath?: string; + generator?: GeneratorConfig; + /** + * @remarks this field is used internally by Policy, do not rename or remove + */ + overrideDatasources: Datasources; + showColors?: boolean; + logQueries?: boolean; + logLevel?: 'info' | 'warn'; + env: Record; + flags?: string[]; + clientVersion: string; + engineVersion: string; + previewFeatures?: string[]; + engineEndpoint?: string; + activeProvider?: string; + logEmitter: LogEmitter; + transactionOptions: Transaction_2.Options; + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale`. + * If set, this is only used in the library engine, and all queries would be performed through it, + * rather than Prisma's Rust drivers. + * @remarks only used by LibraryEngine.ts + */ + adapter?: SqlDriverAdapterFactory; + /** + * The contents of the schema encoded into a string + */ + inlineSchema: string; + /** + * The contents of the datasource url saved in a string + * @remarks only used by DataProxyEngine.ts + * @remarks this field is used internally by Policy, do not rename or remove + */ + inlineDatasources: GetPrismaClientConfig['inlineDatasources']; + /** + * The string hash that was produced for a given schema + * @remarks only used by DataProxyEngine.ts + */ + inlineSchemaHash: string; + /** + * The helper for interaction with OTEL tracing + * @remarks enabling is determined by the client and @prisma/instrumentation package + */ + tracingHelper: TracingHelper; + /** + * Information about whether we have not found a schema.prisma file in the + * default location, and that we fell back to finding the schema.prisma file + * in the current working directory. This usually means it has been bundled. + */ + isBundled?: boolean; + /** + * Web Assembly module loading configuration + */ + engineWasm?: EngineWasmLoadingConfig; + compilerWasm?: CompilerWasmLoadingConfig; + /** + * Allows Accelerate to use runtime utilities from the client. These are + * necessary for the AccelerateEngine to function correctly. + */ + accelerateUtils?: { + resolveDatasourceUrl: typeof resolveDatasourceUrl; + getBatchRequestPayload: typeof getBatchRequestPayload; + prismaGraphQLToJSError: typeof prismaGraphQLToJSError; + PrismaClientUnknownRequestError: typeof PrismaClientUnknownRequestError; + PrismaClientInitializationError: typeof PrismaClientInitializationError; + PrismaClientKnownRequestError: typeof PrismaClientKnownRequestError; + debug: (...args: any[]) => void; + engineVersion: string; + clientVersion: string; + }; +} + +declare type EngineEvent = E extends QueryEventType ? QueryEvent : LogEvent; + +declare type EngineEventType = QueryEventType | LogEventType; + +declare type EngineSpan = { + id: EngineSpanId; + parentId: string | null; + name: string; + startTime: HrTime; + endTime: HrTime; + kind: EngineSpanKind; + attributes?: Record; + links?: EngineSpanId[]; +}; + +declare type EngineSpanId = string; + +declare type EngineSpanKind = 'client' | 'internal'; + +declare type EngineWasmLoadingConfig = { + /** + * WASM-bindgen runtime for corresponding module + */ + getRuntime: () => Promise<{ + __wbg_set_wasm(exports: unknown): void; + QueryEngine: QueryEngineConstructor; + }>; + /** + * Loads the raw wasm module for the wasm query engine. This configuration is + * generated specifically for each type of client, eg. Node.js client and Edge + * clients will have different implementations. + * @remarks this is a callback on purpose, we only load the wasm if needed. + * @remarks only used by LibraryEngine + */ + getQueryEngineWasmModule: () => Promise; +}; + +declare type EnumValue = ReadonlyDeep_2<{ + name: string; + dbName: string | null; +}>; + +declare type EnvPaths = { + rootEnvPath: string | null; + schemaEnvPath: string | undefined; +}; + +declare interface EnvValue { + fromEnvVar: null | string; + value: null | string; +} + +export declare type Equals = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? 1 : 0; + +declare type Error_2 = { + kind: 'GenericJs'; + id: number; +} | { + kind: 'UnsupportedNativeDataType'; + type: string; +} | { + kind: 'InvalidIsolationLevel'; + level: string; +} | { + kind: 'postgres'; + code: string; + severity: string; + message: string; + detail: string | undefined; + column: string | undefined; + hint: string | undefined; +} | { + kind: 'mysql'; + code: number; + message: string; + state: string; +} | { + kind: 'sqlite'; + /** + * Sqlite extended error code: https://www.sqlite.org/rescode.html + */ + extendedCode: number; + message: string; +}; + +declare type ErrorCapturingFunction = T extends (...args: infer A) => Promise ? (...args: A) => Promise>> : T extends (...args: infer A) => infer R ? (...args: A) => Result_4> : T; + +declare type ErrorCapturingInterface = { + [K in keyof T]: ErrorCapturingFunction; +}; + +declare interface ErrorCapturingSqlDriverAdapter extends ErrorCapturingInterface { + readonly errorRegistry: ErrorRegistry; +} + +declare type ErrorFormat = 'pretty' | 'colorless' | 'minimal'; + +declare type ErrorRecord = { + error: unknown; +}; + +declare interface ErrorRegistry { + consumeError(id: number): ErrorRecord | undefined; +} + +declare interface ErrorWithBatchIndex { + batchRequestIdx?: number; +} + +declare type EventCallback = [E] extends ['beforeExit'] ? () => Promise : [E] extends [LogLevel] ? (event: EngineEvent) => void : never; + +export declare type Exact = (A extends unknown ? (W extends A ? { + [K in keyof A]: Exact; +} : W) : never) | (A extends Narrowable ? A : never); + +/** + * Defines Exception. + * + * string or an object with one of (message or name or code) and optional stack + */ +declare type Exception = ExceptionWithCode | ExceptionWithMessage | ExceptionWithName | string; + +declare interface ExceptionWithCode { + code: string | number; + name?: string; + message?: string; + stack?: string; +} + +declare interface ExceptionWithMessage { + code?: string | number; + message: string; + name?: string; + stack?: string; +} + +declare interface ExceptionWithName { + code?: string | number; + message?: string; + name: string; + stack?: string; +} + +declare type ExtendedEventType = LogLevel | 'beforeExit'; + +declare type ExtendedSpanOptions = SpanOptions & { + /** The name of the span */ + name: string; + internal?: boolean; + middleware?: boolean; + /** Whether it propagates context (?=true) */ + active?: boolean; + /** The context to append the span to */ + context?: Context; +}; + +/** $extends, defineExtension */ +export declare interface ExtendsHook, TypeMap extends TypeMapDef = Call> { + extArgs: ExtArgs; + , MergedArgs extends InternalArgs = MergeExtArgs>(extension: ((client: DynamicClientExtensionThis) => { + $extends: { + extArgs: Args; + }; + }) | { + name?: string; + query?: DynamicQueryExtensionArgs; + result?: DynamicResultExtensionArgs & R; + model?: DynamicModelExtensionArgs & M; + client?: DynamicClientExtensionArgs & C; + }): { + extends: DynamicClientExtensionThis, TypeMapCb, MergedArgs>; + define: (client: any) => { + $extends: { + extArgs: Args; + }; + }; + }[Variant]; +} + +export declare type ExtensionArgs = Optional; + +declare namespace Extensions { + export { + defineExtension, + getExtensionContext + } +} +export { Extensions } + +declare namespace Extensions_2 { + export { + InternalArgs, + DefaultArgs, + GetPayloadResultExtensionKeys, + GetPayloadResultExtensionObject, + GetPayloadResult, + GetSelect, + GetOmit, + DynamicQueryExtensionArgs, + DynamicQueryExtensionCb, + DynamicQueryExtensionCbArgs, + DynamicQueryExtensionCbArgsArgs, + DynamicResultExtensionArgs, + DynamicResultExtensionNeeds, + DynamicResultExtensionData, + DynamicModelExtensionArgs, + DynamicModelExtensionThis, + DynamicModelExtensionOperationFn, + DynamicModelExtensionFnResult, + DynamicModelExtensionFnResultBase, + DynamicModelExtensionFluentApi, + DynamicModelExtensionFnResultNull, + DynamicClientExtensionArgs, + DynamicClientExtensionThis, + ClientBuiltInProp, + DynamicClientExtensionThisBuiltin, + ExtendsHook, + MergeExtArgs, + AllModelsToStringIndex, + TypeMapDef, + DevTypeMapDef, + DevTypeMapFnDef, + ClientOptionDef, + ClientOtherOps, + TypeMapCbDef, + ModelKey, + RequiredExtensionArgs as UserArgs + } +} + +export declare type ExtractGlobalOmit = Options extends { + omit: { + [K in ModelName]: infer GlobalOmit; + }; +} ? GlobalOmit : {}; + +declare type Field = ReadonlyDeep_2<{ + kind: FieldKind; + name: string; + isRequired: boolean; + isList: boolean; + isUnique: boolean; + isId: boolean; + isReadOnly: boolean; + isGenerated?: boolean; + isUpdatedAt?: boolean; + /** + * Describes the data type in the same the way it is defined in the Prisma schema: + * BigInt, Boolean, Bytes, DateTime, Decimal, Float, Int, JSON, String, $ModelName + */ + type: string; + /** + * Native database type, if specified. + * For example, `@db.VarChar(191)` is encoded as `['VarChar', ['191']]`, + * `@db.Text` is encoded as `['Text', []]`. + */ + nativeType?: [string, string[]] | null; + dbName?: string | null; + hasDefaultValue: boolean; + default?: FieldDefault | FieldDefaultScalar | FieldDefaultScalar[]; + relationFromFields?: string[]; + relationToFields?: string[]; + relationOnDelete?: string; + relationOnUpdate?: string; + relationName?: string; + documentation?: string; +}>; + +declare type FieldDefault = ReadonlyDeep_2<{ + name: string; + args: Array; +}>; + +declare type FieldDefaultScalar = string | boolean | number; + +declare type FieldKind = 'scalar' | 'object' | 'enum' | 'unsupported'; + +declare type FieldLocation = 'scalar' | 'inputObjectTypes' | 'outputObjectTypes' | 'enumTypes' | 'fieldRefTypes'; + +declare type FieldNamespace = 'model' | 'prisma'; + +/** + * A reference to a specific field of a specific model + */ +export declare interface FieldRef { + readonly modelName: Model; + readonly name: string; + readonly typeName: FieldType; + readonly isList: boolean; +} + +declare type FieldRefAllowType = TypeRef<'scalar' | 'enumTypes'>; + +declare type FieldRefType = ReadonlyDeep_2<{ + name: string; + allowTypes: FieldRefAllowType[]; + fields: SchemaArg[]; +}>; + +declare type FluentOperation = 'findUnique' | 'findUniqueOrThrow' | 'findFirst' | 'findFirstOrThrow' | 'create' | 'update' | 'upsert' | 'delete'; + +export declare interface Fn { + params: Params; + returns: Returns; +} + +declare interface GeneratorConfig { + name: string; + output: EnvValue | null; + isCustomOutput?: boolean; + provider: EnvValue; + config: { + /** `output` is a reserved name and will only be available directly at `generator.output` */ + output?: never; + /** `provider` is a reserved name and will only be available directly at `generator.provider` */ + provider?: never; + /** `binaryTargets` is a reserved name and will only be available directly at `generator.binaryTargets` */ + binaryTargets?: never; + /** `previewFeatures` is a reserved name and will only be available directly at `generator.previewFeatures` */ + previewFeatures?: never; + } & { + [key: string]: string | string[] | undefined; + }; + binaryTargets: BinaryTargetsEnvValue[]; + previewFeatures: string[]; + envPaths?: EnvPaths; + sourceFilePath: string; +} + +export declare type GetAggregateResult

= { + [K in keyof A as K extends Aggregate ? K : never]: K extends '_count' ? A[K] extends true ? number : Count : { + [J in keyof A[K] & string]: P['scalars'][J] | null; + }; +}; + +declare function getBatchRequestPayload(batch: JsonQuery[], transaction?: TransactionOptions_3): QueryEngineBatchRequest; + +export declare type GetBatchResult = { + count: number; +}; + +export declare type GetCountResult = A extends { + select: infer S; +} ? (S extends true ? number : Count) : number; + +declare function getExtensionContext(that: T): Context_2; + +export declare type GetFindResult

= Equals extends 1 ? DefaultSelection : A extends { + select: infer S extends object; +} & Record | { + include: infer I extends object; +} & Record ? { + [K in keyof S | keyof I as (S & I)[K] extends false | undefined | Skip | null ? never : K]: (S & I)[K] extends object ? P extends SelectablePayloadFields ? O extends OperationPayload ? GetFindResult[] : never : P extends SelectablePayloadFields ? O extends OperationPayload ? GetFindResult | SelectField & null : never : K extends '_count' ? Count> : never : P extends SelectablePayloadFields ? O extends OperationPayload ? DefaultSelection[] : never : P extends SelectablePayloadFields ? O extends OperationPayload ? DefaultSelection | SelectField & null : never : P extends { + scalars: { + [k in K]: infer O; + }; + } ? O : K extends '_count' ? Count : never; +} & (A extends { + include: any; +} & Record ? DefaultSelection : unknown) : DefaultSelection; + +export declare type GetGroupByResult

= A extends { + by: string[]; +} ? Array & { + [K in A['by'][number]]: P['scalars'][K]; +}> : A extends { + by: string; +} ? Array & { + [K in A['by']]: P['scalars'][K]; +}> : {}[]; + +export declare type GetOmit = { + [K in (string extends keyof R ? never : keyof R) | BaseKeys]?: boolean | ExtraType; +}; + +export declare type GetPayloadResult, R extends InternalArgs['result'][string]> = Omit> & GetPayloadResultExtensionObject; + +export declare type GetPayloadResultExtensionKeys = KR; + +export declare type GetPayloadResultExtensionObject = { + [K in GetPayloadResultExtensionKeys]: R[K] extends () => { + compute: (...args: any) => infer C; + } ? C : never; +}; + +export declare function getPrismaClient(config: GetPrismaClientConfig): { + new (optionsArg?: PrismaClientOptions): { + _originalClient: any; + _runtimeDataModel: RuntimeDataModel; + _requestHandler: RequestHandler; + _connectionPromise?: Promise | undefined; + _disconnectionPromise?: Promise | undefined; + _engineConfig: EngineConfig; + _accelerateEngineConfig: AccelerateEngineConfig; + _clientVersion: string; + _errorFormat: ErrorFormat; + _tracingHelper: TracingHelper; + _middlewares: MiddlewareHandler; + _previewFeatures: string[]; + _activeProvider: string; + _globalOmit?: GlobalOmitOptions | undefined; + _extensions: MergedExtensionsList; + /** + * @remarks This is used internally by Policy, do not rename or remove + */ + _engine: Engine; + /** + * A fully constructed/applied Client that references the parent + * PrismaClient. This is used for Client extensions only. + */ + _appliedParent: any; + _createPrismaPromise: PrismaPromiseFactory; + /** + * Hook a middleware into the client + * @param middleware to hook + */ + $use(middleware: QueryMiddleware): void; + $on(eventType: E, callback: EventCallback): any; + $connect(): Promise; + /** + * Disconnect from the database + */ + $disconnect(): Promise; + /** + * Executes a raw query and always returns a number + */ + $executeRawInternal(transaction: PrismaPromiseTransaction | undefined, clientMethod: string, args: RawQueryArgs, middlewareArgsMapper?: MiddlewareArgsMapper): Promise; + /** + * Executes a raw query provided through a safe tag function + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise_2; + /** + * Unsafe counterpart of `$executeRaw` that is susceptible to SQL injections + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $executeRawUnsafe(query: string, ...values: RawValue[]): PrismaPromise_2; + /** + * Executes a raw command only for MongoDB + * + * @param command + * @returns + */ + $runCommandRaw(command: Record): PrismaPromise_2; + /** + * Executes a raw query and returns selected data + */ + $queryRawInternal(transaction: PrismaPromiseTransaction | undefined, clientMethod: string, args: RawQueryArgs, middlewareArgsMapper?: MiddlewareArgsMapper): Promise; + /** + * Executes a raw query provided through a safe tag function + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise_2; + /** + * Counterpart to $queryRaw, that returns strongly typed results + * @param typedSql + */ + $queryRawTyped(typedSql: UnknownTypedSql): PrismaPromise_2; + /** + * Unsafe counterpart of `$queryRaw` that is susceptible to SQL injections + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $queryRawUnsafe(query: string, ...values: RawValue[]): PrismaPromise_2; + /** + * Execute a batch of requests in a transaction + * @param requests + * @param options + */ + _transactionWithArray({ promises, options, }: { + promises: Array>; + options?: BatchTransactionOptions; + }): Promise; + /** + * Perform a long-running transaction + * @param callback + * @param options + * @returns + */ + _transactionWithCallback({ callback, options, }: { + callback: (client: Client) => Promise; + options?: TransactionOptions_2; + }): Promise; + _createItxClient(transaction: PrismaPromiseInteractiveTransaction): Client; + /** + * Execute queries within a transaction + * @param input a callback or a query list + * @param options to set timeouts (callback) + * @returns + */ + $transaction(input: any, options?: any): Promise; + /** + * Runs the middlewares over params before executing a request + * @param internalParams + * @returns + */ + _request(internalParams: InternalRequestParams): Promise; + _executeRequest({ args, clientMethod, dataPath, callsite, action, model, argsMapper, transaction, unpacker, otelParentCtx, customDataProxyFetch, }: InternalRequestParams): Promise; + $metrics: MetricsClient; + /** + * Shortcut for checking a preview flag + * @param feature preview flag + * @returns + */ + _hasPreviewFlag(feature: string): boolean; + $applyPendingMigrations(): Promise; + $extends: typeof $extends; + readonly [Symbol.toStringTag]: string; + }; +}; + +/** + * Config that is stored into the generated client. When the generated client is + * loaded, this same config is passed to {@link getPrismaClient} which creates a + * closure with that config around a non-instantiated [[PrismaClient]]. + */ +export declare type GetPrismaClientConfig = { + runtimeDataModel: RuntimeDataModel; + generator?: GeneratorConfig; + relativeEnvPaths?: { + rootEnvPath?: string | null; + schemaEnvPath?: string | null; + }; + relativePath: string; + dirname: string; + clientVersion: string; + engineVersion: string; + datasourceNames: string[]; + activeProvider: ActiveConnectorType; + /** + * The contents of the schema encoded into a string + * @remarks only used for the purpose of data proxy + */ + inlineSchema: string; + /** + * A special env object just for the data proxy edge runtime. + * Allows bundlers to inject their own env variables (Vercel). + * Allows platforms to declare global variables as env (Workers). + * @remarks only used for the purpose of data proxy + */ + injectableEdgeEnv?: () => LoadedEnv; + /** + * The contents of the datasource url saved in a string. + * This can either be an env var name or connection string. + * It is needed by the client to connect to the Data Proxy. + * @remarks only used for the purpose of data proxy + */ + inlineDatasources: { + [name in string]: { + url: EnvValue; + }; + }; + /** + * The string hash that was produced for a given schema + * @remarks only used for the purpose of data proxy + */ + inlineSchemaHash: string; + /** + * A marker to indicate that the client was not generated via `prisma + * generate` but was generated via `generate --postinstall` script instead. + * @remarks used to error for Vercel/Netlify for schema caching issues + */ + postinstall?: boolean; + /** + * Information about the CI where the Prisma Client has been generated. The + * name of the CI environment is stored at generation time because CI + * information is not always available at runtime. Moreover, the edge client + * has no notion of environment variables, so this works around that. + * @remarks used to error for Vercel/Netlify for schema caching issues + */ + ciName?: string; + /** + * Information about whether we have not found a schema.prisma file in the + * default location, and that we fell back to finding the schema.prisma file + * in the current working directory. This usually means it has been bundled. + */ + isBundled?: boolean; + /** + * A boolean that is `false` when the client was generated with --no-engine. At + * runtime, this means the client will be bound to be using the Data Proxy. + */ + copyEngine?: boolean; + /** + * Optional wasm loading configuration + */ + engineWasm?: EngineWasmLoadingConfig; + compilerWasm?: CompilerWasmLoadingConfig; +}; + +export declare type GetResult = { + findUnique: GetFindResult | null; + findUniqueOrThrow: GetFindResult; + findFirst: GetFindResult | null; + findFirstOrThrow: GetFindResult; + findMany: GetFindResult[]; + create: GetFindResult; + createMany: GetBatchResult; + createManyAndReturn: GetFindResult[]; + update: GetFindResult; + updateMany: GetBatchResult; + updateManyAndReturn: GetFindResult[]; + upsert: GetFindResult; + delete: GetFindResult; + deleteMany: GetBatchResult; + aggregate: GetAggregateResult; + count: GetCountResult; + groupBy: GetGroupByResult; + $queryRaw: unknown; + $queryRawTyped: unknown; + $executeRaw: number; + $queryRawUnsafe: unknown; + $executeRawUnsafe: number; + $runCommandRaw: JsonObject; + findRaw: JsonObject; + aggregateRaw: JsonObject; +}[OperationName]; + +export declare function getRuntime(): GetRuntimeOutput; + +declare type GetRuntimeOutput = { + id: RuntimeName; + prettyName: string; + isEdge: boolean; +}; + +export declare type GetSelect, R extends InternalArgs['result'][string], KR extends keyof R = string extends keyof R ? never : keyof R> = { + [K in KR | keyof Base]?: K extends KR ? boolean : Base[K]; +}; + +declare type GlobalOmitOptions = { + [modelName: string]: { + [fieldName: string]: boolean; + }; +}; + +declare type HandleErrorParams = { + args: JsArgs; + error: any; + clientMethod: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + modelName?: string; + globalOmit?: GlobalOmitOptions; +}; + +declare type HrTime = [number, number]; + +/** + * Defines High-Resolution Time. + * + * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970. + * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds. + * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150. + * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds: + * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210. + * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds: + * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000. + * This is represented in HrTime format as [1609504210, 150000000]. + */ +declare type HrTime_2 = [number, number]; + +declare type Index = ReadonlyDeep_2<{ + model: string; + type: IndexType; + isDefinedOnField: boolean; + name?: string; + dbName?: string; + algorithm?: string; + clustered?: boolean; + fields: IndexField[]; +}>; + +declare type IndexField = ReadonlyDeep_2<{ + name: string; + sortOrder?: SortOrder; + length?: number; + operatorClass?: string; +}>; + +declare type IndexType = 'id' | 'normal' | 'unique' | 'fulltext'; + +/** + * Matches a JSON array. + * Unlike \`JsonArray\`, readonly arrays are assignable to this type. + */ +export declare interface InputJsonArray extends ReadonlyArray { +} + +/** + * Matches a JSON object. + * Unlike \`JsonObject\`, this type allows undefined and read-only properties. + */ +export declare type InputJsonObject = { + readonly [Key in string]?: InputJsonValue | null; +}; + +/** + * Matches any valid value that can be used as an input for operations like + * create and update as the value of a JSON field. Unlike \`JsonValue\`, this + * type allows read-only arrays and read-only object properties and disallows + * \`null\` at the top level. + * + * \`null\` cannot be used as the value of a JSON field because its meaning + * would be ambiguous. Use \`Prisma.JsonNull\` to store the JSON null value or + * \`Prisma.DbNull\` to clear the JSON value and set the field to the database + * NULL value instead. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-by-null-values + */ +export declare type InputJsonValue = string | number | boolean | InputJsonObject | InputJsonArray | { + toJSON(): unknown; +}; + +declare type InputType = ReadonlyDeep_2<{ + name: string; + constraints: { + maxNumFields: number | null; + minNumFields: number | null; + fields?: string[]; + }; + meta?: { + source?: string; + grouping?: string; + }; + fields: SchemaArg[]; +}>; + +declare type InputTypeRef = TypeRef<'scalar' | 'inputObjectTypes' | 'enumTypes' | 'fieldRefTypes'>; + +declare type InteractiveTransactionInfo = { + /** + * Transaction ID returned by the query engine. + */ + id: string; + /** + * Arbitrary payload the meaning of which depends on the `Engine` implementation. + * For example, `DataProxyEngine` needs to associate different API endpoints with transactions. + * In `LibraryEngine` and `BinaryEngine` it is currently not used. + */ + payload: Payload; +}; + +declare type InteractiveTransactionOptions = Transaction_2.InteractiveTransactionInfo; + +export declare type InternalArgs = { + result: { + [K in keyof R]: { + [P in keyof R[K]]: () => R[K][P]; + }; + }; + model: { + [K in keyof M]: { + [P in keyof M[K]]: () => M[K][P]; + }; + }; + query: { + [K in keyof Q]: { + [P in keyof Q[K]]: () => Q[K][P]; + }; + }; + client: { + [K in keyof C]: () => C[K]; + }; +}; + +declare type InternalRequestParams = { + /** + * The original client method being called. + * Even though the rootField / operation can be changed, + * this method stays as it is, as it's what the user's + * code looks like + */ + clientMethod: string; + /** + * Name of js model that triggered the request. Might be used + * for warnings or error messages + */ + jsModelName?: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + unpacker?: Unpacker; + otelParentCtx?: Context; + /** Used to "desugar" a user input into an "expanded" one */ + argsMapper?: (args?: UserArgs_2) => UserArgs_2; + /** Used to convert args for middleware and back */ + middlewareArgsMapper?: MiddlewareArgsMapper; + /** Used for Accelerate client extension via Data Proxy */ + customDataProxyFetch?: CustomDataProxyFetch; +} & Omit; + +declare type IsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SNAPSHOT' | 'SERIALIZABLE'; + +declare function isSkip(value: unknown): value is Skip; + +export declare function isTypedSql(value: unknown): value is UnknownTypedSql; + +export declare type ITXClientDenyList = (typeof denylist)[number]; + +export declare const itxClientDenyList: readonly (string | symbol)[]; + +declare interface Job { + resolve: (data: any) => void; + reject: (data: any) => void; + request: any; +} + +/** + * Create a SQL query for a list of values. + */ +export declare function join(values: readonly RawValue[], separator?: string, prefix?: string, suffix?: string): Sql; + +export declare type JsArgs = { + select?: Selection_2; + include?: Selection_2; + omit?: Omission; + [argName: string]: JsInputValue; +}; + +export declare type JsInputValue = null | undefined | string | number | boolean | bigint | Uint8Array | Date | DecimalJsLike | ObjectEnumValue | RawParameters | JsonConvertible | FieldRef | JsInputValue[] | Skip | { + [key: string]: JsInputValue; +}; + +declare type JsonArgumentValue = number | string | boolean | null | RawTaggedValue | JsonArgumentValue[] | { + [key: string]: JsonArgumentValue; +}; + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches a JSON array. + */ +export declare interface JsonArray extends Array { +} + +export declare type JsonBatchQuery = { + batch: JsonQuery[]; + transaction?: { + isolationLevel?: IsolationLevel; + }; +}; + +export declare interface JsonConvertible { + toJSON(): unknown; +} + +declare type JsonFieldSelection = { + arguments?: Record | RawTaggedValue; + selection: JsonSelectionSet; +}; + +declare class JsonNull extends NullTypesEnumValue { + private readonly _brand_JsonNull; +} + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches a JSON object. + * This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from. + */ +export declare type JsonObject = { + [Key in string]?: JsonValue; +}; + +export declare type JsonQuery = { + modelName?: string; + action: JsonQueryAction; + query: JsonFieldSelection; +}; + +declare type JsonQueryAction = 'findUnique' | 'findUniqueOrThrow' | 'findFirst' | 'findFirstOrThrow' | 'findMany' | 'createOne' | 'createMany' | 'createManyAndReturn' | 'updateOne' | 'updateMany' | 'updateManyAndReturn' | 'deleteOne' | 'deleteMany' | 'upsertOne' | 'aggregate' | 'groupBy' | 'executeRaw' | 'queryRaw' | 'runCommandRaw' | 'findRaw' | 'aggregateRaw'; + +declare type JsonSelectionSet = { + $scalars?: boolean; + $composites?: boolean; +} & { + [fieldName: string]: boolean | JsonFieldSelection; +}; + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches any valid JSON value. + */ +export declare type JsonValue = string | number | boolean | JsonObject | JsonArray | null; + +export declare type JsOutputValue = null | string | number | boolean | bigint | Uint8Array | Date | Decimal | JsOutputValue[] | { + [key: string]: JsOutputValue; +}; + +export declare type JsPromise = Promise & {}; + +declare type KnownErrorParams = { + code: string; + clientVersion: string; + meta?: Record; + batchRequestIdx?: number; +}; + +/** + * A pointer from the current {@link Span} to another span in the same trace or + * in a different trace. + * Few examples of Link usage. + * 1. Batch Processing: A batch of elements may contain elements associated + * with one or more traces/spans. Since there can only be one parent + * SpanContext, Link is used to keep reference to SpanContext of all + * elements in the batch. + * 2. Public Endpoint: A SpanContext in incoming client request on a public + * endpoint is untrusted from service provider perspective. In such case it + * is advisable to start a new trace with appropriate sampling decision. + * However, it is desirable to associate incoming SpanContext to new trace + * initiated on service provider side so two traces (from Client and from + * Service Provider) can be correlated. + */ +declare interface Link { + /** The {@link SpanContext} of a linked span. */ + context: SpanContext; + /** A set of {@link SpanAttributes} on the link. */ + attributes?: SpanAttributes; + /** Count of attributes of the link that were dropped due to collection limits */ + droppedAttributesCount?: number; +} + +declare type LoadedEnv = { + message?: string; + parsed: { + [x: string]: string; + }; +} | undefined; + +declare type LocationInFile = { + fileName: string; + lineNumber: number | null; + columnNumber: number | null; +}; + +declare type LogDefinition = { + level: LogLevel; + emit: 'stdout' | 'event'; +}; + +/** + * Typings for the events we emit. + * + * @remarks + * If this is updated, our edge runtime shim needs to be updated as well. + */ +declare type LogEmitter = { + on(event: E, listener: (event: EngineEvent) => void): LogEmitter; + emit(event: QueryEventType, payload: QueryEvent): boolean; + emit(event: LogEventType, payload: LogEvent): boolean; +}; + +declare type LogEvent = { + timestamp: Date; + message: string; + target: string; +}; + +declare type LogEventType = 'info' | 'warn' | 'error'; + +declare type LogLevel = 'info' | 'query' | 'warn' | 'error'; + +/** + * Generates more strict variant of an enum which, unlike regular enum, + * throws on non-existing property access. This can be useful in following situations: + * - we have an API, that accepts both `undefined` and `SomeEnumType` as an input + * - enum values are generated dynamically from DMMF. + * + * In that case, if using normal enums and no compile-time typechecking, using non-existing property + * will result in `undefined` value being used, which will be accepted. Using strict enum + * in this case will help to have a runtime exception, telling you that you are probably doing something wrong. + * + * Note: if you need to check for existence of a value in the enum you can still use either + * `in` operator or `hasOwnProperty` function. + * + * @param definition + * @returns + */ +export declare function makeStrictEnum>(definition: T): T; + +export declare function makeTypedQueryFactory(sql: string): (...values: any[]) => TypedSql; + +declare type Mappings = ReadonlyDeep_2<{ + modelOperations: ModelMapping[]; + otherOperations: { + read: string[]; + write: string[]; + }; +}>; + +/** + * Class that holds the list of all extensions, applied to particular instance, + * as well as resolved versions of the components that need to apply on + * different levels. Main idea of this class: avoid re-resolving as much of the + * stuff as possible when new extensions are added while also delaying the + * resolve until the point it is actually needed. For example, computed fields + * of the model won't be resolved unless the model is actually queried. Neither + * adding extensions with `client` component only cause other components to + * recompute. + */ +declare class MergedExtensionsList { + private head?; + private constructor(); + static empty(): MergedExtensionsList; + static single(extension: ExtensionArgs): MergedExtensionsList; + isEmpty(): boolean; + append(extension: ExtensionArgs): MergedExtensionsList; + getAllComputedFields(dmmfModelName: string): ComputedFieldsMap | undefined; + getAllClientExtensions(): ClientArg | undefined; + getAllModelExtensions(dmmfModelName: string): ModelArg | undefined; + getAllQueryCallbacks(jsModelName: string, operation: string): any; + getAllBatchQueryCallbacks(): BatchQueryOptionsCb[]; +} + +export declare type MergeExtArgs, Args extends Record> = ComputeDeep & AllModelsToStringIndex>; + +export declare type Metric = { + key: string; + value: T; + labels: Record; + description: string; +}; + +export declare type MetricHistogram = { + buckets: MetricHistogramBucket[]; + sum: number; + count: number; +}; + +export declare type MetricHistogramBucket = [maxValue: number, count: number]; + +export declare type Metrics = { + counters: Metric[]; + gauges: Metric[]; + histograms: Metric[]; +}; + +export declare class MetricsClient { + private _client; + constructor(client: Client); + /** + * Returns all metrics gathered up to this point in prometheus format. + * Result of this call can be exposed directly to prometheus scraping endpoint + * + * @param options + * @returns + */ + prometheus(options?: MetricsOptions): Promise; + /** + * Returns all metrics gathered up to this point in prometheus format. + * + * @param options + * @returns + */ + json(options?: MetricsOptions): Promise; +} + +declare type MetricsOptions = { + /** + * Labels to add to every metrics in key-value format + */ + globalLabels?: Record; +}; + +declare type MetricsOptionsCommon = { + globalLabels?: Record; +}; + +declare type MetricsOptionsJson = { + format: 'json'; +} & MetricsOptionsCommon; + +declare type MetricsOptionsPrometheus = { + format: 'prometheus'; +} & MetricsOptionsCommon; + +declare type MiddlewareArgsMapper = { + requestArgsToMiddlewareArgs(requestArgs: RequestArgs): MiddlewareArgs; + middlewareArgsToRequestArgs(middlewareArgs: MiddlewareArgs): RequestArgs; +}; + +declare class MiddlewareHandler { + private _middlewares; + use(middleware: M): void; + get(id: number): M | undefined; + has(id: number): boolean; + length(): number; +} + +declare type Model = ReadonlyDeep_2<{ + name: string; + dbName: string | null; + schema: string | null; + fields: Field[]; + uniqueFields: string[][]; + uniqueIndexes: uniqueIndex[]; + documentation?: string; + primaryKey: PrimaryKey | null; + isGenerated?: boolean; +}>; + +declare enum ModelAction { + findUnique = "findUnique", + findUniqueOrThrow = "findUniqueOrThrow", + findFirst = "findFirst", + findFirstOrThrow = "findFirstOrThrow", + findMany = "findMany", + create = "create", + createMany = "createMany", + createManyAndReturn = "createManyAndReturn", + update = "update", + updateMany = "updateMany", + updateManyAndReturn = "updateManyAndReturn", + upsert = "upsert", + delete = "delete", + deleteMany = "deleteMany", + groupBy = "groupBy", + count = "count",// TODO: count does not actually exist in DMMF + aggregate = "aggregate", + findRaw = "findRaw", + aggregateRaw = "aggregateRaw" +} + +export declare type ModelArg = { + [MethodName in string]: unknown; +}; + +export declare type ModelArgs = { + model: { + [ModelName in string]: ModelArg; + }; +}; + +export declare type ModelKey = M extends keyof TypeMap['model'] ? M : Capitalize; + +declare type ModelMapping = ReadonlyDeep_2<{ + model: string; + plural: string; + findUnique?: string | null; + findUniqueOrThrow?: string | null; + findFirst?: string | null; + findFirstOrThrow?: string | null; + findMany?: string | null; + create?: string | null; + createMany?: string | null; + createManyAndReturn?: string | null; + update?: string | null; + updateMany?: string | null; + updateManyAndReturn?: string | null; + upsert?: string | null; + delete?: string | null; + deleteMany?: string | null; + aggregate?: string | null; + groupBy?: string | null; + count?: string | null; + findRaw?: string | null; + aggregateRaw?: string | null; +}>; + +export declare type ModelQueryOptionsCb = (args: ModelQueryOptionsCbArgs) => Promise; + +export declare type ModelQueryOptionsCbArgs = { + model: string; + operation: string; + args: JsArgs; + query: (args: JsArgs) => Promise; +}; + +declare type MultiBatchResponse = { + type: 'multi'; + plans: object[]; +}; + +export declare type NameArgs = { + name?: string; +}; + +export declare type Narrow = { + [K in keyof A]: A[K] extends Function ? A[K] : Narrow; +} | (A extends Narrowable ? A : never); + +export declare type Narrowable = string | number | bigint | boolean | []; + +export declare type NeverToUnknown = [T] extends [never] ? unknown : T; + +declare class NullTypesEnumValue extends ObjectEnumValue { + _getNamespace(): string; +} + +/** + * Base class for unique values of object-valued enums. + */ +export declare abstract class ObjectEnumValue { + constructor(arg?: symbol); + abstract _getNamespace(): string; + _getName(): string; + toString(): string; +} + +export declare const objectEnumValues: { + classes: { + DbNull: typeof DbNull; + JsonNull: typeof JsonNull; + AnyNull: typeof AnyNull; + }; + instances: { + DbNull: DbNull; + JsonNull: JsonNull; + AnyNull: AnyNull; + }; +}; + +declare const officialPrismaAdapters: readonly ["@prisma/adapter-planetscale", "@prisma/adapter-neon", "@prisma/adapter-libsql", "@prisma/adapter-d1", "@prisma/adapter-pg", "@prisma/adapter-pg-worker"]; + +export declare type Omission = Record; + +declare type Omit_2 = { + [P in keyof T as P extends K ? never : P]: T[P]; +}; +export { Omit_2 as Omit } + +export declare type OmitValue = Key extends keyof Omit ? Omit[Key] : false; + +export declare type Operation = 'findFirst' | 'findFirstOrThrow' | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'updateManyAndReturn' | 'upsert' | 'delete' | 'deleteMany' | 'aggregate' | 'count' | 'groupBy' | '$queryRaw' | '$executeRaw' | '$queryRawUnsafe' | '$executeRawUnsafe' | 'findRaw' | 'aggregateRaw' | '$runCommandRaw'; + +export declare type OperationPayload = { + name: string; + scalars: { + [ScalarName in string]: unknown; + }; + objects: { + [ObjectName in string]: unknown; + }; + composites: { + [CompositeName in string]: unknown; + }; +}; + +export declare type Optional = { + [P in K & keyof O]?: O[P]; +} & { + [P in Exclude]: O[P]; +}; + +export declare type OptionalFlat = { + [K in keyof T]?: T[K]; +}; + +export declare type OptionalKeys = { + [K in keyof O]-?: {} extends Pick_2 ? K : never; +}[keyof O]; + +declare type Options = { + clientVersion: string; +}; + +export declare type Or = { + 0: { + 0: 0; + 1: 1; + }; + 1: { + 0: 1; + 1: 1; + }; +}[A][B]; + +declare type OtherOperationMappings = ReadonlyDeep_2<{ + read: string[]; + write: string[]; +}>; + +declare type OutputType = ReadonlyDeep_2<{ + name: string; + fields: SchemaField[]; +}>; + +declare type OutputTypeRef = TypeRef<'scalar' | 'outputObjectTypes' | 'enumTypes'>; + +export declare function Param<$Type, $Value extends string>(name: $Value): Param<$Type, $Value>; + +export declare type Param = { + readonly name: $Value; +}; + +export declare type PatchFlat = O1 & Omit_2; + +export declare type Path = O extends unknown ? P extends [infer K, ...infer R] ? K extends keyof O ? Path : Default : O : never; + +export declare type Payload = T extends { + [K: symbol]: { + types: { + payload: any; + }; + }; +} ? T[symbol]['types']['payload'] : any; + +export declare type PayloadToResult = RenameAndNestPayloadKeys

> = { + [K in keyof O]?: O[K][K] extends any[] ? PayloadToResult[] : O[K][K] extends object ? PayloadToResult : O[K][K]; +}; + +declare type Pick_2 = { + [P in keyof T as P extends K ? P : never]: T[P]; +}; +export { Pick_2 as Pick } + +declare type PrimaryKey = ReadonlyDeep_2<{ + name: string | null; + fields: string[]; +}>; + +export declare class PrismaClientInitializationError extends Error { + clientVersion: string; + errorCode?: string; + retryable?: boolean; + constructor(message: string, clientVersion: string, errorCode?: string); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientKnownRequestError extends Error implements ErrorWithBatchIndex { + code: string; + meta?: Record; + clientVersion: string; + batchRequestIdx?: number; + constructor(message: string, { code, clientVersion, meta, batchRequestIdx }: KnownErrorParams); + get [Symbol.toStringTag](): string; +} + +export declare type PrismaClientOptions = { + /** + * Overwrites the primary datasource url from your schema.prisma file + */ + datasourceUrl?: string; + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale. + */ + adapter?: SqlDriverAdapterFactory | null; + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources; + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat; + /** + * The default values for Transaction options + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: Transaction_2.Options; + /** + * @example + * \`\`\` + * // Defaults to stdout + * log: ['query', 'info', 'warn'] + * + * // Emit as events + * log: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * ] + * \`\`\` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: Array; + omit?: GlobalOmitOptions; + /** + * @internal + * You probably don't want to use this. \`__internal\` is used by internal tooling. + */ + __internal?: { + debug?: boolean; + engine?: { + cwd?: string; + binaryPath?: string; + endpoint?: string; + allowTriggerPanic?: boolean; + }; + /** This can be used for testing purposes */ + configOverride?: (config: GetPrismaClientConfig) => GetPrismaClientConfig; + }; +}; + +export declare class PrismaClientRustPanicError extends Error { + clientVersion: string; + constructor(message: string, clientVersion: string); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientUnknownRequestError extends Error implements ErrorWithBatchIndex { + clientVersion: string; + batchRequestIdx?: number; + constructor(message: string, { clientVersion, batchRequestIdx }: UnknownErrorParams); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientValidationError extends Error { + name: string; + clientVersion: string; + constructor(message: string, { clientVersion }: Options); + get [Symbol.toStringTag](): string; +} + +declare function prismaGraphQLToJSError({ error, user_facing_error }: RequestError, clientVersion: string, activeProvider: string): PrismaClientKnownRequestError | PrismaClientUnknownRequestError; + +declare type PrismaOperationSpec = { + args: TArgs; + action: TAction; + model: string; +}; + +export declare interface PrismaPromise extends Promise { + [Symbol.toStringTag]: 'PrismaPromise'; +} + +/** + * Prisma's `Promise` that is backwards-compatible. All additions on top of the + * original `Promise` are optional so that it can be backwards-compatible. + * @see [[createPrismaPromise]] + */ +declare interface PrismaPromise_2 = any> extends Promise { + get spec(): TSpec; + /** + * Extension of the original `.then` function + * @param onfulfilled same as regular promises + * @param onrejected same as regular promises + * @param transaction transaction options + */ + then(onfulfilled?: (value: TResult) => R1 | PromiseLike, onrejected?: (error: unknown) => R2 | PromiseLike, transaction?: PrismaPromiseTransaction): Promise; + /** + * Extension of the original `.catch` function + * @param onrejected same as regular promises + * @param transaction transaction options + */ + catch(onrejected?: ((reason: any) => R | PromiseLike) | undefined | null, transaction?: PrismaPromiseTransaction): Promise; + /** + * Extension of the original `.finally` function + * @param onfinally same as regular promises + * @param transaction transaction options + */ + finally(onfinally?: (() => void) | undefined | null, transaction?: PrismaPromiseTransaction): Promise; + /** + * Called when executing a batch of regular tx + * @param transaction transaction options for batch tx + */ + requestTransaction?(transaction: PrismaPromiseBatchTransaction): PromiseLike; +} + +declare type PrismaPromiseBatchTransaction = { + kind: 'batch'; + id: number; + isolationLevel?: IsolationLevel; + index: number; + lock: PromiseLike; +}; + +declare type PrismaPromiseCallback = (transaction?: PrismaPromiseTransaction) => Promise; + +/** + * Creates a [[PrismaPromise]]. It is Prisma's implementation of `Promise` which + * is essentially a proxy for `Promise`. All the transaction-compatible client + * methods return one, this allows for pre-preparing queries without executing + * them until `.then` is called. It's the foundation of Prisma's query batching. + * @param callback that will be wrapped within our promise implementation + * @see [[PrismaPromise]] + * @returns + */ +declare type PrismaPromiseFactory = >(callback: PrismaPromiseCallback, op?: T) => PrismaPromise_2; + +declare type PrismaPromiseInteractiveTransaction = { + kind: 'itx'; + id: string; + payload: PayloadType; +}; + +declare type PrismaPromiseTransaction = PrismaPromiseBatchTransaction | PrismaPromiseInteractiveTransaction; + +export declare const PrivateResultType: unique symbol; + +declare type Provider = 'mysql' | 'postgres' | 'sqlite'; + +declare namespace Public { + export { + validator + } +} +export { Public } + +declare namespace Public_2 { + export { + Args, + Result, + Payload, + PrismaPromise, + Operation, + Exact + } +} + +declare type Query = ReadonlyDeep_2<{ + name: string; + args: SchemaArg[]; + output: QueryOutput; +}>; + +declare interface Queryable extends AdapterInfo { + /** + * Execute a query and return its result. + */ + queryRaw(params: Query): Promise; + /** + * Execute a query and return the number of affected rows. + */ + executeRaw(params: Query): Promise; +} + +declare type QueryCompiler = { + compile(request: string): Promise; + compileBatch(batchRequest: string): Promise; +}; + +declare interface QueryCompilerConstructor { + new (options: QueryCompilerOptions): QueryCompiler; +} + +declare type QueryCompilerOptions = { + datamodel: string; + provider: Provider; + connectionInfo: ConnectionInfo; +}; + +declare type QueryEngineBatchGraphQLRequest = { + batch: QueryEngineRequest[]; + transaction?: boolean; + isolationLevel?: IsolationLevel; +}; + +declare type QueryEngineBatchRequest = QueryEngineBatchGraphQLRequest | JsonBatchQuery; + +declare type QueryEngineConfig = { + datamodel: string; + configDir: string; + logQueries: boolean; + ignoreEnvVarErrors: boolean; + datasourceOverrides: Record; + env: Record; + logLevel: QueryEngineLogLevel; + engineProtocol: QueryEngineProtocol; + enableTracing: boolean; +}; + +declare interface QueryEngineConstructor { + new (config: QueryEngineConfig, logger: (log: string) => void, adapter?: ErrorCapturingSqlDriverAdapter): QueryEngineInstance; +} + +declare type QueryEngineInstance = { + connect(headers: string, requestId: string): Promise; + disconnect(headers: string, requestId: string): Promise; + /** + * @param requestStr JSON.stringified `QueryEngineRequest | QueryEngineBatchRequest` + * @param headersStr JSON.stringified `QueryEngineRequestHeaders` + */ + query(requestStr: string, headersStr: string, transactionId: string | undefined, requestId: string): Promise; + sdlSchema?(): Promise; + startTransaction(options: string, traceHeaders: string, requestId: string): Promise; + commitTransaction(id: string, traceHeaders: string, requestId: string): Promise; + rollbackTransaction(id: string, traceHeaders: string, requestId: string): Promise; + metrics?(options: string): Promise; + applyPendingMigrations?(): Promise; + trace(requestId: string): Promise; +}; + +declare type QueryEngineLogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'off'; + +declare type QueryEngineProtocol = 'graphql' | 'json'; + +declare type QueryEngineRequest = { + query: string; + variables: Object; +}; + +declare type QueryEngineResultData = { + data: T; +}; + +declare type QueryEvent = { + timestamp: Date; + query: string; + params: string; + duration: number; + target: string; +}; + +declare type QueryEventType = 'query'; + +declare type QueryIntrospectionBuiltinType = 'int' | 'bigint' | 'float' | 'double' | 'string' | 'enum' | 'bytes' | 'bool' | 'char' | 'decimal' | 'json' | 'xml' | 'uuid' | 'datetime' | 'date' | 'time' | 'int-array' | 'bigint-array' | 'float-array' | 'double-array' | 'string-array' | 'char-array' | 'bytes-array' | 'bool-array' | 'decimal-array' | 'json-array' | 'xml-array' | 'uuid-array' | 'datetime-array' | 'date-array' | 'time-array' | 'null' | 'unknown'; + +declare type QueryMiddleware = (params: QueryMiddlewareParams, next: (params: QueryMiddlewareParams) => Promise) => Promise; + +declare type QueryMiddlewareParams = { + /** The model this is executed on */ + model?: string; + /** The action that is being handled */ + action: Action; + /** TODO what is this */ + dataPath: string[]; + /** TODO what is this */ + runInTransaction: boolean; + args?: UserArgs_2; +}; + +export declare type QueryOptions = { + query: { + [ModelName in string]: { + [ModelAction in string]: ModelQueryOptionsCb; + } | QueryOptionsCb; + }; +}; + +export declare type QueryOptionsCb = (args: QueryOptionsCbArgs) => Promise; + +export declare type QueryOptionsCbArgs = { + model?: string; + operation: string; + args: JsArgs | RawQueryArgs; + query: (args: JsArgs | RawQueryArgs) => Promise; +}; + +declare type QueryOutput = ReadonlyDeep_2<{ + name: string; + isRequired: boolean; + isList: boolean; +}>; + +/** + * Create raw SQL statement. + */ +export declare function raw(value: string): Sql; + +export declare type RawParameters = { + __prismaRawParameters__: true; + values: string; +}; + +export declare type RawQueryArgs = Sql | UnknownTypedSql | [query: string, ...values: RawValue[]]; + +declare type RawResponse = { + columns: string[]; + types: QueryIntrospectionBuiltinType[]; + rows: unknown[][]; +}; + +declare type RawTaggedValue = { + $type: 'Raw'; + value: unknown; +}; + +/** + * Supported value or SQL instance. + */ +export declare type RawValue = Value | Sql; + +export declare type ReadonlyDeep = { + readonly [K in keyof T]: ReadonlyDeep; +}; + +declare type ReadonlyDeep_2 = { + +readonly [K in keyof O]: ReadonlyDeep_2; +}; + +declare type Record_2 = { + [P in T]: U; +}; +export { Record_2 as Record } + +export declare type RenameAndNestPayloadKeys

= { + [K in keyof P as K extends 'scalars' | 'objects' | 'composites' ? keyof P[K] : never]: P[K]; +}; + +declare type RequestBatchOptions = { + transaction?: TransactionOptions_3; + traceparent?: string; + numTry?: number; + containsWrite: boolean; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare interface RequestError { + error: string; + user_facing_error: { + is_panic: boolean; + message: string; + meta?: Record; + error_code?: string; + batch_request_idx?: number; + }; +} + +declare class RequestHandler { + client: Client; + dataloader: DataLoader; + private logEmitter?; + constructor(client: Client, logEmitter?: LogEmitter); + request(params: RequestParams): Promise; + mapQueryEngineResult({ dataPath, unpacker }: RequestParams, response: QueryEngineResultData): any; + /** + * Handles the error and logs it, logging the error is done synchronously waiting for the event + * handlers to finish. + */ + handleAndLogRequestError(params: HandleErrorParams): never; + handleRequestError({ error, clientMethod, callsite, transaction, args, modelName, globalOmit, }: HandleErrorParams): never; + sanitizeMessage(message: any): any; + unpack(data: unknown, dataPath: string[], unpacker?: Unpacker): any; + get [Symbol.toStringTag](): string; +} + +declare type RequestOptions = { + traceparent?: string; + numTry?: number; + interactiveTransaction?: InteractiveTransactionOptions; + isWrite: boolean; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type RequestParams = { + modelName?: string; + action: Action; + protocolQuery: JsonQuery; + dataPath: string[]; + clientMethod: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + extensions: MergedExtensionsList; + args?: any; + headers?: Record; + unpacker?: Unpacker; + otelParentCtx?: Context; + otelChildCtx?: Context; + globalOmit?: GlobalOmitOptions; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type RequiredExtensionArgs = NameArgs & ResultArgs & ModelArgs & ClientArgs & QueryOptions; +export { RequiredExtensionArgs } +export { RequiredExtensionArgs as UserArgs } + +export declare type RequiredKeys = { + [K in keyof O]-?: {} extends Pick_2 ? never : K; +}[keyof O]; + +declare function resolveDatasourceUrl({ inlineDatasources, overrideDatasources, env, clientVersion, }: { + inlineDatasources: GetPrismaClientConfig['inlineDatasources']; + overrideDatasources: Datasources; + env: Record; + clientVersion: string; +}): string; + +export declare type Result = T extends { + [K: symbol]: { + types: { + payload: any; + }; + }; +} ? GetResult : GetResult<{ + composites: {}; + objects: {}; + scalars: {}; + name: ''; +}, {}, F>; + +export declare type Result_2 = Result; + +declare namespace Result_3 { + export { + Count, + GetFindResult, + SelectablePayloadFields, + SelectField, + DefaultSelection, + UnwrapPayload, + ApplyOmit, + OmitValue, + GetCountResult, + Aggregate, + GetAggregateResult, + GetBatchResult, + GetGroupByResult, + GetResult, + ExtractGlobalOmit + } +} + +declare type Result_4 = { + map(fn: (value: T) => U): Result_4; + flatMap(fn: (value: T) => Result_4): Result_4; +} & ({ + readonly ok: true; + readonly value: T; +} | { + readonly ok: false; + readonly error: Error_2; +}); + +export declare type ResultArg = { + [FieldName in string]: ResultFieldDefinition; +}; + +export declare type ResultArgs = { + result: { + [ModelName in string]: ResultArg; + }; +}; + +export declare type ResultArgsFieldCompute = (model: any) => unknown; + +export declare type ResultFieldDefinition = { + needs?: { + [FieldName in string]: boolean; + }; + compute: ResultArgsFieldCompute; +}; + +export declare type Return = T extends (...args: any[]) => infer R ? R : T; + +export declare type RuntimeDataModel = { + readonly models: Record; + readonly enums: Record; + readonly types: Record; +}; + +declare type RuntimeEnum = Omit; + +declare type RuntimeModel = Omit; + +declare type RuntimeName = 'workerd' | 'deno' | 'netlify' | 'node' | 'bun' | 'edge-light' | ''; + +declare type Schema = ReadonlyDeep_2<{ + rootQueryType?: string; + rootMutationType?: string; + inputObjectTypes: { + model?: InputType[]; + prisma: InputType[]; + }; + outputObjectTypes: { + model: OutputType[]; + prisma: OutputType[]; + }; + enumTypes: { + model?: SchemaEnum[]; + prisma: SchemaEnum[]; + }; + fieldRefTypes: { + prisma?: FieldRefType[]; + }; +}>; + +declare type SchemaArg = ReadonlyDeep_2<{ + name: string; + comment?: string; + isNullable: boolean; + isRequired: boolean; + inputTypes: InputTypeRef[]; + deprecation?: Deprecation; +}>; + +declare type SchemaEnum = ReadonlyDeep_2<{ + name: string; + values: string[]; +}>; + +declare type SchemaField = ReadonlyDeep_2<{ + name: string; + isNullable?: boolean; + outputType: OutputTypeRef; + args: SchemaArg[]; + deprecation?: Deprecation; + documentation?: string; +}>; + +export declare type Select = T extends U ? T : never; + +export declare type SelectablePayloadFields = { + objects: { + [k in K]: O; + }; +} | { + composites: { + [k in K]: O; + }; +}; + +export declare type SelectField

, K extends PropertyKey> = P extends { + objects: Record; +} ? P['objects'][K] : P extends { + composites: Record; +} ? P['composites'][K] : never; + +declare type Selection_2 = Record; +export { Selection_2 as Selection } + +export declare function serializeJsonQuery({ modelName, action, args, runtimeDataModel, extensions, callsite, clientMethod, errorFormat, clientVersion, previewFeatures, globalOmit, }: SerializeParams): JsonQuery; + +declare type SerializeParams = { + runtimeDataModel: RuntimeDataModel; + modelName?: string; + action: Action; + args?: JsArgs; + extensions?: MergedExtensionsList; + callsite?: CallSite; + clientMethod: string; + clientVersion: string; + errorFormat: ErrorFormat; + previewFeatures: string[]; + globalOmit?: GlobalOmitOptions; +}; + +declare class Skip { + constructor(param?: symbol); + ifUndefined(value: T | undefined): T | Skip; +} + +export declare const skip: Skip; + +declare type SortOrder = 'asc' | 'desc'; + +/** + * An interface that represents a span. A span represents a single operation + * within a trace. Examples of span might include remote procedure calls or a + * in-process function calls to sub-components. A Trace has a single, top-level + * "root" Span that in turn may have zero or more child Spans, which in turn + * may have children. + * + * Spans are created by the {@link Tracer.startSpan} method. + */ +declare interface Span { + /** + * Returns the {@link SpanContext} object associated with this Span. + * + * Get an immutable, serializable identifier for this span that can be used + * to create new child spans. Returned SpanContext is usable even after the + * span ends. + * + * @returns the SpanContext object associated with this Span. + */ + spanContext(): SpanContext; + /** + * Sets an attribute to the span. + * + * Sets a single Attribute with the key and value passed as arguments. + * + * @param key the key for this attribute. + * @param value the value for this attribute. Setting a value null or + * undefined is invalid and will result in undefined behavior. + */ + setAttribute(key: string, value: SpanAttributeValue): this; + /** + * Sets attributes to the span. + * + * @param attributes the attributes that will be added. + * null or undefined attribute values + * are invalid and will result in undefined behavior. + */ + setAttributes(attributes: SpanAttributes): this; + /** + * Adds an event to the Span. + * + * @param name the name of the event. + * @param [attributesOrStartTime] the attributes that will be added; these are + * associated with this event. Can be also a start time + * if type is {@type TimeInput} and 3rd param is undefined + * @param [startTime] start time of the event. + */ + addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this; + /** + * Adds a single link to the span. + * + * Links added after the creation will not affect the sampling decision. + * It is preferred span links be added at span creation. + * + * @param link the link to add. + */ + addLink(link: Link): this; + /** + * Adds multiple links to the span. + * + * Links added after the creation will not affect the sampling decision. + * It is preferred span links be added at span creation. + * + * @param links the links to add. + */ + addLinks(links: Link[]): this; + /** + * Sets a status to the span. If used, this will override the default Span + * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value + * of previous calls to SetStatus on the Span. + * + * @param status the SpanStatus to set. + */ + setStatus(status: SpanStatus): this; + /** + * Updates the Span name. + * + * This will override the name provided via {@link Tracer.startSpan}. + * + * Upon this update, any sampling behavior based on Span name will depend on + * the implementation. + * + * @param name the Span name. + */ + updateName(name: string): this; + /** + * Marks the end of Span execution. + * + * Call to End of a Span MUST not have any effects on child spans. Those may + * still be running and can be ended later. + * + * Do not return `this`. The Span generally should not be used after it + * is ended so chaining is not desired in this context. + * + * @param [endTime] the time to set as Span's end time. If not provided, + * use the current time as the span's end time. + */ + end(endTime?: TimeInput): void; + /** + * Returns the flag whether this span will be recorded. + * + * @returns true if this Span is active and recording information like events + * with the `AddEvent` operation and attributes using `setAttributes`. + */ + isRecording(): boolean; + /** + * Sets exception as a span event + * @param exception the exception the only accepted values are string or Error + * @param [time] the time to set as Span's event time. If not provided, + * use the current time. + */ + recordException(exception: Exception, time?: TimeInput): void; +} + +/** + * @deprecated please use {@link Attributes} + */ +declare type SpanAttributes = Attributes; + +/** + * @deprecated please use {@link AttributeValue} + */ +declare type SpanAttributeValue = AttributeValue; + +declare type SpanCallback = (span?: Span, context?: Context) => R; + +/** + * A SpanContext represents the portion of a {@link Span} which must be + * serialized and propagated along side of a {@link Baggage}. + */ +declare interface SpanContext { + /** + * The ID of the trace that this span belongs to. It is worldwide unique + * with practically sufficient probability by being made as 16 randomly + * generated bytes, encoded as a 32 lowercase hex characters corresponding to + * 128 bits. + */ + traceId: string; + /** + * The ID of the Span. It is globally unique with practically sufficient + * probability by being made as 8 randomly generated bytes, encoded as a 16 + * lowercase hex characters corresponding to 64 bits. + */ + spanId: string; + /** + * Only true if the SpanContext was propagated from a remote parent. + */ + isRemote?: boolean; + /** + * Trace flags to propagate. + * + * It is represented as 1 byte (bitmap). Bit to represent whether trace is + * sampled or not. When set, the least significant bit documents that the + * caller may have recorded trace data. A caller who does not record trace + * data out-of-band leaves this flag unset. + * + * see {@link TraceFlags} for valid flag values. + */ + traceFlags: number; + /** + * Tracing-system-specific info to propagate. + * + * The tracestate field value is a `list` as defined below. The `list` is a + * series of `list-members` separated by commas `,`, and a list-member is a + * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs + * surrounding `list-members` are ignored. There can be a maximum of 32 + * `list-members` in a `list`. + * More Info: https://www.w3.org/TR/trace-context/#tracestate-field + * + * Examples: + * Single tracing system (generic format): + * tracestate: rojo=00f067aa0ba902b7 + * Multiple tracing systems (with different formatting): + * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE + */ + traceState?: TraceState; +} + +declare enum SpanKind { + /** Default value. Indicates that the span is used internally. */ + INTERNAL = 0, + /** + * Indicates that the span covers server-side handling of an RPC or other + * remote request. + */ + SERVER = 1, + /** + * Indicates that the span covers the client-side wrapper around an RPC or + * other remote request. + */ + CLIENT = 2, + /** + * Indicates that the span describes producer sending a message to a + * broker. Unlike client and server, there is no direct critical path latency + * relationship between producer and consumer spans. + */ + PRODUCER = 3, + /** + * Indicates that the span describes consumer receiving a message from a + * broker. Unlike client and server, there is no direct critical path latency + * relationship between producer and consumer spans. + */ + CONSUMER = 4 +} + +/** + * Options needed for span creation + */ +declare interface SpanOptions { + /** + * The SpanKind of a span + * @default {@link SpanKind.INTERNAL} + */ + kind?: SpanKind; + /** A span's attributes */ + attributes?: SpanAttributes; + /** {@link Link}s span to other spans */ + links?: Link[]; + /** A manually specified start time for the created `Span` object. */ + startTime?: TimeInput; + /** The new span should be a root span. (Ignore parent from context). */ + root?: boolean; +} + +declare interface SpanStatus { + /** The status code of this message. */ + code: SpanStatusCode; + /** A developer-facing error message. */ + message?: string; +} + +/** + * An enumeration of status codes. + */ +declare enum SpanStatusCode { + /** + * The default status. + */ + UNSET = 0, + /** + * The operation has been validated by an Application developer or + * Operator to have completed successfully. + */ + OK = 1, + /** + * The operation contains an error. + */ + ERROR = 2 +} + +/** + * A SQL instance can be nested within each other to build SQL strings. + */ +export declare class Sql { + readonly values: Value[]; + readonly strings: string[]; + constructor(rawStrings: readonly string[], rawValues: readonly RawValue[]); + get sql(): string; + get statement(): string; + get text(): string; + inspect(): { + sql: string; + statement: string; + text: string; + values: unknown[]; + }; +} + +declare interface SqlDriverAdapter extends SqlQueryable { + /** + * Execute multiple SQL statements separated by semicolon. + */ + executeScript(script: string): Promise; + /** + * Start new transaction. + */ + startTransaction(isolationLevel?: IsolationLevel): Promise; + /** + * Optional method that returns extra connection info + */ + getConnectionInfo?(): ConnectionInfo; + /** + * Dispose of the connection and release any resources. + */ + dispose(): Promise; +} + +export declare interface SqlDriverAdapterFactory extends DriverAdapterFactory { + connect(): Promise; +} + +declare type SqlQuery = { + sql: string; + args: Array; + argTypes: Array; +}; + +declare interface SqlQueryable extends Queryable { +} + +declare interface SqlResultSet { + /** + * List of column types appearing in a database query, in the same order as `columnNames`. + * They are used within the Query Engine to convert values from JS to Quaint values. + */ + columnTypes: Array; + /** + * List of column names appearing in a database query, in the same order as `columnTypes`. + */ + columnNames: Array; + /** + * List of rows retrieved from a database query. + * Each row is a list of values, whose length matches `columnNames` and `columnTypes`. + */ + rows: Array>; + /** + * The last ID of an `INSERT` statement, if any. + * This is required for `AUTO_INCREMENT` columns in databases based on MySQL and SQLite. + */ + lastInsertId?: string; +} + +/** + * Create a SQL object from a template string. + */ +export declare function sqltag(strings: readonly string[], ...values: readonly RawValue[]): Sql; + +/** + * Defines TimeInput. + * + * hrtime, epoch milliseconds, performance.now() or Date + */ +declare type TimeInput = HrTime_2 | number | Date; + +export declare type ToTuple = T extends any[] ? T : [T]; + +declare interface TraceState { + /** + * Create a new TraceState which inherits from this TraceState and has the + * given key set. + * The new entry will always be added in the front of the list of states. + * + * @param key key of the TraceState entry. + * @param value value of the TraceState entry. + */ + set(key: string, value: string): TraceState; + /** + * Return a new TraceState which inherits from this TraceState but does not + * contain the given key. + * + * @param key the key for the TraceState entry to be removed. + */ + unset(key: string): TraceState; + /** + * Returns the value to which the specified key is mapped, or `undefined` if + * this map contains no mapping for the key. + * + * @param key with which the specified value is to be associated. + * @returns the value to which the specified key is mapped, or `undefined` if + * this map contains no mapping for the key. + */ + get(key: string): string | undefined; + /** + * Serializes the TraceState to a `list` as defined below. The `list` is a + * series of `list-members` separated by commas `,`, and a list-member is a + * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs + * surrounding `list-members` are ignored. There can be a maximum of 32 + * `list-members` in a `list`. + * + * @returns the serialized string. + */ + serialize(): string; +} + +declare interface TracingHelper { + isEnabled(): boolean; + getTraceParent(context?: Context): string; + dispatchEngineSpans(spans: EngineSpan[]): void; + getActiveContext(): Context | undefined; + runInChildSpan(nameOrOptions: string | ExtendedSpanOptions, callback: SpanCallback): R; +} + +declare interface Transaction extends AdapterInfo, SqlQueryable { + /** + * Transaction options. + */ + readonly options: TransactionOptions; + /** + * Commit the transaction. + */ + commit(): Promise; + /** + * Roll back the transaction. + */ + rollback(): Promise; +} + +declare namespace Transaction_2 { + export { + TransactionOptions_2 as Options, + InteractiveTransactionInfo, + TransactionHeaders + } +} + +declare type TransactionHeaders = { + traceparent?: string; +}; + +declare type TransactionOptions = { + usePhantomQuery: boolean; +}; + +declare type TransactionOptions_2 = { + maxWait?: number; + timeout?: number; + isolationLevel?: IsolationLevel; +}; + +declare type TransactionOptions_3 = { + kind: 'itx'; + options: InteractiveTransactionOptions; +} | { + kind: 'batch'; + options: BatchTransactionOptions; +}; + +export declare class TypedSql { + [PrivateResultType]: Result; + constructor(sql: string, values: Values); + get sql(): string; + get values(): Values; +} + +export declare type TypeMapCbDef = Fn<{ + extArgs: InternalArgs; +}, TypeMapDef>; + +/** Shared */ +export declare type TypeMapDef = Record; + +declare type TypeRef = { + isList: boolean; + type: string; + location: AllowedLocations; + namespace?: FieldNamespace; +}; + +declare namespace Types { + export { + Result_3 as Result, + Extensions_2 as Extensions, + Utils, + Public_2 as Public, + isSkip, + Skip, + skip, + UnknownTypedSql, + OperationPayload as Payload + } +} +export { Types } + +declare type uniqueIndex = ReadonlyDeep_2<{ + name: string; + fields: string[]; +}>; + +declare type UnknownErrorParams = { + clientVersion: string; + batchRequestIdx?: number; +}; + +export declare type UnknownTypedSql = TypedSql; + +declare type Unpacker = (data: any) => any; + +export declare type UnwrapPayload

= {} extends P ? unknown : { + [K in keyof P]: P[K] extends { + scalars: infer S; + composites: infer C; + }[] ? Array> : P[K] extends { + scalars: infer S; + composites: infer C; + } | null ? S & UnwrapPayload | Select : never; +}; + +export declare type UnwrapPromise

= P extends Promise ? R : P; + +export declare type UnwrapTuple = { + [K in keyof Tuple]: K extends `${number}` ? Tuple[K] extends PrismaPromise ? X : UnwrapPromise : UnwrapPromise; +}; + +/** + * Input that flows from the user into the Client. + */ +declare type UserArgs_2 = any; + +declare namespace Utils { + export { + EmptyToUnknown, + NeverToUnknown, + PatchFlat, + Omit_2 as Omit, + Pick_2 as Pick, + ComputeDeep, + Compute, + OptionalFlat, + ReadonlyDeep, + Narrowable, + Narrow, + Exact, + Cast, + Record_2 as Record, + UnwrapPromise, + UnwrapTuple, + Path, + Fn, + Call, + RequiredKeys, + OptionalKeys, + Optional, + Return, + ToTuple, + RenameAndNestPayloadKeys, + PayloadToResult, + Select, + Equals, + Or, + JsPromise + } +} + +declare function validator(): (select: Exact) => S; + +declare function validator, O extends keyof C[M] & Operation>(client: C, model: M, operation: O): (select: Exact>) => S; + +declare function validator, O extends keyof C[M] & Operation, P extends keyof Args>(client: C, model: M, operation: O, prop: P): (select: Exact[P]>) => S; + +/** + * Values supported by SQL engine. + */ +export declare type Value = unknown; + +export declare function warnEnvConflicts(envPaths: any): void; + +export declare const warnOnce: (key: string, message: string, ...args: unknown[]) => void; + +export { } diff --git a/src/lib/generated/prisma/runtime/library.js b/src/lib/generated/prisma/runtime/library.js new file mode 100644 index 0000000..6d574e4 --- /dev/null +++ b/src/lib/generated/prisma/runtime/library.js @@ -0,0 +1,143 @@ +"use strict";var bu=Object.create;var qt=Object.defineProperty;var Eu=Object.getOwnPropertyDescriptor;var wu=Object.getOwnPropertyNames;var xu=Object.getPrototypeOf,vu=Object.prototype.hasOwnProperty;var Do=(e,r)=>()=>(e&&(r=e(e=0)),r);var ne=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),tr=(e,r)=>{for(var t in r)qt(e,t,{get:r[t],enumerable:!0})},_o=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of wu(r))!vu.call(e,i)&&i!==t&&qt(e,i,{get:()=>r[i],enumerable:!(n=Eu(r,i))||n.enumerable});return e};var k=(e,r,t)=>(t=e!=null?bu(xu(e)):{},_o(r||!e||!e.__esModule?qt(t,"default",{value:e,enumerable:!0}):t,e)),Pu=e=>_o(qt({},"__esModule",{value:!0}),e);var mi=ne((_g,ss)=>{"use strict";ss.exports=(e,r=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",n=r.indexOf(t+e),i=r.indexOf("--");return n!==-1&&(i===-1||n{"use strict";var Mc=require("node:os"),as=require("node:tty"),de=mi(),{env:G}=process,Qe;de("no-color")||de("no-colors")||de("color=false")||de("color=never")?Qe=0:(de("color")||de("colors")||de("color=true")||de("color=always"))&&(Qe=1);"FORCE_COLOR"in G&&(G.FORCE_COLOR==="true"?Qe=1:G.FORCE_COLOR==="false"?Qe=0:Qe=G.FORCE_COLOR.length===0?1:Math.min(parseInt(G.FORCE_COLOR,10),3));function fi(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function gi(e,r){if(Qe===0)return 0;if(de("color=16m")||de("color=full")||de("color=truecolor"))return 3;if(de("color=256"))return 2;if(e&&!r&&Qe===void 0)return 0;let t=Qe||0;if(G.TERM==="dumb")return t;if(process.platform==="win32"){let n=Mc.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in G)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in G)||G.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in G)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(G.TEAMCITY_VERSION)?1:0;if(G.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in G){let n=parseInt((G.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(G.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(G.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(G.TERM)||"COLORTERM"in G?1:t}function $c(e){let r=gi(e,e&&e.isTTY);return fi(r)}ls.exports={supportsColor:$c,stdout:fi(gi(!0,as.isatty(1))),stderr:fi(gi(!0,as.isatty(2)))}});var ds=ne((Lg,ps)=>{"use strict";var qc=us(),br=mi();function cs(e){if(/^\d{3,4}$/.test(e)){let t=/(\d{1,2})(\d{2})/.exec(e)||[];return{major:0,minor:parseInt(t[1],10),patch:parseInt(t[2],10)}}let r=(e||"").split(".").map(t=>parseInt(t,10));return{major:r[0],minor:r[1],patch:r[2]}}function hi(e){let{CI:r,FORCE_HYPERLINK:t,NETLIFY:n,TEAMCITY_VERSION:i,TERM_PROGRAM:o,TERM_PROGRAM_VERSION:s,VTE_VERSION:a,TERM:l}=process.env;if(t)return!(t.length>0&&parseInt(t,10)===0);if(br("no-hyperlink")||br("no-hyperlinks")||br("hyperlink=false")||br("hyperlink=never"))return!1;if(br("hyperlink=true")||br("hyperlink=always")||n)return!0;if(!qc.supportsColor(e)||e&&!e.isTTY)return!1;if("WT_SESSION"in process.env)return!0;if(process.platform==="win32"||r||i)return!1;if(o){let u=cs(s||"");switch(o){case"iTerm.app":return u.major===3?u.minor>=1:u.major>3;case"WezTerm":return u.major>=20200620;case"vscode":return u.major>1||u.major===1&&u.minor>=72;case"ghostty":return!0}}if(a){if(a==="0.50.0")return!1;let u=cs(a);return u.major>0||u.minor>=50}switch(l){case"alacritty":return!0}return!1}ps.exports={supportsHyperlink:hi,stdout:hi(process.stdout),stderr:hi(process.stderr)}});var ms=ne((Hg,jc)=>{jc.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Ei=ne((zg,Uc)=>{Uc.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var wi=ne(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.enginesVersion=void 0;Xt.enginesVersion=Ei().prisma.enginesVersion});var bs=ne((hh,ys)=>{"use strict";ys.exports=e=>{let r=e.match(/^[ \t]*(?=\S)/gm);return r?r.reduce((t,n)=>Math.min(t,n.length),1/0):0}});var Ri=ne((Eh,xs)=>{"use strict";xs.exports=(e,r=1,t)=>{if(t={indent:" ",includeEmptyLines:!1,...t},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof r!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof r}\``);if(typeof t.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof t.indent}\``);if(r===0)return e;let n=t.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,t.indent.repeat(r))}});var Ss=ne((vh,Ts)=>{"use strict";Ts.exports=({onlyFirst:e=!1}={})=>{let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}});var ki=ne((Ph,Rs)=>{"use strict";var Xc=Ss();Rs.exports=e=>typeof e=="string"?e.replace(Xc(),""):e});var Cs=ne((Ch,ep)=>{ep.exports={name:"dotenv",version:"16.4.7",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var Os=ne((Ah,Ne)=>{"use strict";var Di=require("node:fs"),_i=require("node:path"),rp=require("node:os"),tp=require("node:crypto"),np=Cs(),Ni=np.version,ip=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function op(e){let r={},t=e.toString();t=t.replace(/\r\n?/mg,` +`);let n;for(;(n=ip.exec(t))!=null;){let i=n[1],o=n[2]||"";o=o.trim();let s=o[0];o=o.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),s==='"'&&(o=o.replace(/\\n/g,` +`),o=o.replace(/\\r/g,"\r")),r[i]=o}return r}function sp(e){let r=ks(e),t=B.configDotenv({path:r});if(!t.parsed){let s=new Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`);throw s.code="MISSING_DATA",s}let n=Is(e).split(","),i=n.length,o;for(let s=0;s=i)throw a}return B.parse(o)}function ap(e){console.log(`[dotenv@${Ni}][INFO] ${e}`)}function lp(e){console.log(`[dotenv@${Ni}][WARN] ${e}`)}function tn(e){console.log(`[dotenv@${Ni}][DEBUG] ${e}`)}function Is(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function up(e,r){let t;try{t=new URL(r)}catch(a){if(a.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw a}let n=t.password;if(!n){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let i=t.searchParams.get("environment");if(!i){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let o=`DOTENV_VAULT_${i.toUpperCase()}`,s=e.parsed[o];if(!s){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:s,key:n}}function ks(e){let r=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let t of e.path)Di.existsSync(t)&&(r=t.endsWith(".vault")?t:`${t}.vault`);else r=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else r=_i.resolve(process.cwd(),".env.vault");return Di.existsSync(r)?r:null}function As(e){return e[0]==="~"?_i.join(rp.homedir(),e.slice(1)):e}function cp(e){ap("Loading env from encrypted .env.vault");let r=B._parseVault(e),t=process.env;return e&&e.processEnv!=null&&(t=e.processEnv),B.populate(t,r,e),{parsed:r}}function pp(e){let r=_i.resolve(process.cwd(),".env"),t="utf8",n=!!(e&&e.debug);e&&e.encoding?t=e.encoding:n&&tn("No encoding is specified. UTF-8 is used by default");let i=[r];if(e&&e.path)if(!Array.isArray(e.path))i=[As(e.path)];else{i=[];for(let l of e.path)i.push(As(l))}let o,s={};for(let l of i)try{let u=B.parse(Di.readFileSync(l,{encoding:t}));B.populate(s,u,e)}catch(u){n&&tn(`Failed to load ${l} ${u.message}`),o=u}let a=process.env;return e&&e.processEnv!=null&&(a=e.processEnv),B.populate(a,s,e),o?{parsed:s,error:o}:{parsed:s}}function dp(e){if(Is(e).length===0)return B.configDotenv(e);let r=ks(e);return r?B._configVault(e):(lp(`You set DOTENV_KEY but you are missing a .env.vault file at ${r}. Did you forget to build it?`),B.configDotenv(e))}function mp(e,r){let t=Buffer.from(r.slice(-64),"hex"),n=Buffer.from(e,"base64"),i=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let s=tp.createDecipheriv("aes-256-gcm",t,i);return s.setAuthTag(o),`${s.update(n)}${s.final()}`}catch(s){let a=s instanceof RangeError,l=s.message==="Invalid key length",u=s.message==="Unsupported state or unable to authenticate data";if(a||l){let c=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw c.code="INVALID_DOTENV_KEY",c}else if(u){let c=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw c.code="DECRYPTION_FAILED",c}else throw s}}function fp(e,r,t={}){let n=!!(t&&t.debug),i=!!(t&&t.override);if(typeof r!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(r))Object.prototype.hasOwnProperty.call(e,o)?(i===!0&&(e[o]=r[o]),n&&tn(i===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=r[o]}var B={configDotenv:pp,_configVault:cp,_parseVault:sp,config:dp,decrypt:mp,parse:op,populate:fp};Ne.exports.configDotenv=B.configDotenv;Ne.exports._configVault=B._configVault;Ne.exports._parseVault=B._parseVault;Ne.exports.config=B.config;Ne.exports.decrypt=B.decrypt;Ne.exports.parse=B.parse;Ne.exports.populate=B.populate;Ne.exports=B});var Ls=ne((Nh,on)=>{"use strict";on.exports=(e={})=>{let r;if(e.repoUrl)r=e.repoUrl;else if(e.user&&e.repo)r=`https://github.com/${e.user}/${e.repo}`;else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options");let t=new URL(`${r}/issues/new`),n=["body","title","labels","template","milestone","assignee","projects"];for(let i of n){let o=e[i];if(o!==void 0){if(i==="labels"||i==="projects"){if(!Array.isArray(o))throw new TypeError(`The \`${i}\` option should be an array`);o=o.join(",")}t.searchParams.set(i,o)}}return t.toString()};on.exports.default=on.exports});var Qi=ne((pb,ia)=>{"use strict";ia.exports=function(){function e(r,t,n,i,o){return rn?n+1:r+1:i===o?t:t+1}return function(r,t){if(r===t)return 0;if(r.length>t.length){var n=r;r=t,t=n}for(var i=r.length,o=t.length;i>0&&r.charCodeAt(i-1)===t.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict"});var ca=Do(()=>{"use strict"});var Vf={};tr(Vf,{DMMF:()=>lt,Debug:()=>N,Decimal:()=>ve,Extensions:()=>ei,MetricsClient:()=>Lr,PrismaClientInitializationError:()=>T,PrismaClientKnownRequestError:()=>z,PrismaClientRustPanicError:()=>le,PrismaClientUnknownRequestError:()=>j,PrismaClientValidationError:()=>Z,Public:()=>ri,Sql:()=>oe,createParam:()=>Ra,defineDmmfProperty:()=>Da,deserializeJsonResponse:()=>Tr,deserializeRawResult:()=>Yn,dmmfToRuntimeDataModel:()=>Zs,empty:()=>La,getPrismaClient:()=>gu,getRuntime:()=>qn,join:()=>Na,makeStrictEnum:()=>hu,makeTypedQueryFactory:()=>_a,objectEnumValues:()=>Sn,raw:()=>eo,serializeJsonQuery:()=>Dn,skip:()=>On,sqltag:()=>ro,warnEnvConflicts:()=>yu,warnOnce:()=>ot});module.exports=Pu(Vf);var ei={};tr(ei,{defineExtension:()=>No,getExtensionContext:()=>Lo});function No(e){return typeof e=="function"?e:r=>r.$extends(e)}function Lo(e){return e}var ri={};tr(ri,{validator:()=>Fo});function Fo(...e){return r=>r}var jt={};tr(jt,{$:()=>Vo,bgBlack:()=>_u,bgBlue:()=>Mu,bgCyan:()=>qu,bgGreen:()=>Lu,bgMagenta:()=>$u,bgRed:()=>Nu,bgWhite:()=>ju,bgYellow:()=>Fu,black:()=>Iu,blue:()=>nr,bold:()=>W,cyan:()=>Oe,dim:()=>Ie,gray:()=>Hr,green:()=>qe,grey:()=>Du,hidden:()=>Cu,inverse:()=>Ru,italic:()=>Su,magenta:()=>ku,red:()=>ce,reset:()=>Tu,strikethrough:()=>Au,underline:()=>Y,white:()=>Ou,yellow:()=>ke});var ti,Mo,$o,qo,jo=!0;typeof process<"u"&&({FORCE_COLOR:ti,NODE_DISABLE_COLORS:Mo,NO_COLOR:$o,TERM:qo}=process.env||{},jo=process.stdout&&process.stdout.isTTY);var Vo={enabled:!Mo&&$o==null&&qo!=="dumb"&&(ti!=null&&ti!=="0"||jo)};function F(e,r){let t=new RegExp(`\\x1b\\[${r}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${r}m`;return function(o){return!Vo.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(t,i+n):o)+i}}var Tu=F(0,0),W=F(1,22),Ie=F(2,22),Su=F(3,23),Y=F(4,24),Ru=F(7,27),Cu=F(8,28),Au=F(9,29),Iu=F(30,39),ce=F(31,39),qe=F(32,39),ke=F(33,39),nr=F(34,39),ku=F(35,39),Oe=F(36,39),Ou=F(37,39),Hr=F(90,39),Du=F(90,39),_u=F(40,49),Nu=F(41,49),Lu=F(42,49),Fu=F(43,49),Mu=F(44,49),$u=F(45,49),qu=F(46,49),ju=F(47,49);var Vu=100,Bo=["green","yellow","blue","magenta","cyan","red"],Kr=[],Uo=Date.now(),Bu=0,ni=typeof process<"u"?process.env:{};globalThis.DEBUG??=ni.DEBUG??"";globalThis.DEBUG_COLORS??=ni.DEBUG_COLORS?ni.DEBUG_COLORS==="true":!0;var Yr={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let r=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),t=r.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=r.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return t&&!n},log:(...e)=>{let[r,t,...n]=e;(console.warn??console.log)(`${r} ${t}`,...n)},formatters:{}};function Uu(e){let r={color:Bo[Bu++%Bo.length],enabled:Yr.enabled(e),namespace:e,log:Yr.log,extend:()=>{}},t=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=r;if(n.length!==0&&Kr.push([o,...n]),Kr.length>Vu&&Kr.shift(),Yr.enabled(o)||i){let l=n.map(c=>typeof c=="string"?c:Gu(c)),u=`+${Date.now()-Uo}ms`;Uo=Date.now(),globalThis.DEBUG_COLORS?a(jt[s](W(o)),...l,jt[s](u)):a(o,...l,u)}};return new Proxy(t,{get:(n,i)=>r[i],set:(n,i,o)=>r[i]=o})}var N=new Proxy(Uu,{get:(e,r)=>Yr[r],set:(e,r,t)=>Yr[r]=t});function Gu(e,r=2){let t=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(t.has(i))return"[Circular *]";t.add(i)}else if(typeof i=="bigint")return i.toString();return i},r)}function Go(e=7500){let r=Kr.map(([t,...n])=>`${t} ${n.map(i=>typeof i=="string"?i:JSON.stringify(i)).join(" ")}`).join(` +`);return r.length!!(e&&typeof e=="object"),Ut=e=>e&&!!e[De],Ee=(e,r,t)=>{if(Ut(e)){let n=e[De](),{matched:i,selections:o}=n.match(r);return i&&o&&Object.keys(o).forEach(s=>t(s,o[s])),i}if(si(e)){if(!si(r))return!1;if(Array.isArray(e)){if(!Array.isArray(r))return!1;let n=[],i=[],o=[];for(let s of e.keys()){let a=e[s];Ut(a)&&a[Qu]?o.push(a):o.length?i.push(a):n.push(a)}if(o.length){if(o.length>1)throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");if(r.lengthEe(u,s[c],t))&&i.every((u,c)=>Ee(u,a[c],t))&&(o.length===0||Ee(o[0],l,t))}return e.length===r.length&&e.every((s,a)=>Ee(s,r[a],t))}return Reflect.ownKeys(e).every(n=>{let i=e[n];return(n in r||Ut(o=i)&&o[De]().matcherType==="optional")&&Ee(i,r[n],t);var o})}return Object.is(r,e)},Ge=e=>{var r,t,n;return si(e)?Ut(e)?(r=(t=(n=e[De]()).getSelectionKeys)==null?void 0:t.call(n))!=null?r:[]:Array.isArray(e)?zr(e,Ge):zr(Object.values(e),Ge):[]},zr=(e,r)=>e.reduce((t,n)=>t.concat(r(n)),[]);function pe(e){return Object.assign(e,{optional:()=>Wu(e),and:r=>q(e,r),or:r=>Ju(e,r),select:r=>r===void 0?Jo(e):Jo(r,e)})}function Wu(e){return pe({[De]:()=>({match:r=>{let t={},n=(i,o)=>{t[i]=o};return r===void 0?(Ge(e).forEach(i=>n(i,void 0)),{matched:!0,selections:t}):{matched:Ee(e,r,n),selections:t}},getSelectionKeys:()=>Ge(e),matcherType:"optional"})})}function q(...e){return pe({[De]:()=>({match:r=>{let t={},n=(i,o)=>{t[i]=o};return{matched:e.every(i=>Ee(i,r,n)),selections:t}},getSelectionKeys:()=>zr(e,Ge),matcherType:"and"})})}function Ju(...e){return pe({[De]:()=>({match:r=>{let t={},n=(i,o)=>{t[i]=o};return zr(e,Ge).forEach(i=>n(i,void 0)),{matched:e.some(i=>Ee(i,r,n)),selections:t}},getSelectionKeys:()=>zr(e,Ge),matcherType:"or"})})}function C(e){return{[De]:()=>({match:r=>({matched:!!e(r)})})}}function Jo(...e){let r=typeof e[0]=="string"?e[0]:void 0,t=e.length===2?e[1]:typeof e[0]=="string"?void 0:e[0];return pe({[De]:()=>({match:n=>{let i={[r??Gt]:n};return{matched:t===void 0||Ee(t,n,(o,s)=>{i[o]=s}),selections:i}},getSelectionKeys:()=>[r??Gt].concat(t===void 0?[]:Ge(t))})})}function ye(e){return typeof e=="number"}function je(e){return typeof e=="string"}function Ve(e){return typeof e=="bigint"}var eg=pe(C(function(e){return!0}));var Be=e=>Object.assign(pe(e),{startsWith:r=>{return Be(q(e,(t=r,C(n=>je(n)&&n.startsWith(t)))));var t},endsWith:r=>{return Be(q(e,(t=r,C(n=>je(n)&&n.endsWith(t)))));var t},minLength:r=>Be(q(e,(t=>C(n=>je(n)&&n.length>=t))(r))),length:r=>Be(q(e,(t=>C(n=>je(n)&&n.length===t))(r))),maxLength:r=>Be(q(e,(t=>C(n=>je(n)&&n.length<=t))(r))),includes:r=>{return Be(q(e,(t=r,C(n=>je(n)&&n.includes(t)))));var t},regex:r=>{return Be(q(e,(t=r,C(n=>je(n)&&!!n.match(t)))));var t}}),rg=Be(C(je)),be=e=>Object.assign(pe(e),{between:(r,t)=>be(q(e,((n,i)=>C(o=>ye(o)&&n<=o&&i>=o))(r,t))),lt:r=>be(q(e,(t=>C(n=>ye(n)&&nbe(q(e,(t=>C(n=>ye(n)&&n>t))(r))),lte:r=>be(q(e,(t=>C(n=>ye(n)&&n<=t))(r))),gte:r=>be(q(e,(t=>C(n=>ye(n)&&n>=t))(r))),int:()=>be(q(e,C(r=>ye(r)&&Number.isInteger(r)))),finite:()=>be(q(e,C(r=>ye(r)&&Number.isFinite(r)))),positive:()=>be(q(e,C(r=>ye(r)&&r>0))),negative:()=>be(q(e,C(r=>ye(r)&&r<0)))}),tg=be(C(ye)),Ue=e=>Object.assign(pe(e),{between:(r,t)=>Ue(q(e,((n,i)=>C(o=>Ve(o)&&n<=o&&i>=o))(r,t))),lt:r=>Ue(q(e,(t=>C(n=>Ve(n)&&nUe(q(e,(t=>C(n=>Ve(n)&&n>t))(r))),lte:r=>Ue(q(e,(t=>C(n=>Ve(n)&&n<=t))(r))),gte:r=>Ue(q(e,(t=>C(n=>Ve(n)&&n>=t))(r))),positive:()=>Ue(q(e,C(r=>Ve(r)&&r>0))),negative:()=>Ue(q(e,C(r=>Ve(r)&&r<0)))}),ng=Ue(C(Ve)),ig=pe(C(function(e){return typeof e=="boolean"})),og=pe(C(function(e){return typeof e=="symbol"})),sg=pe(C(function(e){return e==null})),ag=pe(C(function(e){return e!=null}));var ai=class extends Error{constructor(r){let t;try{t=JSON.stringify(r)}catch{t=r}super(`Pattern matching error: no pattern matches value ${t}`),this.input=void 0,this.input=r}},li={matched:!1,value:void 0};function hr(e){return new ui(e,li)}var ui=class e{constructor(r,t){this.input=void 0,this.state=void 0,this.input=r,this.state=t}with(...r){if(this.state.matched)return this;let t=r[r.length-1],n=[r[0]],i;r.length===3&&typeof r[1]=="function"?i=r[1]:r.length>2&&n.push(...r.slice(1,r.length-1));let o=!1,s={},a=(u,c)=>{o=!0,s[u]=c},l=!n.some(u=>Ee(u,this.input,a))||i&&!i(this.input)?li:{matched:!0,value:t(o?Gt in s?s[Gt]:s:this.input,this.input)};return new e(this.input,l)}when(r,t){if(this.state.matched)return this;let n=!!r(this.input);return new e(this.input,n?{matched:!0,value:t(this.input,this.input)}:li)}otherwise(r){return this.state.matched?this.state.value:r(this.input)}exhaustive(){if(this.state.matched)return this.state.value;throw new ai(this.input)}run(){return this.exhaustive()}returnType(){return this}};var zo=require("node:util");var Hu={warn:ke("prisma:warn")},Ku={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Qt(e,...r){Ku.warn()&&console.warn(`${Hu.warn} ${e}`,...r)}var Yu=(0,zo.promisify)(Yo.default.exec),ee=gr("prisma:get-platform"),zu=["1.0.x","1.1.x","3.0.x"];async function Zo(){let e=Jt.default.platform(),r=process.arch;if(e==="freebsd"){let s=await Ht("freebsd-version");if(s&&s.trim().length>0){let l=/^(\d+)\.?/.exec(s);if(l)return{platform:"freebsd",targetDistro:`freebsd${l[1]}`,arch:r}}}if(e!=="linux")return{platform:e,arch:r};let t=await Xu(),n=await ac(),i=rc({arch:r,archFromUname:n,familyDistro:t.familyDistro}),{libssl:o}=await tc(i);return{platform:"linux",libssl:o,arch:r,archFromUname:n,...t}}function Zu(e){let r=/^ID="?([^"\n]*)"?$/im,t=/^ID_LIKE="?([^"\n]*)"?$/im,n=r.exec(e),i=n&&n[1]&&n[1].toLowerCase()||"",o=t.exec(e),s=o&&o[1]&&o[1].toLowerCase()||"",a=hr({id:i,idLike:s}).with({id:"alpine"},({id:l})=>({targetDistro:"musl",familyDistro:l,originalDistro:l})).with({id:"raspbian"},({id:l})=>({targetDistro:"arm",familyDistro:"debian",originalDistro:l})).with({id:"nixos"},({id:l})=>({targetDistro:"nixos",originalDistro:l,familyDistro:"nixos"})).with({id:"debian"},{id:"ubuntu"},({id:l})=>({targetDistro:"debian",familyDistro:"debian",originalDistro:l})).with({id:"rhel"},{id:"centos"},{id:"fedora"},({id:l})=>({targetDistro:"rhel",familyDistro:"rhel",originalDistro:l})).when(({idLike:l})=>l.includes("debian")||l.includes("ubuntu"),({id:l})=>({targetDistro:"debian",familyDistro:"debian",originalDistro:l})).when(({idLike:l})=>i==="arch"||l.includes("arch"),({id:l})=>({targetDistro:"debian",familyDistro:"arch",originalDistro:l})).when(({idLike:l})=>l.includes("centos")||l.includes("fedora")||l.includes("rhel")||l.includes("suse"),({id:l})=>({targetDistro:"rhel",familyDistro:"rhel",originalDistro:l})).otherwise(({id:l})=>({targetDistro:void 0,familyDistro:void 0,originalDistro:l}));return ee(`Found distro info: +${JSON.stringify(a,null,2)}`),a}async function Xu(){let e="/etc/os-release";try{let r=await ci.default.readFile(e,{encoding:"utf-8"});return Zu(r)}catch{return{targetDistro:void 0,familyDistro:void 0,originalDistro:void 0}}}function ec(e){let r=/^OpenSSL\s(\d+\.\d+)\.\d+/.exec(e);if(r){let t=`${r[1]}.x`;return Xo(t)}}function Ho(e){let r=/libssl\.so\.(\d)(\.\d)?/.exec(e);if(r){let t=`${r[1]}${r[2]??".0"}.x`;return Xo(t)}}function Xo(e){let r=(()=>{if(rs(e))return e;let t=e.split(".");return t[1]="0",t.join(".")})();if(zu.includes(r))return r}function rc(e){return hr(e).with({familyDistro:"musl"},()=>(ee('Trying platform-specific paths for "alpine"'),["/lib","/usr/lib"])).with({familyDistro:"debian"},({archFromUname:r})=>(ee('Trying platform-specific paths for "debian" (and "ubuntu")'),[`/usr/lib/${r}-linux-gnu`,`/lib/${r}-linux-gnu`])).with({familyDistro:"rhel"},()=>(ee('Trying platform-specific paths for "rhel"'),["/lib64","/usr/lib64"])).otherwise(({familyDistro:r,arch:t,archFromUname:n})=>(ee(`Don't know any platform-specific paths for "${r}" on ${t} (${n})`),[]))}async function tc(e){let r='grep -v "libssl.so.0"',t=await Ko(e);if(t){ee(`Found libssl.so file using platform-specific paths: ${t}`);let o=Ho(t);if(ee(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:"libssl-specific-path"}}ee('Falling back to "ldconfig" and other generic paths');let n=await Ht(`ldconfig -p | sed "s/.*=>s*//" | sed "s|.*/||" | grep libssl | sort | ${r}`);if(n||(n=await Ko(["/lib64","/usr/lib64","/lib","/usr/lib"])),n){ee(`Found libssl.so file using "ldconfig" or other generic paths: ${n}`);let o=Ho(n);if(ee(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:"ldconfig"}}let i=await Ht("openssl version -v");if(i){ee(`Found openssl binary with version: ${i}`);let o=ec(i);if(ee(`The parsed openssl version is: ${o}`),o)return{libssl:o,strategy:"openssl-binary"}}return ee("Couldn't find any version of libssl or OpenSSL in the system"),{}}async function Ko(e){for(let r of e){let t=await nc(r);if(t)return t}}async function nc(e){try{return(await ci.default.readdir(e)).find(t=>t.startsWith("libssl.so.")&&!t.startsWith("libssl.so.0"))}catch(r){if(r.code==="ENOENT")return;throw r}}async function ir(){let{binaryTarget:e}=await es();return e}function ic(e){return e.binaryTarget!==void 0}async function pi(){let{memoized:e,...r}=await es();return r}var Wt={};async function es(){if(ic(Wt))return Promise.resolve({...Wt,memoized:!0});let e=await Zo(),r=oc(e);return Wt={...e,binaryTarget:r},{...Wt,memoized:!1}}function oc(e){let{platform:r,arch:t,archFromUname:n,libssl:i,targetDistro:o,familyDistro:s,originalDistro:a}=e;r==="linux"&&!["x64","arm64"].includes(t)&&Qt(`Prisma only officially supports Linux on amd64 (x86_64) and arm64 (aarch64) system architectures (detected "${t}" instead). If you are using your own custom Prisma engines, you can ignore this warning, as long as you've compiled the engines for your system architecture "${n}".`);let l="1.1.x";if(r==="linux"&&i===void 0){let c=hr({familyDistro:s}).with({familyDistro:"debian"},()=>"Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, add this command to your Dockerfile, or switch to an image that already has OpenSSL installed.").otherwise(()=>"Please manually install OpenSSL and try installing Prisma again.");Qt(`Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to "openssl-${l}". +${c}`)}let u="debian";if(r==="linux"&&o===void 0&&ee(`Distro is "${a}". Falling back to Prisma engines built for "${u}".`),r==="darwin"&&t==="arm64")return"darwin-arm64";if(r==="darwin")return"darwin";if(r==="win32")return"windows";if(r==="freebsd")return o;if(r==="openbsd")return"openbsd";if(r==="netbsd")return"netbsd";if(r==="linux"&&o==="nixos")return"linux-nixos";if(r==="linux"&&t==="arm64")return`${o==="musl"?"linux-musl-arm64":"linux-arm64"}-openssl-${i||l}`;if(r==="linux"&&t==="arm")return`linux-arm-openssl-${i||l}`;if(r==="linux"&&o==="musl"){let c="linux-musl";return!i||rs(i)?c:`${c}-openssl-${i}`}return r==="linux"&&o&&i?`${o}-openssl-${i}`:(r!=="linux"&&Qt(`Prisma detected unknown OS "${r}" and may not work as expected. Defaulting to "linux".`),i?`${u}-openssl-${i}`:o?`${o}-openssl-${l}`:`${u}-openssl-${l}`)}async function sc(e){try{return await e()}catch{return}}function Ht(e){return sc(async()=>{let r=await Yu(e);return ee(`Command "${e}" successfully returned "${r.stdout}"`),r.stdout})}async function ac(){return typeof Jt.default.machine=="function"?Jt.default.machine():(await Ht("uname -m"))?.trim()}function rs(e){return e.startsWith("1.")}var zt={};tr(zt,{beep:()=>_c,clearScreen:()=>Ic,clearTerminal:()=>kc,cursorBackward:()=>fc,cursorDown:()=>dc,cursorForward:()=>mc,cursorGetPosition:()=>yc,cursorHide:()=>wc,cursorLeft:()=>is,cursorMove:()=>pc,cursorNextLine:()=>bc,cursorPrevLine:()=>Ec,cursorRestorePosition:()=>hc,cursorSavePosition:()=>gc,cursorShow:()=>xc,cursorTo:()=>cc,cursorUp:()=>ns,enterAlternativeScreen:()=>Oc,eraseDown:()=>Sc,eraseEndLine:()=>Pc,eraseLine:()=>os,eraseLines:()=>vc,eraseScreen:()=>di,eraseStartLine:()=>Tc,eraseUp:()=>Rc,exitAlternativeScreen:()=>Dc,iTerm:()=>Fc,image:()=>Lc,link:()=>Nc,scrollDown:()=>Ac,scrollUp:()=>Cc});var Yt=k(require("node:process"),1);var Kt=globalThis.window?.document!==void 0,gg=globalThis.process?.versions?.node!==void 0,hg=globalThis.process?.versions?.bun!==void 0,yg=globalThis.Deno?.version?.deno!==void 0,bg=globalThis.process?.versions?.electron!==void 0,Eg=globalThis.navigator?.userAgent?.includes("jsdom")===!0,wg=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,xg=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,vg=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,Pg=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,Zr=globalThis.navigator?.userAgentData?.platform,Tg=Zr==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",Sg=Zr==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",Rg=Zr==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",Cg=Zr==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Ag=Zr==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var A="\x1B[",et="\x1B]",yr="\x07",Xr=";",ts=!Kt&&Yt.default.env.TERM_PROGRAM==="Apple_Terminal",lc=!Kt&&Yt.default.platform==="win32",uc=Kt?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:Yt.default.cwd,cc=(e,r)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof r!="number"?A+(e+1)+"G":A+(r+1)+Xr+(e+1)+"H"},pc=(e,r)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let t="";return e<0?t+=A+-e+"D":e>0&&(t+=A+e+"C"),r<0?t+=A+-r+"A":r>0&&(t+=A+r+"B"),t},ns=(e=1)=>A+e+"A",dc=(e=1)=>A+e+"B",mc=(e=1)=>A+e+"C",fc=(e=1)=>A+e+"D",is=A+"G",gc=ts?"\x1B7":A+"s",hc=ts?"\x1B8":A+"u",yc=A+"6n",bc=A+"E",Ec=A+"F",wc=A+"?25l",xc=A+"?25h",vc=e=>{let r="";for(let t=0;t[et,"8",Xr,Xr,r,yr,e,et,"8",Xr,Xr,yr].join(""),Lc=(e,r={})=>{let t=`${et}1337;File=inline=1`;return r.width&&(t+=`;width=${r.width}`),r.height&&(t+=`;height=${r.height}`),r.preserveAspectRatio===!1&&(t+=";preserveAspectRatio=0"),t+":"+Buffer.from(e).toString("base64")+yr},Fc={setCwd:(e=uc())=>`${et}50;CurrentDir=${e}${yr}`,annotation(e,r={}){let t=`${et}1337;`,n=r.x!==void 0,i=r.y!==void 0;if((n||i)&&!(n&&i&&r.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),t+=r.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",r.length>0?t+=(n?[e,r.length,r.x,r.y]:[r.length,e]).join("|"):t+=e,t+yr}};var Zt=k(ds(),1);function or(e,r,{target:t="stdout",...n}={}){return Zt.default[t]?zt.link(e,r):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,r):`${e} (\u200B${r}\u200B)`}or.isSupported=Zt.default.stdout;or.stderr=(e,r,t={})=>or(e,r,{target:"stderr",...t});or.stderr.isSupported=Zt.default.stderr;function yi(e){return or(e,e,{fallback:Y})}var Vc=ms(),bi=Vc.version;var fs="library";function Er(e){let r=Bc();return r||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":e?.config.engineType==="client"?"client":fs)}function Bc(){let e=process.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":e==="client"?"client":void 0}var Gc=k(wi());var M=k(require("node:path")),Qc=k(wi()),ah=N("prisma:engines");function gs(){return M.default.join(__dirname,"../")}var lh="libquery-engine";M.default.join(__dirname,"../query-engine-darwin");M.default.join(__dirname,"../query-engine-darwin-arm64");M.default.join(__dirname,"../query-engine-debian-openssl-1.0.x");M.default.join(__dirname,"../query-engine-debian-openssl-1.1.x");M.default.join(__dirname,"../query-engine-debian-openssl-3.0.x");M.default.join(__dirname,"../query-engine-linux-static-x64");M.default.join(__dirname,"../query-engine-linux-static-arm64");M.default.join(__dirname,"../query-engine-rhel-openssl-1.0.x");M.default.join(__dirname,"../query-engine-rhel-openssl-1.1.x");M.default.join(__dirname,"../query-engine-rhel-openssl-3.0.x");M.default.join(__dirname,"../libquery_engine-darwin.dylib.node");M.default.join(__dirname,"../libquery_engine-darwin-arm64.dylib.node");M.default.join(__dirname,"../libquery_engine-debian-openssl-1.0.x.so.node");M.default.join(__dirname,"../libquery_engine-debian-openssl-1.1.x.so.node");M.default.join(__dirname,"../libquery_engine-debian-openssl-3.0.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-1.0.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-1.1.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-3.0.x.so.node");M.default.join(__dirname,"../libquery_engine-linux-musl.so.node");M.default.join(__dirname,"../libquery_engine-linux-musl-openssl-3.0.x.so.node");M.default.join(__dirname,"../libquery_engine-rhel-openssl-1.0.x.so.node");M.default.join(__dirname,"../libquery_engine-rhel-openssl-1.1.x.so.node");M.default.join(__dirname,"../libquery_engine-rhel-openssl-3.0.x.so.node");M.default.join(__dirname,"../query_engine-windows.dll.node");var xi=k(require("node:fs")),hs=gr("chmodPlusX");function vi(e){if(process.platform==="win32")return;let r=xi.default.statSync(e),t=r.mode|64|8|1;if(r.mode===t){hs(`Execution permissions of ${e} are fine`);return}let n=t.toString(8).slice(-3);hs(`Have to call chmodPlusX on ${e}`),xi.default.chmodSync(e,n)}function Pi(e){let r=e.e,t=a=>`Prisma cannot find the required \`${a}\` system library in your system`,n=r.message.includes("cannot open shared object file"),i=`Please refer to the documentation about Prisma's system requirements: ${yi("https://pris.ly/d/system-requirements")}`,o=`Unable to require(\`${Ie(e.id)}\`).`,s=hr({message:r.message,code:r.code}).with({code:"ENOENT"},()=>"File does not exist.").when(({message:a})=>n&&a.includes("libz"),()=>`${t("libz")}. Please install it and try again.`).when(({message:a})=>n&&a.includes("libgcc_s"),()=>`${t("libgcc_s")}. Please install it and try again.`).when(({message:a})=>n&&a.includes("libssl"),()=>{let a=e.platformInfo.libssl?`openssl-${e.platformInfo.libssl}`:"openssl";return`${t("libssl")}. Please install ${a} and try again.`}).when(({message:a})=>a.includes("GLIBC"),()=>`Prisma has detected an incompatible version of the \`glibc\` C standard library installed in your system. This probably means your system may be too old to run Prisma. ${i}`).when(({message:a})=>e.platformInfo.platform==="linux"&&a.includes("symbol not found"),()=>`The Prisma engines are not compatible with your system ${e.platformInfo.originalDistro} on (${e.platformInfo.archFromUname}) which uses the \`${e.platformInfo.binaryTarget}\` binaryTarget by default. ${i}`).otherwise(()=>`The Prisma engines do not seem to be compatible with your system. ${i}`);return`${o} +${s} + +Details: ${r.message}`}var Es=k(bs(),1);function Ti(e){let r=(0,Es.default)(e);if(r===0)return e;let t=new RegExp(`^[ \\t]{${r}}`,"gm");return e.replace(t,"")}var ws="prisma+postgres",en=`${ws}:`;function Si(e){return e?.startsWith(`${en}//`)??!1}var vs=k(Ri());function Ai(e){return String(new Ci(e))}var Ci=class{constructor(r){this.config=r}toString(){let{config:r}=this,t=r.provider.fromEnvVar?`env("${r.provider.fromEnvVar}")`:r.provider.value,n=JSON.parse(JSON.stringify({provider:t,binaryTargets:Wc(r.binaryTargets)}));return`generator ${r.name} { +${(0,vs.default)(Jc(n),2)} +}`}};function Wc(e){let r;if(e.length>0){let t=e.find(n=>n.fromEnvVar!==null);t?r=`env("${t.fromEnvVar}")`:r=e.map(n=>n.native?"native":n.value)}else r=void 0;return r}function Jc(e){let r=Object.keys(e).reduce((t,n)=>Math.max(t,n.length),0);return Object.entries(e).map(([t,n])=>`${t.padEnd(r)} = ${Hc(n)}`).join(` +`)}function Hc(e){return JSON.parse(JSON.stringify(e,(r,t)=>Array.isArray(t)?`[${t.map(n=>JSON.stringify(n)).join(", ")}]`:JSON.stringify(t)))}var tt={};tr(tt,{error:()=>zc,info:()=>Yc,log:()=>Kc,query:()=>Zc,should:()=>Ps,tags:()=>rt,warn:()=>Ii});var rt={error:ce("prisma:error"),warn:ke("prisma:warn"),info:Oe("prisma:info"),query:nr("prisma:query")},Ps={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Kc(...e){console.log(...e)}function Ii(e,...r){Ps.warn()&&console.warn(`${rt.warn} ${e}`,...r)}function Yc(e,...r){console.info(`${rt.info} ${e}`,...r)}function zc(e,...r){console.error(`${rt.error} ${e}`,...r)}function Zc(e,...r){console.log(`${rt.query} ${e}`,...r)}function rn(e,r){if(!e)throw new Error(`${r}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}function _e(e,r){throw new Error(r)}var nt=k(require("node:path"));function Oi(e){return nt.default.sep===nt.default.posix.sep?e:e.split(nt.default.sep).join(nt.default.posix.sep)}var Fi=k(Os()),nn=k(require("node:fs"));var wr=k(require("node:path"));function Ds(e){let r=e.ignoreProcessEnv?{}:process.env,t=n=>n.match(/(.?\${(?:[a-zA-Z0-9_]+)?})/g)?.reduce(function(o,s){let a=/(.?)\${([a-zA-Z0-9_]+)?}/g.exec(s);if(!a)return o;let l=a[1],u,c;if(l==="\\")c=a[0],u=c.replace("\\$","$");else{let p=a[2];c=a[0].substring(l.length),u=Object.hasOwnProperty.call(r,p)?r[p]:e.parsed[p]||"",u=t(u)}return o.replace(c,u)},n)??n;for(let n in e.parsed){let i=Object.hasOwnProperty.call(r,n)?r[n]:e.parsed[n];e.parsed[n]=t(i)}for(let n in e.parsed)r[n]=e.parsed[n];return e}var Li=gr("prisma:tryLoadEnv");function it({rootEnvPath:e,schemaEnvPath:r},t={conflictCheck:"none"}){let n=_s(e);t.conflictCheck!=="none"&&gp(n,r,t.conflictCheck);let i=null;return Ns(n?.path,r)||(i=_s(r)),!n&&!i&&Li("No Environment variables loaded"),i?.dotenvResult.error?console.error(ce(W("Schema Env Error: "))+i.dotenvResult.error):{message:[n?.message,i?.message].filter(Boolean).join(` +`),parsed:{...n?.dotenvResult?.parsed,...i?.dotenvResult?.parsed}}}function gp(e,r,t){let n=e?.dotenvResult.parsed,i=!Ns(e?.path,r);if(n&&r&&i&&nn.default.existsSync(r)){let o=Fi.default.parse(nn.default.readFileSync(r)),s=[];for(let a in o)n[a]===o[a]&&s.push(a);if(s.length>0){let a=wr.default.relative(process.cwd(),e.path),l=wr.default.relative(process.cwd(),r);if(t==="error"){let u=`There is a conflict between env var${s.length>1?"s":""} in ${Y(a)} and ${Y(l)} +Conflicting env vars: +${s.map(c=>` ${W(c)}`).join(` +`)} + +We suggest to move the contents of ${Y(l)} to ${Y(a)} to consolidate your env vars. +`;throw new Error(u)}else if(t==="warn"){let u=`Conflict for env var${s.length>1?"s":""} ${s.map(c=>W(c)).join(", ")} in ${Y(a)} and ${Y(l)} +Env vars from ${Y(l)} overwrite the ones from ${Y(a)} + `;console.warn(`${ke("warn(prisma)")} ${u}`)}}}}function _s(e){if(hp(e)){Li(`Environment variables loaded from ${e}`);let r=Fi.default.config({path:e,debug:process.env.DOTENV_CONFIG_DEBUG?!0:void 0});return{dotenvResult:Ds(r),message:Ie(`Environment variables loaded from ${wr.default.relative(process.cwd(),e)}`),path:e}}else Li(`Environment variables not found at ${e}`);return null}function Ns(e,r){return e&&r&&wr.default.resolve(e)===wr.default.resolve(r)}function hp(e){return!!(e&&nn.default.existsSync(e))}function Mi(e,r){return Object.prototype.hasOwnProperty.call(e,r)}function xr(e,r){let t={};for(let n of Object.keys(e))t[n]=r(e[n],n);return t}function $i(e,r){if(e.length===0)return;let t=e[0];for(let n=1;n{Fs.has(e)||(Fs.add(e),Ii(r,...t))};var T=class e extends Error{clientVersion;errorCode;retryable;constructor(r,t,n){super(r),this.name="PrismaClientInitializationError",this.clientVersion=t,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};x(T,"PrismaClientInitializationError");var z=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(r,{code:t,clientVersion:n,meta:i,batchRequestIdx:o}){super(r),this.name="PrismaClientKnownRequestError",this.code=t,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};x(z,"PrismaClientKnownRequestError");var le=class extends Error{clientVersion;constructor(r,t){super(r),this.name="PrismaClientRustPanicError",this.clientVersion=t}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};x(le,"PrismaClientRustPanicError");var j=class extends Error{clientVersion;batchRequestIdx;constructor(r,{clientVersion:t,batchRequestIdx:n}){super(r),this.name="PrismaClientUnknownRequestError",this.clientVersion=t,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};x(j,"PrismaClientUnknownRequestError");var Z=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(r,{clientVersion:t}){super(r),this.clientVersion=t}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};x(Z,"PrismaClientValidationError");var vr=9e15,Ke=1e9,qi="0123456789abcdef",un="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",cn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ji={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-vr,maxE:vr,crypto:!1},js,Le,w=!0,dn="[DecimalError] ",He=dn+"Invalid argument: ",Vs=dn+"Precision limit exceeded",Bs=dn+"crypto unavailable",Us="[object Decimal]",X=Math.floor,U=Math.pow,yp=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,bp=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Ep=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Gs=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,fe=1e7,E=7,wp=9007199254740991,xp=un.length-1,Vi=cn.length-1,m={toStringTag:Us};m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};m.ceil=function(){return y(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(e,r){var t,n=this,i=n.constructor;if(e=new i(e),r=new i(r),!e.s||!r.s)return new i(NaN);if(e.gt(r))throw Error(He+r);return t=n.cmp(e),t<0?e:n.cmp(r)>0?r:new i(n)};m.comparedTo=m.cmp=function(e){var r,t,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,r=0,t=na[r]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};m.cosine=m.cos=function(){var e,r,t=this,n=t.constructor;return t.d?t.d[0]?(e=n.precision,r=n.rounding,n.precision=e+Math.max(t.e,t.sd())+E,n.rounding=1,t=vp(n,Ks(n,t)),n.precision=e,n.rounding=r,y(Le==2||Le==3?t.neg():t,e,r,!0)):new n(1):new n(NaN)};m.cubeRoot=m.cbrt=function(){var e,r,t,n,i,o,s,a,l,u,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(w=!1,o=c.s*U(c.s*c,1/3),!o||Math.abs(o)==1/0?(t=J(c.d),e=c.e,(o=(e-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=U(t,1/3),e=X((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?t="5e"+e:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new p(t),n.s=c.s):n=new p(o.toString()),s=(e=p.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(c),n=L(u.plus(c).times(a),u.plus(l),s+2,1),J(a.d).slice(0,s)===(t=J(n.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!i&&t=="4999"){if(!i&&(y(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}s+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(y(n,e+1,1),r=!n.times(n).times(n).eq(c));break}return w=!0,y(n,e,p.rounding,r)};m.decimalPlaces=m.dp=function(){var e,r=this.d,t=NaN;if(r){if(e=r.length-1,t=(e-X(this.e/E))*E,e=r[e],e)for(;e%10==0;e/=10)t--;t<0&&(t=0)}return t};m.dividedBy=m.div=function(e){return L(this,new this.constructor(e))};m.dividedToIntegerBy=m.divToInt=function(e){var r=this,t=r.constructor;return y(L(r,new t(e),0,1,1),t.precision,t.rounding)};m.equals=m.eq=function(e){return this.cmp(e)===0};m.floor=function(){return y(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(e){return this.cmp(e)>0};m.greaterThanOrEqualTo=m.gte=function(e){var r=this.cmp(e);return r==1||r===0};m.hyperbolicCosine=m.cosh=function(){var e,r,t,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,n=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),r=(1/fn(4,e)).toString()):(e=16,r="2.3283064365386962890625e-10"),o=Pr(s,1,o.times(r),new s(1),!0);for(var l,u=e,c=new s(8);u--;)l=o.times(o),o=a.minus(l.times(c.minus(l.times(c))));return y(o,s.precision=t,s.rounding=n,!0)};m.hyperbolicSine=m.sinh=function(){var e,r,t,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(r=o.precision,t=o.rounding,o.precision=r+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Pr(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/fn(5,e)),i=Pr(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=r,o.rounding=t,y(i,r,t,!0)};m.hyperbolicTangent=m.tanh=function(){var e,r,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+7,n.rounding=1,L(t.sinh(),t.cosh(),n.precision=e,n.rounding=r)):new n(t.s)};m.inverseCosine=m.acos=function(){var e=this,r=e.constructor,t=e.abs().cmp(1),n=r.precision,i=r.rounding;return t!==-1?t===0?e.isNeg()?we(r,n,i):new r(0):new r(NaN):e.isZero()?we(r,n+4,i).times(.5):(r.precision=n+6,r.rounding=1,e=new r(1).minus(e).div(e.plus(1)).sqrt().atan(),r.precision=n,r.rounding=i,e.times(2))};m.inverseHyperbolicCosine=m.acosh=function(){var e,r,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(e=n.precision,r=n.rounding,n.precision=e+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,w=!1,t=t.times(t).minus(1).sqrt().plus(t),w=!0,n.precision=e,n.rounding=r,t.ln()):new n(t)};m.inverseHyperbolicSine=m.asinh=function(){var e,r,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,w=!1,t=t.times(t).plus(1).sqrt().plus(t),w=!0,n.precision=e,n.rounding=r,t.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var e,r,t,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,r=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?y(new o(i),e,r,!0):(o.precision=t=n-i.e,i=L(i.plus(1),new o(1).minus(i),t+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=r,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var e,r,t,n,i=this,o=i.constructor;return i.isZero()?new o(i):(r=i.abs().cmp(1),t=o.precision,n=o.rounding,r!==-1?r===0?(e=we(o,t+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,i.times(2)))};m.inverseTangent=m.atan=function(){var e,r,t,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&p+4<=Vi)return s=we(c,p+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new c(NaN);if(p+4<=Vi)return s=we(c,p+4,d).times(.5),s.s=u.s,s}for(c.precision=a=p+10,c.rounding=1,t=Math.min(28,a/E+2|0),e=t;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,r=Math.ceil(a/E),n=1,l=u.times(u),s=new c(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[r]!==void 0)for(e=r;s.d[e]===o.d[e]&&e--;);return t&&(s=s.times(2<this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(e){return this.cmp(e)<0};m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1};m.logarithm=m.log=function(e){var r,t,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding,f=5;if(e==null)e=new c(10),r=!0;else{if(e=new c(e),t=e.d,e.s<0||!t||!t[0]||e.eq(1))return new c(NaN);r=e.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new c(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(r)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=p+f,s=Je(u,a),n=r?pn(c,a+10):Je(e,a),l=L(s,n,a,1),st(l.d,i=p,d))do if(a+=10,s=Je(u,a),n=r?pn(c,a+10):Je(e,a),l=L(s,n,a,1),!o){+J(l.d).slice(i+1,i+15)+1==1e14&&(l=y(l,p+1,0));break}while(st(l.d,i+=10,d));return w=!0,y(l,p,d)};m.minus=m.sub=function(e){var r,t,n,i,o,s,a,l,u,c,p,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return!f.s||!e.s?e=new g(NaN):f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,a=g.precision,l=g.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new g(f);else return new g(l===3?-0:0);return w?y(e,a,l):e}if(t=X(e.e/E),c=X(f.e/E),u=u.slice(),o=c-t,o){for(p=o<0,p?(r=u,o=-o,s=d.length):(r=d,t=c,s=u.length),n=Math.max(Math.ceil(a/E),s)+2,o>n&&(o=n,r.length=1),r.reverse(),n=o;n--;)r.push(0);r.reverse()}else{for(n=u.length,s=d.length,p=n0;--n)u[s++]=0;for(n=d.length;n>o;){if(u[--n]s?o+1:s+1,i>s&&(i=s,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(s=u.length,i=c.length,s-i<0&&(i=s,t=c,c=u,u=t),r=0;i;)r=(u[--i]=u[i]+c[i]+r)/fe|0,u[i]%=fe;for(r&&(u.unshift(r),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=mn(u,n),w?y(e,a,l):e};m.precision=m.sd=function(e){var r,t=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(He+e);return t.d?(r=Qs(t.d),e&&t.e+1>r&&(r=t.e+1)):r=NaN,r};m.round=function(){var e=this,r=e.constructor;return y(new r(e),e.e+1,r.rounding)};m.sine=m.sin=function(){var e,r,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+Math.max(t.e,t.sd())+E,n.rounding=1,t=Tp(n,Ks(n,t)),n.precision=e,n.rounding=r,y(Le>2?t.neg():t,e,r,!0)):new n(NaN)};m.squareRoot=m.sqrt=function(){var e,r,t,n,i,o,s=this,a=s.d,l=s.e,u=s.s,c=s.constructor;if(u!==1||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(r=J(a),(r.length+l)%2==0&&(r+="0"),u=Math.sqrt(r),l=X((l+1)/2)-(l<0||l%2),u==1/0?r="5e"+l:(r=u.toExponential(),r=r.slice(0,r.indexOf("e")+1)+l),n=new c(r)):n=new c(u.toString()),t=(l=c.precision)+3;;)if(o=n,n=o.plus(L(s,o,t+2,1)).times(.5),J(o.d).slice(0,t)===(r=J(n.d)).slice(0,t))if(r=r.slice(t-3,t+1),r=="9999"||!i&&r=="4999"){if(!i&&(y(o,l+1,0),o.times(o).eq(s))){n=o;break}t+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(y(n,l+1,1),e=!n.times(n).eq(s));break}return w=!0,y(n,l,c.rounding,e)};m.tangent=m.tan=function(){var e,r,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,r=n.rounding,n.precision=e+10,n.rounding=1,t=t.sin(),t.s=1,t=L(t,new n(1).minus(t.times(t)).sqrt(),e+10,0),n.precision=e,n.rounding=r,y(Le==2||Le==4?t.neg():t,e,r,!0)):new n(NaN)};m.times=m.mul=function(e){var r,t,n,i,o,s,a,l,u,c=this,p=c.constructor,d=c.d,f=(e=new p(e)).d;if(e.s*=c.s,!d||!d[0]||!f||!f[0])return new p(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?e.s/0:e.s*0);for(t=X(c.e/E)+X(e.e/E),l=d.length,u=f.length,l=0;){for(r=0,i=l+n;i>n;)a=o[i]+f[n]*d[i-n-1]+r,o[i--]=a%fe|0,r=a/fe|0;o[i]=(o[i]+r)%fe|0}for(;!o[--s];)o.pop();return r?++t:o.shift(),e.d=o,e.e=mn(o,t),w?y(e,p.precision,p.rounding):e};m.toBinary=function(e,r){return Ui(this,2,e,r)};m.toDecimalPlaces=m.toDP=function(e,r){var t=this,n=t.constructor;return t=new n(t),e===void 0?t:(ie(e,0,Ke),r===void 0?r=n.rounding:ie(r,0,8),y(t,e+t.e+1,r))};m.toExponential=function(e,r){var t,n=this,i=n.constructor;return e===void 0?t=xe(n,!0):(ie(e,0,Ke),r===void 0?r=i.rounding:ie(r,0,8),n=y(new i(n),e+1,r),t=xe(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+t:t};m.toFixed=function(e,r){var t,n,i=this,o=i.constructor;return e===void 0?t=xe(i):(ie(e,0,Ke),r===void 0?r=o.rounding:ie(r,0,8),n=y(new o(i),e+i.e+1,r),t=xe(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};m.toFraction=function(e){var r,t,n,i,o,s,a,l,u,c,p,d,f=this,g=f.d,h=f.constructor;if(!g)return new h(f);if(u=t=new h(1),n=l=new h(0),r=new h(n),o=r.e=Qs(g)-f.e-1,s=o%E,r.d[0]=U(10,s<0?E+s:s),e==null)e=o>0?r:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(He+a);e=a.gt(r)?o>0?r:u:a}for(w=!1,a=new h(J(g)),c=h.precision,h.precision=o=g.length*E*2;p=L(a,r,0,1,1),i=t.plus(p.times(n)),i.cmp(e)!=1;)t=n,n=i,i=u,u=l.plus(p.times(i)),l=i,i=r,r=a.minus(p.times(i)),a=i;return i=L(e.minus(t),n,0,1,1),l=l.plus(i.times(u)),t=t.plus(i.times(n)),l.s=u.s=f.s,d=L(u,n,o,1).minus(f).abs().cmp(L(l,t,o,1).minus(f).abs())<1?[u,n]:[l,t],h.precision=c,w=!0,d};m.toHexadecimal=m.toHex=function(e,r){return Ui(this,16,e,r)};m.toNearest=function(e,r){var t=this,n=t.constructor;if(t=new n(t),e==null){if(!t.d)return t;e=new n(1),r=n.rounding}else{if(e=new n(e),r===void 0?r=n.rounding:ie(r,0,8),!t.d)return e.s?t:e;if(!e.d)return e.s&&(e.s=t.s),e}return e.d[0]?(w=!1,t=L(t,e,0,r,1).times(e),w=!0,y(t)):(e.s=t.s,t=e),t};m.toNumber=function(){return+this};m.toOctal=function(e,r){return Ui(this,8,e,r)};m.toPower=m.pow=function(e){var r,t,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(U(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return y(a,n,o);if(r=X(e.e/E),r>=e.d.length-1&&(t=u<0?-u:u)<=wp)return i=Ws(l,a,t,n),e.s<0?new l(1).div(i):y(i,n,o);if(s=a.s,s<0){if(rl.maxE+1||r0?s/0:0):(w=!1,l.rounding=a.s=1,t=Math.min(12,(r+"").length),i=Bi(e.times(Je(a,n+t)),n),i.d&&(i=y(i,n+5,1),st(i.d,n,o)&&(r=n+10,i=y(Bi(e.times(Je(a,r+t)),r),r+5,1),+J(i.d).slice(n+1,n+15)+1==1e14&&(i=y(i,n+1,0)))),i.s=s,w=!0,l.rounding=o,y(i,n,o))};m.toPrecision=function(e,r){var t,n=this,i=n.constructor;return e===void 0?t=xe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,Ke),r===void 0?r=i.rounding:ie(r,0,8),n=y(new i(n),e,r),t=xe(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+t:t};m.toSignificantDigits=m.toSD=function(e,r){var t=this,n=t.constructor;return e===void 0?(e=n.precision,r=n.rounding):(ie(e,1,Ke),r===void 0?r=n.rounding:ie(r,0,8)),y(new n(t),e,r)};m.toString=function(){var e=this,r=e.constructor,t=xe(e,e.e<=r.toExpNeg||e.e>=r.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t};m.truncated=m.trunc=function(){return y(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var e=this,r=e.constructor,t=xe(e,e.e<=r.toExpNeg||e.e>=r.toExpPos);return e.isNeg()?"-"+t:t};function J(e){var r,t,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,r=1;rt)throw Error(He+e)}function st(e,r,t,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--r;return--r<0?(r+=E,i=0):(i=Math.ceil((r+1)/E),r%=E),o=U(10,E-r),a=e[i]%o|0,n==null?r<3?(r==0?a=a/100|0:r==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(e[i+1]/o/100|0)==U(10,r-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:r<4?(r==0?a=a/1e3|0:r==1?a=a/100|0:r==2&&(a=a/10|0),s=(n||t<4)&&a==9999||!n&&t>3&&a==4999):s=((n||t<4)&&a+1==o||!n&&t>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==U(10,r-3)-1,s}function an(e,r,t){for(var n,i=[0],o,s=0,a=e.length;st-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/t|0,i[n]%=t)}return i.reverse()}function vp(e,r){var t,n,i;if(r.isZero())return r;n=r.d.length,n<32?(t=Math.ceil(n/3),i=(1/fn(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),e.precision+=t,r=Pr(e,1,r.times(i),new e(1));for(var o=t;o--;){var s=r.times(r);r=s.times(s).minus(s).times(8).plus(1)}return e.precision-=t,r}var L=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function r(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function t(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var u,c,p,d,f,g,h,I,P,S,b,O,me,ae,Jr,V,te,Ae,H,fr,$t=n.constructor,Xn=n.s==i.s?1:-1,K=n.d,_=i.d;if(!K||!K[0]||!_||!_[0])return new $t(!n.s||!i.s||(K?_&&K[0]==_[0]:!_)?NaN:K&&K[0]==0||!_?Xn*0:Xn/0);for(l?(f=1,c=n.e-i.e):(l=fe,f=E,c=X(n.e/f)-X(i.e/f)),H=_.length,te=K.length,P=new $t(Xn),S=P.d=[],p=0;_[p]==(K[p]||0);p++);if(_[p]>(K[p]||0)&&c--,o==null?(ae=o=$t.precision,s=$t.rounding):a?ae=o+(n.e-i.e)+1:ae=o,ae<0)S.push(1),g=!0;else{if(ae=ae/f+2|0,p=0,H==1){for(d=0,_=_[0],ae++;(p1&&(_=e(_,d,l),K=e(K,d,l),H=_.length,te=K.length),V=H,b=K.slice(0,H),O=b.length;O=l/2&&++Ae;do d=0,u=r(_,b,H,O),u<0?(me=b[0],H!=O&&(me=me*l+(b[1]||0)),d=me/Ae|0,d>1?(d>=l&&(d=l-1),h=e(_,d,l),I=h.length,O=b.length,u=r(h,b,I,O),u==1&&(d--,t(h,H=10;d/=10)p++;P.e=p+c*f-1,y(P,a?o+P.e+1:o,s,g)}return P}}();function y(e,r,t,n){var i,o,s,a,l,u,c,p,d,f=e.constructor;e:if(r!=null){if(p=e.d,!p)return e;for(i=1,a=p[0];a>=10;a/=10)i++;if(o=r-i,o<0)o+=E,s=r,c=p[d=0],l=c/U(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/E),a=p.length,d>=a)if(n){for(;a++<=d;)p.push(0);c=l=0,i=1,o%=E,s=o-E+1}else break e;else{for(c=a=p[d],i=1;a>=10;a/=10)i++;o%=E,s=o-E+i,l=s<0?0:c/U(10,i-s-1)%10|0}if(n=n||r<0||p[d+1]!==void 0||(s<0?c:c%U(10,i-s-1)),u=t<4?(l||n)&&(t==0||t==(e.s<0?3:2)):l>5||l==5&&(t==4||n||t==6&&(o>0?s>0?c/U(10,i-s):0:p[d-1])%10&1||t==(e.s<0?8:7)),r<1||!p[0])return p.length=0,u?(r-=e.e+1,p[0]=U(10,(E-r%E)%E),e.e=-r||0):p[0]=e.e=0,e;if(o==0?(p.length=d,a=1,d--):(p.length=d+1,a=U(10,E-o),p[d]=s>0?(c/U(10,i-s)%U(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=p[0];s>=10;s/=10)o++;for(s=p[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,p[0]==fe&&(p[0]=1));break}else{if(p[d]+=a,p[d]!=fe)break;p[d--]=0,a=1}for(o=p.length;p[--o]===0;)p.pop()}return w&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+We(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+We(-i-1)+o,t&&(n=t-s)>0&&(o+=We(n))):i>=s?(o+=We(i+1-s),t&&(n=t-i-1)>0&&(o=o+"."+We(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=We(n))),o}function mn(e,r){var t=e[0];for(r*=E;t>=10;t/=10)r++;return r}function pn(e,r,t){if(r>xp)throw w=!0,t&&(e.precision=t),Error(Vs);return y(new e(un),r,1,!0)}function we(e,r,t){if(r>Vi)throw Error(Vs);return y(new e(cn),r,t,!0)}function Qs(e){var r=e.length-1,t=r*E+1;if(r=e[r],r){for(;r%10==0;r/=10)t--;for(r=e[0];r>=10;r/=10)t++}return t}function We(e){for(var r="";e--;)r+="0";return r}function Ws(e,r,t,n){var i,o=new e(1),s=Math.ceil(n/E+4);for(w=!1;;){if(t%2&&(o=o.times(r),$s(o.d,s)&&(i=!0)),t=X(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}r=r.times(r),$s(r.d,s)}return w=!0,o}function Ms(e){return e.d[e.d.length-1]&1}function Js(e,r,t){for(var n,i,o=new e(r[0]),s=0;++s17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(r==null?(w=!1,l=g):l=r,a=new d(.03125);e.e>-2;)e=e.times(a),p+=5;for(n=Math.log(U(2,p))/Math.LN10*2+5|0,l+=n,t=o=s=new d(1),d.precision=l;;){if(o=y(o.times(e),l,1),t=t.times(++c),a=s.plus(L(o,t,l,1)),J(a.d).slice(0,l)===J(s.d).slice(0,l)){for(i=p;i--;)s=y(s.times(s),l,1);if(r==null)if(u<3&&st(s.d,l-n,f,u))d.precision=l+=10,t=o=a=new d(1),c=0,u++;else return y(s,d.precision=g,f,w=!0);else return d.precision=g,s}s=a}}function Je(e,r){var t,n,i,o,s,a,l,u,c,p,d,f=1,g=10,h=e,I=h.d,P=h.constructor,S=P.rounding,b=P.precision;if(h.s<0||!I||!I[0]||!h.e&&I[0]==1&&I.length==1)return new P(I&&!I[0]?-1/0:h.s!=1?NaN:I?0:h);if(r==null?(w=!1,c=b):c=r,P.precision=c+=g,t=J(I),n=t.charAt(0),Math.abs(o=h.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)h=h.times(e),t=J(h.d),n=t.charAt(0),f++;o=h.e,n>1?(h=new P("0."+t),o++):h=new P(n+"."+t.slice(1))}else return u=pn(P,c+2,b).times(o+""),h=Je(new P(n+"."+t.slice(1)),c-g).plus(u),P.precision=b,r==null?y(h,b,S,w=!0):h;for(p=h,l=s=h=L(h.minus(1),h.plus(1),c,1),d=y(h.times(h),c,1),i=3;;){if(s=y(s.times(d),c,1),u=l.plus(L(s,new P(i),c,1)),J(u.d).slice(0,c)===J(l.d).slice(0,c))if(l=l.times(2),o!==0&&(l=l.plus(pn(P,c+2,b).times(o+""))),l=L(l,new P(f),c,1),r==null)if(st(l.d,c-g,S,a))P.precision=c+=g,u=s=h=L(p.minus(1),p.plus(1),c,1),d=y(h.times(h),c,1),i=a=1;else return y(l,P.precision=b,S,w=!0);else return P.precision=b,l;l=u,i+=2}}function Hs(e){return String(e.s*e.s/0)}function ln(e,r){var t,n,i;for((t=r.indexOf("."))>-1&&(r=r.replace(".","")),(n=r.search(/e/i))>0?(t<0&&(t=n),t+=+r.slice(n+1),r=r.substring(0,n)):t<0&&(t=r.length),n=0;r.charCodeAt(n)===48;n++);for(i=r.length;r.charCodeAt(i-1)===48;--i);if(r=r.slice(n,i),r){if(i-=n,e.e=t=t-n-1,e.d=[],n=(t+1)%E,t<0&&(n+=E),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(r=r.replace(/(\d)_(?=\d)/g,"$1"),Gs.test(r))return ln(e,r)}else if(r==="Infinity"||r==="NaN")return+r||(e.s=NaN),e.e=NaN,e.d=null,e;if(bp.test(r))t=16,r=r.toLowerCase();else if(yp.test(r))t=2;else if(Ep.test(r))t=8;else throw Error(He+r);for(o=r.search(/p/i),o>0?(l=+r.slice(o+1),r=r.substring(2,o)):r=r.slice(2),o=r.indexOf("."),s=o>=0,n=e.constructor,s&&(r=r.replace(".",""),a=r.length,o=a-o,i=Ws(n,new n(t),o,o*2)),u=an(r,t,fe),c=u.length-1,o=c;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=mn(u,c),e.d=u,w=!1,s&&(e=L(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?U(2,l):sr.pow(2,l))),w=!0,e)}function Tp(e,r){var t,n=r.d.length;if(n<3)return r.isZero()?r:Pr(e,2,r,r);t=1.4*Math.sqrt(n),t=t>16?16:t|0,r=r.times(1/fn(5,t)),r=Pr(e,2,r,r);for(var i,o=new e(5),s=new e(16),a=new e(20);t--;)i=r.times(r),r=r.times(o.plus(i.times(s.times(i).minus(a))));return r}function Pr(e,r,t,n,i){var o,s,a,l,u=1,c=e.precision,p=Math.ceil(c/E);for(w=!1,l=t.times(t),a=new e(n);;){if(s=L(a.times(l),new e(r++*r++),c,1),a=i?n.plus(s):n.minus(s),n=L(s.times(l),new e(r++*r++),c,1),s=a.plus(n),s.d[p]!==void 0){for(o=p;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return w=!0,s.d.length=p+1,s}function fn(e,r){for(var t=e;--r;)t*=e;return t}function Ks(e,r){var t,n=r.s<0,i=we(e,e.precision,1),o=i.times(.5);if(r=r.abs(),r.lte(o))return Le=n?4:1,r;if(t=r.divToInt(i),t.isZero())Le=n?3:2;else{if(r=r.minus(t.times(i)),r.lte(o))return Le=Ms(t)?n?2:3:n?4:1,r;Le=Ms(t)?n?1:4:n?3:2}return r.minus(i).abs()}function Ui(e,r,t,n){var i,o,s,a,l,u,c,p,d,f=e.constructor,g=t!==void 0;if(g?(ie(t,1,Ke),n===void 0?n=f.rounding:ie(n,0,8)):(t=f.precision,n=f.rounding),!e.isFinite())c=Hs(e);else{for(c=xe(e),s=c.indexOf("."),g?(i=2,r==16?t=t*4-3:r==8&&(t=t*3-2)):i=r,s>=0&&(c=c.replace(".",""),d=new f(1),d.e=c.length-s,d.d=an(xe(d),10,i),d.e=d.d.length),p=an(c,10,i),o=l=p.length;p[--l]==0;)p.pop();if(!p[0])c=g?"0p+0":"0";else{if(s<0?o--:(e=new f(e),e.d=p,e.e=o,e=L(e,d,t,n,0,i),p=e.d,o=e.e,u=js),s=p[t],a=i/2,u=u||p[t+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&p[t-1]&1||n===(e.s<0?8:7)),p.length=t,u)for(;++p[--t]>i-1;)p[t]=0,t||(++o,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,c="";s1)if(r==16||r==8){for(s=r==16?4:3,--l;l%s;l++)c+="0";for(p=an(c,i,r),l=p.length;!p[l-1];--l);for(s=1,c="1.";sl)for(o-=l;o--;)c+="0";else or)return e.length=r,!0}function Sp(e){return new this(e).abs()}function Rp(e){return new this(e).acos()}function Cp(e){return new this(e).acosh()}function Ap(e,r){return new this(e).plus(r)}function Ip(e){return new this(e).asin()}function kp(e){return new this(e).asinh()}function Op(e){return new this(e).atan()}function Dp(e){return new this(e).atanh()}function _p(e,r){e=new this(e),r=new this(r);var t,n=this.precision,i=this.rounding,o=n+4;return!e.s||!r.s?t=new this(NaN):!e.d&&!r.d?(t=we(this,o,1).times(r.s>0?.25:.75),t.s=e.s):!r.d||e.isZero()?(t=r.s<0?we(this,n,i):new this(0),t.s=e.s):!e.d||r.isZero()?(t=we(this,o,1).times(.5),t.s=e.s):r.s<0?(this.precision=o,this.rounding=1,t=this.atan(L(e,r,o,1)),r=we(this,o,1),this.precision=n,this.rounding=i,t=e.s<0?t.minus(r):t.plus(r)):t=this.atan(L(e,r,o,1)),t}function Np(e){return new this(e).cbrt()}function Lp(e){return y(e=new this(e),e.e+1,2)}function Fp(e,r,t){return new this(e).clamp(r,t)}function Mp(e){if(!e||typeof e!="object")throw Error(dn+"Object expected");var r,t,n,i=e.defaults===!0,o=["precision",1,Ke,"rounding",0,8,"toExpNeg",-vr,0,"toExpPos",0,vr,"maxE",0,vr,"minE",-vr,0,"modulo",0,9];for(r=0;r=o[r+1]&&n<=o[r+2])this[t]=n;else throw Error(He+t+": "+n);if(t="crypto",i&&(this[t]=ji[t]),(n=e[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Bs);else this[t]=!1;else throw Error(He+t+": "+n);return this}function $p(e){return new this(e).cos()}function qp(e){return new this(e).cosh()}function Ys(e){var r,t,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,qs(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e=10;a/=10)s++;w?s>i.maxE?(u.e=NaN,u.d=null):s=429e7?r[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(r=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(r,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(Bs);else for(;o=10;i/=10)n++;nCr,datamodelEnumToSchemaEnum:()=>dd});function dd(e){return{name:e.name,values:e.values.map(r=>r.name)}}var Cr=(b=>(b.findUnique="findUnique",b.findUniqueOrThrow="findUniqueOrThrow",b.findFirst="findFirst",b.findFirstOrThrow="findFirstOrThrow",b.findMany="findMany",b.create="create",b.createMany="createMany",b.createManyAndReturn="createManyAndReturn",b.update="update",b.updateMany="updateMany",b.updateManyAndReturn="updateManyAndReturn",b.upsert="upsert",b.delete="delete",b.deleteMany="deleteMany",b.groupBy="groupBy",b.count="count",b.aggregate="aggregate",b.findRaw="findRaw",b.aggregateRaw="aggregateRaw",b))(Cr||{});var na=k(Ri());var ta=k(require("node:fs"));var Xs={keyword:Oe,entity:Oe,value:e=>W(nr(e)),punctuation:nr,directive:Oe,function:Oe,variable:e=>W(nr(e)),string:e=>W(qe(e)),boolean:ke,number:Oe,comment:Hr};var md=e=>e,hn={},fd=0,v={manual:hn.Prism&&hn.Prism.manual,disableWorkerMessageHandler:hn.Prism&&hn.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof ge){let r=e;return new ge(r.type,v.util.encode(r.content),r.alias)}else return Array.isArray(e)?e.map(v.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(Ae instanceof ge)continue;if(me&&V!=r.length-1){S.lastIndex=te;var p=S.exec(e);if(!p)break;var c=p.index+(O?p[1].length:0),d=p.index+p[0].length,a=V,l=te;for(let _=r.length;a<_&&(l=l&&(++V,te=l);if(r[V]instanceof ge)continue;u=a-V,Ae=e.slice(te,l),p.index-=te}else{S.lastIndex=0;var p=S.exec(Ae),u=1}if(!p){if(o)break;continue}O&&(ae=p[1]?p[1].length:0);var c=p.index+ae,p=p[0].slice(ae),d=c+p.length,f=Ae.slice(0,c),g=Ae.slice(d);let H=[V,u];f&&(++V,te+=f.length,H.push(f));let fr=new ge(h,b?v.tokenize(p,b):p,Jr,p,me);if(H.push(fr),g&&H.push(g),Array.prototype.splice.apply(r,H),u!=1&&v.matchGrammar(e,r,t,V,te,!0,h),o)break}}}},tokenize:function(e,r){let t=[e],n=r.rest;if(n){for(let i in n)r[i]=n[i];delete r.rest}return v.matchGrammar(e,t,r,0,0,!1),t},hooks:{all:{},add:function(e,r){let t=v.hooks.all;t[e]=t[e]||[],t[e].push(r)},run:function(e,r){let t=v.hooks.all[e];if(!(!t||!t.length))for(var n=0,i;i=t[n++];)i(r)}},Token:ge};v.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};v.languages.javascript=v.languages.extend("clike",{"class-name":[v.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});v.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;v.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:v.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:v.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:v.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:v.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});v.languages.markup&&v.languages.markup.tag.addInlined("script","javascript");v.languages.js=v.languages.javascript;v.languages.typescript=v.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/});v.languages.ts=v.languages.typescript;function ge(e,r,t,n,i){this.type=e,this.content=r,this.alias=t,this.length=(n||"").length|0,this.greedy=!!i}ge.stringify=function(e,r){return typeof e=="string"?e:Array.isArray(e)?e.map(function(t){return ge.stringify(t,r)}).join(""):gd(e.type)(e.content)};function gd(e){return Xs[e]||md}function ea(e){return hd(e,v.languages.javascript)}function hd(e,r){return v.tokenize(e,r).map(n=>ge.stringify(n)).join("")}function ra(e){return Ti(e)}var yn=class e{firstLineNumber;lines;static read(r){let t;try{t=ta.default.readFileSync(r,"utf-8")}catch{return null}return e.fromContent(t)}static fromContent(r){let t=r.split(/\r?\n/);return new e(1,t)}constructor(r,t){this.firstLineNumber=r,this.lines=t}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(r,t){if(rthis.lines.length+this.firstLineNumber)return this;let n=r-this.firstLineNumber,i=[...this.lines];return i[n]=t(i[n]),new e(this.firstLineNumber,i)}mapLines(r){return new e(this.firstLineNumber,this.lines.map((t,n)=>r(t,this.firstLineNumber+n)))}lineAt(r){return this.lines[r-this.firstLineNumber]}prependSymbolAt(r,t){return this.mapLines((n,i)=>i===r?`${t} ${n}`:` ${n}`)}slice(r,t){let n=this.lines.slice(r-1,t).join(` +`);return new e(r,ra(n).split(` +`))}highlight(){let r=ea(this.toString());return new e(this.firstLineNumber,r.split(` +`))}toString(){return this.lines.join(` +`)}};var yd={red:ce,gray:Hr,dim:Ie,bold:W,underline:Y,highlightSource:e=>e.highlight()},bd={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ed({message:e,originalMethod:r,isPanic:t,callArguments:n}){return{functionName:`prisma.${r}()`,message:e,isPanic:t??!1,callArguments:n}}function wd({callsite:e,message:r,originalMethod:t,isPanic:n,callArguments:i},o){let s=Ed({message:r,originalMethod:t,isPanic:n,callArguments:i});if(!e||typeof window<"u"||process.env.NODE_ENV==="production")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=yn.read(a.fileName)?.slice(l,a.lineNumber),c=u?.lineAt(a.lineNumber);if(u&&c){let p=vd(c),d=xd(c);if(!d)return s;s.functionName=`${d.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,g=>g.slice(0,d.openingBraceIndex))),u=o.highlightSource(u);let f=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((g,h)=>o.gray(String(h).padStart(f))+" "+g).mapLines(g=>o.dim(g)).prependSymbolAt(a.lineNumber,o.bold(o.red("\u2192"))),i){let g=p+f+1;g+=2,s.callArguments=(0,na.default)(i,g).slice(g)}}return s}function xd(e){let r=Object.keys(Cr).join("|"),n=new RegExp(String.raw`\.(${r})\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(" ",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function vd(e){let r=0;for(let t=0;t"Unknown error")}function la(e){return e.errors.flatMap(r=>r.kind==="Union"?la(r):[r])}function Sd(e){let r=new Map,t=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){t.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=r.get(i);o?r.set(i,{...n,argument:{...n.argument,typeNames:Rd(o.argument.typeNames,n.argument.typeNames)}}):r.set(i,n)}return t.push(...r.values()),t}function Rd(e,r){return[...new Set(e.concat(r))]}function Cd(e){return $i(e,(r,t)=>{let n=oa(r),i=oa(t);return n!==i?n-i:sa(r)-sa(t)})}function oa(e){let r=0;return Array.isArray(e.selectionPath)&&(r+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(r+=e.argumentPath.length),r}function sa(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}var ue=class{constructor(r,t){this.name=r;this.value=t}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(r){let{colors:{green:t}}=r.context;r.addMarginSymbol(t(this.isRequired?"+":"?")),r.write(t(this.name)),this.isRequired||r.write(t("?")),r.write(t(": ")),typeof this.value=="string"?r.write(t(this.value)):r.write(this.value)}};ca();var Ar=class{constructor(r=0,t){this.context=t;this.currentIndent=r}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(r){return typeof r=="string"?this.currentLine+=r:r.write(this),this}writeJoined(r,t,n=(i,o)=>o.write(i)){let i=t.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(r){return this.marginSymbol=r,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let r=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+r.slice(1):r}};ua();var wn=class{constructor(r){this.value=r}write(r){r.write(this.value)}markAsError(){this.value.markAsError()}};var xn=e=>e,vn={bold:xn,red:xn,green:xn,dim:xn,enabled:!1},pa={bold:W,red:ce,green:qe,dim:Ie,enabled:!0},Ir={write(e){e.writeLine(",")}};var Te=class{constructor(r){this.contents=r}isUnderlined=!1;color=r=>r;underline(){return this.isUnderlined=!0,this}setColor(r){return this.color=r,this}write(r){let t=r.getCurrentLineLength();r.write(this.color(this.contents)),this.isUnderlined&&r.afterNextNewline(()=>{r.write(" ".repeat(t)).writeLine(this.color("~".repeat(this.contents.length)))})}};var ze=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var kr=class extends ze{items=[];addItem(r){return this.items.push(new wn(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(t=>t.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let t=new Te("[]");this.hasError&&t.setColor(r.context.colors.red).underline(),r.write(t)}writeWithItems(r){let{colors:t}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(Ir,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(t.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var Or=class e extends ze{fields={};suggestions=[];addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[t,...n]=r,i=this.getField(t);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof kr&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let t=this;for(let n of r){if(!(t instanceof e))return;let i=t.getSubSelectionValue(n);if(!i)return;t=i}return t}getDeepSelectionParent(r){let t=this.getSelectionParent();if(!t)return;let n=t;for(let i of r){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let t=this.getField("include")?.value.asObject();if(t)return{kind:"include",value:t}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(n=>n.getPrintWidth()))+2}write(r){let t=Object.values(this.fields);if(t.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,t)}asObject(){return this}writeEmpty(r){let t=new Te("{}");this.hasError&&t.setColor(r.context.colors.red).underline(),r.write(t)}writeWithContents(r,t){r.writeLine("{").withIndent(()=>{r.writeJoined(Ir,[...t,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};var Q=class extends ze{constructor(t){super();this.text=t}getPrintWidth(){return this.text.length}write(t){let n=new Te(this.text);this.hasError&&n.underline().setColor(t.context.colors.red),t.write(n)}asObject(){}};var ut=class{fields=[];addField(r,t){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${r}: ${t}`))).addMarginSymbol(i(o("+")))}}),this}write(r){let{colors:{green:t}}=r.context;r.writeLine(t("{")).withIndent(()=>{r.writeJoined(Ir,this.fields).newLine()}).write(t("}")).addMarginSymbol(t("+"))}};function En(e,r,t){switch(e.kind){case"MutuallyExclusiveFields":Ad(e,r);break;case"IncludeOnScalar":Id(e,r);break;case"EmptySelection":kd(e,r,t);break;case"UnknownSelectionField":Nd(e,r);break;case"InvalidSelectionValue":Ld(e,r);break;case"UnknownArgument":Fd(e,r);break;case"UnknownInputField":Md(e,r);break;case"RequiredArgumentMissing":$d(e,r);break;case"InvalidArgumentType":qd(e,r);break;case"InvalidArgumentValue":jd(e,r);break;case"ValueTooLarge":Vd(e,r);break;case"SomeFieldsMissing":Bd(e,r);break;case"TooManyFieldsGiven":Ud(e,r);break;case"Union":aa(e,r,t);break;default:throw new Error("not implemented: "+e.kind)}}function Ad(e,r){let t=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();t&&(t.getField(e.firstField)?.markAsError(),t.getField(e.secondField)?.markAsError()),r.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function Id(e,r){let[t,n]=ct(e.selectionPath),i=e.outputType,o=r.arguments.getDeepSelectionParent(t)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ue(s.name,"true"));r.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${pt(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function kd(e,r,t){let n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Od(e,r,i);return}if(n.hasField("select")){Dd(e,r);return}}if(t?.[Ye(e.outputType.name)]){_d(e,r);return}r.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Od(e,r,t){t.removeAllFields();for(let n of e.outputType.fields)t.addSuggestion(new ue(n.name,"false"));r.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Dd(e,r){let t=e.outputType,n=r.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),ga(n,t)),r.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(t.name)} must not be empty. ${pt(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(t.name)} needs ${o.bold("at least one truthy value")}.`)}function _d(e,r){let t=new ut;for(let i of e.outputType.fields)i.isRelation||t.addField(i.name,"false");let n=new ue("omit",t).makeRequired();if(e.selectionPath.length===0)r.arguments.addSuggestion(n);else{let[i,o]=ct(e.selectionPath),a=r.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new Or;l.addSuggestion(n),a.value=l}}r.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Nd(e,r){let t=ha(e.selectionPath,r);if(t.parentKind!=="unknown"){t.field.markAsError();let n=t.parent;switch(t.parentKind){case"select":ga(n,e.outputType);break;case"include":Gd(n,e.outputType);break;case"omit":Qd(n,e.outputType);break}}r.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${t.fieldName}\``)}`];return t.parentKind!=="unknown"&&i.push(`for ${n.bold(t.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(pt(n)),i.join(" ")})}function Ld(e,r){let t=ha(e.selectionPath,r);t.parentKind!=="unknown"&&t.field.value.markAsError(),r.addErrorMessage(n=>`Invalid value for selection field \`${n.red(t.fieldName)}\`: ${e.underlyingError}`)}function Fd(e,r){let t=e.argumentPath[0],n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(t)?.markAsError(),Wd(n,e.arguments)),r.addErrorMessage(i=>ma(i,t,e.arguments.map(o=>o.name)))}function Md(e,r){let[t,n]=ct(e.argumentPath),i=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(t)?.asObject();o&&ya(o,e.inputType)}r.addErrorMessage(o=>ma(o,n,e.inputType.fields.map(s=>s.name)))}function ma(e,r,t){let n=[`Unknown argument \`${e.red(r)}\`.`],i=Hd(r,t);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),t.length>0&&n.push(pt(e)),n.join(" ")}function $d(e,r){let t;r.addErrorMessage(l=>t?.value instanceof Q&&t.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=ct(e.argumentPath),s=new ut,a=n.getDeepFieldValue(i)?.asObject();if(a)if(t=a.getField(o),t&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ue(o,s).makeRequired())}else{let l=e.inputTypes.map(fa).join(" | ");a.addSuggestion(new ue(o,l).makeRequired())}}function fa(e){return e.kind==="list"?`${fa(e.elementType)}[]`:e.name}function qd(e,r){let t=e.argument.name,n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),r.addErrorMessage(i=>{let o=Pn("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(t)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function jd(e,r){let t=e.argument.name,n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),r.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(t)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Pn("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Vd(e,r){let t=e.argument.name,n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof Q&&(i=s.text)}r.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(t)}\``),s.join(" ")})}function Bd(e,r){let t=e.argumentPath[e.argumentPath.length-1],n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&ya(i,e.inputType)}r.addErrorMessage(i=>{let o=[`Argument \`${i.bold(t)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Pn("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(pt(i)),o.join(" ")})}function Ud(e,r){let t=e.argumentPath[e.argumentPath.length-1],n=r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}r.addErrorMessage(o=>{let s=[`Argument \`${o.bold(t)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Pn("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function ga(e,r){for(let t of r.fields)e.hasField(t.name)||e.addSuggestion(new ue(t.name,"true"))}function Gd(e,r){for(let t of r.fields)t.isRelation&&!e.hasField(t.name)&&e.addSuggestion(new ue(t.name,"true"))}function Qd(e,r){for(let t of r.fields)!e.hasField(t.name)&&!t.isRelation&&e.addSuggestion(new ue(t.name,"true"))}function Wd(e,r){for(let t of r)e.hasField(t.name)||e.addSuggestion(new ue(t.name,t.typeNames.join(" | ")))}function ha(e,r){let[t,n]=ct(e),i=r.arguments.getDeepSubSelectionValue(t)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function ya(e,r){if(r.kind==="object")for(let t of r.fields)e.hasField(t.name)||e.addSuggestion(new ue(t.name,t.typeNames.join(" | ")))}function ct(e){let r=[...e],t=r.pop();if(!t)throw new Error("unexpected empty path");return[r,t]}function pt({green:e,enabled:r}){return"Available options are "+(r?`listed in ${e("green")}`:"marked with ?")+"."}function Pn(e,r){if(r.length===1)return r[0];let t=[...r],n=t.pop();return`${t.join(", ")} ${e} ${n}`}var Jd=3;function Hd(e,r){let t=1/0,n;for(let i of r){let o=(0,da.default)(e,i);o>Jd||o`}};function Dr(e){return e instanceof dt}var Tn=Symbol(),Ji=new WeakMap,Fe=class{constructor(r){r===Tn?Ji.set(this,`Prisma.${this._getName()}`):Ji.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Ji.get(this)}},mt=class extends Fe{_getNamespace(){return"NullTypes"}},ft=class extends mt{_brand_DbNull};Hi(ft,"DbNull");var gt=class extends mt{_brand_JsonNull};Hi(gt,"JsonNull");var ht=class extends mt{_brand_AnyNull};Hi(ht,"AnyNull");var Sn={classes:{DbNull:ft,JsonNull:gt,AnyNull:ht},instances:{DbNull:new ft(Tn),JsonNull:new gt(Tn),AnyNull:new ht(Tn)}};function Hi(e,r){Object.defineProperty(e,"name",{value:r,configurable:!0})}var ba=": ",Rn=class{constructor(r,t){this.name=r;this.value=t}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+ba.length}write(r){let t=new Te(this.name);this.hasError&&t.underline().setColor(r.context.colors.red),r.write(t).write(ba).write(this.value)}};var Ki=class{arguments;errorMessages=[];constructor(r){this.arguments=r}write(r){r.write(this.arguments)}addErrorMessage(r){this.errorMessages.push(r)}renderAllMessages(r){return this.errorMessages.map(t=>t(r)).join(` +`)}};function _r(e){return new Ki(Ea(e))}function Ea(e){let r=new Or;for(let[t,n]of Object.entries(e)){let i=new Rn(t,wa(n));r.addField(i)}return r}function wa(e){if(typeof e=="string")return new Q(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new Q(String(e));if(typeof e=="bigint")return new Q(`${e}n`);if(e===null)return new Q("null");if(e===void 0)return new Q("undefined");if(Rr(e))return new Q(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return Buffer.isBuffer(e)?new Q(`Buffer.alloc(${e.byteLength})`):new Q(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let r=gn(e)?e.toISOString():"Invalid Date";return new Q(`new Date("${r}")`)}return e instanceof Fe?new Q(`Prisma.${e._getName()}`):Dr(e)?new Q(`prisma.${Ye(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Kd(e):typeof e=="object"?Ea(e):new Q(Object.prototype.toString.call(e))}function Kd(e){let r=new kr;for(let t of e)r.addItem(wa(t));return r}function Cn(e,r){let t=r==="pretty"?pa:vn,n=e.renderAllMessages(t),i=new Ar(0,{colors:t}).write(e).toString();return{message:n,args:i}}function An({args:e,errors:r,errorFormat:t,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=_r(e);for(let p of r)En(p,a,s);let{message:l,args:u}=Cn(a,t),c=bn({message:l,callsite:n,originalMethod:i,showColors:t==="pretty",callArguments:u});throw new Z(c,{clientVersion:o})}function Se(e){return e.replace(/^./,r=>r.toLowerCase())}function va(e,r,t){let n=Se(t);return!r.result||!(r.result.$allModels||r.result[n])?e:Yd({...e,...xa(r.name,e,r.result.$allModels),...xa(r.name,e,r.result[n])})}function Yd(e){let r=new Pe,t=(n,i)=>r.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>t(o,i)):[n]));return xr(e,n=>({...n,needs:t(n.name,new Set)}))}function xa(e,r,t){return t?xr(t,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:zd(r,o,i)})):{}}function zd(e,r,t){let n=e?.[r]?.compute;return n?i=>t({...i,[r]:n(i)}):t}function Pa(e,r){if(!r)return e;let t={...e};for(let n of Object.values(r))if(e[n.name])for(let i of n.needs)t[i]=!0;return t}function Ta(e,r){if(!r)return e;let t={...e};for(let n of Object.values(r))if(!e[n.name])for(let i of n.needs)delete t[i];return t}var In=class{constructor(r,t){this.extension=r;this.previous=t}computedFieldsCache=new Pe;modelExtensionsCache=new Pe;queryCallbacksCache=new Pe;clientExtensions=at(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=at(()=>{let r=this.previous?.getAllBatchQueryCallbacks()??[],t=this.extension.query?.$__internalBatch;return t?r.concat(t):r});getAllComputedFields(r){return this.computedFieldsCache.getOrCreate(r,()=>va(this.previous?.getAllComputedFields(r),this.extension,r))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(r){return this.modelExtensionsCache.getOrCreate(r,()=>{let t=Se(r);return!this.extension.model||!(this.extension.model[t]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(r):{...this.previous?.getAllModelExtensions(r),...this.extension.model.$allModels,...this.extension.model[t]}})}getAllQueryCallbacks(r,t){return this.queryCallbacksCache.getOrCreate(`${r}:${t}`,()=>{let n=this.previous?.getAllQueryCallbacks(r,t)??[],i=[],o=this.extension.query;return!o||!(o[r]||o.$allModels||o[t]||o.$allOperations)?n:(o[r]!==void 0&&(o[r][t]!==void 0&&i.push(o[r][t]),o[r].$allOperations!==void 0&&i.push(o[r].$allOperations)),r!=="$none"&&o.$allModels!==void 0&&(o.$allModels[t]!==void 0&&i.push(o.$allModels[t]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[t]!==void 0&&i.push(o[t]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},Nr=class e{constructor(r){this.head=r}static empty(){return new e}static single(r){return new e(new In(r))}isEmpty(){return this.head===void 0}append(r){return new e(new In(r,this.head))}getAllComputedFields(r){return this.head?.getAllComputedFields(r)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(r){return this.head?.getAllModelExtensions(r)}getAllQueryCallbacks(r,t){return this.head?.getAllQueryCallbacks(r,t)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};var kn=class{constructor(r){this.name=r}};function Sa(e){return e instanceof kn}function Ra(e){return new kn(e)}var Ca=Symbol(),yt=class{constructor(r){if(r!==Ca)throw new Error("Skip instance can not be constructed directly")}ifUndefined(r){return r===void 0?On:r}},On=new yt(Ca);function Re(e){return e instanceof yt}var Zd={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Aa="explicitly `undefined` values are not allowed";function Dn({modelName:e,action:r,args:t,runtimeDataModel:n,extensions:i=Nr.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c}){let p=new Yi({runtimeDataModel:n,modelName:e,action:r,rootArgs:t,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c});return{modelName:e,action:Zd[r],query:bt(t,p)}}function bt({select:e,include:r,...t}={},n){let i=t.omit;return delete t.omit,{arguments:ka(t,n),selection:Xd(e,r,i,n)}}function Xd(e,r,t,n){return e?(r?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):t&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),nm(e,n)):em(n,r,t)}function em(e,r,t){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),r&&rm(n,r,e),tm(n,t,e),n}function rm(e,r,t){for(let[n,i]of Object.entries(r)){if(Re(i))continue;let o=t.nestSelection(n);if(zi(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=t.findField(n);if(s&&s.kind!=="object"&&t.throwValidationError({kind:"IncludeOnScalar",selectionPath:t.getSelectionPath().concat(n),outputType:t.getOutputTypeDescription()}),s){e[n]=bt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=bt(i,o)}}function tm(e,r,t){let n=t.getComputedFields(),i={...t.getGlobalOmit(),...r},o=Ta(i,n);for(let[s,a]of Object.entries(o)){if(Re(a))continue;zi(a,t.nestSelection(s));let l=t.findField(s);n?.[s]&&!l||(e[s]=!a)}}function nm(e,r){let t={},n=r.getComputedFields(),i=Pa(e,n);for(let[o,s]of Object.entries(i)){if(Re(s))continue;let a=r.nestSelection(o);zi(s,a);let l=r.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Re(s)){t[o]=!1;continue}if(s===!0){l?.kind==="object"?t[o]=bt({},a):t[o]=!0;continue}t[o]=bt(s,a)}}return t}function Ia(e,r){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(Sr(e)){if(gn(e))return{$type:"DateTime",value:e.toISOString()};r.throwValidationError({kind:"InvalidArgumentValue",selectionPath:r.getSelectionPath(),argumentPath:r.getArgumentPath(),argument:{name:r.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Sa(e))return{$type:"Param",value:e.name};if(Dr(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return im(e,r);if(ArrayBuffer.isView(e)){let{buffer:t,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:Buffer.from(t,n,i).toString("base64")}}if(om(e))return e.values;if(Rr(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Fe){if(e!==Sn.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(sm(e))return e.toJSON();if(typeof e=="object")return ka(e,r);r.throwValidationError({kind:"InvalidArgumentValue",selectionPath:r.getSelectionPath(),argumentPath:r.getArgumentPath(),argument:{name:r.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function ka(e,r){if(e.$type)return{$type:"Raw",value:e};let t={};for(let n in e){let i=e[n],o=r.nestArgument(n);Re(i)||(i!==void 0?t[n]=Ia(i,o):r.isPreviewFeatureOn("strictUndefinedChecks")&&r.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:r.getSelectionPath(),argument:{name:r.getArgumentName(),typeNames:[]},underlyingError:Aa}))}return t}function im(e,r){let t=[];for(let n=0;n({name:r.name,typeName:"boolean",isRelation:r.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(r){return this.params.previewFeatures.includes(r)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(r){return this.modelOrType?.fields.find(t=>t.name===r)}nestSelection(r){let t=this.findField(r),n=t?.kind==="object"?t.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(r)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[Ye(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:_e(this.params.action,"Unknown action")}}nestArgument(r){return new e({...this.params,argumentPath:this.params.argumentPath.concat(r)})}};function Oa(e){if(!e._hasPreviewFlag("metrics"))throw new Z("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var Lr=class{_client;constructor(r){this._client=r}prometheus(r){return Oa(this._client),this._client._engine.metrics({format:"prometheus",...r})}json(r){return Oa(this._client),this._client._engine.metrics({format:"json",...r})}};function Da(e,r){let t=at(()=>am(r));Object.defineProperty(e,"dmmf",{get:()=>t.get()})}function am(e){return{datamodel:{models:Zi(e.models),enums:Zi(e.enums),types:Zi(e.types)}}}function Zi(e){return Object.entries(e).map(([r,t])=>({name:r,...t}))}var Xi=new WeakMap,_n="$$PrismaTypedSql",Et=class{constructor(r,t){Xi.set(this,{sql:r,values:t}),Object.defineProperty(this,_n,{value:_n})}get sql(){return Xi.get(this).sql}get values(){return Xi.get(this).values}};function _a(e){return(...r)=>new Et(e,r)}function Nn(e){return e!=null&&e[_n]===_n}var pu=k(Ei());var du=require("node:async_hooks"),mu=require("node:events"),fu=k(require("node:fs")),Zn=k(require("node:path"));var oe=class e{constructor(r,t){if(r.length-1!==t.length)throw r.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${r.length} strings to have ${r.length-1} values`);let n=t.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=r[0];let i=0,o=0;for(;ie.getPropertyValue(t))},getPropertyDescriptor(t){return e.getPropertyDescriptor?.(t)}}}var Ln={enumerable:!0,configurable:!0,writable:!0};function Fn(e){let r=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>Ln,has:(t,n)=>r.has(n),set:(t,n,i)=>r.add(n)&&Reflect.set(t,n,i),ownKeys:()=>[...r]}}var Fa=Symbol.for("nodejs.util.inspect.custom");function he(e,r){let t=lm(r),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=t.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=t.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Ma(Reflect.ownKeys(o),t),a=Ma(Array.from(t.keys()),t);return[...new Set([...s,...a,...n])]},set(o,s,a){return t.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=t.get(s);return l?l.getPropertyDescriptor?{...Ln,...l?.getPropertyDescriptor(s)}:Ln:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[Fa]=function(){let o={...this};return delete o[Fa],o},i}function lm(e){let r=new Map;for(let t of e){let n=t.getKeys();for(let i of n)r.set(i,t)}return r}function Ma(e,r){return e.filter(t=>r.get(t)?.has?.(t)??!0)}function Fr(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}function Mr(e,r){return{batch:e,transaction:r?.kind==="batch"?{isolationLevel:r.options.isolationLevel}:void 0}}function $a(e){if(e===void 0)return"";let r=_r(e);return new Ar(0,{colors:vn}).write(r).toString()}var um="P2037";function $r({error:e,user_facing_error:r},t,n){return r.error_code?new z(cm(r,n),{code:r.error_code,clientVersion:t,meta:r.meta,batchRequestIdx:r.batch_request_idx}):new j(e,{clientVersion:t,batchRequestIdx:r.batch_request_idx})}function cm(e,r){let t=e.message;return(r==="postgresql"||r==="postgres"||r==="mysql")&&e.error_code===um&&(t+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),t}var xt="";function qa(e){var r=e.split(` +`);return r.reduce(function(t,n){var i=mm(n)||gm(n)||bm(n)||vm(n)||wm(n);return i&&t.push(i),t},[])}var pm=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,dm=/\((\S*)(?::(\d+))(?::(\d+))\)/;function mm(e){var r=pm.exec(e);if(!r)return null;var t=r[2]&&r[2].indexOf("native")===0,n=r[2]&&r[2].indexOf("eval")===0,i=dm.exec(r[2]);return n&&i!=null&&(r[2]=i[1],r[3]=i[2],r[4]=i[3]),{file:t?null:r[2],methodName:r[1]||xt,arguments:t?[r[2]]:[],lineNumber:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}var fm=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function gm(e){var r=fm.exec(e);return r?{file:r[2],methodName:r[1]||xt,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}:null}var hm=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,ym=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function bm(e){var r=hm.exec(e);if(!r)return null;var t=r[3]&&r[3].indexOf(" > eval")>-1,n=ym.exec(r[3]);return t&&n!=null&&(r[3]=n[1],r[4]=n[2],r[5]=null),{file:r[3],methodName:r[1]||xt,arguments:r[2]?r[2].split(","):[],lineNumber:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}var Em=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function wm(e){var r=Em.exec(e);return r?{file:r[3],methodName:r[1]||xt,arguments:[],lineNumber:+r[4],column:r[5]?+r[5]:null}:null}var xm=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function vm(e){var r=xm.exec(e);return r?{file:r[2],methodName:r[1]||xt,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}:null}var to=class{getLocation(){return null}},no=class{_error;constructor(){this._error=new Error}getLocation(){let r=this._error.stack;if(!r)return null;let n=qa(r).find(i=>{if(!i.file)return!1;let o=Oi(i.file);return o!==""&&!o.includes("@prisma")&&!o.includes("/packages/client/src/runtime/")&&!o.endsWith("/runtime/binary.js")&&!o.endsWith("/runtime/library.js")&&!o.endsWith("/runtime/edge.js")&&!o.endsWith("/runtime/edge-esm.js")&&!o.startsWith("internal/")&&!i.methodName.includes("new ")&&!i.methodName.includes("getCallSite")&&!i.methodName.includes("Proxy.")&&i.methodName.split(".").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ze(e){return e==="minimal"?typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new to:new no}var ja={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function qr(e={}){let r=Tm(e);return Object.entries(r).reduce((n,[i,o])=>(ja[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Tm(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Mn(e={}){return r=>(typeof e._count=="boolean"&&(r._count=r._count._all),r)}function Va(e,r){let t=Mn(e);return r({action:"aggregate",unpacker:t,argsMapper:qr})(e)}function Sm(e={}){let{select:r,...t}=e;return typeof r=="object"?qr({...t,_count:r}):qr({...t,_count:{_all:!0}})}function Rm(e={}){return typeof e.select=="object"?r=>Mn(e)(r)._count:r=>Mn(e)(r)._count._all}function Ba(e,r){return r({action:"count",unpacker:Rm(e),argsMapper:Sm})(e)}function Cm(e={}){let r=qr(e);if(Array.isArray(r.by))for(let t of r.by)typeof t=="string"&&(r.select[t]=!0);else typeof r.by=="string"&&(r.select[r.by]=!0);return r}function Am(e={}){return r=>(typeof e?._count=="boolean"&&r.forEach(t=>{t._count=t._count._all}),r)}function Ua(e,r){return r({action:"groupBy",unpacker:Am(e),argsMapper:Cm})(e)}function Ga(e,r,t){if(r==="aggregate")return n=>Va(n,t);if(r==="count")return n=>Ba(n,t);if(r==="groupBy")return n=>Ua(n,t)}function Qa(e,r){let t=r.fields.filter(i=>!i.relationName),n=zs(t,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new dt(e,o,s.type,s.isList,s.kind==="enum")},...Fn(Object.keys(n))})}var Wa=e=>Array.isArray(e)?e:e.split("."),io=(e,r)=>Wa(r).reduce((t,n)=>t&&t[n],e),Ja=(e,r,t)=>Wa(r).reduceRight((n,i,o,s)=>Object.assign({},io(e,s.slice(0,o)),{[i]:n}),t);function Im(e,r){return e===void 0||r===void 0?[]:[...r,"select",e]}function km(e,r,t){return r===void 0?e??{}:Ja(r,t,e||!0)}function oo(e,r,t,n,i,o){let a=e._runtimeDataModel.models[r].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ze(e._errorFormat),c=Im(n,i),p=km(l,o,c),d=t({dataPath:c,callsite:u})(p),f=Om(e,r);return new Proxy(d,{get(g,h){if(!f.includes(h))return g[h];let P=[a[h].type,t,h],S=[c,p];return oo(e,...P,...S)},...Fn([...f,...Object.getOwnPropertyNames(d)])})}}function Om(e,r){return e._runtimeDataModel.models[r].fields.filter(t=>t.kind==="object").map(t=>t.name)}var Dm=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],_m=["aggregate","count","groupBy"];function so(e,r){let t=e._extensions.getAllModelExtensions(r)??{},n=[Nm(e,r),Fm(e,r),wt(t),re("name",()=>r),re("$name",()=>r),re("$parent",()=>e._appliedParent)];return he({},n)}function Nm(e,r){let t=Se(r),n=Object.keys(Cr).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let u=Ze(e._errorFormat);return e._createPrismaPromise(c=>{let p={args:l,dataPath:[],action:o,model:r,clientMethod:`${t}.${i}`,jsModelName:t,transaction:c,callsite:u};return e._request({...p,...a})},{action:o,args:l,model:r})};return Dm.includes(o)?oo(e,r,s):Lm(i)?Ga(e,i,s):s({})}}}function Lm(e){return _m.includes(e)}function Fm(e,r){return ar(re("fields",()=>{let t=e._runtimeDataModel.models[r];return Qa(r,t)}))}function Ha(e){return e.replace(/^./,r=>r.toUpperCase())}var ao=Symbol();function vt(e){let r=[Mm(e),$m(e),re(ao,()=>e),re("$parent",()=>e._appliedParent)],t=e._extensions.getAllClientExtensions();return t&&r.push(wt(t)),he(e,r)}function Mm(e){let r=Object.getPrototypeOf(e._originalClient),t=[...new Set(Object.getOwnPropertyNames(r))];return{getKeys(){return t},getPropertyValue(n){return e[n]}}}function $m(e){let r=Object.keys(e._runtimeDataModel.models),t=r.map(Se),n=[...new Set(r.concat(t))];return ar({getKeys(){return n},getPropertyValue(i){let o=Ha(i);if(e._runtimeDataModel.models[o]!==void 0)return so(e,o);if(e._runtimeDataModel.models[i]!==void 0)return so(e,i)},getPropertyDescriptor(i){if(!t.includes(i))return{enumerable:!1}}})}function Ka(e){return e[ao]?e[ao]:e}function Ya(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let t=e.client.__AccelerateEngine;this._originalClient._engine=new t(this._originalClient._accelerateEngineConfig)}let r=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return vt(r)}function za({result:e,modelName:r,select:t,omit:n,extensions:i}){let o=i.getAllComputedFields(r);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(c=>n[c]);u.length>0&&a.push(Fr(u))}else if(t){if(!t[l.name])continue;let u=l.needs.filter(c=>!t[c]);u.length>0&&a.push(Fr(u))}qm(e,l.needs)&&s.push(jm(l,he(e,s)))}return s.length>0||a.length>0?he(e,[...s,...a]):e}function qm(e,r){return r.every(t=>Mi(e,t))}function jm(e,r){return ar(re(e.name,()=>e.compute(r)))}function $n({visitor:e,result:r,args:t,runtimeDataModel:n,modelName:i}){if(Array.isArray(r)){for(let s=0;sc.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let u=typeof s=="object"?s:{};r[o]=$n({visitor:i,result:r[o],args:u,modelName:l.type,runtimeDataModel:n})}}function Xa({result:e,modelName:r,args:t,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[r]?e:$n({result:e,args:t??{},modelName:r,runtimeDataModel:i,visitor:(a,l,u)=>{let c=Se(l);return za({result:a,modelName:c,select:u.select,omit:u.select?void 0:{...o?.[c],...u.omit},extensions:n})}})}var Vm=["$connect","$disconnect","$on","$transaction","$use","$extends"],el=Vm;function rl(e){if(e instanceof oe)return Bm(e);if(Nn(e))return Um(e);if(Array.isArray(e)){let t=[e[0]];for(let n=1;n{let o=r.customDataProxyFetch;return"transaction"in r&&i!==void 0&&(r.transaction?.kind==="batch"&&r.transaction.lock.then(),r.transaction=i),n===t.length?e._executeRequest(r):t[n]({model:r.model,operation:r.model?r.action:r.clientMethod,args:rl(r.args??{}),__internalParams:r,query:(s,a=r)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=al(o,l),a.args=s,nl(e,a,t,n+1)}})})}function il(e,r){let{jsModelName:t,action:n,clientMethod:i}=r,o=t?n:i;if(e._extensions.isEmpty())return e._executeRequest(r);let s=e._extensions.getAllQueryCallbacks(t??"$none",o);return nl(e,r,s)}function ol(e){return r=>{let t={requests:r},n=r[0].extensions.getAllBatchQueryCallbacks();return n.length?sl(t,n,0,e):e(t)}}function sl(e,r,t,n){if(t===r.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return r[t]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=al(i,l),sl(a,r,t+1,n)}})}var tl=e=>e;function al(e=tl,r=tl){return t=>e(r(t))}var ll=N("prisma:client"),ul={Vercel:"vercel","Netlify CI":"netlify"};function cl({postinstall:e,ciName:r,clientVersion:t}){if(ll("checkPlatformCaching:postinstall",e),ll("checkPlatformCaching:ciName",r),e===!0&&r&&r in ul){let n=`Prisma has detected that this project was built on ${r}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ul[r]}-build`;throw console.error(n),new T(n,t)}}function pl(e,r){return e?e.datasources?e.datasources:e.datasourceUrl?{[r[0]]:{url:e.datasourceUrl}}:{}:{}}var Gm=()=>globalThis.process?.release?.name==="node",Qm=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,Wm=()=>!!globalThis.Deno,Jm=()=>typeof globalThis.Netlify=="object",Hm=()=>typeof globalThis.EdgeRuntime=="object",Km=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function Ym(){return[[Jm,"netlify"],[Hm,"edge-light"],[Km,"workerd"],[Wm,"deno"],[Qm,"bun"],[Gm,"node"]].flatMap(t=>t[0]()?[t[1]]:[]).at(0)??""}var zm={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function qn(){let e=Ym();return{id:e,prettyName:zm[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}var hl=k(require("node:fs")),Tt=k(require("node:path"));function jn(e){let{runtimeBinaryTarget:r}=e;return`Add "${r}" to \`binaryTargets\` in the "schema.prisma" file and run \`prisma generate\` after saving it: + +${Zm(e)}`}function Zm(e){let{generator:r,generatorBinaryTargets:t,runtimeBinaryTarget:n}=e,i={fromEnvVar:null,value:n},o=[...t,i];return Ai({...r,binaryTargets:o})}function Xe(e){let{runtimeBinaryTarget:r}=e;return`Prisma Client could not locate the Query Engine for runtime "${r}".`}function er(e){let{searchedLocations:r}=e;return`The following locations have been searched: +${[...new Set(r)].map(i=>` ${i}`).join(` +`)}`}function dl(e){let{runtimeBinaryTarget:r}=e;return`${Xe(e)} + +This happened because \`binaryTargets\` have been pinned, but the actual deployment also required "${r}". +${jn(e)} + +${er(e)}`}function Vn(e){return`We would appreciate if you could take the time to share some information with us. +Please help us by answering a few questions: https://pris.ly/${e}`}function Bn(e){let{errorStack:r}=e;return r?.match(/\/\.next|\/next@|\/next\//)?` + +We detected that you are using Next.js, learn how to fix this: https://pris.ly/d/engine-not-found-nextjs.`:""}function ml(e){let{queryEngineName:r}=e;return`${Xe(e)}${Bn(e)} + +This is likely caused by a bundler that has not copied "${r}" next to the resulting bundle. +Ensure that "${r}" has been copied next to the bundle or in "${e.expectedLocation}". + +${Vn("engine-not-found-bundler-investigation")} + +${er(e)}`}function fl(e){let{runtimeBinaryTarget:r,generatorBinaryTargets:t}=e,n=t.find(i=>i.native);return`${Xe(e)} + +This happened because Prisma Client was generated for "${n?.value??"unknown"}", but the actual deployment required "${r}". +${jn(e)} + +${er(e)}`}function gl(e){let{queryEngineName:r}=e;return`${Xe(e)}${Bn(e)} + +This is likely caused by tooling that has not copied "${r}" to the deployment folder. +Ensure that you ran \`prisma generate\` and that "${r}" has been copied to "${e.expectedLocation}". + +${Vn("engine-not-found-tooling-investigation")} + +${er(e)}`}var Xm=N("prisma:client:engines:resolveEnginePath"),ef=()=>new RegExp("runtime[\\\\/]library\\.m?js$");async function yl(e,r){let t={binary:process.env.PRISMA_QUERY_ENGINE_BINARY,library:process.env.PRISMA_QUERY_ENGINE_LIBRARY}[e]??r.prismaPath;if(t!==void 0)return t;let{enginePath:n,searchedLocations:i}=await rf(e,r);if(Xm("enginePath",n),n!==void 0&&e==="binary"&&vi(n),n!==void 0)return r.prismaPath=n;let o=await ir(),s=r.generator?.binaryTargets??[],a=s.some(d=>d.native),l=!s.some(d=>d.value===o),u=__filename.match(ef())===null,c={searchedLocations:i,generatorBinaryTargets:s,generator:r.generator,runtimeBinaryTarget:o,queryEngineName:bl(e,o),expectedLocation:Tt.default.relative(process.cwd(),r.dirname),errorStack:new Error().stack},p;throw a&&l?p=fl(c):l?p=dl(c):u?p=ml(c):p=gl(c),new T(p,r.clientVersion)}async function rf(engineType,config){let binaryTarget=await ir(),searchedLocations=[],dirname=eval("__dirname"),searchLocations=[config.dirname,Tt.default.resolve(dirname,".."),config.generator?.output?.value??dirname,Tt.default.resolve(dirname,"../../../.prisma/client"),"/tmp/prisma-engines",config.cwd];__filename.includes("resolveEnginePath")&&searchLocations.push(gs());for(let e of searchLocations){let r=bl(engineType,binaryTarget),t=Tt.default.join(e,r);if(searchedLocations.push(e),hl.default.existsSync(t))return{enginePath:t,searchedLocations}}return{enginePath:void 0,searchedLocations}}function bl(e,r){return e==="library"?Bt(r,"fs"):`query-engine-${r}${r==="windows"?".exe":""}`}var lo=k(ki());function El(e){return e?e.replace(/".*"/g,'"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g,r=>`${r[0]}5`):""}function wl(e){return e.split(` +`).map(r=>r.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/,"").replace(/\+\d+\s*ms$/,"")).join(` +`)}var xl=k(Ls());function vl({title:e,user:r="prisma",repo:t="prisma",template:n="bug_report.yml",body:i}){return(0,xl.default)({user:r,repo:t,template:n,title:e,body:i})}function Pl({version:e,binaryTarget:r,title:t,description:n,engineVersion:i,database:o,query:s}){let a=Go(6e3-(s?.length??0)),l=wl((0,lo.default)(a)),u=n?`# Description +\`\`\` +${n} +\`\`\``:"",c=(0,lo.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${process.version?.padEnd(19)}| +| OS | ${r?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s?El(s):""} +\`\`\` +`),p=vl({title:t,body:c});return`${t} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${Y(p)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`}function jr({inlineDatasources:e,overrideDatasources:r,env:t,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=r[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=t[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new T(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new T("error: Missing URL environment variable, value, or override.",n);return i}var Un=class extends Error{clientVersion;cause;constructor(r,t){super(r),this.clientVersion=t.clientVersion,this.cause=t.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends Un{isRetryable;constructor(r,t){super(r,t),this.isRetryable=t.isRetryable??!0}};function R(e,r){return{...e,isRetryable:r}}var Vr=class extends se{name="ForcedRetryError";code="P5001";constructor(r){super("This request must be retried",R(r,!0))}};x(Vr,"ForcedRetryError");var lr=class extends se{name="InvalidDatasourceError";code="P6001";constructor(r,t){super(r,R(t,!1))}};x(lr,"InvalidDatasourceError");var ur=class extends se{name="NotImplementedYetError";code="P5004";constructor(r,t){super(r,R(t,!1))}};x(ur,"NotImplementedYetError");var $=class extends se{response;constructor(r,t){super(r,t),this.response=t.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var cr=class extends ${name="SchemaMissingError";code="P5005";constructor(r){super("Schema needs to be uploaded",R(r,!0))}};x(cr,"SchemaMissingError");var uo="This request could not be understood by the server",St=class extends ${name="BadRequestError";code="P5000";constructor(r,t,n){super(t||uo,R(r,!1)),n&&(this.code=n)}};x(St,"BadRequestError");var Rt=class extends ${name="HealthcheckTimeoutError";code="P5013";logs;constructor(r,t){super("Engine not started: healthcheck timeout",R(r,!0)),this.logs=t}};x(Rt,"HealthcheckTimeoutError");var Ct=class extends ${name="EngineStartupError";code="P5014";logs;constructor(r,t,n){super(t,R(r,!0)),this.logs=n}};x(Ct,"EngineStartupError");var At=class extends ${name="EngineVersionNotSupportedError";code="P5012";constructor(r){super("Engine version is not supported",R(r,!1))}};x(At,"EngineVersionNotSupportedError");var co="Request timed out",It=class extends ${name="GatewayTimeoutError";code="P5009";constructor(r,t=co){super(t,R(r,!1))}};x(It,"GatewayTimeoutError");var tf="Interactive transaction error",kt=class extends ${name="InteractiveTransactionError";code="P5015";constructor(r,t=tf){super(t,R(r,!1))}};x(kt,"InteractiveTransactionError");var nf="Request parameters are invalid",Ot=class extends ${name="InvalidRequestError";code="P5011";constructor(r,t=nf){super(t,R(r,!1))}};x(Ot,"InvalidRequestError");var po="Requested resource does not exist",Dt=class extends ${name="NotFoundError";code="P5003";constructor(r,t=po){super(t,R(r,!1))}};x(Dt,"NotFoundError");var mo="Unknown server error",Br=class extends ${name="ServerError";code="P5006";logs;constructor(r,t,n){super(t||mo,R(r,!0)),this.logs=n}};x(Br,"ServerError");var fo="Unauthorized, check your connection string",_t=class extends ${name="UnauthorizedError";code="P5007";constructor(r,t=fo){super(t,R(r,!1))}};x(_t,"UnauthorizedError");var go="Usage exceeded, retry again later",Nt=class extends ${name="UsageExceededError";code="P5008";constructor(r,t=go){super(t,R(r,!0))}};x(Nt,"UsageExceededError");async function of(e){let r;try{r=await e.text()}catch{return{type:"EmptyError"}}try{let t=JSON.parse(r);if(typeof t=="string")switch(t){case"InternalDataProxyError":return{type:"DataProxyError",body:t};default:return{type:"UnknownTextError",body:t}}if(typeof t=="object"&&t!==null){if("is_panic"in t&&"message"in t&&"error_code"in t)return{type:"QueryEngineError",body:t};if("EngineNotStarted"in t||"InteractiveTransactionMisrouted"in t||"InvalidRequestError"in t){let n=Object.values(t)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:t}:{type:"DataProxyError",body:t}}}return{type:"UnknownJsonError",body:t}}catch{return r===""?{type:"EmptyError"}:{type:"UnknownTextError",body:r}}}async function Lt(e,r){if(e.ok)return;let t={clientVersion:r,response:e},n=await of(e);if(n.type==="QueryEngineError")throw new z(n.body.message,{code:n.body.error_code,clientVersion:r});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new Br(t,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new cr(t);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new At(t);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Ct(t,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new T(i,r,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Rt(t,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new kt(t,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Ot(t,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new _t(t,Ur(fo,n));if(e.status===404)return new Dt(t,Ur(po,n));if(e.status===429)throw new Nt(t,Ur(go,n));if(e.status===504)throw new It(t,Ur(co,n));if(e.status>=500)throw new Br(t,Ur(mo,n));if(e.status>=400)throw new St(t,Ur(uo,n))}function Ur(e,r){return r.type==="EmptyError"?e:`${e}: ${JSON.stringify(r)}`}function Tl(e){let r=Math.pow(2,e)*50,t=Math.ceil(Math.random()*r)-Math.ceil(r/2),n=r+t;return new Promise(i=>setTimeout(()=>i(n),n))}var Me="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Sl(e){let r=new TextEncoder().encode(e),t="",n=r.byteLength,i=n%3,o=n-i,s,a,l,u,c;for(let p=0;p>18,a=(c&258048)>>12,l=(c&4032)>>6,u=c&63,t+=Me[s]+Me[a]+Me[l]+Me[u];return i==1?(c=r[o],s=(c&252)>>2,a=(c&3)<<4,t+=Me[s]+Me[a]+"=="):i==2&&(c=r[o]<<8|r[o+1],s=(c&64512)>>10,a=(c&1008)>>4,l=(c&15)<<2,t+=Me[s]+Me[a]+Me[l]+"="),t}function Rl(e){if(!!e.generator?.previewFeatures.some(t=>t.toLowerCase().includes("metrics")))throw new T("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}function sf(e){return e[0]*1e3+e[1]/1e6}function ho(e){return new Date(sf(e))}var Cl={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};var Ft=class extends se{name="RequestError";code="P5010";constructor(r,t){super(`Cannot fetch data from service: +${r}`,R(t,!0))}};x(Ft,"RequestError");async function pr(e,r,t=n=>n){let{clientVersion:n,...i}=r,o=t(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new Ft(a,{clientVersion:n,cause:s})}}var lf=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,Al=N("prisma:client:dataproxyEngine");async function uf(e,r){let t=Cl["@prisma/engines-version"],n=r.clientVersion??"unknown";if(process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&lf.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=t.split("-")??[],[a,l,u]=s.split("."),c=cf(`<=${a}.${l}.${u}`),p=await pr(c,{clientVersion:n});if(!p.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${p.status} ${p.statusText}, response body: ${await p.text()||""}`);let d=await p.text();Al("length of body fetched from unpkg.com",d.length);let f;try{f=JSON.parse(d)}catch(g){throw console.error("JSON.parse error: body fetched from unpkg.com: ",d),g}return f.version}throw new ur("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Il(e,r){let t=await uf(e,r);return Al("version",t),t}function cf(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var kl=3,Gn=N("prisma:client:dataproxyEngine"),yo=class{apiKey;tracingHelper;logLevel;logQueries;engineHash;constructor({apiKey:r,tracingHelper:t,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=r,this.tracingHelper=t,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:r,interactiveTransaction:t}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=r??this.tracingHelper.getTraceParent()),t&&(n["X-transaction-id"]=t.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let r=[];return this.tracingHelper.isEnabled()&&r.push("tracing"),this.logLevel&&r.push(this.logLevel),this.logQueries&&r.push("query"),r}},Mt=class{name="DataProxyEngine";inlineSchema;inlineSchemaHash;inlineDatasources;config;logEmitter;env;clientVersion;engineHash;tracingHelper;remoteClientVersion;host;headerBuilder;startPromise;constructor(r){Rl(r),this.config=r,this.env={...r.env,...typeof process<"u"?process.env:{}},this.inlineSchema=Sl(r.inlineSchema),this.inlineDatasources=r.inlineDatasources,this.inlineSchemaHash=r.inlineSchemaHash,this.clientVersion=r.clientVersion,this.engineHash=r.engineVersion,this.logEmitter=r.logEmitter,this.tracingHelper=r.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[r,t]=this.extractHostAndApiKey();this.host=r,this.headerBuilder=new yo({apiKey:t,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Il(r,this.config),Gn("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(r){r?.logs?.length&&r.logs.forEach(t=>{switch(t.level){case"debug":case"trace":Gn(t);break;case"error":case"warn":case"info":{this.logEmitter.emit(t.level,{timestamp:ho(t.timestamp),message:t.attributes.message??"",target:t.target});break}case"query":{this.logEmitter.emit("query",{query:t.attributes.query??"",timestamp:ho(t.timestamp),duration:t.attributes.duration_ms??0,params:t.attributes.params??"",target:t.target});break}default:t.level}}),r?.traces?.length&&this.tracingHelper.dispatchEngineSpans(r.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(r){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${r}`}async uploadSchema(){let r={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(r,async()=>{let t=await pr(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});t.ok||Gn("schema response status",t.status);let n=await Lt(t,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(r,{traceparent:t,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:r,traceparent:t,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(r,{traceparent:t,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=Mr(r,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:t})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:r,traceparent:t,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await pr(s,{method:"POST",headers:this.headerBuilder.build({traceparent:t,interactiveTransaction:i}),body:JSON.stringify(r),clientVersion:this.clientVersion},n);a.ok||Gn("graphql response status",a.status),await this.handleError(await Lt(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(r,t,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[r]} transaction`,callback:async({logHttpCall:o})=>{if(r==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await pr(a,{method:"POST",headers:this.headerBuilder.build({traceparent:t.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Lt(l,this.clientVersion));let u=await l.json(),{extensions:c}=u;c&&this.propagateResponseExtensions(c);let p=u.id,d=u["data-proxy"].endpoint;return{id:p,payload:{endpoint:d}}}else{let s=`${n.payload.endpoint}/${r}`;o(s);let a=await pr(s,{method:"POST",headers:this.headerBuilder.build({traceparent:t.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Lt(a,this.clientVersion));let l=await a.json(),{extensions:u}=l;u&&this.propagateResponseExtensions(u);return}}})}extractHostAndApiKey(){let r={clientVersion:this.clientVersion},t=Object.keys(this.inlineDatasources)[0],n=jr({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new lr(`Error validating datasource \`${t}\`: the URL must start with the protocol \`prisma://\``,r)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!==en)throw new lr(`Error validating datasource \`${t}\`: the URL must start with the protocol \`prisma://\``,r);let l=a.get("api_key");if(l===null||l.length<1)throw new lr(`Error validating datasource \`${t}\`: the URL must contain a valid API key`,r);return[s,l]}metrics(){throw new ur("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(r){for(let t=0;;t++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${t})`,timestamp:new Date,target:""})};try{return await r.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(t>=kl)throw i instanceof Vr?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${t+1}/${kl} failed for ${r.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Tl(t);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(r){if(r instanceof cr)throw await this.uploadSchema(),new Vr({clientVersion:this.clientVersion,cause:r});if(r)throw r}convertProtocolErrorsToClientError(r){return r.length===1?$r(r[0],this.config.clientVersion,this.config.activeProvider):new j(JSON.stringify(r),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function bo(e){return e.name==="DriverAdapterError"&&typeof e.cause=="object"}function Qn(e){return{ok:!0,value:e,map(r){return Qn(r(e))},flatMap(r){return r(e)}}}function dr(e){return{ok:!1,error:e,map(){return dr(e)},flatMap(){return dr(e)}}}var Ol=N("driver-adapter-utils"),Eo=class{registeredErrors=[];consumeError(r){return this.registeredErrors[r]}registerNewError(r){let t=0;for(;this.registeredErrors[t]!==void 0;)t++;return this.registeredErrors[t]={error:r},t}};var wo=(e,r=new Eo)=>{let t={adapterName:e.adapterName,errorRegistry:r,queryRaw:$e(r,e.queryRaw.bind(e)),executeRaw:$e(r,e.executeRaw.bind(e)),executeScript:$e(r,e.executeScript.bind(e)),dispose:$e(r,e.dispose.bind(e)),provider:e.provider,startTransaction:async(...n)=>(await $e(r,e.startTransaction.bind(e))(...n)).map(o=>pf(r,o))};return e.getConnectionInfo&&(t.getConnectionInfo=df(r,e.getConnectionInfo.bind(e))),t},pf=(e,r)=>({adapterName:r.adapterName,provider:r.provider,options:r.options,queryRaw:$e(e,r.queryRaw.bind(r)),executeRaw:$e(e,r.executeRaw.bind(r)),commit:$e(e,r.commit.bind(r)),rollback:$e(e,r.rollback.bind(r))});function $e(e,r){return async(...t)=>{try{return Qn(await r(...t))}catch(n){if(Ol("[error@wrapAsync]",n),bo(n))return dr(n.cause);let i=e.registerNewError(n);return dr({kind:"GenericJs",id:i})}}}function df(e,r){return(...t)=>{try{return Qn(r(...t))}catch(n){if(Ol("[error@wrapSync]",n),bo(n))return dr(n.cause);let i=e.registerNewError(n);return dr({kind:"GenericJs",id:i})}}}function Dl(e){if(e?.kind==="itx")return e.options.id}var vo=k(require("node:os")),_l=k(require("node:path"));var xo=Symbol("PrismaLibraryEngineCache");function mf(){let e=globalThis;return e[xo]===void 0&&(e[xo]={}),e[xo]}function ff(e){let r=mf();if(r[e]!==void 0)return r[e];let t=_l.default.toNamespacedPath(e),n={exports:{}},i=0;return process.platform!=="win32"&&(i=vo.default.constants.dlopen.RTLD_LAZY|vo.default.constants.dlopen.RTLD_DEEPBIND),process.dlopen(n,t,i),r[e]=n.exports,n.exports}var Nl={async loadLibrary(e){let r=await pi(),t=await yl("library",e);try{return e.tracingHelper.runInChildSpan({name:"loadLibrary",internal:!0},()=>ff(t))}catch(n){let i=Pi({e:n,platformInfo:r,id:t});throw new T(i,e.clientVersion)}}};var Po,Ll={async loadLibrary(e){let{clientVersion:r,adapter:t,engineWasm:n}=e;if(t===void 0)throw new T(`The \`adapter\` option for \`PrismaClient\` is required in this context (${qn().prettyName})`,r);if(n===void 0)throw new T("WASM engine was unexpectedly `undefined`",r);Po===void 0&&(Po=(async()=>{let o=await n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new T("The loaded wasm module was unexpectedly `undefined` or `null` once loaded",r);let a={"./query_engine_bg.js":o},l=new WebAssembly.Instance(s,a),u=l.exports.__wbindgen_start;return o.__wbg_set_wasm(l.exports),u(),o.QueryEngine})());let i=await Po;return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:i}}};var gf="P2036",Ce=N("prisma:client:libraryEngine");function hf(e){return e.item_type==="query"&&"query"in e}function yf(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var Fl=[...oi,"native"],bf=0xffffffffffffffffn,To=1n;function Ef(){let e=To++;return To>bf&&(To=1n),e}var Gr=class{name="LibraryEngine";engine;libraryInstantiationPromise;libraryStartingPromise;libraryStoppingPromise;libraryStarted;executingQueryPromise;config;QueryEngineConstructor;libraryLoader;library;logEmitter;libQueryEnginePath;binaryTarget;datasourceOverrides;datamodel;logQueries;logLevel;lastQuery;loggerRustPanic;tracingHelper;adapterPromise;versionInfo;constructor(r,t){this.libraryLoader=t??Nl,r.engineWasm!==void 0&&(this.libraryLoader=t??Ll),this.config=r,this.libraryStarted=!1,this.logQueries=r.logQueries??!1,this.logLevel=r.logLevel??"error",this.logEmitter=r.logEmitter,this.datamodel=r.inlineSchema,this.tracingHelper=r.tracingHelper,r.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(r.overrideDatasources)[0],i=r.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(r){return{applyPendingMigrations:r.applyPendingMigrations?.bind(r),commitTransaction:this.withRequestId(r.commitTransaction.bind(r)),connect:this.withRequestId(r.connect.bind(r)),disconnect:this.withRequestId(r.disconnect.bind(r)),metrics:r.metrics?.bind(r),query:this.withRequestId(r.query.bind(r)),rollbackTransaction:this.withRequestId(r.rollbackTransaction.bind(r)),sdlSchema:r.sdlSchema?.bind(r),startTransaction:this.withRequestId(r.startTransaction.bind(r)),trace:r.trace.bind(r)}}withRequestId(r){return async(...t)=>{let n=Ef().toString();try{return await r(...t,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){throw new Error("Cannot call this method from this type of engine instance")}async transaction(r,t,n){await this.start();let i=await this.adapterPromise,o=JSON.stringify(t),s;if(r==="start"){let l=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});s=await this.engine?.startTransaction(l,o)}else r==="commit"?s=await this.engine?.commitTransaction(n.id,o):r==="rollback"&&(s=await this.engine?.rollbackTransaction(n.id,o));let a=this.parseEngineResponse(s);if(wf(a)){let l=this.getExternalAdapterError(a,i?.errorRegistry);throw l?l.error:new z(a.message,{code:a.error_code,clientVersion:this.config.clientVersion,meta:a.meta})}else if(typeof a.message=="string")throw new j(a.message,{clientVersion:this.config.clientVersion});return a}async instantiateLibrary(){if(Ce("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;ii(),this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){{if(this.binaryTarget)return this.binaryTarget;let r=await this.tracingHelper.runInChildSpan("detect_platform",()=>ir());if(!Fl.includes(r))throw new T(`Unknown ${ce("PRISMA_QUERY_ENGINE_LIBRARY")} ${ce(W(r))}. Possible binaryTargets: ${qe(Fl.join(", "))} or a path to the query engine library. +You may have to run ${qe("prisma generate")} for your changes to take effect.`,this.config.clientVersion);return r}}parseEngineResponse(r){if(!r)throw new j("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(r)}catch{throw new j("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let r=new WeakRef(this);this.adapterPromise||(this.adapterPromise=this.config.adapter?.connect()?.then(wo));let t=await this.adapterPromise;t&&Ce("Using driver adapter: %O",t),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:process.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{r.deref()?.logger(n)},t))}catch(r){let t=r,n=this.parseInitError(t.message);throw typeof n=="string"?t:new T(n.message,this.config.clientVersion,n.error_code)}}}logger(r){let t=this.parseEngineResponse(r);t&&(t.level=t?.level.toLowerCase()??"unknown",hf(t)?this.logEmitter.emit("query",{timestamp:new Date,query:t.query,params:t.params,duration:Number(t.duration_ms),target:t.module_path}):yf(t)?this.loggerRustPanic=new le(So(this,`${t.message}: ${t.reason} in ${t.file}:${t.line}:${t.column}`),this.config.clientVersion):this.logEmitter.emit(t.level,{timestamp:new Date,message:t.message,target:t.module_path}))}parseInitError(r){try{return JSON.parse(r)}catch{}return r}parseRequestError(r){try{return JSON.parse(r)}catch{}return r}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Ce(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let r=async()=>{Ce("library starting");try{let t={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(t)),this.libraryStarted=!0,Ce("library started")}catch(t){let n=this.parseInitError(t.message);throw typeof n=="string"?t:new T(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",r),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Ce("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let r=async()=>{await new Promise(n=>setTimeout(n,5)),Ce("library stopping");let t={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(t)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,await(await this.adapterPromise)?.dispose(),this.adapterPromise=void 0,Ce("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",r),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(r){return this.library?.debugPanic(r)}async request(r,{traceparent:t,interactiveTransaction:n}){Ce(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:t}),o=JSON.stringify(r);try{await this.start();let s=await this.adapterPromise;this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let a=this.parseEngineResponse(await this.executingQueryPromise);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],s?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:a}}catch(s){if(s instanceof T)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new le(So(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new j(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(r,{transaction:t,traceparent:n}){Ce("requestBatch");let i=Mr(r,t);await this.start();let o=await this.adapterPromise;this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),Dl(t));let s=await this.executingQueryPromise,a=this.parseEngineResponse(s);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],o?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});let{batchResult:l,errors:u}=a;if(Array.isArray(l))return l.map(c=>c.errors&&c.errors.length>0?this.loggerRustPanic??this.buildQueryError(c.errors[0],o?.errorRegistry):{data:c});throw u&&u.length===1?new Error(u[0].error):new Error(JSON.stringify(a))}buildQueryError(r,t){if(r.user_facing_error.is_panic)return new le(So(this,r.user_facing_error.message),this.config.clientVersion);let n=this.getExternalAdapterError(r.user_facing_error,t);return n?n.error:$r(r,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(r,t){if(r.error_code===gf&&t){let n=r.meta?.id;rn(typeof n=="number","Malformed external JS error received from the engine");let i=t.consumeError(n);return rn(i,"External error with reported id was not registered"),i}}async metrics(r){await this.start();let t=await this.engine.metrics(JSON.stringify(r));return r.format==="prometheus"?t:this.parseEngineResponse(t)}};function wf(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function So(e,r){return Pl({binaryTarget:e.binaryTarget,title:r,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function Ml({copyEngine:e=!0},r){let t;try{t=jr({inlineDatasources:r.inlineDatasources,overrideDatasources:r.overrideDatasources,env:{...r.env,...process.env},clientVersion:r.clientVersion})}catch{}let n=!!(t?.startsWith("prisma://")||Si(t));e&&n&&ot("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Er(r.generator),o=n||!e,s=!!r.adapter,a=i==="library",l=i==="binary",u=i==="client";if(o&&s||s&&!1){let c;throw e?t?.startsWith("prisma://")?c=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:c=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:c=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new Z(c.join(` +`),{clientVersion:r.clientVersion})}return o?new Mt(r):a?new Gr(r):new Gr(r)}function Wn({generator:e}){return e?.previewFeatures??[]}var $l=e=>({command:e});var ql=e=>e.strings.reduce((r,t,n)=>`${r}@P${n}${t}`);function Qr(e){try{return jl(e,"fast")}catch{return jl(e,"slow")}}function jl(e,r){return JSON.stringify(e.map(t=>Bl(t,r)))}function Bl(e,r){if(Array.isArray(e))return e.map(t=>Bl(t,r));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(Sr(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ve.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(xf(e))return{prisma__type:"bytes",prisma__value:Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:t,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:Buffer.from(t,n,i).toString("base64")}}return typeof e=="object"&&r==="slow"?Ul(e):e}function xf(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Ul(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Vl);let r={};for(let t of Object.keys(e))r[t]=Vl(e[t]);return r}function Vl(e){return typeof e=="bigint"?e.toString():Ul(e)}var vf=/^(\s*alter\s)/i,Gl=N("prisma:client");function Ro(e,r,t,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&t.length>0&&vf.exec(r))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Co=({clientMethod:e,activeProvider:r})=>t=>{let n="",i;if(Nn(t))n=t.sql,i={values:Qr(t.values),__prismaRawParameters__:!0};else if(Array.isArray(t)){let[o,...s]=t;n=o,i={values:Qr(s||[]),__prismaRawParameters__:!0}}else switch(r){case"sqlite":case"mysql":{n=t.sql,i={values:Qr(t.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=t.text,i={values:Qr(t.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=ql(t),i={values:Qr(t.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${r} provider does not support ${e}`)}return i?.values?Gl(`prisma.${e}(${n}, ${i.values})`):Gl(`prisma.${e}(${n})`),{query:n,parameters:i}},Ql={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[r,...t]=e;return new oe(r,t)}},Wl={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};function Ao(e){return function(t,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=Jl(t(s)):Jl(t(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function Jl(e){return typeof e.then=="function"?e:Promise.resolve(e)}var Pf=bi.split(".")[0],Tf={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,r){return r()}},Io=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(r){return this.getGlobalTracingHelper().getTraceParent(r)}dispatchEngineSpans(r){return this.getGlobalTracingHelper().dispatchEngineSpans(r)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(r,t){return this.getGlobalTracingHelper().runInChildSpan(r,t)}getGlobalTracingHelper(){let r=globalThis[`V${Pf}_PRISMA_INSTRUMENTATION`],t=globalThis.PRISMA_INSTRUMENTATION;return r?.helper??t?.helper??Tf}};function Hl(){return new Io}function Kl(e,r=()=>{}){let t,n=new Promise(i=>t=i);return{then(i){return--e===0&&t(r()),i?.(n)}}}function Yl(e){return typeof e=="string"?e:e.reduce((r,t)=>{let n=typeof t=="string"?t:t.level;return n==="query"?r:r&&(t==="info"||r==="info")?"info":n},void 0)}var Jn=class{_middlewares=[];use(r){this._middlewares.push(r)}get(r){return this._middlewares[r]}has(r){return!!this._middlewares[r]}length(){return this._middlewares.length}};var Zl=k(ki());function Hn(e){return typeof e.batchRequestIdx=="number"}function zl(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let r=[];return e.modelName&&r.push(e.modelName),e.query.arguments&&r.push(ko(e.query.arguments)),r.push(ko(e.query.selection)),r.join("")}function ko(e){return`(${Object.keys(e).sort().map(t=>{let n=e[t];return typeof n=="object"&&n!==null?`(${t} ${ko(n)})`:t}).join(" ")})`}var Sf={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function Oo(e){return Sf[e]}var Kn=class{constructor(r){this.options=r;this.batches={}}batches;tickActive=!1;request(r){let t=this.options.batchBy(r);return t?(this.batches[t]||(this.batches[t]=[],this.tickActive||(this.tickActive=!0,process.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[t].push({request:r,resolve:n,reject:i})})):this.options.singleLoader(r)}dispatchBatches(){for(let r in this.batches){let t=this.batches[r];delete this.batches[r],t.length===1?this.options.singleLoader(t[0].request).then(n=>{n instanceof Error?t[0].reject(n):t[0].resolve(n)}).catch(n=>{t[0].reject(n)}):(t.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(t.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;imr("bigint",t));case"bytes-array":return r.map(t=>mr("bytes",t));case"decimal-array":return r.map(t=>mr("decimal",t));case"datetime-array":return r.map(t=>mr("datetime",t));case"date-array":return r.map(t=>mr("date",t));case"time-array":return r.map(t=>mr("time",t));default:return r}}function Yn(e){let r=[],t=Rf(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(p=>p.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(p=>Oo(p.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Af(o),containsWrite:u,customDataProxyFetch:i})).map((p,d)=>{if(p instanceof Error)return p;try{return this.mapQueryEngineResult(n[d],p)}catch(f){return f}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Xl(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Oo(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:zl(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(r){try{return await this.dataloader.request(r)}catch(t){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=r;this.handleAndLogRequestError({error:t,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:r.globalOmit})}}mapQueryEngineResult({dataPath:r,unpacker:t},n){let i=n?.data,o=this.unpack(i,r,t);return process.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(r){try{this.handleRequestError(r)}catch(t){throw this.logEmitter&&this.logEmitter.emit("error",{message:t.message,target:r.clientMethod,timestamp:new Date}),t}}handleRequestError({error:r,clientMethod:t,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Cf(r),If(r,i))throw r;if(r instanceof z&&kf(r)){let u=eu(r.meta);An({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:t,clientVersion:this.client._clientVersion,globalOmit:a})}let l=r.message;if(n&&(l=bn({callsite:n,originalMethod:t,isPanic:r.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),r.code){let u=s?{modelName:s,...r.meta}:r.meta;throw new z(l,{code:r.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:r.batchRequestIdx})}else{if(r.isPanic)throw new le(l,this.client._clientVersion);if(r instanceof j)throw new j(l,{clientVersion:this.client._clientVersion,batchRequestIdx:r.batchRequestIdx});if(r instanceof T)throw new T(l,this.client._clientVersion);if(r instanceof le)throw new le(l,this.client._clientVersion)}throw r.clientVersion=this.client._clientVersion,r}sanitizeMessage(r){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Zl.default)(r):r}unpack(r,t,n){if(!r||(r.data&&(r=r.data),!r))return r;let i=Object.keys(r)[0],o=Object.values(r)[0],s=t.filter(u=>u!=="select"&&u!=="include"),a=io(o,s),l=i==="queryRaw"?Yn(a):Tr(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Af(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Xl(e)};_e(e,"Unknown transaction kind")}}function Xl(e){return{id:e.id,payload:e.payload}}function If(e,r){return Hn(e)&&r?.kind==="batch"&&e.batchRequestIdx!==r.index}function kf(e){return e.code==="P2009"||e.code==="P2012"}function eu(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(eu)};if(Array.isArray(e.selectionPath)){let[,...r]=e.selectionPath;return{...e,selectionPath:r}}return e}var ru="6.6.0";var tu=ru;var au=k(Qi());var D=class extends Error{constructor(r){super(r+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};x(D,"PrismaClientConstructorValidationError");var nu=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],iu=["pretty","colorless","minimal"],ou=["info","query","warn","error"],Df={datasources:(e,{datasourceNames:r})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new D(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[t,n]of Object.entries(e)){if(!r.includes(t)){let i=Wr(t,r)||` Available datasources: ${r.join(", ")}`;throw new D(`Unknown datasource ${t} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new D(`Invalid value ${JSON.stringify(e)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new D(`Invalid value ${JSON.stringify(e)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new D(`Invalid value ${JSON.stringify(o)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,r)=>{if(!e&&Er(r.generator)==="client")throw new D('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new D('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Wn(r).includes("driverAdapters"))throw new D('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Er(r.generator)==="binary")throw new D('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new D(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new D(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!iu.includes(e)){let r=Wr(e,iu);throw new D(`Invalid errorFormat ${e} provided to PrismaClient constructor.${r}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new D(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function r(t){if(typeof t=="string"&&!ou.includes(t)){let n=Wr(t,ou);throw new D(`Invalid log level "${t}" provided to PrismaClient constructor.${n}`)}}for(let t of e){r(t);let n={level:r,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=Wr(i,o);throw new D(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(t&&typeof t=="object")for(let[i,o]of Object.entries(t))if(n[i])n[i](o);else throw new D(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let r=e.maxWait;if(r!=null&&r<=0)throw new D(`Invalid value ${r} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let t=e.timeout;if(t!=null&&t<=0)throw new D(`Invalid value ${t} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,r)=>{if(typeof e!="object")throw new D('"omit" option is expected to be an object.');if(e===null)throw new D('"omit" option can not be `null`');let t=[];for(let[n,i]of Object.entries(e)){let o=Nf(n,r.runtimeDataModel);if(!o){t.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){t.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){t.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&t.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(t.length>0)throw new D(Lf(e,t))},__internal:e=>{if(!e)return;let r=["debug","engine","configOverride"];if(typeof e!="object")throw new D(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[t]of Object.entries(e))if(!r.includes(t)){let n=Wr(t,r);throw new D(`Invalid property ${JSON.stringify(t)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function lu(e,r){for(let[t,n]of Object.entries(e)){if(!nu.includes(t)){let i=Wr(t,nu);throw new D(`Unknown property ${t} provided to PrismaClient constructor.${i}`)}Df[t](n,r)}if(e.datasourceUrl&&e.datasources)throw new D('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function Wr(e,r){if(r.length===0||typeof e!="string")return"";let t=_f(e,r);return t?` Did you mean "${t}"?`:""}function _f(e,r){if(r.length===0)return null;let t=r.map(i=>({value:i,distance:(0,au.default)(e,i)}));t.sort((i,o)=>i.distanceYe(n)===r);if(t)return e[t]}function Lf(e,r){let t=_r(e);for(let o of r)switch(o.kind){case"UnknownModel":t.arguments.getField(o.modelKey)?.markAsError(),t.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":t.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),t.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":t.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),t.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":t.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),t.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Cn(t,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}function uu(e){return e.length===0?Promise.resolve([]):new Promise((r,t)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?t(i):r(n)))},l=u=>{o||(o=!0,t(u))};for(let u=0;u{n[u]=c,a()},c=>{if(!Hn(c)){l(c);return}c.batchRequestIdx===u?l(c):(i||(i=c),a())})})}var rr=N("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Ff={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Mf=Symbol.for("prisma.client.transaction.id"),$f={id:0,nextId(){return++this.id}};function gu(e){class r{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Jn;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=Ao();constructor(n){e=n?.__internal?.configOverride?.(e)??e,cl(e),n&&lu(n,e);let i=new mu.EventEmitter().on("error",()=>{});this._extensions=Nr.empty(),this._previewFeatures=Wn(e),this._clientVersion=e.clientVersion??tu,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Hl();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Zn.default.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Zn.default.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new T(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new T("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=!s&&o&&it(o,{conflictCheck:"none"})||e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},c=u.debug===!0;c&&N.enable("prisma:client");let p=Zn.default.resolve(e.dirname,e.relativePath);fu.default.existsSync(p)||(p=e.dirname),rr("dirname",e.dirname),rr("relativePath",e.relativePath),rr("cwd",p);let d=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:process.env.NODE_ENV==="production"?this._errorFormat="minimal":process.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:p,dirname:e.dirname,enableDebugLogs:c,allowTriggerPanic:d.allowTriggerPanic,prismaPath:d.binaryPath??void 0,engineEndpoint:d.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Yl(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(f=>typeof f=="string"?f==="query":f.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:pl(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:jr,getBatchRequestPayload:Mr,prismaGraphQLToJSError:$r,PrismaClientUnknownRequestError:j,PrismaClientInitializationError:T,PrismaClientKnownRequestError:z,debug:N("prisma:client:accelerateEngine"),engineVersion:pu.version,clientVersion:e.clientVersion}},rr("clientVersion",e.clientVersion),this._engine=Ml(e,this._engineConfig),this._requestHandler=new zn(this,i),l.log)for(let f of l.log){let g=typeof f=="string"?f:f.emit==="stdout"?f.level:null;g&&this.$on(g,h=>{tt.log(`${tt.tags[g]??""}`,h.message||h.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=vt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Qo()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=cu(n,i);return Ro(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new Z("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Ro(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new Z(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:$l,callsite:Ze(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...cu(n,i));throw new Z("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new Z("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=$f.nextId(),s=Kl(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let c=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,p={kind:"batch",id:o,index:u,isolationLevel:c,lock:s};return l.requestTransaction?.(p)??l});return uu(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let u={kind:"itx",...a};l=await n(this._createItxClient(u)),await this._engine.transaction("commit",o,a)}catch(u){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),u}return l}_createItxClient(n){return he(vt(he(Ka(this),[re("_appliedParent",()=>this._appliedParent._createItxClient(n)),re("_createPrismaPromise",()=>Ao(n)),re(Mf,()=>n.id)])),[Fr(el)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Ff,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let c=this._middlewares.get(++a);if(c)return this._tracingHelper.runInChildSpan(s.middleware,I=>c(u,P=>(I?.end(),l(P))));let{runInTransaction:p,args:d,...f}=u,g={...n,...f};d&&(g.args=i.middlewareArgsToRequestArgs(d)),n.transaction!==void 0&&p===!1&&delete g.transaction;let h=await il(this,g);return g.model?Xa({result:h,modelName:g.model,args:g.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):h};return this._tracingHelper.runInChildSpan(s.operation,()=>new du.AsyncResource("prisma-client-request").runInAsyncScope(()=>l(o)))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:c,unpacker:p,otelParentCtx:d,customDataProxyFetch:f}){try{n=u?u(n):n;let g={name:"serialize"},h=this._tracingHelper.runInChildSpan(g,()=>Dn({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return N.enabled("prisma:client")&&(rr("Prisma Client call:"),rr(`prisma.${i}(${$a(n)})`),rr("Generated request:"),rr(JSON.stringify(h,null,2)+` +`)),c?.kind==="batch"&&await c.lock,this._requestHandler.request({protocolQuery:h,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:c,unpacker:p,otelParentCtx:d,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:f})}catch(g){throw g.clientVersion=this._clientVersion,g}}$metrics=new Lr(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=Ya}return r}function cu(e,r){return qf(e)?[new oe(e,r),Ql]:[e,Wl]}function qf(e){return Array.isArray(e)&&Array.isArray(e.raw)}var jf=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function hu(e){return new Proxy(e,{get(r,t){if(t in r)return r[t];if(!jf.has(t))throw new TypeError(`Invalid enum value: ${String(t)}`)}})}function yu(e){it(e,{conflictCheck:"warn"})}0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +/*! Bundled license information: + +decimal.js/decimal.mjs: + (*! + * decimal.js v10.5.0 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2025 Michael Mclaughlin + * MIT Licence + *) +*/ +//# sourceMappingURL=library.js.map diff --git a/src/lib/generated/prisma/runtime/react-native.js b/src/lib/generated/prisma/runtime/react-native.js new file mode 100644 index 0000000..b22b413 --- /dev/null +++ b/src/lib/generated/prisma/runtime/react-native.js @@ -0,0 +1,80 @@ +"use strict";var ba=Object.create;var tr=Object.defineProperty;var Ea=Object.getOwnPropertyDescriptor;var xa=Object.getOwnPropertyNames;var Pa=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ge=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ae=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ze=(e,t)=>{for(var r in t)tr(e,r,{get:t[r],enumerable:!0})},ni=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of xa(t))!va.call(e,i)&&i!==r&&tr(e,i,{get:()=>t[i],enumerable:!(n=Ea(t,i))||n.enumerable});return e};var Se=(e,t,r)=>(r=e!=null?ba(Pa(e)):{},ni(t||!e||!e.__esModule?tr(r,"default",{value:e,enumerable:!0}):r,e)),Ta=e=>ni(tr({},"__esModule",{value:!0}),e);var y,c=ge(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var x,p=ge(()=>{"use strict";x=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,d=ge(()=>{"use strict";E=()=>{};E.prototype=E});var b,f=ge(()=>{"use strict";b=class{value;constructor(t){this.value=t}deref(){return this.value}}});var Pi=Ae(rt=>{"use strict";m();c();p();d();f();var li=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ca=li(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=R;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var M=C.indexOf("=");M===-1&&(M=A);var I=M===A?0:4-M%4;return[M,I]}function l(C){var A=a(C),M=A[0],I=A[1];return(M+I)*3/4-I}function u(C,A,M){return(A+M)*3/4-M}function g(C){var A,M=a(C),I=M[0],L=M[1],k=new n(u(C,I,L)),D=0,z=L>0?I-4:I,B;for(B=0;B>16&255,k[D++]=A>>8&255,k[D++]=A&255;return L===2&&(A=r[C.charCodeAt(B)]<<2|r[C.charCodeAt(B+1)]>>4,k[D++]=A&255),L===1&&(A=r[C.charCodeAt(B)]<<10|r[C.charCodeAt(B+1)]<<4|r[C.charCodeAt(B+2)]>>2,k[D++]=A>>8&255,k[D++]=A&255),k}function h(C){return t[C>>18&63]+t[C>>12&63]+t[C>>6&63]+t[C&63]}function v(C,A,M){for(var I,L=[],k=A;kz?z:D+k));return I===1?(A=C[M-1],L.push(t[A>>2]+t[A<<4&63]+"==")):I===2&&(A=(C[M-2]<<8)+C[M-1],L.push(t[A>>10]+t[A>>4&63]+t[A<<2&63]+"=")),L.join("")}}),Aa=li(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,u=(1<>1,h=-7,v=n?o-1:0,R=n?-1:1,C=t[r+v];for(v+=R,s=C&(1<<-h)-1,C>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=R,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=R,h-=8);if(s===0)s=1-g;else{if(s===u)return a?NaN:(C?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(C?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,u,g=s*8-o-1,h=(1<>1,R=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,C=i?0:s-1,A=i?1:-1,M=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+v>=1?r+=R/u:r+=R*Math.pow(2,1-v),r*u>=2&&(a++,u/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*u-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+C]=l&255,C+=A,l/=256,o-=8);for(a=a<0;t[n+C]=a&255,C+=A,a/=256,g-=8);t[n+C-A]|=M*128}}),Zr=Ca(),et=Aa(),ii=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;rt.Buffer=T;rt.SlowBuffer=Fa;rt.INSPECT_MAX_BYTES=50;var rr=2147483647;rt.kMaxLength=rr;T.TYPED_ARRAY_SUPPORT=Sa();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function Sa(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function Re(e){if(e>rr)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return tn(e)}return ui(e,t,r)}T.poolSize=8192;function ui(e,t,r){if(typeof e=="string")return ka(e,t);if(ArrayBuffer.isView(e))return Oa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(he(e,ArrayBuffer)||e&&he(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(he(e,SharedArrayBuffer)||e&&he(e.buffer,SharedArrayBuffer)))return pi(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=Ma(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return ui(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ci(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function Ra(e,t,r){return ci(e),e<=0?Re(e):t!==void 0?typeof r=="string"?Re(e).fill(t,r):Re(e).fill(t):Re(e)}T.alloc=function(e,t,r){return Ra(e,t,r)};function tn(e){return ci(e),Re(e<0?0:rn(e)|0)}T.allocUnsafe=function(e){return tn(e)};T.allocUnsafeSlow=function(e){return tn(e)};function ka(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=di(e,t)|0,n=Re(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function Xr(e){let t=e.length<0?0:rn(e.length)|0,r=Re(t);for(let n=0;n=rr)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+rr.toString(16)+" bytes");return e|0}function Fa(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(he(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),he(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function di(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||he(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return en(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return xi(e).length;default:if(i)return n?-1:en(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=di;function Ia(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Va(this,t,r);case"utf8":case"utf-8":return mi(this,t,r);case"ascii":return Ba(this,t,r);case"latin1":case"binary":return Ua(this,t,r);case"base64":return $a(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Qa(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Qe(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};ii&&(T.prototype[ii]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(he(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),u=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,on(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:oi(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):oi(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function oi(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let u;if(i){let g=-1;for(u=r;us&&(r=s-a),u=r;u>=0;u--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _a(this,e,t,r);case"utf8":case"utf-8":return La(this,e,t,r);case"ascii":case"latin1":case"binary":return Na(this,e,t,r);case"base64":return Da(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return qa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function $a(e,t,r){return t===0&&r===e.length?Zr.fromByteArray(e):Zr.fromByteArray(e.slice(t,r))}function mi(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,u,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],u=e[i+2],(l&192)===128&&(u&192)===128&&(h=(o&15)<<12|(l&63)<<6|u&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],u=e[i+2],g=e[i+3],(l&192)===128&&(u&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(u&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return ja(n)}var si=4096;function ja(e){let t=e.length;if(t<=si)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Le(function(e){e=e>>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Le(function(e){e=e>>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,tt(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Tt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),et.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),et.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),et.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),et.read(this,e,!1,52,8)};function ie(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;ie(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;ie(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function gi(e,t,r,n,i){Ei(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function hi(e,t,r,n,i){Ei(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Le(function(e,t=0){return gi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Le(function(e,t=0){return hi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);ie(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);ie(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||ie(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Le(function(e,t=0){return gi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Le(function(e,t=0){return hi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function yi(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function wi(e,t,r,n,i){return t=+t,r=r>>>0,i||yi(e,t,r,4,34028234663852886e22,-34028234663852886e22),et.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return wi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return wi(this,e,t,!1,r)};function bi(e,t,r,n,i){return t=+t,r=r>>>0,i||yi(e,t,r,8,17976931348623157e292,-17976931348623157e292),et.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return bi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return bi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ai(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ai(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ai(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Ga(e,t,r){tt(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&Tt(t,e.length-(r+1))}function Ei(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Xe.ERR_OUT_OF_RANGE("value",a,e)}Ga(n,i,o)}function tt(e,t){if(typeof e!="number")throw new Xe.ERR_INVALID_ARG_TYPE(t,"number",e)}function Tt(e,t,r){throw Math.floor(e)!==e?(tt(e,r),new Xe.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Xe.ERR_BUFFER_OUT_OF_BOUNDS:new Xe.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Ja=/[^+/0-9A-Za-z-_]/g;function Wa(e){if(e=e.split("=")[0],e=e.trim().replace(Ja,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function en(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Ka(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function xi(e){return Zr.toByteArray(Wa(e))}function nr(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function he(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function on(e){return e!==e}var za=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Le(e){return typeof BigInt>"u"?Ya:e}function Ya(){throw new Error("BigInt not supported")}});var w,m=ge(()=>{"use strict";w=Se(Pi())});function bl(){return!1}function Li(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function El(){return Li()}function xl(){return[]}function Pl(e){e(null,[])}function vl(){return""}function Tl(){return""}function Cl(){}function Al(){}function Sl(){}function Rl(){}function kl(){}function Ol(){}var Ml,Fl,or,cn=ge(()=>{"use strict";m();c();p();d();f();Ml={},Fl={existsSync:bl,lstatSync:Li,statSync:El,readdirSync:xl,readdir:Pl,readlinkSync:vl,realpathSync:Tl,chmodSync:Cl,renameSync:Al,mkdirSync:Sl,rmdirSync:Rl,rmSync:kl,unlinkSync:Ol,promises:Ml},or=Fl});function Il(...e){return e.join("/")}function _l(...e){return e.join("/")}function Ll(e){let t=Ni(e),r=Di(e),[n,i]=t.split(".");return{root:"/",dir:r,base:t,ext:i,name:n}}function Ni(e){let t=e.split("/");return t[t.length-1]}function Di(e){return e.split("/").slice(0,-1).join("/")}var qi,Nl,Dl,Oe,dn=ge(()=>{"use strict";m();c();p();d();f();qi="/",Nl={sep:qi},Dl={basename:Ni,dirname:Di,join:_l,parse:Ll,posix:Nl,resolve:Il,sep:qi},Oe=Dl});var $i=Ae((Ff,ql)=>{ql.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Ui=Ae((Gf,Bi)=>{"use strict";m();c();p();d();f();Bi.exports=e=>{let t=e.match(/^[ \t]*(?=\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0}});var Wi=Ae((um,Ji)=>{"use strict";m();c();p();d();f();Ji.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var zi=Ae((xm,Hi)=>{"use strict";m();c();p();d();f();Hi.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var yn=Ae((Sm,Yi)=>{"use strict";m();c();p();d();f();var Gl=zi();Yi.exports=e=>typeof e=="string"?e.replace(Gl(),""):e});var Zi=Ae((Zm,ar)=>{"use strict";m();c();p();d();f();ar.exports=(e={})=>{let t;if(e.repoUrl)t=e.repoUrl;else if(e.user&&e.repo)t=`https://github.com/${e.user}/${e.repo}`;else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options");let r=new URL(`${t}/issues/new`),n=["body","title","labels","template","milestone","assignee","projects"];for(let i of n){let o=e[i];if(o!==void 0){if(i==="labels"||i==="projects"){if(!Array.isArray(o))throw new TypeError(`The \`${i}\` option should be an array`);o=o.join(",")}r.searchParams.set(i,o)}}return r.toString()};ar.exports.default=ar.exports});var Sn=Ae((xb,Po)=>{"use strict";m();c();p();d();f();Po.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";m();c();p();d();f()});var Ro=ge(()=>{"use strict";m();c();p();d();f()});var Zo=Ae((VP,Dc)=>{Dc.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Nr,Xo=ge(()=>{"use strict";m();c();p();d();f();Nr=class{events={};on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var rd={};Ze(rd,{DMMF:()=>Dt,Debug:()=>K,Decimal:()=>be,Extensions:()=>sn,MetricsClient:()=>wt,PrismaClientInitializationError:()=>V,PrismaClientKnownRequestError:()=>oe,PrismaClientRustPanicError:()=>ue,PrismaClientUnknownRequestError:()=>G,PrismaClientValidationError:()=>ee,Public:()=>an,Sql:()=>ae,createParam:()=>Qo,defineDmmfProperty:()=>zo,deserializeJsonResponse:()=>at,deserializeRawResult:()=>Hr,dmmfToRuntimeDataModel:()=>yo,empty:()=>ts,getPrismaClient:()=>ha,getRuntime:()=>Fs,join:()=>es,makeStrictEnum:()=>ya,makeTypedQueryFactory:()=>Yo,objectEnumValues:()=>Ar,raw:()=>Nn,serializeJsonQuery:()=>Ir,skip:()=>Fr,sqltag:()=>Dn,warnEnvConflicts:()=>void 0,warnOnce:()=>_t});module.exports=Ta(rd);m();c();p();d();f();var sn={};Ze(sn,{defineExtension:()=>vi,getExtensionContext:()=>Ti});m();c();p();d();f();m();c();p();d();f();function vi(e){return typeof e=="function"?e:t=>t.$extends(e)}m();c();p();d();f();function Ti(e){return e}var an={};Ze(an,{validator:()=>Ci});m();c();p();d();f();m();c();p();d();f();function Ci(...e){return t=>t}m();c();p();d();f();m();c();p();d();f();var ir={};Ze(ir,{$:()=>Oi,bgBlack:()=>al,bgBlue:()=>pl,bgCyan:()=>fl,bgGreen:()=>ul,bgMagenta:()=>dl,bgRed:()=>ll,bgWhite:()=>ml,bgYellow:()=>cl,black:()=>nl,blue:()=>Je,bold:()=>pe,cyan:()=>ke,dim:()=>Ct,gray:()=>kt,green:()=>St,grey:()=>sl,hidden:()=>tl,inverse:()=>el,italic:()=>Xa,magenta:()=>il,red:()=>Ge,reset:()=>Za,strikethrough:()=>rl,underline:()=>At,white:()=>ol,yellow:()=>Rt});m();c();p();d();f();var ln,Ai,Si,Ri,ki=!0;typeof y<"u"&&({FORCE_COLOR:ln,NODE_DISABLE_COLORS:Ai,NO_COLOR:Si,TERM:Ri}=y.env||{},ki=y.stdout&&y.stdout.isTTY);var Oi={enabled:!Ai&&Si==null&&Ri!=="dumb"&&(ln!=null&&ln!=="0"||ki)};function U(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!Oi.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var Za=U(0,0),pe=U(1,22),Ct=U(2,22),Xa=U(3,23),At=U(4,24),el=U(7,27),tl=U(8,28),rl=U(9,29),nl=U(30,39),Ge=U(31,39),St=U(32,39),Rt=U(33,39),Je=U(34,39),il=U(35,39),ke=U(36,39),ol=U(37,39),kt=U(90,39),sl=U(90,39),al=U(40,49),ll=U(41,49),ul=U(42,49),cl=U(43,49),pl=U(44,49),dl=U(45,49),fl=U(46,49),ml=U(47,49);m();c();p();d();f();var gl=100,Mi=["green","yellow","blue","magenta","cyan","red"],Ot=[],Fi=Date.now(),hl=0,un=typeof y<"u"?y.env:{};globalThis.DEBUG??=un.DEBUG??"";globalThis.DEBUG_COLORS??=un.DEBUG_COLORS?un.DEBUG_COLORS==="true":!0;var Mt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function yl(e){let t={color:Mi[hl++%Mi.length],enabled:Mt.enabled(e),namespace:e,log:Mt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&Ot.push([o,...n]),Ot.length>gl&&Ot.shift(),Mt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:wl(g)),u=`+${Date.now()-Fi}ms`;Fi=Date.now(),globalThis.DEBUG_COLORS?a(ir[s](pe(o)),...l,ir[s](u)):a(o,...l,u)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var K=new Proxy(yl,{get:(e,t)=>Mt[t],set:(e,t,r)=>Mt[t]=r});function wl(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Ii(e=7500){let t=Ot.map(([r,...n])=>`${r} ${n.map(i=>typeof i=="string"?i:JSON.stringify(i)).join(" ")}`).join(` +`);return t.lengthVl,info:()=>Ul,log:()=>Bl,query:()=>Ql,should:()=>Ki,tags:()=>Ft,warn:()=>hn});m();c();p();d();f();var Ft={error:Ge("prisma:error"),warn:Rt("prisma:warn"),info:ke("prisma:info"),query:Je("prisma:query")},Ki={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function Bl(...e){console.log(...e)}function hn(e,...t){Ki.warn()&&console.warn(`${Ft.warn} ${e}`,...t)}function Ul(e,...t){console.info(`${Ft.info} ${e}`,...t)}function Vl(e,...t){console.error(`${Ft.error} ${e}`,...t)}function Ql(e,...t){console.log(`${Ft.query} ${e}`,...t)}m();c();p();d();f();function sr(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}m();c();p();d();f();function Me(e,t){throw new Error(t)}m();c();p();d();f();dn();function wn(e){return Oe.sep===Oe.posix.sep?e:e.split(Oe.sep).join(Oe.posix.sep)}m();c();p();d();f();function bn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}m();c();p();d();f();function it(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}m();c();p();d();f();function En(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{Xi.has(e)||(Xi.add(e),hn(t,...r))};var V=class e extends Error{clientVersion;errorCode;retryable;constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};le(V,"PrismaClientInitializationError");m();c();p();d();f();var oe=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};le(oe,"PrismaClientKnownRequestError");m();c();p();d();f();var ue=class extends Error{clientVersion;constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};le(ue,"PrismaClientRustPanicError");m();c();p();d();f();var G=class extends Error{clientVersion;batchRequestIdx;constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};le(G,"PrismaClientUnknownRequestError");m();c();p();d();f();var ee=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(t,{clientVersion:r}){super(t),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};le(ee,"PrismaClientValidationError");m();c();p();d();f();m();c();p();d();f();var ot=9e15,$e=1e9,xn="0123456789abcdef",cr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",pr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Pn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ot,maxE:ot,crypto:!1},io,Fe,_=!0,fr="[DecimalError] ",qe=fr+"Invalid argument: ",oo=fr+"Precision limit exceeded",so=fr+"crypto unavailable",ao="[object Decimal]",te=Math.floor,J=Math.pow,Jl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wl=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Kl=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,lo=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=1e7,F=7,Hl=9007199254740991,zl=cr.length-1,vn=pr.length-1,S={toStringTag:ao};S.absoluteValue=S.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)};S.ceil=function(){return O(new this.constructor(this),this.e+1,2)};S.clampedTo=S.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(qe+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};S.comparedTo=S.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};S.cosine=S.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+F,n.rounding=1,r=Yl(n,mo(n,r)),n.precision=e,n.rounding=t,O(Fe==2||Fe==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};S.cubeRoot=S.cbrt=function(){var e,t,r,n,i,o,s,a,l,u,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(_=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=Y(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=te((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(g),n=j(u.plus(g).times(a),u.plus(l),s+2,1),Y(a.d).slice(0,s)===(r=Y(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(O(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(O(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return _=!0,O(n,e,h.rounding,t)};S.decimalPlaces=S.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-te(this.e/F))*F,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};S.dividedBy=S.div=function(e){return j(this,new this.constructor(e))};S.dividedToIntegerBy=S.divToInt=function(e){var t=this,r=t.constructor;return O(j(t,new r(e),0,1,1),r.precision,r.rounding)};S.equals=S.eq=function(e){return this.cmp(e)===0};S.floor=function(){return O(new this.constructor(this),this.e+1,3)};S.greaterThan=S.gt=function(e){return this.cmp(e)>0};S.greaterThanOrEqualTo=S.gte=function(e){var t=this.cmp(e);return t==1||t===0};S.hyperbolicCosine=S.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/gr(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=st(s,1,o.times(t),new s(1),!0);for(var l,u=e,g=new s(8);u--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return O(o,s.precision=r,s.rounding=n,!0)};S.hyperbolicSine=S.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=st(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/gr(5,e)),i=st(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=t,o.rounding=r,O(i,t,r,!0)};S.hyperbolicTangent=S.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,j(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};S.inverseCosine=S.acos=function(){var e=this,t=e.constructor,r=e.abs().cmp(1),n=t.precision,i=t.rounding;return r!==-1?r===0?e.isNeg()?ye(t,n,i):new t(0):new t(NaN):e.isZero()?ye(t,n+4,i).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=i,e.times(2))};S.inverseHyperbolicCosine=S.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,_=!1,r=r.times(r).minus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};S.inverseHyperbolicSine=S.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,_=!1,r=r.times(r).plus(1).sqrt().plus(r),_=!0,n.precision=e,n.rounding=t,r.ln())};S.inverseHyperbolicTangent=S.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?O(new o(i),e,t,!0):(o.precision=r=n-i.e,i=j(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};S.inverseSine=S.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=ye(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};S.inverseTangent=S.atan=function(){var e,t,r,n,i,o,s,a,l,u=this,g=u.constructor,h=g.precision,v=g.rounding;if(u.isFinite()){if(u.isZero())return new g(u);if(u.abs().eq(1)&&h+4<=vn)return s=ye(g,h+4,v).times(.25),s.s=u.s,s}else{if(!u.s)return new g(NaN);if(h+4<=vn)return s=ye(g,h+4,v).times(.5),s.s=u.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/F+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/F),n=1,l=u.times(u),s=new g(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};S.isNaN=function(){return!this.s};S.isNegative=S.isNeg=function(){return this.s<0};S.isPositive=S.isPos=function(){return this.s>0};S.isZero=function(){return!!this.d&&this.d[0]===0};S.lessThan=S.lt=function(e){return this.cmp(e)<0};S.lessThanOrEqualTo=S.lte=function(e){return this.cmp(e)<1};S.logarithm=S.log=function(e){var t,r,n,i,o,s,a,l,u=this,g=u.constructor,h=g.precision,v=g.rounding,R=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new g(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(_=!1,a=h+R,s=De(u,a),n=t?dr(g,a+10):De(e,a),l=j(s,n,a,1),Lt(l.d,i=h,v))do if(a+=10,s=De(u,a),n=t?dr(g,a+10):De(e,a),l=j(s,n,a,1),!o){+Y(l.d).slice(i+1,i+15)+1==1e14&&(l=O(l,h+1,0));break}while(Lt(l.d,i+=10,v));return _=!0,O(l,h,v)};S.minus=S.sub=function(e){var t,r,n,i,o,s,a,l,u,g,h,v,R=this,C=R.constructor;if(e=new C(e),!R.d||!e.d)return!R.s||!e.s?e=new C(NaN):R.d?e.s=-e.s:e=new C(e.d||R.s!==e.s?R:NaN),e;if(R.s!=e.s)return e.s=-e.s,R.plus(e);if(u=R.d,v=e.d,a=C.precision,l=C.rounding,!u[0]||!v[0]){if(v[0])e.s=-e.s;else if(u[0])e=new C(R);else return new C(l===3?-0:0);return _?O(e,a,l):e}if(r=te(e.e/F),g=te(R.e/F),u=u.slice(),o=g-r,o){for(h=o<0,h?(t=u,o=-o,s=v.length):(t=v,r=g,s=u.length),n=Math.max(Math.ceil(a/F),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=v.length,h=n0;--n)u[s++]=0;for(n=v.length;n>o;){if(u[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=g.length,s-i<0&&(i=s,r=g,g=u,u=r),t=0;i;)t=(u[--i]=u[i]+g[i]+t)/de|0,u[i]%=de;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=mr(u,n),_?O(e,a,l):e};S.precision=S.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(qe+e);return r.d?(t=uo(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};S.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)};S.sine=S.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+F,n.rounding=1,r=Xl(n,mo(n,r)),n.precision=e,n.rounding=t,O(Fe>2?r.neg():r,e,t,!0)):new n(NaN)};S.squareRoot=S.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,u=s.s,g=s.constructor;if(u!==1||!a||!a[0])return new g(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=Y(a),(t.length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=te((l+1)/2)-(l<0||l%2),u==1/0?t="5e"+l:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(u.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(j(s,o,r+2,1)).times(.5),Y(o.d).slice(0,r)===(t=Y(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(O(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(O(n,l+1,1),e=!n.times(n).eq(s));break}return _=!0,O(n,l,g.rounding,e)};S.tangent=S.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=j(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,O(Fe==2||Fe==4?r.neg():r,e,t,!0)):new n(NaN)};S.times=S.mul=function(e){var t,r,n,i,o,s,a,l,u,g=this,h=g.constructor,v=g.d,R=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!R||!R[0])return new h(!e.s||v&&!v[0]&&!R||R&&!R[0]&&!v?NaN:!v||!R?e.s/0:e.s*0);for(r=te(g.e/F)+te(e.e/F),l=v.length,u=R.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+R[n]*v[i-n-1]+t,o[i--]=a%de|0,t=a/de|0;o[i]=(o[i]+t)%de|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=mr(o,r),_?O(e,h.precision,h.rounding):e};S.toBinary=function(e,t){return Cn(this,2,e,t)};S.toDecimalPlaces=S.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(se(e,0,$e),t===void 0?t=n.rounding:se(t,0,8),O(r,e+r.e+1,t))};S.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,!0):(se(e,0,$e),t===void 0?t=i.rounding:se(t,0,8),n=O(new i(n),e+1,t),r=we(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};S.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=we(i):(se(e,0,$e),t===void 0?t=o.rounding:se(t,0,8),n=O(new o(i),e+i.e+1,t),r=we(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};S.toFraction=function(e){var t,r,n,i,o,s,a,l,u,g,h,v,R=this,C=R.d,A=R.constructor;if(!C)return new A(R);if(u=r=new A(1),n=l=new A(0),t=new A(n),o=t.e=uo(C)-R.e-1,s=o%F,t.d[0]=J(10,s<0?F+s:s),e==null)e=o>0?t:u;else{if(a=new A(e),!a.isInt()||a.lt(u))throw Error(qe+a);e=a.gt(t)?o>0?t:u:a}for(_=!1,a=new A(Y(C)),g=A.precision,A.precision=o=C.length*F*2;h=j(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=j(e.minus(r),n,0,1,1),l=l.plus(i.times(u)),r=r.plus(i.times(n)),l.s=u.s=R.s,v=j(u,n,o,1).minus(R).abs().cmp(j(l,r,o,1).minus(R).abs())<1?[u,n]:[l,r],A.precision=g,_=!0,v};S.toHexadecimal=S.toHex=function(e,t){return Cn(this,16,e,t)};S.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:se(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(_=!1,r=j(r,e,0,t,1).times(e),_=!0,O(r)):(e.s=r.s,r=e),r};S.toNumber=function(){return+this};S.toOctal=function(e,t){return Cn(this,8,e,t)};S.toPower=S.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return O(a,n,o);if(t=te(e.e/F),t>=e.d.length-1&&(r=u<0?-u:u)<=Hl)return i=co(l,a,r,n),e.s<0?new l(1).div(i):O(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(_=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=Tn(e.times(De(a,n+r)),n),i.d&&(i=O(i,n+5,1),Lt(i.d,n,o)&&(t=n+10,i=O(Tn(e.times(De(a,t+r)),t),t+5,1),+Y(i.d).slice(n+1,n+15)+1==1e14&&(i=O(i,n+1,0)))),i.s=s,_=!0,l.rounding=o,O(i,n,o))};S.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(se(e,1,$e),t===void 0?t=i.rounding:se(t,0,8),n=O(new i(n),e,t),r=we(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};S.toSignificantDigits=S.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(se(e,1,$e),t===void 0?t=n.rounding:se(t,0,8)),O(new n(r),e,t)};S.toString=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};S.truncated=S.trunc=function(){return O(new this.constructor(this),this.e+1,1)};S.valueOf=S.toJSON=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function Y(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(qe+e)}function Lt(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=F,i=0):(i=Math.ceil((t+1)/F),t%=F),o=J(10,F-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function lr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function Yl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/gr(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=st(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var j=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var u,g,h,v,R,C,A,M,I,L,k,D,z,B,vt,Q,ne,Ce,Z,Ye,er=n.constructor,Yr=n.s==i.s?1:-1,X=n.d,$=i.d;if(!X||!X[0]||!$||!$[0])return new er(!n.s||!i.s||(X?$&&X[0]==$[0]:!$)?NaN:X&&X[0]==0||!$?Yr*0:Yr/0);for(l?(R=1,g=n.e-i.e):(l=de,R=F,g=te(n.e/R)-te(i.e/R)),Z=$.length,ne=X.length,I=new er(Yr),L=I.d=[],h=0;$[h]==(X[h]||0);h++);if($[h]>(X[h]||0)&&g--,o==null?(B=o=er.precision,s=er.rounding):a?B=o+(n.e-i.e)+1:B=o,B<0)L.push(1),C=!0;else{if(B=B/R+2|0,h=0,Z==1){for(v=0,$=$[0],B++;(h1&&($=e($,v,l),X=e(X,v,l),Z=$.length,ne=X.length),Q=Z,k=X.slice(0,Z),D=k.length;D=l/2&&++Ce;do v=0,u=t($,k,Z,D),u<0?(z=k[0],Z!=D&&(z=z*l+(k[1]||0)),v=z/Ce|0,v>1?(v>=l&&(v=l-1),A=e($,v,l),M=A.length,D=k.length,u=t(A,k,M,D),u==1&&(v--,r(A,Z=10;v/=10)h++;I.e=h+g*R-1,O(I,a?o+I.e+1:o,s,C)}return I}}();function O(e,t,r,n){var i,o,s,a,l,u,g,h,v,R=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=F,s=t,g=h[v=0],l=g/J(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/F),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=F,s=o-F+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=F,s=o-F+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%J(10,i-s-1)),u=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=J(10,(F-t%F)%F),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=J(10,F-o),h[v]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),u)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==de&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=de)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return _&&(e.e>R.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Ne(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Ne(-i-1)+o,r&&(n=r-s)>0&&(o+=Ne(n))):i>=s?(o+=Ne(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Ne(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Ne(n))),o}function mr(e,t){var r=e[0];for(t*=F;r>=10;r/=10)t++;return t}function dr(e,t,r){if(t>zl)throw _=!0,r&&(e.precision=r),Error(oo);return O(new e(cr),t,1,!0)}function ye(e,t,r){if(t>vn)throw Error(oo);return O(new e(pr),t,r,!0)}function uo(e){var t=e.length-1,r=t*F+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Ne(e){for(var t="";e--;)t+="0";return t}function co(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/F+4);for(_=!1;;){if(r%2&&(o=o.times(t),ro(o.d,s)&&(i=!0)),r=te(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),ro(t.d,s)}return _=!0,o}function to(e){return e.d[e.d.length-1]&1}function po(e,t,r){for(var n,i,o=new e(t[0]),s=0;++s17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(_=!1,l=C):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=O(o.times(e),l,1),r=r.times(++g),a=s.plus(j(o,r,l,1)),Y(a.d).slice(0,l)===Y(s.d).slice(0,l)){for(i=h;i--;)s=O(s.times(s),l,1);if(t==null)if(u<3&&Lt(s.d,l-n,R,u))v.precision=l+=10,r=o=a=new v(1),g=0,u++;else return O(s,v.precision=C,R,_=!0);else return v.precision=C,s}s=a}}function De(e,t){var r,n,i,o,s,a,l,u,g,h,v,R=1,C=10,A=e,M=A.d,I=A.constructor,L=I.rounding,k=I.precision;if(A.s<0||!M||!M[0]||!A.e&&M[0]==1&&M.length==1)return new I(M&&!M[0]?-1/0:A.s!=1?NaN:M?0:A);if(t==null?(_=!1,g=k):g=t,I.precision=g+=C,r=Y(M),n=r.charAt(0),Math.abs(o=A.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)A=A.times(e),r=Y(A.d),n=r.charAt(0),R++;o=A.e,n>1?(A=new I("0."+r),o++):A=new I(n+"."+r.slice(1))}else return u=dr(I,g+2,k).times(o+""),A=De(new I(n+"."+r.slice(1)),g-C).plus(u),I.precision=k,t==null?O(A,k,L,_=!0):A;for(h=A,l=s=A=j(A.minus(1),A.plus(1),g,1),v=O(A.times(A),g,1),i=3;;){if(s=O(s.times(v),g,1),u=l.plus(j(s,new I(i),g,1)),Y(u.d).slice(0,g)===Y(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(dr(I,g+2,k).times(o+""))),l=j(l,new I(R),g,1),t==null)if(Lt(l.d,g-C,L,a))I.precision=g+=C,u=s=A=j(h.minus(1),h.plus(1),g,1),v=O(A.times(A),g,1),i=a=1;else return O(l,I.precision=k,L,_=!0);else return I.precision=k,l;l=u,i+=2}}function fo(e){return String(e.s*e.s/0)}function ur(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%F,r<0&&(n+=F),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),lo.test(t))return ur(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Wl.test(t))r=16,t=t.toLowerCase();else if(Jl.test(t))r=2;else if(Kl.test(t))r=8;else throw Error(qe+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=co(n,new n(r),o,o*2)),u=lr(t,r,de),g=u.length-1,o=g;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=mr(u,g),e.d=u,_=!1,s&&(e=j(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):We.pow(2,l))),_=!0,e)}function Xl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:st(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/gr(5,r)),t=st(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function st(e,t,r,n,i){var o,s,a,l,u=1,g=e.precision,h=Math.ceil(g/F);for(_=!1,l=r.times(r),a=new e(n);;){if(s=j(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=j(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return _=!0,s.d.length=h+1,s}function gr(e,t){for(var r=e;--t;)r*=e;return r}function mo(e,t){var r,n=t.s<0,i=ye(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Fe=n?4:1,t;if(r=t.divToInt(i),r.isZero())Fe=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Fe=to(r)?n?2:3:n?4:1,t;Fe=to(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Cn(e,t,r,n){var i,o,s,a,l,u,g,h,v,R=e.constructor,C=r!==void 0;if(C?(se(r,1,$e),n===void 0?n=R.rounding:se(n,0,8)):(r=R.precision,n=R.rounding),!e.isFinite())g=fo(e);else{for(g=we(e),s=g.indexOf("."),C?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new R(1),v.e=g.length-s,v.d=lr(we(v),10,i),v.e=v.d.length),h=lr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=C?"0p+0":"0";else{if(s<0?o--:(e=new R(e),e.d=h,e.e=o,e=j(e,v,r,n,0,i),h=e.d,o=e.e,u=io),s=h[r],a=i/2,u=u||h[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,u)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=lr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function eu(e){return new this(e).abs()}function tu(e){return new this(e).acos()}function ru(e){return new this(e).acosh()}function nu(e,t){return new this(e).plus(t)}function iu(e){return new this(e).asin()}function ou(e){return new this(e).asinh()}function su(e){return new this(e).atan()}function au(e){return new this(e).atanh()}function lu(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=ye(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?ye(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=ye(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(j(e,t,o,1)),t=ye(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(j(e,t,o,1)),r}function uu(e){return new this(e).cbrt()}function cu(e){return O(e=new this(e),e.e+1,2)}function pu(e,t,r){return new this(e).clamp(t,r)}function du(e){if(!e||typeof e!="object")throw Error(fr+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,$e,"rounding",0,8,"toExpNeg",-ot,0,"toExpPos",0,ot,"maxE",0,ot,"minE",-ot,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(qe+r+": "+n);if(r="crypto",i&&(this[r]=Pn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(so);else this[r]=!1;else throw Error(qe+r+": "+n);return this}function fu(e){return new this(e).cos()}function mu(e){return new this(e).cosh()}function go(e){var t,r,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,no(o)){u.s=o.s,_?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e=10;a/=10)s++;_?s>i.maxE?(u.e=NaN,u.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(so);else for(;o=10;i/=10)n++;nct,datamodelEnumToSchemaEnum:()=>Bu});m();c();p();d();f();m();c();p();d();f();function Bu(e){return{name:e.name,values:e.values.map(t=>t.name)}}m();c();p();d();f();var ct=(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.updateManyAndReturn="updateManyAndReturn",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw",k))(ct||{});var xo=Se(Wi());m();c();p();d();f();cn();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var wo={keyword:ke,entity:ke,value:e=>pe(Je(e)),punctuation:Je,directive:ke,function:ke,variable:e=>pe(Je(e)),string:e=>pe(St(e)),boolean:Rt,number:ke,comment:kt};var Uu=e=>e,yr={},Vu=0,N={manual:yr.Prism&&yr.Prism.manual,disableWorkerMessageHandler:yr.Prism&&yr.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof fe){let t=e;return new fe(t.type,N.util.encode(t.content),t.alias)}else return Array.isArray(e)?e.map(N.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(Ce instanceof fe)continue;if(z&&Q!=t.length-1){L.lastIndex=ne;var h=L.exec(e);if(!h)break;var g=h.index+(D?h[1].length:0),v=h.index+h[0].length,a=Q,l=ne;for(let $=t.length;a<$&&(l=l&&(++Q,ne=l);if(t[Q]instanceof fe)continue;u=a-Q,Ce=e.slice(ne,l),h.index-=ne}else{L.lastIndex=0;var h=L.exec(Ce),u=1}if(!h){if(o)break;continue}D&&(B=h[1]?h[1].length:0);var g=h.index+B,h=h[0].slice(B),v=g+h.length,R=Ce.slice(0,g),C=Ce.slice(v);let Z=[Q,u];R&&(++Q,ne+=R.length,Z.push(R));let Ye=new fe(A,k?N.tokenize(h,k):h,vt,h,z);if(Z.push(Ye),C&&Z.push(C),Array.prototype.splice.apply(t,Z),u!=1&&N.matchGrammar(e,t,r,Q,ne,!0,A),o)break}}}},tokenize:function(e,t){let r=[e],n=t.rest;if(n){for(let i in n)t[i]=n[i];delete t.rest}return N.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){let r=N.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){let r=N.hooks.all[e];if(!(!r||!r.length))for(var n=0,i;i=r[n++];)i(t)}},Token:fe};N.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};N.languages.javascript=N.languages.extend("clike",{"class-name":[N.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});N.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;N.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:N.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:N.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:N.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:N.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});N.languages.markup&&N.languages.markup.tag.addInlined("script","javascript");N.languages.js=N.languages.javascript;N.languages.typescript=N.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/});N.languages.ts=N.languages.typescript;function fe(e,t,r,n,i){this.type=e,this.content=t,this.alias=r,this.length=(n||"").length|0,this.greedy=!!i}fe.stringify=function(e,t){return typeof e=="string"?e:Array.isArray(e)?e.map(function(r){return fe.stringify(r,t)}).join(""):Qu(e.type)(e.content)};function Qu(e){return wo[e]||Uu}function bo(e){return Gu(e,N.languages.javascript)}function Gu(e,t){return N.tokenize(e,t).map(n=>fe.stringify(n)).join("")}m();c();p();d();f();function Eo(e){return mn(e)}var wr=class e{firstLineNumber;lines;static read(t){let r;try{r=or.readFileSync(t,"utf-8")}catch{return null}return e.fromContent(r)}static fromContent(t){let r=t.split(/\r?\n/);return new e(1,r)}constructor(t,r){this.firstLineNumber=t,this.lines=r}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(t,r){if(tthis.lines.length+this.firstLineNumber)return this;let n=t-this.firstLineNumber,i=[...this.lines];return i[n]=r(i[n]),new e(this.firstLineNumber,i)}mapLines(t){return new e(this.firstLineNumber,this.lines.map((r,n)=>t(r,this.firstLineNumber+n)))}lineAt(t){return this.lines[t-this.firstLineNumber]}prependSymbolAt(t,r){return this.mapLines((n,i)=>i===t?`${r} ${n}`:` ${n}`)}slice(t,r){let n=this.lines.slice(t-1,r).join(` +`);return new e(t,Eo(n).split(` +`))}highlight(){let t=bo(this.toString());return new e(this.firstLineNumber,t.split(` +`))}toString(){return this.lines.join(` +`)}};var Ju={red:Ge,gray:kt,dim:Ct,bold:pe,underline:At,highlightSource:e=>e.highlight()},Wu={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ku({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Hu({callsite:e,message:t,originalMethod:r,isPanic:n,callArguments:i},o){let s=Ku({message:t,originalMethod:r,isPanic:n,callArguments:i});if(!e||typeof window<"u"||y.env.NODE_ENV==="production")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=wr.read(a.fileName)?.slice(l,a.lineNumber),g=u?.lineAt(a.lineNumber);if(u&&g){let h=Yu(g),v=zu(g);if(!v)return s;s.functionName=`${v.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,C=>C.slice(0,v.openingBraceIndex))),u=o.highlightSource(u);let R=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((C,A)=>o.gray(String(A).padStart(R))+" "+C).mapLines(C=>o.dim(C)).prependSymbolAt(a.lineNumber,o.bold(o.red("\u2192"))),i){let C=h+R+1;C+=2,s.callArguments=(0,xo.default)(i,C).slice(C)}}return s}function zu(e){let t=Object.keys(ct).join("|"),n=new RegExp(String.raw`\.(${t})\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(" ",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function Yu(e){let t=0;for(let r=0;r"Unknown error")}function Ao(e){return e.errors.flatMap(t=>t.kind==="Union"?Ao(t):[t])}function ec(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:tc(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function tc(e,t){return[...new Set(e.concat(t))]}function rc(e){return En(e,(t,r)=>{let n=vo(t),i=vo(r);return n!==i?n-i:To(t)-To(r)})}function vo(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function To(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}m();c();p();d();f();var ce=class{constructor(t,r){this.name=t;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};m();c();p();d();f();m();c();p();d();f();Ro();m();c();p();d();f();var pt=class{constructor(t=0,r){this.context=r;this.currentIndent=t}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};So();m();c();p();d();f();m();c();p();d();f();var xr=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};m();c();p();d();f();var Pr=e=>e,vr={bold:Pr,red:Pr,green:Pr,dim:Pr,enabled:!1},ko={bold:pe,red:Ge,green:St,dim:Ct,enabled:!0},dt={write(e){e.writeLine(",")}};m();c();p();d();f();var xe=class{constructor(t){this.contents=t}isUnderlined=!1;color=t=>t;underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};m();c();p();d();f();var Be=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var ft=class extends Be{items=[];addItem(t){return this.items.push(new xr(t)),this}getField(t){return this.items[t]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(t){if(this.items.length===0){this.writeEmpty(t);return}this.writeWithItems(t)}writeEmpty(t){let r=new xe("[]");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithItems(t){let{colors:r}=t.context;t.writeLine("[").withIndent(()=>t.writeJoined(dt,this.items).newLine()).write("]"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var mt=class e extends Be{fields={};suggestions=[];addField(t){this.fields[t.name]=t}addSuggestion(t){this.suggestions.push(t)}getField(t){return this.fields[t]}getDeepField(t){let[r,...n]=t,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof e?a=o.value.getField(s):o.value instanceof ft&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(t){return t.length===0?this:this.getDeepField(t)?.value}hasField(t){return!!this.getField(t)}removeAllFields(){this.fields={}}removeField(t){delete this.fields[t]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(t){return this.getField(t)?.value}getDeepSubSelectionValue(t){let r=this;for(let n of t){if(!(r instanceof e))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(t){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of t){let o=n.value.getFieldValue(i);if(!o||!(o instanceof e))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let t=this.getField("select")?.value.asObject();if(t)return{kind:"select",value:t};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(t){return this.getSelectionParent()?.value.fields[t].value}getPrintWidth(){let t=Object.values(this.fields);return t.length==0?2:Math.max(...t.map(n=>n.getPrintWidth()))+2}write(t){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(t);return}this.writeWithContents(t,r)}asObject(){return this}writeEmpty(t){let r=new xe("{}");this.hasError&&r.setColor(t.context.colors.red).underline(),t.write(r)}writeWithContents(t,r){t.writeLine("{").withIndent(()=>{t.writeJoined(dt,[...r,...this.suggestions]).newLine()}),t.write("}"),this.hasError&&t.afterNextNewline(()=>{t.writeLine(t.context.colors.red("~".repeat(this.getPrintWidth())))})}};m();c();p();d();f();var H=class extends Be{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new xe(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};m();c();p();d();f();var qt=class{fields=[];addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(dt,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Er(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":nc(e,t);break;case"IncludeOnScalar":ic(e,t);break;case"EmptySelection":oc(e,t,r);break;case"UnknownSelectionField":uc(e,t);break;case"InvalidSelectionValue":cc(e,t);break;case"UnknownArgument":pc(e,t);break;case"UnknownInputField":dc(e,t);break;case"RequiredArgumentMissing":fc(e,t);break;case"InvalidArgumentType":mc(e,t);break;case"InvalidArgumentValue":gc(e,t);break;case"ValueTooLarge":hc(e,t);break;case"SomeFieldsMissing":yc(e,t);break;case"TooManyFieldsGiven":wc(e,t);break;case"Union":Co(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function nc(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function ic(e,t){let[r,n]=$t(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ce(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${jt(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function oc(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){sc(e,t,i);return}if(n.hasField("select")){ac(e,t);return}}if(r?.[je(e.outputType.name)]){lc(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function sc(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ce(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function ac(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Io(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${jt(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function lc(e,t){let r=new qt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ce("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=$t(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new mt;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function uc(e,t){let r=_o(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":Io(n,e.outputType);break;case"include":bc(n,e.outputType);break;case"omit":Ec(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(jt(n)),i.join(" ")})}function cc(e,t){let r=_o(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function pc(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),xc(n,e.arguments)),t.addErrorMessage(i=>Mo(i,r,e.arguments.map(o=>o.name)))}function dc(e,t){let[r,n]=$t(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Lo(o,e.inputType)}t.addErrorMessage(o=>Mo(o,n,e.inputType.fields.map(s=>s.name)))}function Mo(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=vc(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(jt(e)),n.join(" ")}function fc(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=$t(e.argumentPath),s=new qt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ce(o,s).makeRequired())}else{let l=e.inputTypes.map(Fo).join(" | ");a.addSuggestion(new ce(o,l).makeRequired())}}function Fo(e){return e.kind==="list"?`${Fo(e.elementType)}[]`:e.name}function mc(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Tr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function gc(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Tr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function hc(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function yc(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Lo(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Tr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(jt(i)),o.join(" ")})}function wc(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Tr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function Io(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,"true"))}function bc(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ce(r.name,"true"))}function Ec(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ce(r.name,"true"))}function xc(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function _o(e,t){let[r,n]=$t(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Lo(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function $t(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function jt({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Tr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Pc=3;function vc(e,t){let r=1/0,n;for(let i of t){let o=(0,Oo.default)(e,i);o>Pc||o`}};function gt(e){return e instanceof Bt}m();c();p();d();f();var Cr=Symbol(),kn=new WeakMap,Ie=class{constructor(t){t===Cr?kn.set(this,`Prisma.${this._getName()}`):kn.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return kn.get(this)}},Ut=class extends Ie{_getNamespace(){return"NullTypes"}},Vt=class extends Ut{_brand_DbNull};On(Vt,"DbNull");var Qt=class extends Ut{_brand_JsonNull};On(Qt,"JsonNull");var Gt=class extends Ut{_brand_AnyNull};On(Gt,"AnyNull");var Ar={classes:{DbNull:Vt,JsonNull:Qt,AnyNull:Gt},instances:{DbNull:new Vt(Cr),JsonNull:new Qt(Cr),AnyNull:new Gt(Cr)}};function On(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}m();c();p();d();f();var No=": ",Sr=class{constructor(t,r){this.name=t;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+No.length}write(t){let r=new xe(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(No).write(this.value)}};var Mn=class{arguments;errorMessages=[];constructor(t){this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function ht(e){return new Mn(Do(e))}function Do(e){let t=new mt;for(let[r,n]of Object.entries(e)){let i=new Sr(r,qo(n));t.addField(i)}return t}function qo(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(ut(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=hr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Ie?new H(`Prisma.${e._getName()}`):gt(e)?new H(`prisma.${je(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Tc(e):typeof e=="object"?Do(e):new H(Object.prototype.toString.call(e))}function Tc(e){let t=new ft;for(let r of e)t.addItem(qo(r));return t}function Rr(e,t){let r=t==="pretty"?ko:vr,n=e.renderAllMessages(r),i=new pt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function kr({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=ht(e);for(let h of t)Er(h,a,s);let{message:l,args:u}=Rr(a,r),g=br({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:u});throw new ee(g,{clientVersion:o})}m();c();p();d();f();m();c();p();d();f();function Pe(e){return e.replace(/^./,t=>t.toLowerCase())}m();c();p();d();f();function jo(e,t,r){let n=Pe(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Cc({...e,...$o(t.name,e,t.result.$allModels),...$o(t.name,e,t.result[n])})}function Cc(e){let t=new Ee,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return it(e,n=>({...n,needs:r(n.name,new Set)}))}function $o(e,t,r){return r?it(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Ac(t,o,i)})):{}}function Ac(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Bo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function Uo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Or=class{constructor(t,r){this.extension=t;this.previous=r}computedFieldsCache=new Ee;modelExtensionsCache=new Ee;queryCallbacksCache=new Ee;clientExtensions=Nt(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=Nt(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t});getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>jo(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Pe(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},yt=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Or(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Or(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};m();c();p();d();f();var Mr=class{constructor(t){this.name=t}};function Vo(e){return e instanceof Mr}function Qo(e){return new Mr(e)}m();c();p();d();f();m();c();p();d();f();var Go=Symbol(),Jt=class{constructor(t){if(t!==Go)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Fr:t}},Fr=new Jt(Go);function ve(e){return e instanceof Jt}var Sc={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Jo="explicitly `undefined` values are not allowed";function Ir({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=yt.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:g}){let h=new Fn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:g});return{modelName:e,action:Sc[t],query:Wt(r,h)}}function Wt({select:e,include:t,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Ko(r,n),selection:Rc(e,t,i,n)}}function Rc(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),Fc(e,n)):kc(n,t,r)}function kc(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&Oc(n,t,e),Mc(n,r,e),n}function Oc(e,t,r){for(let[n,i]of Object.entries(t)){if(ve(i))continue;let o=r.nestSelection(n);if(In(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Wt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Wt(i,o)}}function Mc(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=Uo(i,n);for(let[s,a]of Object.entries(o)){if(ve(a))continue;In(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function Fc(e,t){let r={},n=t.getComputedFields(),i=Bo(e,n);for(let[o,s]of Object.entries(i)){if(ve(s))continue;let a=t.nestSelection(o);In(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||ve(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Wt({},a):r[o]=!0;continue}r[o]=Wt(s,a)}}return r}function Wo(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(lt(e)){if(hr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Vo(e))return{$type:"Param",value:e.name};if(gt(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return Ic(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(_c(e))return e.values;if(ut(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ie){if(e!==Ar.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(Lc(e))return e.toJSON();if(typeof e=="object")return Ko(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Ko(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);ve(i)||(i!==void 0?r[n]=Wo(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:Jo}))}return r}function Ic(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[je(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Me(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};m();c();p();d();f();function Ho(e){if(!e._hasPreviewFlag("metrics"))throw new ee("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:e._clientVersion})}var wt=class{_client;constructor(t){this._client=t}prometheus(t){return Ho(this._client),this._client._engine.metrics({format:"prometheus",...t})}json(t){return Ho(this._client),this._client._engine.metrics({format:"json",...t})}};m();c();p();d();f();function zo(e,t){let r=Nt(()=>Nc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function Nc(e){return{datamodel:{models:_n(e.models),enums:_n(e.enums),types:_n(e.types)}}}function _n(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}m();c();p();d();f();var Ln=new WeakMap,_r="$$PrismaTypedSql",Kt=class{constructor(t,r){Ln.set(this,{sql:t,values:r}),Object.defineProperty(this,_r,{value:_r})}get sql(){return Ln.get(this).sql}get values(){return Ln.get(this).values}};function Yo(e){return(...t)=>new Kt(e,t)}function Lr(e){return e!=null&&e[_r]===_r}m();c();p();d();f();var ga=Se(Zo());m();c();p();d();f();Xo();cn();dn();m();c();p();d();f();var ae=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}m();c();p();d();f();m();c();p();d();f();var Dr={enumerable:!0,configurable:!0,writable:!0};function qr(e){let t=new Set(e);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>Dr,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var rs=Symbol.for("nodejs.util.inspect.custom");function me(e,t){let r=qc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=ns(Reflect.ownKeys(o),r),a=ns(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Dr,...l?.getPropertyDescriptor(s)}:Dr:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[rs]=function(){let o={...this};return delete o[rs],o},i}function qc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function ns(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}m();c();p();d();f();function bt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}m();c();p();d();f();function $r(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}m();c();p();d();f();function is(e){if(e===void 0)return"";let t=ht(e);return new pt(0,{colors:vr}).write(t).toString()}m();c();p();d();f();var $c="P2037";function jr({error:e,user_facing_error:t},r,n){return t.error_code?new oe(jc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new G(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function jc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===$c&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var zt="";function os(e){var t=e.split(` +`);return t.reduce(function(r,n){var i=Vc(n)||Gc(n)||Kc(n)||Zc(n)||zc(n);return i&&r.push(i),r},[])}var Bc=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Uc=/\((\S*)(?::(\d+))(?::(\d+))\)/;function Vc(e){var t=Bc.exec(e);if(!t)return null;var r=t[2]&&t[2].indexOf("native")===0,n=t[2]&&t[2].indexOf("eval")===0,i=Uc.exec(t[2]);return n&&i!=null&&(t[2]=i[1],t[3]=i[2],t[4]=i[3]),{file:r?null:t[2],methodName:t[1]||zt,arguments:r?[t[2]]:[],lineNumber:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}var Qc=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Gc(e){var t=Qc.exec(e);return t?{file:t[2],methodName:t[1]||zt,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var Jc=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,Wc=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Kc(e){var t=Jc.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(" > eval")>-1,n=Wc.exec(t[3]);return r&&n!=null&&(t[3]=n[1],t[4]=n[2],t[5]=null),{file:t[3],methodName:t[1]||zt,arguments:t[2]?t[2].split(","):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}var Hc=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function zc(e){var t=Hc.exec(e);return t?{file:t[3],methodName:t[1]||zt,arguments:[],lineNumber:+t[4],column:t[5]?+t[5]:null}:null}var Yc=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Zc(e){var t=Yc.exec(e);return t?{file:t[2],methodName:t[1]||zt,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var qn=class{getLocation(){return null}},$n=class{_error;constructor(){this._error=new Error}getLocation(){let t=this._error.stack;if(!t)return null;let n=os(t).find(i=>{if(!i.file)return!1;let o=wn(i.file);return o!==""&&!o.includes("@prisma")&&!o.includes("/packages/client/src/runtime/")&&!o.endsWith("/runtime/binary.js")&&!o.endsWith("/runtime/library.js")&&!o.endsWith("/runtime/edge.js")&&!o.endsWith("/runtime/edge-esm.js")&&!o.startsWith("internal/")&&!i.methodName.includes("new ")&&!i.methodName.includes("getCallSite")&&!i.methodName.includes("Proxy.")&&i.methodName.split(".").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ue(e){return e==="minimal"?typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new qn:new $n}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var ss={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Et(e={}){let t=ep(e);return Object.entries(t).reduce((n,[i,o])=>(ss[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function ep(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Br(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function as(e,t){let r=Br(e);return t({action:"aggregate",unpacker:r,argsMapper:Et})(e)}m();c();p();d();f();function tp(e={}){let{select:t,...r}=e;return typeof t=="object"?Et({...r,_count:t}):Et({...r,_count:{_all:!0}})}function rp(e={}){return typeof e.select=="object"?t=>Br(e)(t)._count:t=>Br(e)(t)._count._all}function ls(e,t){return t({action:"count",unpacker:rp(e),argsMapper:tp})(e)}m();c();p();d();f();function np(e={}){let t=Et(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function ip(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function us(e,t){return t({action:"groupBy",unpacker:ip(e),argsMapper:np})(e)}function cs(e,t,r){if(t==="aggregate")return n=>as(n,r);if(t==="count")return n=>ls(n,r);if(t==="groupBy")return n=>us(n,r)}m();c();p();d();f();function ps(e,t){let r=t.fields.filter(i=>!i.relationName),n=ho(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Bt(e,o,s.type,s.isList,s.kind==="enum")},...qr(Object.keys(n))})}m();c();p();d();f();m();c();p();d();f();var ds=e=>Array.isArray(e)?e:e.split("."),jn=(e,t)=>ds(t).reduce((r,n)=>r&&r[n],e),fs=(e,t,r)=>ds(t).reduceRight((n,i,o,s)=>Object.assign({},jn(e,s.slice(0,o)),{[i]:n}),r);function op(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function sp(e,t,r){return t===void 0?e??{}:fs(t,r,e||!0)}function Bn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ue(e._errorFormat),g=op(n,i),h=sp(l,o,g),v=r({dataPath:g,callsite:u})(h),R=ap(e,t);return new Proxy(v,{get(C,A){if(!R.includes(A))return C[A];let I=[a[A].type,r,A],L=[g,h];return Bn(e,...I,...L)},...qr([...R,...Object.getOwnPropertyNames(v)])})}}function ap(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var lp=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],up=["aggregate","count","groupBy"];function Un(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[cp(e,t),dp(e,t),Ht(r),re("name",()=>t),re("$name",()=>t),re("$parent",()=>e._appliedParent)];return me({},n)}function cp(e,t){let r=Pe(t),n=Object.keys(ct).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let u=Ue(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:u};return e._request({...h,...a})},{action:o,args:l,model:t})};return lp.includes(o)?Bn(e,t,s):pp(i)?cs(e,i,s):s({})}}}function pp(e){return up.includes(e)}function dp(e,t){return Ke(re("fields",()=>{let r=e._runtimeDataModel.models[t];return ps(t,r)}))}m();c();p();d();f();function ms(e){return e.replace(/^./,t=>t.toUpperCase())}var Vn=Symbol();function Yt(e){let t=[fp(e),mp(e),re(Vn,()=>e),re("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(Ht(r)),me(e,t)}function fp(e){let t=Object.getPrototypeOf(e._originalClient),r=[...new Set(Object.getOwnPropertyNames(t))];return{getKeys(){return r},getPropertyValue(n){return e[n]}}}function mp(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Pe),n=[...new Set(t.concat(r))];return Ke({getKeys(){return n},getPropertyValue(i){let o=ms(i);if(e._runtimeDataModel.models[o]!==void 0)return Un(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Un(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function gs(e){return e[Vn]?e[Vn]:e}function hs(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Yt(t)}m();c();p();d();f();m();c();p();d();f();function ys({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(g=>n[g]);u.length>0&&a.push(bt(u))}else if(r){if(!r[l.name])continue;let u=l.needs.filter(g=>!r[g]);u.length>0&&a.push(bt(u))}gp(e,l.needs)&&s.push(hp(l,me(e,s)))}return s.length>0||a.length>0?me(e,[...s,...a]):e}function gp(e,t){return t.every(r=>bn(e,r))}function hp(e,t){return Ke(re(e.name,()=>e.compute(t)))}m();c();p();d();f();function Ur({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let u=typeof s=="object"?s:{};t[o]=Ur({visitor:i,result:t[o],args:u,modelName:l.type,runtimeDataModel:n})}}function bs({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Ur({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,u)=>{let g=Pe(l);return ys({result:a,modelName:g,select:u.select,omit:u.select?void 0:{...o?.[g],...u.omit},extensions:n})}})}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var yp=["$connect","$disconnect","$on","$transaction","$use","$extends"],Es=yp;function xs(e){if(e instanceof ae)return wp(e);if(Lr(e))return bp(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:xs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=Ss(o,l),a.args=s,vs(e,a,r,n+1)}})})}function Ts(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return vs(e,t,s)}function Cs(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?As(r,n,0,e):e(r)}}function As(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=Ss(i,l),As(a,t,r+1,n)}})}var Ps=e=>e;function Ss(e=Ps,t=Ps){return r=>e(t(r))}m();c();p();d();f();var Rs=K("prisma:client"),ks={Vercel:"vercel","Netlify CI":"netlify"};function Os({postinstall:e,ciName:t,clientVersion:r}){if(Rs("checkPlatformCaching:postinstall",e),Rs("checkPlatformCaching:ciName",t),e===!0&&t&&t in ks){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ks[t]}-build`;throw console.error(n),new V(n,r)}}m();c();p();d();f();function Ms(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}m();c();p();d();f();m();c();p();d();f();var Ep=()=>globalThis.process?.release?.name==="node",xp=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,Pp=()=>!!globalThis.Deno,vp=()=>typeof globalThis.Netlify=="object",Tp=()=>typeof globalThis.EdgeRuntime=="object",Cp=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function Ap(){return[[vp,"netlify"],[Tp,"edge-light"],[Cp,"workerd"],[Pp,"deno"],[xp,"bun"],[Ep,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var Sp={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Fs(){let e=Ap();return{id:e,prettyName:Sp[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}m();c();p();d();f();m();c();p();d();f();var Qn=Se(yn());m();c();p();d();f();function Is(e){return e?e.replace(/".*"/g,'"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g,t=>`${t[0]}5`):""}m();c();p();d();f();function _s(e){return e.split(` +`).map(t=>t.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/,"").replace(/\+\d+\s*ms$/,"")).join(` +`)}m();c();p();d();f();var Ls=Se(Zi());function Ns({title:e,user:t="prisma",repo:r="prisma",template:n="bug_report.yml",body:i}){return(0,Ls.default)({user:t,repo:r,template:n,title:e,body:i})}function Ds({version:e,binaryTarget:t,title:r,description:n,engineVersion:i,database:o,query:s}){let a=Ii(6e3-(s?.length??0)),l=_s((0,Qn.default)(a)),u=n?`# Description +\`\`\` +${n} +\`\`\``:"",g=(0,Qn.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${y.version?.padEnd(19)}| +| OS | ${t?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s?Is(s):""} +\`\`\` +`),h=Ns({title:r,body:g});return`${r} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${At(h)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`}m();c();p();d();f();function Vr({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new V(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new V("error: Missing URL environment variable, value, or override.",n);return i}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();function Gn(e){return e.name==="DriverAdapterError"&&typeof e.cause=="object"}m();c();p();d();f();function Qr(e){return{ok:!0,value:e,map(t){return Qr(t(e))},flatMap(t){return t(e)}}}function He(e){return{ok:!1,error:e,map(){return He(e)},flatMap(){return He(e)}}}var qs=K("driver-adapter-utils"),Jn=class{registeredErrors=[];consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}};var Wn=(e,t=new Jn)=>{let r={adapterName:e.adapterName,errorRegistry:t,queryRaw:_e(t,e.queryRaw.bind(e)),executeRaw:_e(t,e.executeRaw.bind(e)),executeScript:_e(t,e.executeScript.bind(e)),dispose:_e(t,e.dispose.bind(e)),provider:e.provider,startTransaction:async(...n)=>(await _e(t,e.startTransaction.bind(e))(...n)).map(o=>Rp(t,o))};return e.getConnectionInfo&&(r.getConnectionInfo=kp(t,e.getConnectionInfo.bind(e))),r},Rp=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:_e(e,t.queryRaw.bind(t)),executeRaw:_e(e,t.executeRaw.bind(t)),commit:_e(e,t.commit.bind(t)),rollback:_e(e,t.rollback.bind(t))});function _e(e,t){return async(...r)=>{try{return Qr(await t(...r))}catch(n){if(qs("[error@wrapAsync]",n),Gn(n))return He(n.cause);let i=e.registerNewError(n);return He({kind:"GenericJs",id:i})}}}function kp(e,t){return(...r)=>{try{return Qr(t(...r))}catch(n){if(qs("[error@wrapSync]",n),Gn(n))return He(n.cause);let i=e.registerNewError(n);return He({kind:"GenericJs",id:i})}}}m();c();p();d();f();function $s(e){if(e?.kind==="itx")return e.options.id}m();c();p();d();f();var Kn=class{engineObject;constructor(t,r,n){this.engineObject=__PrismaProxy.create({datamodel:t.datamodel,env:y.env,ignoreEnvVarErrors:!0,datasourceOverrides:t.datasourceOverrides??{},logLevel:t.logLevel,logQueries:t.logQueries??!1,logCallback:r,enableTracing:t.enableTracing})}async connect(t,r){return __PrismaProxy.connect(this.engineObject,t,r)}async disconnect(t,r){return __PrismaProxy.disconnect(this.engineObject,t,r)}query(t,r,n,i){return __PrismaProxy.execute(this.engineObject,t,r,n,i)}compile(){throw new Error("not implemented")}sdlSchema(){return Promise.resolve("{}")}dmmf(t){return Promise.resolve("{}")}async startTransaction(t,r,n){return __PrismaProxy.startTransaction(this.engineObject,t,r,n)}async commitTransaction(t,r,n){return __PrismaProxy.commitTransaction(this.engineObject,t,r,n)}async rollbackTransaction(t,r,n){return __PrismaProxy.rollbackTransaction(this.engineObject,t,r,n)}metrics(t){return Promise.resolve("{}")}async applyPendingMigrations(){return __PrismaProxy.applyPendingMigrations(this.engineObject)}trace(t){return __PrismaProxy.trace(this.engineObject,t)}},js={async loadLibrary(e){if(!__PrismaProxy)throw new V("__PrismaProxy not detected make sure React Native bindings are installed",e.clientVersion);return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:Kn}}};var Op="P2036",Te=K("prisma:client:libraryEngine");function Mp(e){return e.item_type==="query"&&"query"in e}function Fp(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var z2=[...pn,"native"],Ip=0xffffffffffffffffn,Hn=1n;function _p(){let e=Hn++;return Hn>Ip&&(Hn=1n),e}var Xt=class{name="LibraryEngine";engine;libraryInstantiationPromise;libraryStartingPromise;libraryStoppingPromise;libraryStarted;executingQueryPromise;config;QueryEngineConstructor;libraryLoader;library;logEmitter;libQueryEnginePath;binaryTarget;datasourceOverrides;datamodel;logQueries;logLevel;lastQuery;loggerRustPanic;tracingHelper;adapterPromise;versionInfo;constructor(t,r){this.libraryLoader=js,this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,this.tracingHelper=t.tracingHelper,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(t){return{applyPendingMigrations:t.applyPendingMigrations?.bind(t),commitTransaction:this.withRequestId(t.commitTransaction.bind(t)),connect:this.withRequestId(t.connect.bind(t)),disconnect:this.withRequestId(t.disconnect.bind(t)),metrics:t.metrics?.bind(t),query:this.withRequestId(t.query.bind(t)),rollbackTransaction:this.withRequestId(t.rollbackTransaction.bind(t)),sdlSchema:t.sdlSchema?.bind(t),startTransaction:this.withRequestId(t.startTransaction.bind(t)),trace:t.trace.bind(t)}}withRequestId(t){return async(...r)=>{let n=_p().toString();try{return await t(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){await this.start(),await this.engine?.applyPendingMigrations()}async transaction(t,r,n){await this.start();let i=await this.adapterPromise,o=JSON.stringify(r),s;if(t==="start"){let l=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});s=await this.engine?.startTransaction(l,o)}else t==="commit"?s=await this.engine?.commitTransaction(n.id,o):t==="rollback"&&(s=await this.engine?.rollbackTransaction(n.id,o));let a=this.parseEngineResponse(s);if(Lp(a)){let l=this.getExternalAdapterError(a,i?.errorRegistry);throw l?l.error:new oe(a.message,{code:a.error_code,clientVersion:this.config.clientVersion,meta:a.meta})}else if(typeof a.message=="string")throw new G(a.message,{clientVersion:this.config.clientVersion});return a}async instantiateLibrary(){if(Te("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(t){if(!t)throw new G("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new G("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new b(this);this.adapterPromise||(this.adapterPromise=this.config.adapter?.connect()?.then(Wn));let r=await this.adapterPromise;r&&Te("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:y.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{t.deref()?.logger(n)},r))}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);r&&(r.level=r?.level.toLowerCase()??"unknown",Mp(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):Fp(r)?this.loggerRustPanic=new ue(zn(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path}))}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Te(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Te("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Te("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Te("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Te("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,await(await this.adapterPromise)?.dispose(),this.adapterPromise=void 0,Te("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Te(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start();let s=await this.adapterPromise;this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let a=this.parseEngineResponse(await this.executingQueryPromise);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],s?.errorRegistry):new G(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:a}}catch(s){if(s instanceof V)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new ue(zn(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new G(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Te("requestBatch");let i=$r(t,r);await this.start();let o=await this.adapterPromise;this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),$s(r));let s=await this.executingQueryPromise,a=this.parseEngineResponse(s);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],o?.errorRegistry):new G(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});let{batchResult:l,errors:u}=a;if(Array.isArray(l))return l.map(g=>g.errors&&g.errors.length>0?this.loggerRustPanic??this.buildQueryError(g.errors[0],o?.errorRegistry):{data:g});throw u&&u.length===1?new Error(u[0].error):new Error(JSON.stringify(a))}buildQueryError(t,r){if(t.user_facing_error.is_panic)return new ue(zn(this,t.user_facing_error.message),this.config.clientVersion);let n=this.getExternalAdapterError(t.user_facing_error,r);return n?n.error:jr(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t,r){if(t.error_code===Op&&r){let n=t.meta?.id;sr(typeof n=="number","Malformed external JS error received from the engine");let i=r.consumeError(n);return sr(i,"External error with reported id was not registered"),i}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format==="prometheus"?r:this.parseEngineResponse(r)}};function Lp(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function zn(e,t){return Ds({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function Bs({copyEngine:e=!0},t){let r;try{r=Vr({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||gn(r));e&&n&&_t("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=nt(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary",u=i==="client";if(o&&s||s&&!1){let g;throw e?r?.startsWith("prisma://")?g=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:g=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:g=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new ee(g.join(` +`),{clientVersion:t.clientVersion})}return new Xt(t)}m();c();p();d();f();function Gr({generator:e}){return e?.previewFeatures??[]}m();c();p();d();f();var Us=e=>({command:e});m();c();p();d();f();m();c();p();d();f();var Vs=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);m();c();p();d();f();function xt(e){try{return Qs(e,"fast")}catch{return Qs(e,"slow")}}function Qs(e,t){return JSON.stringify(e.map(r=>Js(r,t)))}function Js(e,t){if(Array.isArray(e))return e.map(r=>Js(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(lt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(be.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(Np(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Ws(e):e}function Np(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Ws(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Gs);let t={};for(let r of Object.keys(e))t[r]=Gs(e[r]);return t}function Gs(e){return typeof e=="bigint"?e.toString():Ws(e)}var Dp=/^(\s*alter\s)/i,Ks=K("prisma:client");function Yn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Dp.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Zn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Lr(r))n=r.sql,i={values:xt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:xt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:xt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:xt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=Vs(r),i={values:xt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Ks(`prisma.${e}(${n}, ${i.values})`):Ks(`prisma.${e}(${n})`),{query:n,parameters:i}},Hs={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new ae(t,r)}},zs={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};m();c();p();d();f();function Xn(e){return function(r,n){let i,o=(s=e)=>{try{return s===void 0||s?.kind==="itx"?i??=Ys(r(s)):Ys(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function Ys(e){return typeof e.then=="function"?e:Promise.resolve(e)}m();c();p();d();f();var qp=fn.split(".")[0],$p={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},ei=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){let t=globalThis[`V${qp}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return t?.helper??r?.helper??$p}};function Zs(){return new ei}m();c();p();d();f();function Xs(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}m();c();p();d();f();function ea(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}m();c();p();d();f();var Jr=class{_middlewares=[];use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};m();c();p();d();f();var ra=Se(yn());m();c();p();d();f();function Wr(e){return typeof e.batchRequestIdx=="number"}m();c();p();d();f();function ta(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(ti(e.query.arguments)),t.push(ti(e.query.selection)),t.join("")}function ti(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${ti(n)})`:r}).join(" ")})`}m();c();p();d();f();var jp={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function ri(e){return jp[e]}m();c();p();d();f();var Kr=class{constructor(t){this.options=t;this.batches={}}batches;tickActive=!1;request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;ize("bigint",r));case"bytes-array":return t.map(r=>ze("bytes",r));case"decimal-array":return t.map(r=>ze("decimal",r));case"datetime-array":return t.map(r=>ze("datetime",r));case"date-array":return t.map(r=>ze("date",r));case"time-array":return t.map(r=>ze("time",r));default:return t}}function Hr(e){let t=[],r=Bp(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(h=>ri(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Vp(o),containsWrite:u,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(R){return R}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?na(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:ri(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:ta(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Up(t),Qp(t,i))throw t;if(t instanceof oe&&Gp(t)){let u=ia(t.meta);kr({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=br({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new oe(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ue(l,this.client._clientVersion);if(t instanceof G)throw new G(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof V)throw new V(l,this.client._clientVersion);if(t instanceof ue)throw new ue(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,ra.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!=="select"&&u!=="include"),a=jn(o,s),l=i==="queryRaw"?Hr(a):at(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Vp(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:na(e)};Me(e,"Unknown transaction kind")}}function na(e){return{id:e.id,payload:e.payload}}function Qp(e,t){return Wr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function Gp(e){return e.code==="P2009"||e.code==="P2012"}function ia(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(ia)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}m();c();p();d();f();var oa="6.6.0";var sa=oa;m();c();p();d();f();var pa=Se(Sn());m();c();p();d();f();var q=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};le(q,"PrismaClientConstructorValidationError");var aa=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],la=["pretty","colorless","minimal"],ua=["info","query","warn","error"],Wp={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new q(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=Pt(r,t)||` Available datasources: ${t.join(", ")}`;throw new q(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new q(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new q(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new q(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(!e&&nt(t.generator)==="client")throw new q('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(e===null)return;if(e===void 0)throw new q('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Gr(t).includes("driverAdapters"))throw new q('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(nt(t.generator)==="binary")throw new q('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new q(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new q(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!la.includes(e)){let t=Pt(e,la);throw new q(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new q(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!ua.includes(r)){let n=Pt(r,ua);throw new q(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=Pt(i,o);throw new q(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new q(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new q(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new q(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new q('"omit" option is expected to be an object.');if(e===null)throw new q('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=Hp(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new q(zp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new q(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=Pt(r,t);throw new q(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function da(e,t){for(let[r,n]of Object.entries(e)){if(!aa.includes(r)){let i=Pt(r,aa);throw new q(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Wp[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new q('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function Pt(e,t){if(t.length===0||typeof e!="string")return"";let r=Kp(e,t);return r?` Did you mean "${r}"?`:""}function Kp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,pa.default)(e,i)}));r.sort((i,o)=>i.distanceje(n)===t);if(r)return e[r]}function zp(e,t){let r=ht(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Rr(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}m();c();p();d();f();function fa(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=u=>{o||(o=!0,r(u))};for(let u=0;u{n[u]=g,a()},g=>{if(!Wr(g)){l(g);return}g.batchRequestIdx===u?l(g):(i||(i=g),a())})})}var Ve=K("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Yp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Zp=Symbol.for("prisma.client.transaction.id"),Xp={id:0,nextId(){return++this.id}};function ha(e){class t{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new Jr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=Xn();constructor(n){e=n?.__internal?.configOverride?.(e)??e,Os(e),n&&da(n,e);let i=new Nr().on("error",()=>{});this._extensions=yt.empty(),this._previewFeatures=Gr(e),this._clientVersion=e.clientVersion??sa,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Zs();let o=e.relativeEnvPaths&&{rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Oe.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Oe.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new V(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new V("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},g=u.debug===!0;g&&K.enable("prisma:client");let h=Oe.resolve(e.dirname,e.relativePath);or.existsSync(h)||(h=e.dirname),Ve("dirname",e.dirname),Ve("relativePath",e.relativePath),Ve("cwd",h);let v=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&ea(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(R=>typeof R=="string"?R==="query":R.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,compilerWasm:e.compilerWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ms(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:Vr,getBatchRequestPayload:$r,prismaGraphQLToJSError:jr,PrismaClientUnknownRequestError:G,PrismaClientInitializationError:V,PrismaClientKnownRequestError:oe,debug:K("prisma:client:accelerateEngine"),engineVersion:ga.version,clientVersion:e.clientVersion}},Ve("clientVersion",e.clientVersion),this._engine=Bs(e,this._engineConfig),this._requestHandler=new zr(this,i),l.log)for(let R of l.log){let C=typeof R=="string"?R:R.emit==="stdout"?R.level:null;C&&this.$on(C,A=>{It.log(`${It.tags[C]??""}`,A.message||A.query)})}}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=Yt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{_i()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Zn({clientMethod:i,activeProvider:a}),callsite:Ue(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ma(n,i);return Yn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new ee("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Yn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new ee(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:Us,callsite:Ue(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Zn({clientMethod:i,activeProvider:a}),callsite:Ue(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ma(n,i));throw new ee("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new ee("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=Xp.nextId(),s=Xs(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:u,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return fa(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let u={kind:"itx",...a};l=await n(this._createItxClient(u)),await this._engine.transaction("commit",o,a)}catch(u){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),u}return l}_createItxClient(n){return me(Yt(me(gs(this),[re("_appliedParent",()=>this._appliedParent._createItxClient(n)),re("_createPrismaPromise",()=>Xn(n)),re(Zp,()=>n.id)])),[bt(Es)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Yp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,M=>g(u,I=>(M?.end(),l(I))));let{runInTransaction:h,args:v,...R}=u,C={...n,...R};v&&(C.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete C.transaction;let A=await Ts(this,C);return C.model?bs({result:A,modelName:C.model,args:C.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):A};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:R}){try{n=u?u(n):n;let C={name:"serialize"},A=this._tracingHelper.runInChildSpan(C,()=>Ir({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return K.enabled("prisma:client")&&(Ve("Prisma Client call:"),Ve(`prisma.${i}(${is(n)})`),Ve("Generated request:"),Ve(JSON.stringify(A,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:A,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:R})}catch(C){throw C.clientVersion=this._clientVersion,C}}$metrics=new wt(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=hs}return t}function ma(e,t){return ed(e)?[new ae(e,t),Hs]:[e,zs]}function ed(e){return Array.isArray(e)&&Array.isArray(e.raw)}m();c();p();d();f();var td=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function ya(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!td.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}m();c();p();d();f();0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=react-native.js.map diff --git a/src/lib/generated/prisma/runtime/wasm.js b/src/lib/generated/prisma/runtime/wasm.js new file mode 100644 index 0000000..7b2f1f5 --- /dev/null +++ b/src/lib/generated/prisma/runtime/wasm.js @@ -0,0 +1,32 @@ +"use strict";var Yo=Object.create;var Ot=Object.defineProperty;var Xo=Object.getOwnPropertyDescriptor;var Zo=Object.getOwnPropertyNames;var es=Object.getPrototypeOf,ts=Object.prototype.hasOwnProperty;var ne=(t,e)=>()=>(t&&(e=t(t=0)),e);var Le=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),rt=(t,e)=>{for(var r in e)Ot(t,r,{get:e[r],enumerable:!0})},cn=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Zo(e))!ts.call(t,i)&&i!==r&&Ot(t,i,{get:()=>e[i],enumerable:!(n=Xo(e,i))||n.enumerable});return t};var nt=(t,e,r)=>(r=t!=null?Yo(es(t)):{},cn(e||!t||!t.__esModule?Ot(r,"default",{value:t,enumerable:!0}):r,t)),rs=t=>cn(Ot({},"__esModule",{value:!0}),t);function Er(t,e){if(e=e.toLowerCase(),e==="utf8"||e==="utf-8")return new y(ss.encode(t));if(e==="base64"||e==="base64url")return t=t.replace(/-/g,"+").replace(/_/g,"/"),t=t.replace(/[^A-Za-z0-9+/]/g,""),new y([...atob(t)].map(r=>r.charCodeAt(0)));if(e==="binary"||e==="ascii"||e==="latin1"||e==="latin-1")return new y([...t].map(r=>r.charCodeAt(0)));if(e==="ucs2"||e==="ucs-2"||e==="utf16le"||e==="utf-16le"){let r=new y(t.length*2),n=new DataView(r.buffer);for(let i=0;ia.startsWith("get")||a.startsWith("set")),n=r.map(a=>a.replace("get","read").replace("set","write")),i=(a,f)=>function(h=0){return B(h,"offset"),Y(h,"offset"),V(h,"offset",this.length-1),new DataView(this.buffer)[r[a]](h,f)},o=(a,f)=>function(h,T=0){let C=r[a].match(/set(\w+\d+)/)[1].toLowerCase(),k=os[C];return B(T,"offset"),Y(T,"offset"),V(T,"offset",this.length-1),is(h,"value",k[0],k[1]),new DataView(this.buffer)[r[a]](T,h,f),T+parseInt(r[a].match(/\d+/)[0])/8},s=a=>{a.forEach(f=>{f.includes("Uint")&&(t[f.replace("Uint","UInt")]=t[f]),f.includes("Float64")&&(t[f.replace("Float64","Double")]=t[f]),f.includes("Float32")&&(t[f.replace("Float32","Float")]=t[f])})};n.forEach((a,f)=>{a.startsWith("read")&&(t[a]=i(f,!1),t[a+"LE"]=i(f,!0),t[a+"BE"]=i(f,!1)),a.startsWith("write")&&(t[a]=o(f,!1),t[a+"LE"]=o(f,!0),t[a+"BE"]=o(f,!1)),s([a,a+"LE",a+"BE"])})}function pn(t){throw new Error(`Buffer polyfill does not implement "${t}"`)}function Mt(t,e){if(!(t instanceof Uint8Array))throw new TypeError(`The "${e}" argument must be an instance of Buffer or Uint8Array`)}function V(t,e,r=us+1){if(t<0||t>r){let n=new RangeError(`The value of "${e}" is out of range. It must be >= 0 && <= ${r}. Received ${t}`);throw n.code="ERR_OUT_OF_RANGE",n}}function B(t,e){if(typeof t!="number"){let r=new TypeError(`The "${e}" argument must be of type number. Received type ${typeof t}.`);throw r.code="ERR_INVALID_ARG_TYPE",r}}function Y(t,e){if(!Number.isInteger(t)||Number.isNaN(t)){let r=new RangeError(`The value of "${e}" is out of range. It must be an integer. Received ${t}`);throw r.code="ERR_OUT_OF_RANGE",r}}function is(t,e,r,n){if(tn){let i=new RangeError(`The value of "${e}" is out of range. It must be >= ${r} and <= ${n}. Received ${t}`);throw i.code="ERR_OUT_OF_RANGE",i}}function mn(t,e){if(typeof t!="string"){let r=new TypeError(`The "${e}" argument must be of type string. Received type ${typeof t}`);throw r.code="ERR_INVALID_ARG_TYPE",r}}function cs(t,e="utf8"){return y.from(t,e)}var y,os,ss,as,ls,us,b,xr,u=ne(()=>{"use strict";y=class t extends Uint8Array{_isBuffer=!0;get offset(){return this.byteOffset}static alloc(e,r=0,n="utf8"){return mn(n,"encoding"),t.allocUnsafe(e).fill(r,n)}static allocUnsafe(e){return t.from(e)}static allocUnsafeSlow(e){return t.from(e)}static isBuffer(e){return e&&!!e._isBuffer}static byteLength(e,r="utf8"){if(typeof e=="string")return Er(e,r).byteLength;if(e&&e.byteLength)return e.byteLength;let n=new TypeError('The "string" argument must be of type string or an instance of Buffer or ArrayBuffer.');throw n.code="ERR_INVALID_ARG_TYPE",n}static isEncoding(e){return ls.includes(e)}static compare(e,r){Mt(e,"buff1"),Mt(r,"buff2");for(let n=0;nr[n])return 1}return e.length===r.length?0:e.length>r.length?1:-1}static from(e,r="utf8"){if(e&&typeof e=="object"&&e.type==="Buffer")return new t(e.data);if(typeof e=="number")return new t(new Uint8Array(e));if(typeof e=="string")return Er(e,r);if(ArrayBuffer.isView(e)){let{byteOffset:n,byteLength:i,buffer:o}=e;return"map"in e&&typeof e.map=="function"?new t(e.map(s=>s%256),n,i):new t(o,n,i)}if(e&&typeof e=="object"&&("length"in e||"byteLength"in e||"buffer"in e))return new t(e);throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}static concat(e,r){if(e.length===0)return t.alloc(0);let n=[].concat(...e.map(o=>[...o])),i=t.alloc(r!==void 0?r:n.length);return i.set(r!==void 0?n.slice(0,r):n),i}slice(e=0,r=this.length){return this.subarray(e,r)}subarray(e=0,r=this.length){return Object.setPrototypeOf(super.subarray(e,r),t.prototype)}reverse(){return super.reverse(),this}readIntBE(e,r){B(e,"offset"),Y(e,"offset"),V(e,"offset",this.length-1),B(r,"byteLength"),Y(r,"byteLength");let n=new DataView(this.buffer,e,r),i=0;for(let o=0;o=0;o--)i.setUint8(o,e&255),e=e/256;return r+n}writeUintBE(e,r,n){return this.writeUIntBE(e,r,n)}writeUIntLE(e,r,n){B(r,"offset"),Y(r,"offset"),V(r,"offset",this.length-1),B(n,"byteLength"),Y(n,"byteLength");let i=new DataView(this.buffer,r,n);for(let o=0;or===e[n])}copy(e,r=0,n=0,i=this.length){V(r,"targetStart"),V(n,"sourceStart",this.length),V(i,"sourceEnd"),r>>>=0,n>>>=0,i>>>=0;let o=0;for(;n=this.length?this.length-a:e.length),a);return this}includes(e,r=null,n="utf-8"){return this.indexOf(e,r,n)!==-1}lastIndexOf(e,r=null,n="utf-8"){return this.indexOf(e,r,n,!0)}indexOf(e,r=null,n="utf-8",i=!1){let o=i?this.findLastIndex.bind(this):this.findIndex.bind(this);n=typeof r=="string"?r:n;let s=t.from(typeof e=="number"?[e]:e,n),a=typeof r=="string"?0:r;return a=typeof r=="number"?a:null,a=Number.isNaN(a)?null:a,a??=i?this.length:0,a=a<0?this.length+a:a,s.length===0&&i===!1?a>=this.length?this.length:a:s.length===0&&i===!0?(a>=this.length?this.length:a)||this.length:o((f,h)=>(i?h<=a:h>=a)&&this[h]===s[0]&&s.every((C,k)=>this[h+k]===C))}toString(e="utf8",r=0,n=this.length){if(r=r<0?0:r,e=e.toString().toLowerCase(),n<=0)return"";if(e==="utf8"||e==="utf-8")return as.decode(this.slice(r,n));if(e==="base64"||e==="base64url"){let i=btoa(this.reduce((o,s)=>o+xr(s),""));return e==="base64url"?i.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):i}if(e==="binary"||e==="ascii"||e==="latin1"||e==="latin-1")return this.slice(r,n).reduce((i,o)=>i+xr(o&(e==="ascii"?127:255)),"");if(e==="ucs2"||e==="ucs-2"||e==="utf16le"||e==="utf-16le"){let i=new DataView(this.buffer.slice(r,n));return Array.from({length:i.byteLength/2},(o,s)=>s*2+1i+o.toString(16).padStart(2,"0"),"");pn(`encoding "${e}"`)}toLocaleString(){return this.toString()}inspect(){return``}};os={int8:[-128,127],int16:[-32768,32767],int32:[-2147483648,2147483647],uint8:[0,255],uint16:[0,65535],uint32:[0,4294967295],float32:[-1/0,1/0],float64:[-1/0,1/0],bigint64:[-0x8000000000000000n,0x7fffffffffffffffn],biguint64:[0n,0xffffffffffffffffn]},ss=new TextEncoder,as=new TextDecoder,ls=["utf8","utf-8","hex","base64","ascii","binary","base64url","ucs2","ucs-2","utf16le","utf-16le","latin1","latin-1"],us=4294967295;ns(y.prototype);b=new Proxy(cs,{construct(t,[e,r]){return y.from(e,r)},get(t,e){return y[e]}}),xr=String.fromCodePoint});var g,c=ne(()=>{"use strict";g={nextTick:(t,...e)=>{setTimeout(()=>{t(...e)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var x,m=ne(()=>{"use strict";x=globalThis.performance??(()=>{let t=Date.now();return{now:()=>Date.now()-t}})()});var E,p=ne(()=>{"use strict";E=()=>{};E.prototype=E});var w,d=ne(()=>{"use strict";w=class{value;constructor(e){this.value=e}deref(){return this.value}}});function yn(t,e){var r,n,i,o,s,a,f,h,T=t.constructor,C=T.precision;if(!t.s||!e.s)return e.s||(e=new T(t)),q?D(e,C):e;if(f=t.d,h=e.d,s=t.e,i=e.e,f=f.slice(),o=s-i,o){for(o<0?(n=f,o=-o,a=h.length):(n=h,i=s,a=f.length),s=Math.ceil(C/N),a=s>a?s+1:a+1,o>a&&(o=a,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(a=f.length,o=h.length,a-o<0&&(o=a,n=h,h=f,f=n),r=0;o;)r=(f[--o]=f[o]+h[o]+r)/Q|0,f[o]%=Q;for(r&&(f.unshift(r),++i),a=f.length;f[--a]==0;)f.pop();return e.d=f,e.e=i,q?D(e,C):e}function ce(t,e,r){if(t!==~~t||tr)throw Error(Oe+t)}function ue(t){var e,r,n,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e16)throw Error(vr+$(t));if(!t.s)return new T(ee);for(e==null?(q=!1,a=C):a=e,s=new T(.03125);t.abs().gte(.1);)t=t.times(s),h+=5;for(n=Math.log(ke(2,h))/Math.LN10*2+5|0,a+=n,r=i=o=new T(ee),T.precision=a;;){if(i=D(i.times(t),a),r=r.times(++f),s=o.plus(he(i,r,a)),ue(s.d).slice(0,a)===ue(o.d).slice(0,a)){for(;h--;)o=D(o.times(o),a);return T.precision=C,e==null?(q=!0,D(o,C)):o}o=s}}function $(t){for(var e=t.e*N,r=t.d[0];r>=10;r/=10)e++;return e}function Pr(t,e,r){if(e>t.LN10.sd())throw q=!0,r&&(t.precision=r),Error(ie+"LN10 precision limit exceeded");return D(new t(t.LN10),e)}function Pe(t){for(var e="";t--;)e+="0";return e}function it(t,e){var r,n,i,o,s,a,f,h,T,C=1,k=10,A=t,O=A.d,S=A.constructor,M=S.precision;if(A.s<1)throw Error(ie+(A.s?"NaN":"-Infinity"));if(A.eq(ee))return new S(0);if(e==null?(q=!1,h=M):h=e,A.eq(10))return e==null&&(q=!0),Pr(S,h);if(h+=k,S.precision=h,r=ue(O),n=r.charAt(0),o=$(A),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)A=A.times(t),r=ue(A.d),n=r.charAt(0),C++;o=$(A),n>1?(A=new S("0."+r),o++):A=new S(n+"."+r.slice(1))}else return f=Pr(S,h+2,M).times(o+""),A=it(new S(n+"."+r.slice(1)),h-k).plus(f),S.precision=M,e==null?(q=!0,D(A,M)):A;for(a=s=A=he(A.minus(ee),A.plus(ee),h),T=D(A.times(A),h),i=3;;){if(s=D(s.times(T),h),f=a.plus(he(s,new S(i),h)),ue(f.d).slice(0,h)===ue(a.d).slice(0,h))return a=a.times(2),o!==0&&(a=a.plus(Pr(S,h+2,M).times(o+""))),a=he(a,new S(C),h),S.precision=M,e==null?(q=!0,D(a,M)):a;a=f,i+=2}}function dn(t,e){var r,n,i;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),n=0;e.charCodeAt(n)===48;)++n;for(i=e.length;e.charCodeAt(i-1)===48;)--i;if(e=e.slice(n,i),e){if(i-=n,r=r-n-1,t.e=Ne(r/N),t.d=[],n=(r+1)%N,r<0&&(n+=N),nIt||t.e<-It))throw Error(vr+r)}else t.s=0,t.e=0,t.d=[0];return t}function D(t,e,r){var n,i,o,s,a,f,h,T,C=t.d;for(s=1,o=C[0];o>=10;o/=10)s++;if(n=e-s,n<0)n+=N,i=e,h=C[T=0];else{if(T=Math.ceil((n+1)/N),o=C.length,T>=o)return t;for(h=o=C[T],s=1;o>=10;o/=10)s++;n%=N,i=n-N+s}if(r!==void 0&&(o=ke(10,s-i-1),a=h/o%10|0,f=e<0||C[T+1]!==void 0||h%o,f=r<4?(a||f)&&(r==0||r==(t.s<0?3:2)):a>5||a==5&&(r==4||f||r==6&&(n>0?i>0?h/ke(10,s-i):0:C[T-1])%10&1||r==(t.s<0?8:7))),e<1||!C[0])return f?(o=$(t),C.length=1,e=e-o-1,C[0]=ke(10,(N-e%N)%N),t.e=Ne(-e/N)||0):(C.length=1,C[0]=t.e=t.s=0),t;if(n==0?(C.length=T,o=1,T--):(C.length=T+1,o=ke(10,N-n),C[T]=i>0?(h/ke(10,s-i)%ke(10,i)|0)*o:0),f)for(;;)if(T==0){(C[0]+=o)==Q&&(C[0]=1,++t.e);break}else{if(C[T]+=o,C[T]!=Q)break;C[T--]=0,o=1}for(n=C.length;C[--n]===0;)C.pop();if(q&&(t.e>It||t.e<-It))throw Error(vr+$(t));return t}function bn(t,e){var r,n,i,o,s,a,f,h,T,C,k=t.constructor,A=k.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new k(t),q?D(e,A):e;if(f=t.d,C=e.d,n=e.e,h=t.e,f=f.slice(),s=h-n,s){for(T=s<0,T?(r=f,s=-s,a=C.length):(r=C,n=h,a=f.length),i=Math.max(Math.ceil(A/N),a)+2,s>i&&(s=i,r.length=1),r.reverse(),i=s;i--;)r.push(0);r.reverse()}else{for(i=f.length,a=C.length,T=i0;--i)f[a++]=0;for(i=C.length;i>s;){if(f[--i]0?o=o.charAt(0)+"."+o.slice(1)+Pe(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+Pe(-i-1)+o,r&&(n=r-s)>0&&(o+=Pe(n))):i>=s?(o+=Pe(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Pe(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Pe(n))),t.s<0?"-"+o:o}function fn(t,e){if(t.length>e)return t.length=e,!0}function wn(t){var e,r,n;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(Oe+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return dn(s,o.toString())}else if(typeof o!="string")throw Error(Oe+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,ps.test(o))dn(s,o);else throw Error(Oe+o)}if(i.prototype=R,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=wn,i.config=i.set=ds,t===void 0&&(t={}),t)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=i[e+1]&&n<=i[e+2])this[r]=n;else throw Error(Oe+r+": "+n);if((n=t[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Oe+r+": "+n);return this}var Fe,ms,Tr,q,ie,Oe,vr,Ne,ke,ps,ee,Q,N,gn,It,R,he,Tr,_t,En=ne(()=>{"use strict";u();c();m();p();d();l();Fe=1e9,ms={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},q=!0,ie="[DecimalError] ",Oe=ie+"Invalid argument: ",vr=ie+"Exponent out of range: ",Ne=Math.floor,ke=Math.pow,ps=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,N=7,gn=9007199254740991,It=Ne(gn/N),R={};R.absoluteValue=R.abs=function(){var t=new this.constructor(this);return t.s&&(t.s=1),t};R.comparedTo=R.cmp=function(t){var e,r,n,i,o=this;if(t=new o.constructor(t),o.s!==t.s)return o.s||-t.s;if(o.e!==t.e)return o.e>t.e^o.s<0?1:-1;for(n=o.d.length,i=t.d.length,e=0,r=nt.d[e]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1};R.decimalPlaces=R.dp=function(){var t=this,e=t.d.length-1,r=(e-t.e)*N;if(e=t.d[e],e)for(;e%10==0;e/=10)r--;return r<0?0:r};R.dividedBy=R.div=function(t){return he(this,new this.constructor(t))};R.dividedToIntegerBy=R.idiv=function(t){var e=this,r=e.constructor;return D(he(e,new r(t),0,1),r.precision)};R.equals=R.eq=function(t){return!this.cmp(t)};R.exponent=function(){return $(this)};R.greaterThan=R.gt=function(t){return this.cmp(t)>0};R.greaterThanOrEqualTo=R.gte=function(t){return this.cmp(t)>=0};R.isInteger=R.isint=function(){return this.e>this.d.length-2};R.isNegative=R.isneg=function(){return this.s<0};R.isPositive=R.ispos=function(){return this.s>0};R.isZero=function(){return this.s===0};R.lessThan=R.lt=function(t){return this.cmp(t)<0};R.lessThanOrEqualTo=R.lte=function(t){return this.cmp(t)<1};R.logarithm=R.log=function(t){var e,r=this,n=r.constructor,i=n.precision,o=i+5;if(t===void 0)t=new n(10);else if(t=new n(t),t.s<1||t.eq(ee))throw Error(ie+"NaN");if(r.s<1)throw Error(ie+(r.s?"NaN":"-Infinity"));return r.eq(ee)?new n(0):(q=!1,e=he(it(r,o),it(t,o),o),q=!0,D(e,i))};R.minus=R.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?bn(e,t):yn(e,(t.s=-t.s,t))};R.modulo=R.mod=function(t){var e,r=this,n=r.constructor,i=n.precision;if(t=new n(t),!t.s)throw Error(ie+"NaN");return r.s?(q=!1,e=he(r,t,0,1).times(t),q=!0,r.minus(e)):D(new n(r),i)};R.naturalExponential=R.exp=function(){return hn(this)};R.naturalLogarithm=R.ln=function(){return it(this)};R.negated=R.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};R.plus=R.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?yn(e,t):bn(e,(t.s=-t.s,t))};R.precision=R.sd=function(t){var e,r,n,i=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Oe+t);if(e=$(i)+1,n=i.d.length-1,r=n*N+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return t&&e>r?e:r};R.squareRoot=R.sqrt=function(){var t,e,r,n,i,o,s,a=this,f=a.constructor;if(a.s<1){if(!a.s)return new f(0);throw Error(ie+"NaN")}for(t=$(a),q=!1,i=Math.sqrt(+a),i==0||i==1/0?(e=ue(a.d),(e.length+t)%2==0&&(e+="0"),i=Math.sqrt(e),t=Ne((t+1)/2)-(t<0||t%2),i==1/0?e="5e"+t:(e=i.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),n=new f(e)):n=new f(i.toString()),r=f.precision,i=s=r+3;;)if(o=n,n=o.plus(he(a,o,s+2)).times(.5),ue(o.d).slice(0,s)===(e=ue(n.d)).slice(0,s)){if(e=e.slice(s-3,s+1),i==s&&e=="4999"){if(D(o,r+1,0),o.times(o).eq(a)){n=o;break}}else if(e!="9999")break;s+=4}return q=!0,D(n,r)};R.times=R.mul=function(t){var e,r,n,i,o,s,a,f,h,T=this,C=T.constructor,k=T.d,A=(t=new C(t)).d;if(!T.s||!t.s)return new C(0);for(t.s*=T.s,r=T.e+t.e,f=k.length,h=A.length,f=0;){for(e=0,i=f+n;i>n;)a=o[i]+A[n]*k[i-n-1]+e,o[i--]=a%Q|0,e=a/Q|0;o[i]=(o[i]+e)%Q|0}for(;!o[--s];)o.pop();return e?++r:o.shift(),t.d=o,t.e=r,q?D(t,C.precision):t};R.toDecimalPlaces=R.todp=function(t,e){var r=this,n=r.constructor;return r=new n(r),t===void 0?r:(ce(t,0,Fe),e===void 0?e=n.rounding:ce(e,0,8),D(r,t+$(r)+1,e))};R.toExponential=function(t,e){var r,n=this,i=n.constructor;return t===void 0?r=Me(n,!0):(ce(t,0,Fe),e===void 0?e=i.rounding:ce(e,0,8),n=D(new i(n),t+1,e),r=Me(n,!0,t+1)),r};R.toFixed=function(t,e){var r,n,i=this,o=i.constructor;return t===void 0?Me(i):(ce(t,0,Fe),e===void 0?e=o.rounding:ce(e,0,8),n=D(new o(i),t+$(i)+1,e),r=Me(n.abs(),!1,t+$(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};R.toInteger=R.toint=function(){var t=this,e=t.constructor;return D(new e(t),$(t)+1,e.rounding)};R.toNumber=function(){return+this};R.toPower=R.pow=function(t){var e,r,n,i,o,s,a=this,f=a.constructor,h=12,T=+(t=new f(t));if(!t.s)return new f(ee);if(a=new f(a),!a.s){if(t.s<1)throw Error(ie+"Infinity");return a}if(a.eq(ee))return a;if(n=f.precision,t.eq(ee))return D(a,n);if(e=t.e,r=t.d.length-1,s=e>=r,o=a.s,s){if((r=T<0?-T:T)<=gn){for(i=new f(ee),e=Math.ceil(n/N+4),q=!1;r%2&&(i=i.times(a),fn(i.d,e)),r=Ne(r/2),r!==0;)a=a.times(a),fn(a.d,e);return q=!0,t.s<0?new f(ee).div(i):D(i,n)}}else if(o<0)throw Error(ie+"NaN");return o=o<0&&t.d[Math.max(e,r)]&1?-1:1,a.s=1,q=!1,i=t.times(it(a,n+h)),q=!0,i=hn(i),i.s=o,i};R.toPrecision=function(t,e){var r,n,i=this,o=i.constructor;return t===void 0?(r=$(i),n=Me(i,r<=o.toExpNeg||r>=o.toExpPos)):(ce(t,1,Fe),e===void 0?e=o.rounding:ce(e,0,8),i=D(new o(i),t,e),r=$(i),n=Me(i,t<=r||r<=o.toExpNeg,t)),n};R.toSignificantDigits=R.tosd=function(t,e){var r=this,n=r.constructor;return t===void 0?(t=n.precision,e=n.rounding):(ce(t,1,Fe),e===void 0?e=n.rounding:ce(e,0,8)),D(new n(r),t,e)};R.toString=R.valueOf=R.val=R.toJSON=R[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=$(t),r=t.constructor;return Me(t,e<=r.toExpNeg||e>=r.toExpPos)};he=function(){function t(n,i){var o,s=0,a=n.length;for(n=n.slice();a--;)o=n[a]*i+s,n[a]=o%Q|0,s=o/Q|0;return s&&n.unshift(s),n}function e(n,i,o,s){var a,f;if(o!=s)f=o>s?1:-1;else for(a=f=0;ai[a]?1:-1;break}return f}function r(n,i,o){for(var s=0;o--;)n[o]-=s,s=n[o]1;)n.shift()}return function(n,i,o,s){var a,f,h,T,C,k,A,O,S,M,oe,H,L,z,Se,wr,se,St,kt=n.constructor,zo=n.s==i.s?1:-1,le=n.d,U=i.d;if(!n.s)return new kt(n);if(!i.s)throw Error(ie+"Division by zero");for(f=n.e-i.e,se=U.length,Se=le.length,A=new kt(zo),O=A.d=[],h=0;U[h]==(le[h]||0);)++h;if(U[h]>(le[h]||0)&&--f,o==null?H=o=kt.precision:s?H=o+($(n)-$(i))+1:H=o,H<0)return new kt(0);if(H=H/N+2|0,h=0,se==1)for(T=0,U=U[0],H++;(h1&&(U=t(U,T),le=t(le,T),se=U.length,Se=le.length),z=se,S=le.slice(0,se),M=S.length;M=Q/2&&++wr;do T=0,a=e(U,S,se,M),a<0?(oe=S[0],se!=M&&(oe=oe*Q+(S[1]||0)),T=oe/wr|0,T>1?(T>=Q&&(T=Q-1),C=t(U,T),k=C.length,M=S.length,a=e(C,S,k,M),a==1&&(T--,r(C,se{"use strict";En();v=class extends _t{static isDecimal(e){return e instanceof _t}static random(e=20){{let n=globalThis.crypto.getRandomValues(new Uint8Array(e)).reduce((i,o)=>i+o,"");return new _t(`0.${n.slice(0,e)}`)}}},me=v});function ws(){return!1}function Nn(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date,mtime:new Date,ctime:new Date,birthtime:new Date}}function Es(){return Nn()}function xs(){return[]}function Ps(t){t(null,[])}function vs(){return""}function Ts(){return""}function Cs(){}function Rs(){}function As(){}function Ss(){}function ks(){}function Os(){}var Ms,Is,qn,Un=ne(()=>{"use strict";u();c();m();p();d();l();Ms={},Is={existsSync:ws,lstatSync:Nn,statSync:Es,readdirSync:xs,readdir:Ps,readlinkSync:vs,realpathSync:Ts,chmodSync:Cs,renameSync:Rs,mkdirSync:As,rmdirSync:Ss,rmSync:ks,unlinkSync:Os,promises:Ms},qn=Is});function _s(...t){return t.join("/")}function Ds(...t){return t.join("/")}function Ls(t){let e=Bn(t),r=$n(t),[n,i]=e.split(".");return{root:"/",dir:r,base:e,ext:i,name:n}}function Bn(t){let e=t.split("/");return e[e.length-1]}function $n(t){return t.split("/").slice(0,-1).join("/")}var Vn,Fs,Ns,Nt,jn=ne(()=>{"use strict";u();c();m();p();d();l();Vn="/",Fs={sep:Vn},Ns={basename:Bn,dirname:$n,join:Ds,parse:Ls,posix:Fs,resolve:_s,sep:Vn},Nt=Ns});var Qn=Le((Zc,qs)=>{qs.exports={name:"@prisma/internals",version:"6.6.0",description:"This package is intended for Prisma's internal use",main:"dist/index.js",types:"dist/index.d.ts",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/internals"},homepage:"https://www.prisma.io",author:"Tim Suchanek ",bugs:"https://github.com/prisma/prisma/issues",license:"Apache-2.0",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",test:"dotenv -e ../../.db.env -- jest --silent",prepublishOnly:"pnpm run build"},files:["README.md","dist","!**/libquery_engine*","!dist/get-generators/engines/*","scripts"],devDependencies:{"@babel/helper-validator-identifier":"7.25.9","@opentelemetry/api":"1.9.0","@swc/core":"1.11.5","@swc/jest":"0.2.37","@types/babel__helper-validator-identifier":"7.15.2","@types/jest":"29.5.14","@types/node":"18.19.76","@types/resolve":"1.20.6",archiver:"6.0.2","checkpoint-client":"1.1.33","cli-truncate":"4.0.0",dotenv:"16.4.7",esbuild:"0.25.1","escape-string-regexp":"5.0.0",execa:"5.1.1","fast-glob":"3.3.3","find-up":"7.0.0","fp-ts":"2.16.9","fs-extra":"11.3.0","fs-jetpack":"5.1.0","global-dirs":"4.0.0",globby:"11.1.0","identifier-regex":"1.0.0","indent-string":"4.0.0","is-windows":"1.0.2","is-wsl":"3.1.0",jest:"29.7.0","jest-junit":"16.0.0",kleur:"4.1.5","mock-stdin":"1.0.0","new-github-issue-url":"0.2.1","node-fetch":"3.3.2","npm-packlist":"5.1.3",open:"7.4.2","p-map":"4.0.0","read-package-up":"11.0.0",resolve:"1.22.10","string-width":"7.2.0","strip-ansi":"6.0.1","strip-indent":"4.0.0","temp-dir":"2.0.0",tempy:"1.0.1","terminal-link":"4.0.0",tmp:"0.2.3","ts-node":"10.9.2","ts-pattern":"5.6.2","ts-toolbelt":"9.6.0",typescript:"5.4.5",yarn:"1.22.22"},dependencies:{"@prisma/config":"workspace:*","@prisma/debug":"workspace:*","@prisma/dmmf":"workspace:*","@prisma/driver-adapter-utils":"workspace:*","@prisma/engines":"workspace:*","@prisma/fetch-engine":"workspace:*","@prisma/generator":"workspace:*","@prisma/generator-helper":"workspace:*","@prisma/get-platform":"workspace:*","@prisma/prisma-schema-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-engine-wasm":"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a","@prisma/schema-files-loader":"workspace:*",arg:"5.0.2",prompts:"2.4.2"},peerDependencies:{typescript:">=5.1.0"},peerDependenciesMeta:{typescript:{optional:!0}},sideEffects:!1}});var Hn=Le((xm,Kn)=>{"use strict";u();c();m();p();d();l();Kn.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(n,r.indent.repeat(e))}});var Xn=Le((Lm,Yn)=>{"use strict";u();c();m();p();d();l();Yn.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var ei=Le((Vm,Zn)=>{"use strict";u();c();m();p();d();l();var Js=Xn();Zn.exports=t=>typeof t=="string"?t.replace(Js(),""):t});var Fr=Le((oy,oi)=>{"use strict";u();c();m();p();d();l();oi.exports=function(){function t(e,r,n,i,o){return en?n+1:e+1:i===o?r:r+1}return function(e,r){if(e===r)return 0;if(e.length>r.length){var n=e;e=r,r=n}for(var i=e.length,o=r.length;i>0&&e.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{"use strict";u();c();m();p();d();l()});var mi=ne(()=>{"use strict";u();c();m();p();d();l()});var Li=Le((iP,qa)=>{qa.exports={name:"@prisma/engines-version",version:"6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"f676762280b54cd07c770017ed3711ddde35f37a"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.76",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var nr,Fi=ne(()=>{"use strict";u();c();m();p();d();l();nr=class{events={};on(e,r){return this.events[e]||(this.events[e]=[]),this.events[e].push(r),this}emit(e,...r){return this.events[e]?(this.events[e].forEach(n=>{n(...r)}),!0):!1}}});var Jl={};rt(Jl,{DMMF:()=>mt,Debug:()=>J,Decimal:()=>me,Extensions:()=>Cr,MetricsClient:()=>Ye,PrismaClientInitializationError:()=>I,PrismaClientKnownRequestError:()=>X,PrismaClientRustPanicError:()=>we,PrismaClientUnknownRequestError:()=>j,PrismaClientValidationError:()=>W,Public:()=>Rr,Sql:()=>Z,createParam:()=>Ai,defineDmmfProperty:()=>_i,deserializeJsonResponse:()=>$e,deserializeRawResult:()=>hr,dmmfToRuntimeDataModel:()=>ii,empty:()=>qi,getPrismaClient:()=>Wo,getRuntime:()=>Re,join:()=>Ni,makeStrictEnum:()=>Ko,makeTypedQueryFactory:()=>Di,objectEnumValues:()=>Wt,raw:()=>Jr,serializeJsonQuery:()=>er,skip:()=>Zt,sqltag:()=>Gr,warnEnvConflicts:()=>void 0,warnOnce:()=>lt});module.exports=rs(Jl);u();c();m();p();d();l();var Cr={};rt(Cr,{defineExtension:()=>xn,getExtensionContext:()=>Pn});u();c();m();p();d();l();u();c();m();p();d();l();function xn(t){return typeof t=="function"?t:e=>e.$extends(t)}u();c();m();p();d();l();function Pn(t){return t}var Rr={};rt(Rr,{validator:()=>vn});u();c();m();p();d();l();u();c();m();p();d();l();function vn(...t){return e=>e}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var Ar,Tn,Cn,Rn,An=!0;typeof g<"u"&&({FORCE_COLOR:Ar,NODE_DISABLE_COLORS:Tn,NO_COLOR:Cn,TERM:Rn}=g.env||{},An=g.stdout&&g.stdout.isTTY);var fs={enabled:!Tn&&Cn==null&&Rn!=="dumb"&&(Ar!=null&&Ar!=="0"||An)};function F(t,e){let r=new RegExp(`\\x1b\\[${e}m`,"g"),n=`\x1B[${t}m`,i=`\x1B[${e}m`;return function(o){return!fs.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var ju=F(0,0),Dt=F(1,22),Lt=F(2,22),Qu=F(3,23),Sn=F(4,24),Ju=F(7,27),Gu=F(8,28),Wu=F(9,29),Ku=F(30,39),qe=F(31,39),kn=F(32,39),On=F(33,39),Mn=F(34,39),Hu=F(35,39),In=F(36,39),zu=F(37,39),_n=F(90,39),Yu=F(90,39),Xu=F(40,49),Zu=F(41,49),ec=F(42,49),tc=F(43,49),rc=F(44,49),nc=F(45,49),ic=F(46,49),oc=F(47,49);u();c();m();p();d();l();var gs=100,Dn=["green","yellow","blue","magenta","cyan","red"],Ft=[],Ln=Date.now(),ys=0,Sr=typeof g<"u"?g.env:{};globalThis.DEBUG??=Sr.DEBUG??"";globalThis.DEBUG_COLORS??=Sr.DEBUG_COLORS?Sr.DEBUG_COLORS==="true":!0;var ot={enable(t){typeof t=="string"&&(globalThis.DEBUG=t)},disable(){let t=globalThis.DEBUG;return globalThis.DEBUG="",t},enabled(t){let e=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=e.some(i=>i===""||i[0]==="-"?!1:t.match(RegExp(i.split("*").join(".*")+"$"))),n=e.some(i=>i===""||i[0]!=="-"?!1:t.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...t)=>{let[e,r,...n]=t;(console.warn??console.log)(`${e} ${r}`,...n)},formatters:{}};function hs(t){let e={color:Dn[ys++%Dn.length],enabled:ot.enabled(t),namespace:t,log:ot.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=e;if(n.length!==0&&Ft.push([o,...n]),Ft.length>gs&&Ft.shift(),ot.enabled(o)||i){let f=n.map(T=>typeof T=="string"?T:bs(T)),h=`+${Date.now()-Ln}ms`;Ln=Date.now(),a(o,...f,h)}};return new Proxy(r,{get:(n,i)=>e[i],set:(n,i,o)=>e[i]=o})}var J=new Proxy(hs,{get:(t,e)=>ot[e],set:(t,e,r)=>ot[e]=r});function bs(t,e=2){let r=new Set;return JSON.stringify(t,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},e)}function Fn(){Ft.length=0}u();c();m();p();d();l();u();c();m();p();d();l();var kr=["darwin","darwin-arm64","debian-openssl-1.0.x","debian-openssl-1.1.x","debian-openssl-3.0.x","rhel-openssl-1.0.x","rhel-openssl-1.1.x","rhel-openssl-3.0.x","linux-arm64-openssl-1.1.x","linux-arm64-openssl-1.0.x","linux-arm64-openssl-3.0.x","linux-arm-openssl-1.1.x","linux-arm-openssl-1.0.x","linux-arm-openssl-3.0.x","linux-musl","linux-musl-openssl-3.0.x","linux-musl-arm64-openssl-1.1.x","linux-musl-arm64-openssl-3.0.x","linux-nixos","linux-static-x64","linux-static-arm64","windows","freebsd11","freebsd12","freebsd13","freebsd14","freebsd15","openbsd","netbsd","arm"];u();c();m();p();d();l();var Us=Qn(),Or=Us.version;u();c();m();p();d();l();var Jn="library";function Ue(t){let e=Bs();return e||(t?.config.engineType==="library"?"library":t?.config.engineType==="binary"?"binary":t?.config.engineType==="client"?"client":Jn)}function Bs(){let t=g.env.PRISMA_CLIENT_ENGINE_TYPE;return t==="library"?"library":t==="binary"?"binary":t==="client"?"client":void 0}u();c();m();p();d();l();var Gn="prisma+postgres",Wn=`${Gn}:`;function Mr(t){return t?.startsWith(`${Wn}//`)??!1}var at={};rt(at,{error:()=>js,info:()=>Vs,log:()=>$s,query:()=>Qs,should:()=>zn,tags:()=>st,warn:()=>Ir});u();c();m();p();d();l();var st={error:qe("prisma:error"),warn:On("prisma:warn"),info:In("prisma:info"),query:Mn("prisma:query")},zn={warn:()=>!g.env.PRISMA_DISABLE_WARNINGS};function $s(...t){console.log(...t)}function Ir(t,...e){zn.warn()&&console.warn(`${st.warn} ${t}`,...e)}function Vs(t,...e){console.info(`${st.info} ${t}`,...e)}function js(t,...e){console.error(`${st.error} ${t}`,...e)}function Qs(t,...e){console.log(`${st.query} ${t}`,...e)}u();c();m();p();d();l();function qt(t,e){if(!t)throw new Error(`${e}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}u();c();m();p();d();l();function be(t,e){throw new Error(e)}u();c();m();p();d();l();function _r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}u();c();m();p();d();l();function Be(t,e){let r={};for(let n of Object.keys(t))r[n]=e(t[n],n);return r}u();c();m();p();d();l();function Dr(t,e){if(t.length===0)return;let r=t[0];for(let n=1;n{ti.has(t)||(ti.add(t),Ir(e,...r))};var I=class t extends Error{clientVersion;errorCode;retryable;constructor(e,r,n){super(e),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(t)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};te(I,"PrismaClientInitializationError");u();c();m();p();d();l();var X=class extends Error{code;meta;clientVersion;batchRequestIdx;constructor(e,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(e),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};te(X,"PrismaClientKnownRequestError");u();c();m();p();d();l();var we=class extends Error{clientVersion;constructor(e,r){super(e),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};te(we,"PrismaClientRustPanicError");u();c();m();p();d();l();var j=class extends Error{clientVersion;batchRequestIdx;constructor(e,{clientVersion:r,batchRequestIdx:n}){super(e),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};te(j,"PrismaClientUnknownRequestError");u();c();m();p();d();l();var W=class extends Error{name="PrismaClientValidationError";clientVersion;constructor(e,{clientVersion:r}){super(e),this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};te(W,"PrismaClientValidationError");u();c();m();p();d();l();l();function $e(t){return t===null?t:Array.isArray(t)?t.map($e):typeof t=="object"?Gs(t)?Ws(t):Be(t,$e):t}function Gs(t){return t!==null&&typeof t=="object"&&typeof t.$type=="string"}function Ws({$type:t,value:e}){switch(t){case"BigInt":return BigInt(e);case"Bytes":{let{buffer:r,byteOffset:n,byteLength:i}=b.from(e,"base64");return new Uint8Array(r,n,i)}case"DateTime":return new Date(e);case"Decimal":return new me(e);case"Json":return JSON.parse(e);default:be(e,"Unknown tagged value")}}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var pe=class{_map=new Map;get(e){return this._map.get(e)?.value}set(e,r){this._map.set(e,{value:r})}getOrCreate(e,r){let n=this._map.get(e);if(n)return n.value;let i=r();return this.set(e,i),i}};u();c();m();p();d();l();function ve(t){return t.substring(0,1).toLowerCase()+t.substring(1)}u();c();m();p();d();l();function ni(t,e){let r={};for(let n of t){let i=n[e];r[i]=n}return r}u();c();m();p();d();l();function ut(t){let e;return{get(){return e||(e={value:t()}),e.value}}}u();c();m();p();d();l();function ii(t){return{models:Lr(t.models),enums:Lr(t.enums),types:Lr(t.types)}}function Lr(t){let e={};for(let{name:r,...n}of t)e[r]=n;return e}u();c();m();p();d();l();function Ve(t){return t instanceof Date||Object.prototype.toString.call(t)==="[object Date]"}function Ut(t){return t.toString()!=="Invalid Date"}u();c();m();p();d();l();l();function je(t){return v.isDecimal(t)?!0:t!==null&&typeof t=="object"&&typeof t.s=="number"&&typeof t.e=="number"&&typeof t.toFixed=="function"&&Array.isArray(t.d)}u();c();m();p();d();l();u();c();m();p();d();l();var mt={};rt(mt,{ModelAction:()=>ct,datamodelEnumToSchemaEnum:()=>Ks});u();c();m();p();d();l();u();c();m();p();d();l();function Ks(t){return{name:t.name,values:t.values.map(e=>e.name)}}u();c();m();p();d();l();var ct=(L=>(L.findUnique="findUnique",L.findUniqueOrThrow="findUniqueOrThrow",L.findFirst="findFirst",L.findFirstOrThrow="findFirstOrThrow",L.findMany="findMany",L.create="create",L.createMany="createMany",L.createManyAndReturn="createManyAndReturn",L.update="update",L.updateMany="updateMany",L.updateManyAndReturn="updateManyAndReturn",L.upsert="upsert",L.delete="delete",L.deleteMany="deleteMany",L.groupBy="groupBy",L.count="count",L.aggregate="aggregate",L.findRaw="findRaw",L.aggregateRaw="aggregateRaw",L))(ct||{});var Hs=nt(Hn());var zs={red:qe,gray:_n,dim:Lt,bold:Dt,underline:Sn,highlightSource:t=>t.highlight()},Ys={red:t=>t,gray:t=>t,dim:t=>t,bold:t=>t,underline:t=>t,highlightSource:t=>t};function Xs({message:t,originalMethod:e,isPanic:r,callArguments:n}){return{functionName:`prisma.${e}()`,message:t,isPanic:r??!1,callArguments:n}}function Zs({functionName:t,location:e,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],f=e?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${t}\``)} invocation${f}`))):a.push(s.red(`Invalid ${s.bold(`\`${t}\``)} invocation${f}`)),e&&a.push(s.underline(ea(e))),i){a.push("");let h=[i.toString()];o&&(h.push(o),h.push(s.dim(")"))),a.push(h.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function ea(t){let e=[t.fileName];return t.lineNumber&&e.push(String(t.lineNumber)),t.columnNumber&&e.push(String(t.columnNumber)),e.join(":")}function Bt(t){let e=t.showColors?zs:Ys,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(t,e):r=Xs(t),Zs(r,e)}u();c();m();p();d();l();var di=nt(Fr());u();c();m();p();d();l();function li(t,e,r){let n=ui(t),i=ta(n),o=na(i);o?$t(o,e,r):e.addErrorMessage(()=>"Unknown error")}function ui(t){return t.errors.flatMap(e=>e.kind==="Union"?ui(e):[e])}function ta(t){let e=new Map,r=[];for(let n of t){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=e.get(i);o?e.set(i,{...n,argument:{...n.argument,typeNames:ra(o.argument.typeNames,n.argument.typeNames)}}):e.set(i,n)}return r.push(...e.values()),r}function ra(t,e){return[...new Set(t.concat(e))]}function na(t){return Dr(t,(e,r)=>{let n=si(e),i=si(r);return n!==i?n-i:ai(e)-ai(r)})}function si(t){let e=0;return Array.isArray(t.selectionPath)&&(e+=t.selectionPath.length),Array.isArray(t.argumentPath)&&(e+=t.argumentPath.length),e}function ai(t){switch(t.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}u();c();m();p();d();l();var re=class{constructor(e,r){this.name=e;this.value=r}isRequired=!1;makeRequired(){return this.isRequired=!0,this}write(e){let{colors:{green:r}}=e.context;e.addMarginSymbol(r(this.isRequired?"+":"?")),e.write(r(this.name)),this.isRequired||e.write(r("?")),e.write(r(": ")),typeof this.value=="string"?e.write(r(this.value)):e.write(this.value)}};u();c();m();p();d();l();u();c();m();p();d();l();mi();u();c();m();p();d();l();var Qe=class{constructor(e=0,r){this.context=r;this.currentIndent=e}lines=[];currentLine="";currentIndent=0;marginSymbol;afterNextNewLineCallback;write(e){return typeof e=="string"?this.currentLine+=e:e.write(this),this}writeJoined(e,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(e){return this.marginSymbol=e,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let e=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+e.slice(1):e}};ci();u();c();m();p();d();l();u();c();m();p();d();l();var Vt=class{constructor(e){this.value=e}write(e){e.write(this.value)}markAsError(){this.value.markAsError()}};u();c();m();p();d();l();var jt=t=>t,Qt={bold:jt,red:jt,green:jt,dim:jt,enabled:!1},pi={bold:Dt,red:qe,green:kn,dim:Lt,enabled:!0},Je={write(t){t.writeLine(",")}};u();c();m();p();d();l();var de=class{constructor(e){this.contents=e}isUnderlined=!1;color=e=>e;underline(){return this.isUnderlined=!0,this}setColor(e){return this.color=e,this}write(e){let r=e.getCurrentLineLength();e.write(this.color(this.contents)),this.isUnderlined&&e.afterNextNewline(()=>{e.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};u();c();m();p();d();l();var Te=class{hasError=!1;markAsError(){return this.hasError=!0,this}};var Ge=class extends Te{items=[];addItem(e){return this.items.push(new Vt(e)),this}getField(e){return this.items[e]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(r=>r.value.getPrintWidth()))+2}write(e){if(this.items.length===0){this.writeEmpty(e);return}this.writeWithItems(e)}writeEmpty(e){let r=new de("[]");this.hasError&&r.setColor(e.context.colors.red).underline(),e.write(r)}writeWithItems(e){let{colors:r}=e.context;e.writeLine("[").withIndent(()=>e.writeJoined(Je,this.items).newLine()).write("]"),this.hasError&&e.afterNextNewline(()=>{e.writeLine(r.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var We=class t extends Te{fields={};suggestions=[];addField(e){this.fields[e.name]=e}addSuggestion(e){this.suggestions.push(e)}getField(e){return this.fields[e]}getDeepField(e){let[r,...n]=e,i=this.getField(r);if(!i)return;let o=i;for(let s of n){let a;if(o.value instanceof t?a=o.value.getField(s):o.value instanceof Ge&&(a=o.value.getField(Number(s))),!a)return;o=a}return o}getDeepFieldValue(e){return e.length===0?this:this.getDeepField(e)?.value}hasField(e){return!!this.getField(e)}removeAllFields(){this.fields={}}removeField(e){delete this.fields[e]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(e){return this.getField(e)?.value}getDeepSubSelectionValue(e){let r=this;for(let n of e){if(!(r instanceof t))return;let i=r.getSubSelectionValue(n);if(!i)return;r=i}return r}getDeepSelectionParent(e){let r=this.getSelectionParent();if(!r)return;let n=r;for(let i of e){let o=n.value.getFieldValue(i);if(!o||!(o instanceof t))return;let s=o.getSelectionParent();if(!s)return;n=s}return n}getSelectionParent(){let e=this.getField("select")?.value.asObject();if(e)return{kind:"select",value:e};let r=this.getField("include")?.value.asObject();if(r)return{kind:"include",value:r}}getSubSelectionValue(e){return this.getSelectionParent()?.value.fields[e].value}getPrintWidth(){let e=Object.values(this.fields);return e.length==0?2:Math.max(...e.map(n=>n.getPrintWidth()))+2}write(e){let r=Object.values(this.fields);if(r.length===0&&this.suggestions.length===0){this.writeEmpty(e);return}this.writeWithContents(e,r)}asObject(){return this}writeEmpty(e){let r=new de("{}");this.hasError&&r.setColor(e.context.colors.red).underline(),e.write(r)}writeWithContents(e,r){e.writeLine("{").withIndent(()=>{e.writeJoined(Je,[...r,...this.suggestions]).newLine()}),e.write("}"),this.hasError&&e.afterNextNewline(()=>{e.writeLine(e.context.colors.red("~".repeat(this.getPrintWidth())))})}};u();c();m();p();d();l();var G=class extends Te{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new de(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};u();c();m();p();d();l();var pt=class{fields=[];addField(e,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${e}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(e){let{colors:{green:r}}=e.context;e.writeLine(r("{")).withIndent(()=>{e.writeJoined(Je,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function $t(t,e,r){switch(t.kind){case"MutuallyExclusiveFields":ia(t,e);break;case"IncludeOnScalar":oa(t,e);break;case"EmptySelection":sa(t,e,r);break;case"UnknownSelectionField":ca(t,e);break;case"InvalidSelectionValue":ma(t,e);break;case"UnknownArgument":pa(t,e);break;case"UnknownInputField":da(t,e);break;case"RequiredArgumentMissing":fa(t,e);break;case"InvalidArgumentType":ga(t,e);break;case"InvalidArgumentValue":ya(t,e);break;case"ValueTooLarge":ha(t,e);break;case"SomeFieldsMissing":ba(t,e);break;case"TooManyFieldsGiven":wa(t,e);break;case"Union":li(t,e,r);break;default:throw new Error("not implemented: "+t.kind)}}function ia(t,e){let r=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();r&&(r.getField(t.firstField)?.markAsError(),r.getField(t.secondField)?.markAsError()),e.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${t.firstField}\``)} or ${n.green(`\`${t.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function oa(t,e){let[r,n]=dt(t.selectionPath),i=t.outputType,o=e.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new re(s.name,"true"));e.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${ft(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function sa(t,e,r){let n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){aa(t,e,i);return}if(n.hasField("select")){la(t,e);return}}if(r?.[ve(t.outputType.name)]){ua(t,e);return}e.addErrorMessage(()=>`Unknown field at "${t.selectionPath.join(".")} selection"`)}function aa(t,e,r){r.removeAllFields();for(let n of t.outputType.fields)r.addSuggestion(new re(n.name,"false"));e.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(t.outputType.name)}. At least one field must be included in the result`)}function la(t,e){let r=t.outputType,n=e.arguments.getDeepSelectionParent(t.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),yi(n,r)),e.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${ft(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function ua(t,e){let r=new pt;for(let i of t.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new re("omit",r).makeRequired();if(t.selectionPath.length===0)e.arguments.addSuggestion(n);else{let[i,o]=dt(t.selectionPath),a=e.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let f=a?.value.asObject()??new We;f.addSuggestion(n),a.value=f}}e.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(t.outputType.name)}. At least one field must be included in the result`)}function ca(t,e){let r=hi(t.selectionPath,e);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":yi(n,t.outputType);break;case"include":Ea(n,t.outputType);break;case"omit":xa(n,t.outputType);break}}e.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${t.outputType.name}\``)}.`),i.push(ft(n)),i.join(" ")})}function ma(t,e){let r=hi(t.selectionPath,e);r.parentKind!=="unknown"&&r.field.value.markAsError(),e.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${t.underlyingError}`)}function pa(t,e){let r=t.argumentPath[0],n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Pa(n,t.arguments)),e.addErrorMessage(i=>fi(i,r,t.arguments.map(o=>o.name)))}function da(t,e){let[r,n]=dt(t.argumentPath),i=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(i){i.getDeepField(t.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&bi(o,t.inputType)}e.addErrorMessage(o=>fi(o,n,t.inputType.fields.map(s=>s.name)))}function fi(t,e,r){let n=[`Unknown argument \`${t.red(e)}\`.`],i=Ta(e,r);return i&&n.push(`Did you mean \`${t.green(i)}\`?`),r.length>0&&n.push(ft(t)),n.join(" ")}function fa(t,e){let r;e.addErrorMessage(f=>r?.value instanceof G&&r.value.text==="null"?`Argument \`${f.green(o)}\` must not be ${f.red("null")}.`:`Argument \`${f.green(o)}\` is missing.`);let n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(!n)return;let[i,o]=dt(t.argumentPath),s=new pt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),t.inputTypes.length===1&&t.inputTypes[0].kind==="object"){for(let f of t.inputTypes[0].fields)s.addField(f.name,f.typeNames.join(" | "));a.addSuggestion(new re(o,s).makeRequired())}else{let f=t.inputTypes.map(gi).join(" | ");a.addSuggestion(new re(o,f).makeRequired())}}function gi(t){return t.kind==="list"?`${gi(t.elementType)}[]`:t.name}function ga(t,e){let r=t.argument.name,n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();n&&n.getDeepFieldValue(t.argumentPath)?.markAsError(),e.addErrorMessage(i=>{let o=Jt("or",t.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(t.inferredType)}.`})}function ya(t,e){let r=t.argument.name,n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();n&&n.getDeepFieldValue(t.argumentPath)?.markAsError(),e.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(t.underlyingError&&o.push(`: ${t.underlyingError}`),o.push("."),t.argument.typeNames.length>0){let s=Jt("or",t.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function ha(t,e){let r=t.argument.name,n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(t.argumentPath)?.value;s?.markAsError(),s instanceof G&&(i=s.text)}e.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function ba(t,e){let r=t.argumentPath[t.argumentPath.length-1],n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(t.argumentPath)?.asObject();i&&bi(i,t.inputType)}e.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(t.inputType.name)} needs`];return t.constraints.minFieldCount===1?t.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Jt("or",t.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${t.constraints.minFieldCount}`)} arguments.`),o.push(ft(i)),o.join(" ")})}function wa(t,e){let r=t.argumentPath[t.argumentPath.length-1],n=e.arguments.getDeepSubSelectionValue(t.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(t.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}e.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(t.inputType.name)} needs`];return t.constraints.minFieldCount===1&&t.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):t.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${t.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Jt("and",i.map(a=>o.red(a)))}. Please choose`),t.constraints.maxFieldCount===1?s.push("one."):s.push(`${t.constraints.maxFieldCount}.`),s.join(" ")})}function yi(t,e){for(let r of e.fields)t.hasField(r.name)||t.addSuggestion(new re(r.name,"true"))}function Ea(t,e){for(let r of e.fields)r.isRelation&&!t.hasField(r.name)&&t.addSuggestion(new re(r.name,"true"))}function xa(t,e){for(let r of e.fields)!t.hasField(r.name)&&!r.isRelation&&t.addSuggestion(new re(r.name,"true"))}function Pa(t,e){for(let r of e)t.hasField(r.name)||t.addSuggestion(new re(r.name,r.typeNames.join(" | ")))}function hi(t,e){let[r,n]=dt(t),i=e.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),f=o?.getField(n);return o&&f?{parentKind:"select",parent:o,field:f,fieldName:n}:(f=s?.getField(n),s&&f?{parentKind:"include",field:f,parent:s,fieldName:n}:(f=a?.getField(n),a&&f?{parentKind:"omit",field:f,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function bi(t,e){if(e.kind==="object")for(let r of e.fields)t.hasField(r.name)||t.addSuggestion(new re(r.name,r.typeNames.join(" | ")))}function dt(t){let e=[...t],r=e.pop();if(!r)throw new Error("unexpected empty path");return[e,r]}function ft({green:t,enabled:e}){return"Available options are "+(e?`listed in ${t("green")}`:"marked with ?")+"."}function Jt(t,e){if(e.length===1)return e[0];let r=[...e],n=r.pop();return`${r.join(", ")} ${t} ${n}`}var va=3;function Ta(t,e){let r=1/0,n;for(let i of e){let o=(0,di.default)(t,i);o>va||o`}};function Ke(t){return t instanceof gt}u();c();m();p();d();l();var Gt=Symbol(),qr=new WeakMap,Ee=class{constructor(e){e===Gt?qr.set(this,`Prisma.${this._getName()}`):qr.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return qr.get(this)}},yt=class extends Ee{_getNamespace(){return"NullTypes"}},ht=class extends yt{_brand_DbNull};Ur(ht,"DbNull");var bt=class extends yt{_brand_JsonNull};Ur(bt,"JsonNull");var wt=class extends yt{_brand_AnyNull};Ur(wt,"AnyNull");var Wt={classes:{DbNull:ht,JsonNull:bt,AnyNull:wt},instances:{DbNull:new ht(Gt),JsonNull:new bt(Gt),AnyNull:new wt(Gt)}};function Ur(t,e){Object.defineProperty(t,"name",{value:e,configurable:!0})}u();c();m();p();d();l();var wi=": ",Kt=class{constructor(e,r){this.name=e;this.value=r}hasError=!1;markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+wi.length}write(e){let r=new de(this.name);this.hasError&&r.underline().setColor(e.context.colors.red),e.write(r).write(wi).write(this.value)}};var Br=class{arguments;errorMessages=[];constructor(e){this.arguments=e}write(e){e.write(this.arguments)}addErrorMessage(e){this.errorMessages.push(e)}renderAllMessages(e){return this.errorMessages.map(r=>r(e)).join(` +`)}};function He(t){return new Br(Ei(t))}function Ei(t){let e=new We;for(let[r,n]of Object.entries(t)){let i=new Kt(r,xi(n));e.addField(i)}return e}function xi(t){if(typeof t=="string")return new G(JSON.stringify(t));if(typeof t=="number"||typeof t=="boolean")return new G(String(t));if(typeof t=="bigint")return new G(`${t}n`);if(t===null)return new G("null");if(t===void 0)return new G("undefined");if(je(t))return new G(`new Prisma.Decimal("${t.toFixed()}")`);if(t instanceof Uint8Array)return b.isBuffer(t)?new G(`Buffer.alloc(${t.byteLength})`):new G(`new Uint8Array(${t.byteLength})`);if(t instanceof Date){let e=Ut(t)?t.toISOString():"Invalid Date";return new G(`new Date("${e}")`)}return t instanceof Ee?new G(`Prisma.${t._getName()}`):Ke(t)?new G(`prisma.${ve(t.modelName)}.$fields.${t.name}`):Array.isArray(t)?Ca(t):typeof t=="object"?Ei(t):new G(Object.prototype.toString.call(t))}function Ca(t){let e=new Ge;for(let r of t)e.addItem(xi(r));return e}function Ht(t,e){let r=e==="pretty"?pi:Qt,n=t.renderAllMessages(r),i=new Qe(0,{colors:r}).write(t).toString();return{message:n,args:i}}function zt({args:t,errors:e,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=He(t);for(let C of e)$t(C,a,s);let{message:f,args:h}=Ht(a,r),T=Bt({message:f,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:h});throw new W(T,{clientVersion:o})}u();c();m();p();d();l();u();c();m();p();d();l();function fe(t){return t.replace(/^./,e=>e.toLowerCase())}u();c();m();p();d();l();function vi(t,e,r){let n=fe(r);return!e.result||!(e.result.$allModels||e.result[n])?t:Ra({...t,...Pi(e.name,t,e.result.$allModels),...Pi(e.name,t,e.result[n])})}function Ra(t){let e=new pe,r=(n,i)=>e.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),t[n]?t[n].needs.flatMap(o=>r(o,i)):[n]));return Be(t,n=>({...n,needs:r(n.name,new Set)}))}function Pi(t,e,r){return r?Be(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Aa(e,o,i)})):{}}function Aa(t,e,r){let n=t?.[e]?.compute;return n?i=>r({...i,[e]:n(i)}):r}function Ti(t,e){if(!e)return t;let r={...t};for(let n of Object.values(e))if(t[n.name])for(let i of n.needs)r[i]=!0;return r}function Ci(t,e){if(!e)return t;let r={...t};for(let n of Object.values(e))if(!t[n.name])for(let i of n.needs)delete r[i];return r}var Yt=class{constructor(e,r){this.extension=e;this.previous=r}computedFieldsCache=new pe;modelExtensionsCache=new pe;queryCallbacksCache=new pe;clientExtensions=ut(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());batchCallbacks=ut(()=>{let e=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?e.concat(r):e});getAllComputedFields(e){return this.computedFieldsCache.getOrCreate(e,()=>vi(this.previous?.getAllComputedFields(e),this.extension,e))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(e){return this.modelExtensionsCache.getOrCreate(e,()=>{let r=fe(e);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(e):{...this.previous?.getAllModelExtensions(e),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(e,r){return this.queryCallbacksCache.getOrCreate(`${e}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(e,r)??[],i=[],o=this.extension.query;return!o||!(o[e]||o.$allModels||o[r]||o.$allOperations)?n:(o[e]!==void 0&&(o[e][r]!==void 0&&i.push(o[e][r]),o[e].$allOperations!==void 0&&i.push(o[e].$allOperations)),e!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ze=class t{constructor(e){this.head=e}static empty(){return new t}static single(e){return new t(new Yt(e))}isEmpty(){return this.head===void 0}append(e){return new t(new Yt(e,this.head))}getAllComputedFields(e){return this.head?.getAllComputedFields(e)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(e){return this.head?.getAllModelExtensions(e)}getAllQueryCallbacks(e,r){return this.head?.getAllQueryCallbacks(e,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};u();c();m();p();d();l();var Xt=class{constructor(e){this.name=e}};function Ri(t){return t instanceof Xt}function Ai(t){return new Xt(t)}u();c();m();p();d();l();u();c();m();p();d();l();var Si=Symbol(),Et=class{constructor(e){if(e!==Si)throw new Error("Skip instance can not be constructed directly")}ifUndefined(e){return e===void 0?Zt:e}},Zt=new Et(Si);function ge(t){return t instanceof Et}var Sa={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",updateManyAndReturn:"updateManyAndReturn",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},ki="explicitly `undefined` values are not allowed";function er({modelName:t,action:e,args:r,runtimeDataModel:n,extensions:i=ze.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:f,previewFeatures:h,globalOmit:T}){let C=new $r({runtimeDataModel:n,modelName:t,action:e,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:f,previewFeatures:h,globalOmit:T});return{modelName:t,action:Sa[e],query:xt(r,C)}}function xt({select:t,include:e,...r}={},n){let i=r.omit;return delete r.omit,{arguments:Mi(r,n),selection:ka(t,e,i,n)}}function ka(t,e,r,n){return t?(e?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),_a(t,n)):Oa(n,e,r)}function Oa(t,e,r){let n={};return t.modelOrType&&!t.isRawAction()&&(n.$composites=!0,n.$scalars=!0),e&&Ma(n,e,t),Ia(n,r,t),n}function Ma(t,e,r){for(let[n,i]of Object.entries(e)){if(ge(i))continue;let o=r.nestSelection(n);if(Vr(i,o),i===!1||i===void 0){t[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){t[n]=xt(i===!0?{}:i,o);continue}if(i===!0){t[n]=!0;continue}t[n]=xt(i,o)}}function Ia(t,e,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...e},o=Ci(i,n);for(let[s,a]of Object.entries(o)){if(ge(a))continue;Vr(a,r.nestSelection(s));let f=r.findField(s);n?.[s]&&!f||(t[s]=!a)}}function _a(t,e){let r={},n=e.getComputedFields(),i=Ti(t,n);for(let[o,s]of Object.entries(i)){if(ge(s))continue;let a=e.nestSelection(o);Vr(s,a);let f=e.findField(o);if(!(n?.[o]&&!f)){if(s===!1||s===void 0||ge(s)){r[o]=!1;continue}if(s===!0){f?.kind==="object"?r[o]=xt({},a):r[o]=!0;continue}r[o]=xt(s,a)}}return r}function Oi(t,e){if(t===null)return null;if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="bigint")return{$type:"BigInt",value:String(t)};if(Ve(t)){if(Ut(t))return{$type:"DateTime",value:t.toISOString()};e.throwValidationError({kind:"InvalidArgumentValue",selectionPath:e.getSelectionPath(),argumentPath:e.getArgumentPath(),argument:{name:e.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(Ri(t))return{$type:"Param",value:t.name};if(Ke(t))return{$type:"FieldRef",value:{_ref:t.name,_container:t.modelName}};if(Array.isArray(t))return Da(t,e);if(ArrayBuffer.isView(t)){let{buffer:r,byteOffset:n,byteLength:i}=t;return{$type:"Bytes",value:b.from(r,n,i).toString("base64")}}if(La(t))return t.values;if(je(t))return{$type:"Decimal",value:t.toFixed()};if(t instanceof Ee){if(t!==Wt.instances[t._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:t._getName()}}if(Fa(t))return t.toJSON();if(typeof t=="object")return Mi(t,e);e.throwValidationError({kind:"InvalidArgumentValue",selectionPath:e.getSelectionPath(),argumentPath:e.getArgumentPath(),argument:{name:e.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(t)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Mi(t,e){if(t.$type)return{$type:"Raw",value:t};let r={};for(let n in t){let i=t[n],o=e.nestArgument(n);ge(i)||(i!==void 0?r[n]=Oi(i,o):e.isPreviewFeatureOn("strictUndefinedChecks")&&e.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:e.getSelectionPath(),argument:{name:e.getArgumentName(),typeNames:[]},underlyingError:ki}))}return r}function Da(t,e){let r=[];for(let n=0;n({name:e.name,typeName:"boolean",isRelation:e.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(e){return this.params.previewFeatures.includes(e)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(e){return this.modelOrType?.fields.find(r=>r.name===e)}nestSelection(e){let r=this.findField(e),n=r?.kind==="object"?r.type:void 0;return new t({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(e)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[ve(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"updateManyAndReturn":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:be(this.params.action,"Unknown action")}}nestArgument(e){return new t({...this.params,argumentPath:this.params.argumentPath.concat(e)})}};u();c();m();p();d();l();function Ii(t){if(!t._hasPreviewFlag("metrics"))throw new W("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:t._clientVersion})}var Ye=class{_client;constructor(e){this._client=e}prometheus(e){return Ii(this._client),this._client._engine.metrics({format:"prometheus",...e})}json(e){return Ii(this._client),this._client._engine.metrics({format:"json",...e})}};u();c();m();p();d();l();function _i(t,e){let r=ut(()=>Na(e));Object.defineProperty(t,"dmmf",{get:()=>r.get()})}function Na(t){throw new Error("Prisma.dmmf is not available when running in edge runtimes.")}function jr(t){return Object.entries(t).map(([e,r])=>({name:e,...r}))}u();c();m();p();d();l();var Qr=new WeakMap,tr="$$PrismaTypedSql",Pt=class{constructor(e,r){Qr.set(this,{sql:e,values:r}),Object.defineProperty(this,tr,{value:tr})}get sql(){return Qr.get(this).sql}get values(){return Qr.get(this).values}};function Di(t){return(...e)=>new Pt(t,e)}function rr(t){return t!=null&&t[tr]===tr}u();c();m();p();d();l();var Go=nt(Li());u();c();m();p();d();l();Fi();Un();jn();u();c();m();p();d();l();var Z=class t{constructor(e,r){if(e.length-1!==r.length)throw e.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${e.length} strings to have ${e.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof t?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=e[0];let i=0,o=0;for(;it.getPropertyValue(r))},getPropertyDescriptor(r){return t.getPropertyDescriptor?.(r)}}}u();c();m();p();d();l();u();c();m();p();d();l();var ir={enumerable:!0,configurable:!0,writable:!0};function or(t){let e=new Set(t);return{getPrototypeOf:()=>Object.prototype,getOwnPropertyDescriptor:()=>ir,has:(r,n)=>e.has(n),set:(r,n,i)=>e.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...e]}}var Ui=Symbol.for("nodejs.util.inspect.custom");function ae(t,e){let r=Ua(e),n=new Set,i=new Proxy(t,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Bi(Reflect.ownKeys(o),r),a=Bi(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let f=r.get(s);return f?f.getPropertyDescriptor?{...ir,...f?.getPropertyDescriptor(s)}:ir:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)},getPrototypeOf:()=>Object.prototype});return i[Ui]=function(){let o={...this};return delete o[Ui],o},i}function Ua(t){let e=new Map;for(let r of t){let n=r.getKeys();for(let i of n)e.set(i,r)}return e}function Bi(t,e){return t.filter(r=>e.get(r)?.has?.(r)??!0)}u();c();m();p();d();l();function Xe(t){return{getKeys(){return t},has(){return!1},getPropertyValue(){}}}u();c();m();p();d();l();function sr(t,e){return{batch:t,transaction:e?.kind==="batch"?{isolationLevel:e.options.isolationLevel}:void 0}}u();c();m();p();d();l();function $i(t){if(t===void 0)return"";let e=He(t);return new Qe(0,{colors:Qt}).write(e).toString()}u();c();m();p();d();l();var Ba="P2037";function ar({error:t,user_facing_error:e},r,n){return e.error_code?new X($a(e,n),{code:e.error_code,clientVersion:r,meta:e.meta,batchRequestIdx:e.batch_request_idx}):new j(t,{clientVersion:r,batchRequestIdx:e.batch_request_idx})}function $a(t,e){let r=t.message;return(e==="postgresql"||e==="postgres"||e==="mysql")&&t.error_code===Ba&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var Wr=class{getLocation(){return null}};function Ce(t){return typeof $EnabledCallSite=="function"&&t!=="minimal"?new $EnabledCallSite:new Wr}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();var Vi={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Ze(t={}){let e=ja(t);return Object.entries(e).reduce((n,[i,o])=>(Vi[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function ja(t={}){return typeof t._count=="boolean"?{...t,_count:{_all:t._count}}:t}function lr(t={}){return e=>(typeof t._count=="boolean"&&(e._count=e._count._all),e)}function ji(t,e){let r=lr(t);return e({action:"aggregate",unpacker:r,argsMapper:Ze})(t)}u();c();m();p();d();l();function Qa(t={}){let{select:e,...r}=t;return typeof e=="object"?Ze({...r,_count:e}):Ze({...r,_count:{_all:!0}})}function Ja(t={}){return typeof t.select=="object"?e=>lr(t)(e)._count:e=>lr(t)(e)._count._all}function Qi(t,e){return e({action:"count",unpacker:Ja(t),argsMapper:Qa})(t)}u();c();m();p();d();l();function Ga(t={}){let e=Ze(t);if(Array.isArray(e.by))for(let r of e.by)typeof r=="string"&&(e.select[r]=!0);else typeof e.by=="string"&&(e.select[e.by]=!0);return e}function Wa(t={}){return e=>(typeof t?._count=="boolean"&&e.forEach(r=>{r._count=r._count._all}),e)}function Ji(t,e){return e({action:"groupBy",unpacker:Wa(t),argsMapper:Ga})(t)}function Gi(t,e,r){if(e==="aggregate")return n=>ji(n,r);if(e==="count")return n=>Qi(n,r);if(e==="groupBy")return n=>Ji(n,r)}u();c();m();p();d();l();function Wi(t,e){let r=e.fields.filter(i=>!i.relationName),n=ni(r,"name");return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new gt(t,o,s.type,s.isList,s.kind==="enum")},...or(Object.keys(n))})}u();c();m();p();d();l();u();c();m();p();d();l();var Ki=t=>Array.isArray(t)?t:t.split("."),Kr=(t,e)=>Ki(e).reduce((r,n)=>r&&r[n],t),Hi=(t,e,r)=>Ki(e).reduceRight((n,i,o,s)=>Object.assign({},Kr(t,s.slice(0,o)),{[i]:n}),r);function Ka(t,e){return t===void 0||e===void 0?[]:[...e,"select",t]}function Ha(t,e,r){return e===void 0?t??{}:Hi(e,r,t||!0)}function Hr(t,e,r,n,i,o){let a=t._runtimeDataModel.models[e].fields.reduce((f,h)=>({...f,[h.name]:h}),{});return f=>{let h=Ce(t._errorFormat),T=Ka(n,i),C=Ha(f,o,T),k=r({dataPath:T,callsite:h})(C),A=za(t,e);return new Proxy(k,{get(O,S){if(!A.includes(S))return O[S];let oe=[a[S].type,r,S],H=[T,C];return Hr(t,...oe,...H)},...or([...A,...Object.getOwnPropertyNames(k)])})}}function za(t,e){return t._runtimeDataModel.models[e].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Ya=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Xa=["aggregate","count","groupBy"];function zr(t,e){let r=t._extensions.getAllModelExtensions(e)??{},n=[Za(t,e),tl(t,e),vt(r),K("name",()=>e),K("$name",()=>e),K("$parent",()=>t._appliedParent)];return ae({},n)}function Za(t,e){let r=fe(e),n=Object.keys(ct).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>f=>{let h=Ce(t._errorFormat);return t._createPrismaPromise(T=>{let C={args:f,dataPath:[],action:o,model:e,clientMethod:`${r}.${i}`,jsModelName:r,transaction:T,callsite:h};return t._request({...C,...a})},{action:o,args:f,model:e})};return Ya.includes(o)?Hr(t,e,s):el(i)?Gi(t,i,s):s({})}}}function el(t){return Xa.includes(t)}function tl(t,e){return Ie(K("fields",()=>{let r=t._runtimeDataModel.models[e];return Wi(e,r)}))}u();c();m();p();d();l();function zi(t){return t.replace(/^./,e=>e.toUpperCase())}var Yr=Symbol();function Tt(t){let e=[rl(t),nl(t),K(Yr,()=>t),K("$parent",()=>t._appliedParent)],r=t._extensions.getAllClientExtensions();return r&&e.push(vt(r)),ae(t,e)}function rl(t){let e=Object.getPrototypeOf(t._originalClient),r=[...new Set(Object.getOwnPropertyNames(e))];return{getKeys(){return r},getPropertyValue(n){return t[n]}}}function nl(t){let e=Object.keys(t._runtimeDataModel.models),r=e.map(fe),n=[...new Set(e.concat(r))];return Ie({getKeys(){return n},getPropertyValue(i){let o=zi(i);if(t._runtimeDataModel.models[o]!==void 0)return zr(t,o);if(t._runtimeDataModel.models[i]!==void 0)return zr(t,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Yi(t){return t[Yr]?t[Yr]:t}function Xi(t){if(typeof t=="function")return t(this);if(t.client?.__AccelerateEngine){let r=t.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let e=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(t)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Tt(e)}u();c();m();p();d();l();u();c();m();p();d();l();function Zi({result:t,modelName:e,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(e);if(!o)return t;let s=[],a=[];for(let f of Object.values(o)){if(n){if(n[f.name])continue;let h=f.needs.filter(T=>n[T]);h.length>0&&a.push(Xe(h))}else if(r){if(!r[f.name])continue;let h=f.needs.filter(T=>!r[T]);h.length>0&&a.push(Xe(h))}il(t,f.needs)&&s.push(ol(f,ae(t,s)))}return s.length>0||a.length>0?ae(t,[...s,...a]):t}function il(t,e){return e.every(r=>_r(t,r))}function ol(t,e){return Ie(K(t.name,()=>t.compute(e)))}u();c();m();p();d();l();function ur({visitor:t,result:e,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(e)){for(let s=0;sT.name===o);if(!f||f.kind!=="object"||!f.relationName)continue;let h=typeof s=="object"?s:{};e[o]=ur({visitor:i,result:e[o],args:h,modelName:f.type,runtimeDataModel:n})}}function to({result:t,modelName:e,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||t==null||typeof t!="object"||!i.models[e]?t:ur({result:t,args:r??{},modelName:e,runtimeDataModel:i,visitor:(a,f,h)=>{let T=fe(f);return Zi({result:a,modelName:T,select:h.select,omit:h.select?void 0:{...o?.[T],...h.omit},extensions:n})}})}u();c();m();p();d();l();u();c();m();p();d();l();l();u();c();m();p();d();l();var sl=["$connect","$disconnect","$on","$transaction","$use","$extends"],ro=sl;function no(t){if(t instanceof Z)return al(t);if(rr(t))return ll(t);if(Array.isArray(t)){let r=[t[0]];for(let n=1;n{let o=e.customDataProxyFetch;return"transaction"in e&&i!==void 0&&(e.transaction?.kind==="batch"&&e.transaction.lock.then(),e.transaction=i),n===r.length?t._executeRequest(e):r[n]({model:e.model,operation:e.model?e.action:e.clientMethod,args:no(e.args??{}),__internalParams:e,query:(s,a=e)=>{let f=a.customDataProxyFetch;return a.customDataProxyFetch=uo(o,f),a.args=s,oo(t,a,r,n+1)}})})}function so(t,e){let{jsModelName:r,action:n,clientMethod:i}=e,o=r?n:i;if(t._extensions.isEmpty())return t._executeRequest(e);let s=t._extensions.getAllQueryCallbacks(r??"$none",o);return oo(t,e,s)}function ao(t){return e=>{let r={requests:e},n=e[0].extensions.getAllBatchQueryCallbacks();return n.length?lo(r,n,0,t):t(r)}}function lo(t,e,r,n){if(r===e.length)return n(t);let i=t.customDataProxyFetch,o=t.requests[0].transaction;return e[r]({args:{queries:t.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:t,query(s,a=t){let f=a.customDataProxyFetch;return a.customDataProxyFetch=uo(i,f),lo(a,e,r+1,n)}})}var io=t=>t;function uo(t=io,e=io){return r=>t(e(r))}u();c();m();p();d();l();var co=J("prisma:client"),mo={Vercel:"vercel","Netlify CI":"netlify"};function po({postinstall:t,ciName:e,clientVersion:r}){if(co("checkPlatformCaching:postinstall",t),co("checkPlatformCaching:ciName",e),t===!0&&e&&e in mo){let n=`Prisma has detected that this project was built on ${e}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${mo[e]}-build`;throw console.error(n),new I(n,r)}}u();c();m();p();d();l();function fo(t,e){return t?t.datasources?t.datasources:t.datasourceUrl?{[e[0]]:{url:t.datasourceUrl}}:{}:{}}u();c();m();p();d();l();u();c();m();p();d();l();var ul=()=>globalThis.process?.release?.name==="node",cl=()=>!!globalThis.Bun||!!globalThis.process?.versions?.bun,ml=()=>!!globalThis.Deno,pl=()=>typeof globalThis.Netlify=="object",dl=()=>typeof globalThis.EdgeRuntime=="object",fl=()=>globalThis.navigator?.userAgent==="Cloudflare-Workers";function gl(){return[[pl,"netlify"],[dl,"edge-light"],[fl,"workerd"],[ml,"deno"],[cl,"bun"],[ul,"node"]].flatMap(r=>r[0]()?[r[1]]:[]).at(0)??""}var yl={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Re(){let t=gl();return{id:t,prettyName:yl[t]||t,isEdge:["workerd","deno","netlify","edge-light"].includes(t)}}u();c();m();p();d();l();u();c();m();p();d();l();function cr({inlineDatasources:t,overrideDatasources:e,env:r,clientVersion:n}){let i,o=Object.keys(t)[0],s=t[o]?.url,a=e[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Re().id==="workerd"?new I(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new I(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new I("error: Missing URL environment variable, value, or override.",n);return i}u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();u();c();m();p();d();l();function Xr(t){return t.name==="DriverAdapterError"&&typeof t.cause=="object"}u();c();m();p();d();l();function mr(t){return{ok:!0,value:t,map(e){return mr(e(t))},flatMap(e){return e(t)}}}function _e(t){return{ok:!1,error:t,map(){return _e(t)},flatMap(){return _e(t)}}}var go=J("driver-adapter-utils"),Zr=class{registeredErrors=[];consumeError(e){return this.registeredErrors[e]}registerNewError(e){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:e},r}};var en=(t,e=new Zr)=>{let r={adapterName:t.adapterName,errorRegistry:e,queryRaw:xe(e,t.queryRaw.bind(t)),executeRaw:xe(e,t.executeRaw.bind(t)),executeScript:xe(e,t.executeScript.bind(t)),dispose:xe(e,t.dispose.bind(t)),provider:t.provider,startTransaction:async(...n)=>(await xe(e,t.startTransaction.bind(t))(...n)).map(o=>hl(e,o))};return t.getConnectionInfo&&(r.getConnectionInfo=bl(e,t.getConnectionInfo.bind(t))),r},hl=(t,e)=>({adapterName:e.adapterName,provider:e.provider,options:e.options,queryRaw:xe(t,e.queryRaw.bind(e)),executeRaw:xe(t,e.executeRaw.bind(e)),commit:xe(t,e.commit.bind(e)),rollback:xe(t,e.rollback.bind(e))});function xe(t,e){return async(...r)=>{try{return mr(await e(...r))}catch(n){if(go("[error@wrapAsync]",n),Xr(n))return _e(n.cause);let i=t.registerNewError(n);return _e({kind:"GenericJs",id:i})}}}function bl(t,e){return(...r)=>{try{return mr(e(...r))}catch(n){if(go("[error@wrapSync]",n),Xr(n))return _e(n.cause);let i=t.registerNewError(n);return _e({kind:"GenericJs",id:i})}}}u();c();m();p();d();l();function yo(t){if(t?.kind==="itx")return t.options.id}u();c();m();p();d();l();var tn,ho={async loadLibrary(t){let{clientVersion:e,adapter:r,engineWasm:n}=t;if(r===void 0)throw new I(`The \`adapter\` option for \`PrismaClient\` is required in this context (${Re().prettyName})`,e);if(n===void 0)throw new I("WASM engine was unexpectedly `undefined`",e);tn===void 0&&(tn=(async()=>{let o=await n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new I("The loaded wasm module was unexpectedly `undefined` or `null` once loaded",e);let a={"./query_engine_bg.js":o},f=new WebAssembly.Instance(s,a),h=f.exports.__wbindgen_start;return o.__wbg_set_wasm(f.exports),h(),o.QueryEngine})());let i=await tn;return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:i}}};var wl="P2036",ye=J("prisma:client:libraryEngine");function El(t){return t.item_type==="query"&&"query"in t}function xl(t){return"level"in t?t.level==="error"&&t.message==="PANIC":!1}var SS=[...kr,"native"],Pl=0xffffffffffffffffn,rn=1n;function vl(){let t=rn++;return rn>Pl&&(rn=1n),t}var Rt=class{name="LibraryEngine";engine;libraryInstantiationPromise;libraryStartingPromise;libraryStoppingPromise;libraryStarted;executingQueryPromise;config;QueryEngineConstructor;libraryLoader;library;logEmitter;libQueryEnginePath;binaryTarget;datasourceOverrides;datamodel;logQueries;logLevel;lastQuery;loggerRustPanic;tracingHelper;adapterPromise;versionInfo;constructor(e,r){this.libraryLoader=r??ho,this.config=e,this.libraryStarted=!1,this.logQueries=e.logQueries??!1,this.logLevel=e.logLevel??"error",this.logEmitter=e.logEmitter,this.datamodel=e.inlineSchema,this.tracingHelper=e.tracingHelper,e.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(e.overrideDatasources)[0],i=e.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(e){return{applyPendingMigrations:e.applyPendingMigrations?.bind(e),commitTransaction:this.withRequestId(e.commitTransaction.bind(e)),connect:this.withRequestId(e.connect.bind(e)),disconnect:this.withRequestId(e.disconnect.bind(e)),metrics:e.metrics?.bind(e),query:this.withRequestId(e.query.bind(e)),rollbackTransaction:this.withRequestId(e.rollbackTransaction.bind(e)),sdlSchema:e.sdlSchema?.bind(e),startTransaction:this.withRequestId(e.startTransaction.bind(e)),trace:e.trace.bind(e)}}withRequestId(e){return async(...r)=>{let n=vl().toString();try{return await e(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){throw new Error("Cannot call this method from this type of engine instance")}async transaction(e,r,n){await this.start();let i=await this.adapterPromise,o=JSON.stringify(r),s;if(e==="start"){let f=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});s=await this.engine?.startTransaction(f,o)}else e==="commit"?s=await this.engine?.commitTransaction(n.id,o):e==="rollback"&&(s=await this.engine?.rollbackTransaction(n.id,o));let a=this.parseEngineResponse(s);if(Tl(a)){let f=this.getExternalAdapterError(a,i?.errorRegistry);throw f?f.error:new X(a.message,{code:a.error_code,clientVersion:this.config.clientVersion,meta:a.meta})}else if(typeof a.message=="string")throw new j(a.message,{clientVersion:this.config.clientVersion});return a}async instantiateLibrary(){if(ye("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(e){if(!e)throw new j("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(e)}catch{throw new j("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let e=new w(this);this.adapterPromise||(this.adapterPromise=this.config.adapter?.connect()?.then(en));let r=await this.adapterPromise;r&&ye("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:g.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{e.deref()?.logger(n)},r))}catch(e){let r=e,n=this.parseInitError(r.message);throw typeof n=="string"?r:new I(n.message,this.config.clientVersion,n.error_code)}}}logger(e){let r=this.parseEngineResponse(e);r&&(r.level=r?.level.toLowerCase()??"unknown",El(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):(xl(r),this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})))}parseInitError(e){try{return JSON.parse(e)}catch{}return e}parseRequestError(e){try{return JSON.parse(e)}catch{}return e}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return ye(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let e=async()=>{ye("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,ye("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new I(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",e),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return ye("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let e=async()=>{await new Promise(n=>setTimeout(n,5)),ye("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,await(await this.adapterPromise)?.dispose(),this.adapterPromise=void 0,ye("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",e),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(e){return this.library?.debugPanic(e)}async request(e,{traceparent:r,interactiveTransaction:n}){ye(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(e);try{await this.start();let s=await this.adapterPromise;this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let a=this.parseEngineResponse(await this.executingQueryPromise);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],s?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:a}}catch(s){if(s instanceof I)throw s;s.code==="GenericFailure"&&s.message?.startsWith("PANIC:");let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new j(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(e,{transaction:r,traceparent:n}){ye("requestBatch");let i=sr(e,r);await this.start();let o=await this.adapterPromise;this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),yo(r));let s=await this.executingQueryPromise,a=this.parseEngineResponse(s);if(a.errors)throw a.errors.length===1?this.buildQueryError(a.errors[0],o?.errorRegistry):new j(JSON.stringify(a.errors),{clientVersion:this.config.clientVersion});let{batchResult:f,errors:h}=a;if(Array.isArray(f))return f.map(T=>T.errors&&T.errors.length>0?this.loggerRustPanic??this.buildQueryError(T.errors[0],o?.errorRegistry):{data:T});throw h&&h.length===1?new Error(h[0].error):new Error(JSON.stringify(a))}buildQueryError(e,r){e.user_facing_error.is_panic;let n=this.getExternalAdapterError(e.user_facing_error,r);return n?n.error:ar(e,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(e,r){if(e.error_code===wl&&r){let n=e.meta?.id;qt(typeof n=="number","Malformed external JS error received from the engine");let i=r.consumeError(n);return qt(i,"External error with reported id was not registered"),i}}async metrics(e){await this.start();let r=await this.engine.metrics(JSON.stringify(e));return e.format==="prometheus"?r:this.parseEngineResponse(r)}};function Tl(t){return typeof t=="object"&&t!==null&&t.error_code!==void 0}u();c();m();p();d();l();var At="Accelerate has not been setup correctly. Make sure your client is using `.$extends(withAccelerate())`. See https://pris.ly/d/accelerate-getting-started",pr=class{constructor(e){this.config=e;this.resolveDatasourceUrl=this.config.accelerateUtils?.resolveDatasourceUrl,this.getBatchRequestPayload=this.config.accelerateUtils?.getBatchRequestPayload,this.prismaGraphQLToJSError=this.config.accelerateUtils?.prismaGraphQLToJSError,this.PrismaClientUnknownRequestError=this.config.accelerateUtils?.PrismaClientUnknownRequestError,this.PrismaClientInitializationError=this.config.accelerateUtils?.PrismaClientInitializationError,this.PrismaClientKnownRequestError=this.config.accelerateUtils?.PrismaClientKnownRequestError,this.debug=this.config.accelerateUtils?.debug,this.engineVersion=this.config.accelerateUtils?.engineVersion,this.clientVersion=this.config.accelerateUtils?.clientVersion}name="AccelerateEngine";resolveDatasourceUrl;getBatchRequestPayload;prismaGraphQLToJSError;PrismaClientUnknownRequestError;PrismaClientInitializationError;PrismaClientKnownRequestError;debug;engineVersion;clientVersion;onBeforeExit(e){}async start(){}async stop(){}version(e){return"unknown"}transaction(e,r,n){throw new I(At,this.config.clientVersion)}metrics(e){throw new I(At,this.config.clientVersion)}request(e,r){throw new I(At,this.config.clientVersion)}requestBatch(e,r){throw new I(At,this.config.clientVersion)}applyPendingMigrations(){throw new I(At,this.config.clientVersion)}};function bo({copyEngine:t=!0},e){let r;try{r=cr({inlineDatasources:e.inlineDatasources,overrideDatasources:e.overrideDatasources,env:{...e.env,...g.env},clientVersion:e.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||Mr(r));t&&n&<("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ue(e.generator),o=n||!t,s=!!e.adapter,a=i==="library",f=i==="binary",h=i==="client";if(o&&s||s&&!1){let T;throw t?r?.startsWith("prisma://")?T=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:T=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:T=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new W(T.join(` +`),{clientVersion:e.clientVersion})}if(s)return new Rt(e);if(o)return new pr(e);{let T=[`PrismaClient failed to initialize because it wasn't configured to run in this environment (${Re().prettyName}).`,"In order to run Prisma Client in an edge runtime, you will need to configure one of the following options:","- Enable Driver Adapters: https://pris.ly/d/driver-adapters","- Enable Accelerate: https://pris.ly/d/accelerate"];throw new W(T.join(` +`),{clientVersion:e.clientVersion})}return"wasm"}u();c();m();p();d();l();function dr({generator:t}){return t?.previewFeatures??[]}u();c();m();p();d();l();var wo=t=>({command:t});u();c();m();p();d();l();u();c();m();p();d();l();var Eo=t=>t.strings.reduce((e,r,n)=>`${e}@P${n}${r}`);u();c();m();p();d();l();l();function et(t){try{return xo(t,"fast")}catch{return xo(t,"slow")}}function xo(t,e){return JSON.stringify(t.map(r=>vo(r,e)))}function vo(t,e){if(Array.isArray(t))return t.map(r=>vo(r,e));if(typeof t=="bigint")return{prisma__type:"bigint",prisma__value:t.toString()};if(Ve(t))return{prisma__type:"date",prisma__value:t.toJSON()};if(me.isDecimal(t))return{prisma__type:"decimal",prisma__value:t.toJSON()};if(b.isBuffer(t))return{prisma__type:"bytes",prisma__value:t.toString("base64")};if(Cl(t))return{prisma__type:"bytes",prisma__value:b.from(t).toString("base64")};if(ArrayBuffer.isView(t)){let{buffer:r,byteOffset:n,byteLength:i}=t;return{prisma__type:"bytes",prisma__value:b.from(r,n,i).toString("base64")}}return typeof t=="object"&&e==="slow"?To(t):t}function Cl(t){return t instanceof ArrayBuffer||t instanceof SharedArrayBuffer?!0:typeof t=="object"&&t!==null?t[Symbol.toStringTag]==="ArrayBuffer"||t[Symbol.toStringTag]==="SharedArrayBuffer":!1}function To(t){if(typeof t!="object"||t===null)return t;if(typeof t.toJSON=="function")return t.toJSON();if(Array.isArray(t))return t.map(Po);let e={};for(let r of Object.keys(t))e[r]=Po(t[r]);return e}function Po(t){return typeof t=="bigint"?t.toString():To(t)}var Rl=/^(\s*alter\s)/i,Co=J("prisma:client");function nn(t,e,r,n){if(!(t!=="postgresql"&&t!=="cockroachdb")&&r.length>0&&Rl.exec(e))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var on=({clientMethod:t,activeProvider:e})=>r=>{let n="",i;if(rr(r))n=r.sql,i={values:et(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:et(s||[]),__prismaRawParameters__:!0}}else switch(e){case"sqlite":case"mysql":{n=r.sql,i={values:et(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:et(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=Eo(r),i={values:et(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${e} provider does not support ${t}`)}return i?.values?Co(`prisma.${t}(${n}, ${i.values})`):Co(`prisma.${t}(${n})`),{query:n,parameters:i}},Ro={requestArgsToMiddlewareArgs(t){return[t.strings,...t.values]},middlewareArgsToRequestArgs(t){let[e,...r]=t;return new Z(e,r)}},Ao={requestArgsToMiddlewareArgs(t){return[t]},middlewareArgsToRequestArgs(t){return t[0]}};u();c();m();p();d();l();function sn(t){return function(r,n){let i,o=(s=t)=>{try{return s===void 0||s?.kind==="itx"?i??=So(r(s)):So(r(s))}catch(a){return Promise.reject(a)}};return{get spec(){return n},then(s,a){return o().then(s,a)},catch(s){return o().catch(s)},finally(s){return o().finally(s)},requestTransaction(s){let a=o(s);return a.requestTransaction?a.requestTransaction(s):a},[Symbol.toStringTag]:"PrismaPromise"}}}function So(t){return typeof t.then=="function"?t:Promise.resolve(t)}u();c();m();p();d();l();var Al=Or.split(".")[0],Sl={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(t,e){return e()}},an=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(e){return this.getGlobalTracingHelper().getTraceParent(e)}dispatchEngineSpans(e){return this.getGlobalTracingHelper().dispatchEngineSpans(e)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(e,r){return this.getGlobalTracingHelper().runInChildSpan(e,r)}getGlobalTracingHelper(){let e=globalThis[`V${Al}_PRISMA_INSTRUMENTATION`],r=globalThis.PRISMA_INSTRUMENTATION;return e?.helper??r?.helper??Sl}};function ko(){return new an}u();c();m();p();d();l();function Oo(t,e=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--t===0&&r(e()),i?.(n)}}}u();c();m();p();d();l();function Mo(t){return typeof t=="string"?t:t.reduce((e,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?e:e&&(r==="info"||e==="info")?"info":n},void 0)}u();c();m();p();d();l();var fr=class{_middlewares=[];use(e){this._middlewares.push(e)}get(e){return this._middlewares[e]}has(e){return!!this._middlewares[e]}length(){return this._middlewares.length}};u();c();m();p();d();l();var _o=nt(ei());u();c();m();p();d();l();function gr(t){return typeof t.batchRequestIdx=="number"}u();c();m();p();d();l();function Io(t){if(t.action!=="findUnique"&&t.action!=="findUniqueOrThrow")return;let e=[];return t.modelName&&e.push(t.modelName),t.query.arguments&&e.push(ln(t.query.arguments)),e.push(ln(t.query.selection)),e.join("")}function ln(t){return`(${Object.keys(t).sort().map(r=>{let n=t[r];return typeof n=="object"&&n!==null?`(${r} ${ln(n)})`:r}).join(" ")})`}u();c();m();p();d();l();var kl={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateManyAndReturn:!0,updateOne:!0,upsertOne:!0};function un(t){return kl[t]}u();c();m();p();d();l();var yr=class{constructor(e){this.options=e;this.batches={}}batches;tickActive=!1;request(e){let r=this.options.batchBy(e);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,g.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:e,resolve:n,reject:i})})):this.options.singleLoader(e)}dispatchBatches(){for(let e in this.batches){let r=this.batches[e];delete this.batches[e],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iDe("bigint",r));case"bytes-array":return e.map(r=>De("bytes",r));case"decimal-array":return e.map(r=>De("decimal",r));case"datetime-array":return e.map(r=>De("datetime",r));case"date-array":return e.map(r=>De("date",r));case"time-array":return e.map(r=>De("time",r));default:return e}}function hr(t){let e=[],r=Ol(t);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(C=>C.protocolQuery),f=this.client._tracingHelper.getTraceParent(s),h=n.some(C=>un(C.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:f,transaction:Il(o),containsWrite:h,customDataProxyFetch:i})).map((C,k)=>{if(C instanceof Error)return C;try{return this.mapQueryEngineResult(n[k],C)}catch(A){return A}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Do(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:un(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Io(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(e){try{return await this.dataloader.request(e)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=e;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:e.globalOmit})}}mapQueryEngineResult({dataPath:e,unpacker:r},n){let i=n?.data,o=this.unpack(i,e,r);return g.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(e){try{this.handleRequestError(e)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:e.clientMethod,timestamp:new Date}),r}}handleRequestError({error:e,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Ml(e),_l(e,i))throw e;if(e instanceof X&&Dl(e)){let h=Lo(e.meta);zt({args:o,errors:[h],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let f=e.message;if(n&&(f=Bt({callsite:n,originalMethod:r,isPanic:e.isPanic,showColors:this.client._errorFormat==="pretty",message:f})),f=this.sanitizeMessage(f),e.code){let h=s?{modelName:s,...e.meta}:e.meta;throw new X(f,{code:e.code,clientVersion:this.client._clientVersion,meta:h,batchRequestIdx:e.batchRequestIdx})}else{if(e.isPanic)throw new we(f,this.client._clientVersion);if(e instanceof j)throw new j(f,{clientVersion:this.client._clientVersion,batchRequestIdx:e.batchRequestIdx});if(e instanceof I)throw new I(f,this.client._clientVersion);if(e instanceof we)throw new we(f,this.client._clientVersion)}throw e.clientVersion=this.client._clientVersion,e}sanitizeMessage(e){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,_o.default)(e):e}unpack(e,r,n){if(!e||(e.data&&(e=e.data),!e))return e;let i=Object.keys(e)[0],o=Object.values(e)[0],s=r.filter(h=>h!=="select"&&h!=="include"),a=Kr(o,s),f=i==="queryRaw"?hr(a):$e(a);return n?n(f):f}get[Symbol.toStringTag](){return"RequestHandler"}};function Il(t){if(t){if(t.kind==="batch")return{kind:"batch",options:{isolationLevel:t.isolationLevel}};if(t.kind==="itx")return{kind:"itx",options:Do(t)};be(t,"Unknown transaction kind")}}function Do(t){return{id:t.id,payload:t.payload}}function _l(t,e){return gr(t)&&e?.kind==="batch"&&t.batchRequestIdx!==e.index}function Dl(t){return t.code==="P2009"||t.code==="P2012"}function Lo(t){if(t.kind==="Union")return{kind:"Union",errors:t.errors.map(Lo)};if(Array.isArray(t.selectionPath)){let[,...e]=t.selectionPath;return{...t,selectionPath:e}}return t}u();c();m();p();d();l();var Fo="6.6.0";var No=Fo;u();c();m();p();d();l();var Vo=nt(Fr());u();c();m();p();d();l();var _=class extends Error{constructor(e){super(e+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};te(_,"PrismaClientConstructorValidationError");var qo=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Uo=["pretty","colorless","minimal"],Bo=["info","query","warn","error"],Fl={datasources:(t,{datasourceNames:e})=>{if(t){if(typeof t!="object"||Array.isArray(t))throw new _(`Invalid value ${JSON.stringify(t)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(t)){if(!e.includes(r)){let i=tt(r,e)||` Available datasources: ${e.join(", ")}`;throw new _(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new _(`Invalid value ${JSON.stringify(t)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new _(`Invalid value ${JSON.stringify(t)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new _(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(t,e)=>{if(!t&&Ue(e.generator)==="client")throw new _('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.');if(t===null)return;if(t===void 0)throw new _('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!dr(e).includes("driverAdapters"))throw new _('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ue(e.generator)==="binary")throw new _('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:t=>{if(typeof t<"u"&&typeof t!="string")throw new _(`Invalid value ${JSON.stringify(t)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:t=>{if(t){if(typeof t!="string")throw new _(`Invalid value ${JSON.stringify(t)} for "errorFormat" provided to PrismaClient constructor.`);if(!Uo.includes(t)){let e=tt(t,Uo);throw new _(`Invalid errorFormat ${t} provided to PrismaClient constructor.${e}`)}}},log:t=>{if(!t)return;if(!Array.isArray(t))throw new _(`Invalid value ${JSON.stringify(t)} for "log" provided to PrismaClient constructor.`);function e(r){if(typeof r=="string"&&!Bo.includes(r)){let n=tt(r,Bo);throw new _(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of t){e(r);let n={level:e,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=tt(i,o);throw new _(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new _(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:t=>{if(!t)return;let e=t.maxWait;if(e!=null&&e<=0)throw new _(`Invalid value ${e} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=t.timeout;if(r!=null&&r<=0)throw new _(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(t,e)=>{if(typeof t!="object")throw new _('"omit" option is expected to be an object.');if(t===null)throw new _('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(t)){let o=ql(n,e.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let f=o.fields.find(h=>h.name===s);if(!f){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(f.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new _(Ul(t,r))},__internal:t=>{if(!t)return;let e=["debug","engine","configOverride"];if(typeof t!="object")throw new _(`Invalid value ${JSON.stringify(t)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(t))if(!e.includes(r)){let n=tt(r,e);throw new _(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function jo(t,e){for(let[r,n]of Object.entries(t)){if(!qo.includes(r)){let i=tt(r,qo);throw new _(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Fl[r](n,e)}if(t.datasourceUrl&&t.datasources)throw new _('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function tt(t,e){if(e.length===0||typeof t!="string")return"";let r=Nl(t,e);return r?` Did you mean "${r}"?`:""}function Nl(t,e){if(e.length===0)return null;let r=e.map(i=>({value:i,distance:(0,Vo.default)(t,i)}));r.sort((i,o)=>i.distanceve(n)===e);if(r)return t[r]}function Ul(t,e){let r=He(t);for(let o of e)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Ht(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}u();c();m();p();d();l();function Qo(t){return t.length===0?Promise.resolve([]):new Promise((e,r)=>{let n=new Array(t.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===t.length&&(o=!0,i?r(i):e(n)))},f=h=>{o||(o=!0,r(h))};for(let h=0;h{n[h]=T,a()},T=>{if(!gr(T)){f(T);return}T.batchRequestIdx===h?f(T):(i||(i=T),a())})})}var Ae=J("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Bl={requestArgsToMiddlewareArgs:t=>t,middlewareArgsToRequestArgs:t=>t},$l=Symbol.for("prisma.client.transaction.id"),Vl={id:0,nextId(){return++this.id}};function Wo(t){class e{_originalClient=this;_runtimeDataModel;_requestHandler;_connectionPromise;_disconnectionPromise;_engineConfig;_accelerateEngineConfig;_clientVersion;_errorFormat;_tracingHelper;_middlewares=new fr;_previewFeatures;_activeProvider;_globalOmit;_extensions;_engine;_appliedParent;_createPrismaPromise=sn();constructor(n){t=n?.__internal?.configOverride?.(t)??t,po(t),n&&jo(n,t);let i=new nr().on("error",()=>{});this._extensions=ze.empty(),this._previewFeatures=dr(t),this._clientVersion=t.clientVersion??No,this._activeProvider=t.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=ko();let o=t.relativeEnvPaths&&{rootEnvPath:t.relativeEnvPaths.rootEnvPath&&Nt.resolve(t.dirname,t.relativeEnvPaths.rootEnvPath),schemaEnvPath:t.relativeEnvPaths.schemaEnvPath&&Nt.resolve(t.dirname,t.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=n.adapter;let f=t.activeProvider==="postgresql"?"postgres":t.activeProvider;if(s.provider!==f)throw new I(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${f}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new I("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=t.injectableEdgeEnv?.();try{let f=n??{},h=f.__internal??{},T=h.debug===!0;T&&J.enable("prisma:client");let C=Nt.resolve(t.dirname,t.relativePath);qn.existsSync(C)||(C=t.dirname),Ae("dirname",t.dirname),Ae("relativePath",t.relativePath),Ae("cwd",C);let k=h.engine||{};if(f.errorFormat?this._errorFormat=f.errorFormat:g.env.NODE_ENV==="production"?this._errorFormat="minimal":g.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=t.runtimeDataModel,this._engineConfig={cwd:C,dirname:t.dirname,enableDebugLogs:T,allowTriggerPanic:k.allowTriggerPanic,prismaPath:k.binaryPath??void 0,engineEndpoint:k.endpoint,generator:t.generator,showColors:this._errorFormat==="pretty",logLevel:f.log&&Mo(f.log),logQueries:f.log&&!!(typeof f.log=="string"?f.log==="query":f.log.find(A=>typeof A=="string"?A==="query":A.level==="query")),env:a?.parsed??{},flags:[],engineWasm:t.engineWasm,compilerWasm:t.compilerWasm,clientVersion:t.clientVersion,engineVersion:t.engineVersion,previewFeatures:this._previewFeatures,activeProvider:t.activeProvider,inlineSchema:t.inlineSchema,overrideDatasources:fo(f,t.datasourceNames),inlineDatasources:t.inlineDatasources,inlineSchemaHash:t.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:f.transactionOptions?.maxWait??2e3,timeout:f.transactionOptions?.timeout??5e3,isolationLevel:f.transactionOptions?.isolationLevel},logEmitter:i,isBundled:t.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:cr,getBatchRequestPayload:sr,prismaGraphQLToJSError:ar,PrismaClientUnknownRequestError:j,PrismaClientInitializationError:I,PrismaClientKnownRequestError:X,debug:J("prisma:client:accelerateEngine"),engineVersion:Go.version,clientVersion:t.clientVersion}},Ae("clientVersion",t.clientVersion),this._engine=bo(t,this._engineConfig),this._requestHandler=new br(this,i),f.log)for(let A of f.log){let O=typeof A=="string"?A:A.emit==="stdout"?A.level:null;O&&this.$on(O,S=>{at.log(`${at.tags[O]??""}`,S.message||S.query)})}}catch(f){throw f.clientVersion=this._clientVersion,f}return this._appliedParent=Tt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){return n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i),this}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Fn()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:on({clientMethod:i,activeProvider:a}),callsite:Ce(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=Jo(n,i);return nn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new W("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(nn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(t.activeProvider!=="mongodb")throw new W(`The ${t.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:wo,callsite:Ce(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:on({clientMethod:i,activeProvider:a}),callsite:Ce(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...Jo(n,i));throw new W("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new W("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=Vl.nextId(),s=Oo(n.length),a=n.map((f,h)=>{if(f?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let T=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,C={kind:"batch",id:o,index:h,isolationLevel:T,lock:s};return f.requestTransaction?.(C)??f});return Qo(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),f;try{let h={kind:"itx",...a};f=await n(this._createItxClient(h)),await this._engine.transaction("commit",o,a)}catch(h){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),h}return f}_createItxClient(n){return ae(Tt(ae(Yi(this),[K("_appliedParent",()=>this._appliedParent._createItxClient(n)),K("_createPrismaPromise",()=>sn(n)),K($l,()=>n.id)])),[Xe(ro)])}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Bl,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,f=async h=>{let T=this._middlewares.get(++a);if(T)return this._tracingHelper.runInChildSpan(s.middleware,M=>T(h,oe=>(M?.end(),f(oe))));let{runInTransaction:C,args:k,...A}=h,O={...n,...A};k&&(O.args=i.middlewareArgsToRequestArgs(k)),n.transaction!==void 0&&C===!1&&delete O.transaction;let S=await so(this,O);return O.model?to({result:S,modelName:O.model,args:O.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):S};return this._tracingHelper.runInChildSpan(s.operation,()=>f(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:f,argsMapper:h,transaction:T,unpacker:C,otelParentCtx:k,customDataProxyFetch:A}){try{n=h?h(n):n;let O={name:"serialize"},S=this._tracingHelper.runInChildSpan(O,()=>er({modelName:f,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return J.enabled("prisma:client")&&(Ae("Prisma Client call:"),Ae(`prisma.${i}(${$i(n)})`),Ae("Generated request:"),Ae(JSON.stringify(S,null,2)+` +`)),T?.kind==="batch"&&await T.lock,this._requestHandler.request({protocolQuery:S,modelName:f,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:T,unpacker:C,otelParentCtx:k,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:A})}catch(O){throw O.clientVersion=this._clientVersion,O}}$metrics=new Ye(this);_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}$extends=Xi}return e}function Jo(t,e){return jl(t)?[new Z(t,e),Ro]:[t,Ao]}function jl(t){return Array.isArray(t)&&Array.isArray(t.raw)}u();c();m();p();d();l();var Ql=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Ko(t){return new Proxy(t,{get(e,r){if(r in e)return e[r];if(!Ql.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}u();c();m();p();d();l();l();0&&(module.exports={DMMF,Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,createParam,defineDmmfProperty,deserializeJsonResponse,deserializeRawResult,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=wasm.js.map diff --git a/src/lib/generated/prisma/schema.prisma b/src/lib/generated/prisma/schema.prisma new file mode 100644 index 0000000..4a87293 --- /dev/null +++ b/src/lib/generated/prisma/schema.prisma @@ -0,0 +1,172 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client-js" + output = "../src/lib/generated/prisma" +} + +datasource database { + provider = "postgresql" + url = env("POSTGRES_PRISMA_URL") + directUrl = env("POSTGRES_URL_NON_POOLING") +} + +model User { + id String @id @default(uuid()) + first_name String? + last_name String? + email String? @unique + email_verified DateTime? + password String? + image String? + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + detail Detail? + accounts Account[] + sessions Session[] + + @@map("users") +} + +model Detail { + id_detail String @id @default(uuid()) + id_tax String @unique + phone String + bio String + city String + country String + post_kode String + + user User @relation(fields: [id_tax], references: [id]) + + @@map("detail") +} + +model Account { + id String @id @default(cuid()) + id_user String @map("id_user") + id_provider String + id_token String? @database.Text + type String + scope String? + provider String + expires_at Int? + token_type String? + access_token String? @database.Text + refresh_token String? @database.Text + session_state String? + + user User @relation(fields: [id_user], references: [id], onDelete: Cascade) + + @@unique([provider, id_provider]) + @@map("account") +} + +model Session { + id String @id @default(cuid()) + id_user String @map("id_user") + session_token String @unique + expires DateTime + + user User @relation(fields: [id_user], references: [id], onDelete: Cascade) + + @@map("session") +} + +model VerificationToken { + identifier String + token String @unique + expires DateTime + + @@unique([identifier, token]) + @@map("token") +} + +model Kecamatan { + id_kecamatan Int @id @default(autoincrement()) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + nama_kecamatan String @database.VarChar(100) + deskripsi String @database.Text + gambar String @database.Text + area Float + posisi_x Int + posisi_y Int + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + penduduk Penduduk[] + hasil_panen HasilPanen[] + prediksi_panen PrediksiPanen[] + + @@map("data_kecamatan") +} + +model Penduduk { + id_penduduk Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + data_tahun Int + jumlah_penduduk Float + laju_pertumbuhan String @database.VarChar(30) + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + @@map("data_penduduk") +} + +model Komoditas { + id_komoditas Int @id @default(autoincrement()) + nama_komoditas String @database.VarChar(100) + posisi_x Int + posisi_y Int + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + deleted_at DateTime? @map("deleted_at") + + kecamatan Kecamatan[] + hasil_panen HasilPanen[] + prediksi_panen PrediksiPanen[] + + @@map("data_komoditas") +} + +model HasilPanen { + id_panen Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + tahun_panen Int + produksi Float + luas_panen Float + produktivitas Float + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + @@map("hasil_panen") +} + +model PrediksiPanen { + id_prediksi Int @id @default(autoincrement()) + id_kecamatan Int + kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) + id_komoditas Int + komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) + tahun_prediksi Int + hasil_prediksi Int + + created_at DateTime @default(now()) @map("created_at") + updated_at DateTime @updatedAt @map("updated_at") + + @@map("prediksi_panen") +} diff --git a/src/lib/generated/prisma/wasm.d.ts b/src/lib/generated/prisma/wasm.d.ts new file mode 100644 index 0000000..bc20c6c --- /dev/null +++ b/src/lib/generated/prisma/wasm.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/src/lib/generated/prisma/wasm.js b/src/lib/generated/prisma/wasm.js new file mode 100644 index 0000000..ceb6fee --- /dev/null +++ b/src/lib/generated/prisma/wasm.js @@ -0,0 +1,283 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + Decimal, + objectEnumValues, + makeStrictEnum, + Public, + getRuntime, + skip +} = require('./runtime/index-browser.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.6.0 + * Query Engine version: f676762280b54cd07c770017ed3711ddde35f37a + */ +Prisma.prismaVersion = { + client: "6.6.0", + engine: "f676762280b54cd07c770017ed3711ddde35f37a" +} + +Prisma.PrismaClientKnownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)}; +Prisma.PrismaClientUnknownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientRustPanicError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientInitializationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientValidationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.empty = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.join = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.raw = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.defineExtension = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + +/** + * Enums + */ + +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + id: 'id', + first_name: 'first_name', + last_name: 'last_name', + email: 'email', + email_verified: 'email_verified', + password: 'password', + image: 'image', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.DetailScalarFieldEnum = { + id_detail: 'id_detail', + id_tax: 'id_tax', + phone: 'phone', + bio: 'bio', + city: 'city', + country: 'country', + post_kode: 'post_kode' +}; + +exports.Prisma.AccountScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + id_provider: 'id_provider', + id_token: 'id_token', + type: 'type', + scope: 'scope', + provider: 'provider', + expires_at: 'expires_at', + token_type: 'token_type', + access_token: 'access_token', + refresh_token: 'refresh_token', + session_state: 'session_state' +}; + +exports.Prisma.SessionScalarFieldEnum = { + id: 'id', + id_user: 'id_user', + session_token: 'session_token', + expires: 'expires' +}; + +exports.Prisma.VerificationTokenScalarFieldEnum = { + identifier: 'identifier', + token: 'token', + expires: 'expires' +}; + +exports.Prisma.KecamatanScalarFieldEnum = { + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + nama_kecamatan: 'nama_kecamatan', + deskripsi: 'deskripsi', + gambar: 'gambar', + area: 'area', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PendudukScalarFieldEnum = { + id_penduduk: 'id_penduduk', + id_kecamatan: 'id_kecamatan', + data_tahun: 'data_tahun', + jumlah_penduduk: 'jumlah_penduduk', + laju_pertumbuhan: 'laju_pertumbuhan', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.KomoditasScalarFieldEnum = { + id_komoditas: 'id_komoditas', + nama_komoditas: 'nama_komoditas', + posisi_x: 'posisi_x', + posisi_y: 'posisi_y', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' +}; + +exports.Prisma.HasilPanenScalarFieldEnum = { + id_panen: 'id_panen', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_panen: 'tahun_panen', + produksi: 'produksi', + luas_panen: 'luas_panen', + produktivitas: 'produktivitas', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.PrediksiPanenScalarFieldEnum = { + id_prediksi: 'id_prediksi', + id_kecamatan: 'id_kecamatan', + id_komoditas: 'id_komoditas', + tahun_prediksi: 'tahun_prediksi', + hasil_prediksi: 'hasil_prediksi', + created_at: 'created_at', + updated_at: 'updated_at' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; + + +exports.Prisma.ModelName = { + User: 'User', + Detail: 'Detail', + Account: 'Account', + Session: 'Session', + VerificationToken: 'VerificationToken', + Kecamatan: 'Kecamatan', + Penduduk: 'Penduduk', + Komoditas: 'Komoditas', + HasilPanen: 'HasilPanen', + PrediksiPanen: 'PrediksiPanen' +}; + +/** + * This is a stub Prisma Client that will error at runtime if called. + */ +class PrismaClient { + constructor() { + return new Proxy(this, { + get(target, prop) { + let message + const runtime = getRuntime() + if (runtime.isEdge) { + message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either: +- Use Prisma Accelerate: https://pris.ly/d/accelerate +- Use Driver Adapters: https://pris.ly/d/driver-adapters +`; + } else { + message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).' + } + + message += ` +If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report` + + throw new Error(message) + } + }) + } +} + +exports.PrismaClient = PrismaClient + +Object.assign(exports, Prisma) diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts new file mode 100644 index 0000000..3442144 --- /dev/null +++ b/src/lib/prisma.ts @@ -0,0 +1,7 @@ +import { PrismaClient } from "@/prisma/client" + +const globalForPrisma = globalThis as unknown as { prisma: PrismaClient } + +export const prisma = globalForPrisma.prisma || new PrismaClient() + +if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma \ No newline at end of file diff --git a/src/lib/seed.ts b/src/lib/seed.ts new file mode 100644 index 0000000..0c352fa --- /dev/null +++ b/src/lib/seed.ts @@ -0,0 +1,37 @@ +import { PrismaClient } from './generated/prisma/client'; +import { hash } from 'bcrypt-ts'; + +const prisma = new PrismaClient(); + +async function main() { + const defaultEmail = 'admin@example.com'; + const plainPassword = 'supersecretpassword'; + const hashedPassword = await hash(plainPassword, 10); + + const existingUser = await prisma.user.findUnique({ + where: { email: defaultEmail } + }); + + if (!existingUser) { + await prisma.user.create({ + data: { + first_name: 'Admin', + last_name: 'PANDAWA', + email: defaultEmail, + password: hashedPassword + } + }); + console.log('Default user created.'); + } else { + console.log('User already exists.'); + } +} + +main() + .catch((e) => { + console.error(e); + process.exit(1); + }) + .finally(async () => { + await prisma.$disconnect(); + }); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e8695e0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"], + "@prisma/*": [ + "./lib/generated/prisma/*" + ] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +}