@explita/tunnel-server-plugin 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +21 -0
  3. package/README.md +63 -2
  4. package/bin/cli.js +100 -0
  5. package/dist/generated/prisma/browser.d.ts +25 -0
  6. package/dist/generated/prisma/browser.d.ts.map +1 -0
  7. package/dist/generated/prisma/browser.js +18 -0
  8. package/dist/generated/prisma/browser.js.map +1 -0
  9. package/dist/generated/prisma/client.d.ts +44 -0
  10. package/dist/generated/prisma/client.d.ts.map +1 -0
  11. package/dist/generated/prisma/client.js +35 -0
  12. package/dist/generated/prisma/client.js.map +1 -0
  13. package/dist/generated/prisma/commonInputTypes.d.ts +278 -0
  14. package/dist/generated/prisma/commonInputTypes.d.ts.map +1 -0
  15. package/dist/generated/prisma/commonInputTypes.js +11 -0
  16. package/dist/generated/prisma/commonInputTypes.js.map +1 -0
  17. package/dist/generated/prisma/enums.d.ts +2 -0
  18. package/dist/generated/prisma/enums.d.ts.map +1 -0
  19. package/dist/generated/prisma/enums.js +11 -0
  20. package/dist/generated/prisma/enums.js.map +1 -0
  21. package/dist/generated/prisma/internal/class.d.ts +166 -0
  22. package/dist/generated/prisma/internal/class.d.ts.map +1 -0
  23. package/dist/generated/prisma/internal/class.js +50 -0
  24. package/dist/generated/prisma/internal/class.js.map +1 -0
  25. package/dist/generated/prisma/internal/prismaNamespace.d.ts +867 -0
  26. package/dist/generated/prisma/internal/prismaNamespace.d.ts.map +1 -0
  27. package/dist/generated/prisma/internal/prismaNamespace.js +128 -0
  28. package/dist/generated/prisma/internal/prismaNamespace.js.map +1 -0
  29. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +92 -0
  30. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  31. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +99 -0
  32. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map +1 -0
  33. package/dist/generated/prisma/models/DailyMetric.d.ts +1152 -0
  34. package/dist/generated/prisma/models/DailyMetric.d.ts.map +1 -0
  35. package/dist/generated/prisma/models/DailyMetric.js +2 -0
  36. package/dist/generated/prisma/models/DailyMetric.js.map +1 -0
  37. package/dist/generated/prisma/models/Developer.d.ts +1134 -0
  38. package/dist/generated/prisma/models/Developer.d.ts.map +1 -0
  39. package/dist/generated/prisma/models/Developer.js +2 -0
  40. package/dist/generated/prisma/models/Developer.js.map +1 -0
  41. package/dist/generated/prisma/models/SystemMetric.d.ts +1048 -0
  42. package/dist/generated/prisma/models/SystemMetric.d.ts.map +1 -0
  43. package/dist/generated/prisma/models/SystemMetric.js +2 -0
  44. package/dist/generated/prisma/models/SystemMetric.js.map +1 -0
  45. package/dist/generated/prisma/models/Token.d.ts +1214 -0
  46. package/dist/generated/prisma/models/Token.d.ts.map +1 -0
  47. package/dist/generated/prisma/models/Token.js +2 -0
  48. package/dist/generated/prisma/models/Token.js.map +1 -0
  49. package/dist/generated/prisma/models.d.ts +6 -0
  50. package/dist/generated/prisma/models.d.ts.map +1 -0
  51. package/dist/generated/prisma/models.js +2 -0
  52. package/dist/generated/prisma/models.js.map +1 -0
  53. package/dist/index.d.ts +21 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +45 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/issue.d.ts +3 -0
  58. package/dist/issue.d.ts.map +1 -0
  59. package/dist/issue.js +102 -0
  60. package/dist/issue.js.map +1 -0
  61. package/dist/lib/cache.d.ts +2 -0
  62. package/dist/lib/cache.d.ts.map +1 -0
  63. package/dist/lib/cache.js +6 -0
  64. package/dist/lib/cache.js.map +1 -0
  65. package/dist/lib/mailer.d.ts +28 -0
  66. package/dist/lib/mailer.d.ts.map +1 -0
  67. package/dist/lib/mailer.js +116 -0
  68. package/dist/lib/mailer.js.map +1 -0
  69. package/dist/lib/metrics.d.ts +27 -0
  70. package/dist/lib/metrics.d.ts.map +1 -0
  71. package/dist/lib/metrics.js +93 -0
  72. package/dist/lib/metrics.js.map +1 -0
  73. package/dist/lib/prisma.d.ts +3 -0
  74. package/dist/lib/prisma.d.ts.map +1 -0
  75. package/dist/lib/prisma.js +20 -0
  76. package/dist/lib/prisma.js.map +1 -0
  77. package/dist/lib/utils.d.ts +2 -0
  78. package/dist/lib/utils.d.ts.map +1 -0
  79. package/dist/lib/utils.js +5 -0
  80. package/dist/lib/utils.js.map +1 -0
  81. package/dist/request.d.ts +4 -0
  82. package/dist/request.d.ts.map +1 -0
  83. package/dist/request.js +29 -0
  84. package/dist/request.js.map +1 -0
  85. package/dist/validate.d.ts +2 -0
  86. package/dist/validate.d.ts.map +1 -0
  87. package/dist/validate.js +48 -0
  88. package/dist/validate.js.map +1 -0
  89. package/dist/verify.d.ts +3 -0
  90. package/dist/verify.d.ts.map +1 -0
  91. package/dist/verify.js +53 -0
  92. package/dist/verify.js.map +1 -0
  93. package/package.json +52 -4
  94. package/prisma/schema.prisma +62 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,44 @@
1
+ # Changelog
2
+
3
+ All notable changes to the **Explita Tunnel Server Plugin** (`@explita/tunnel-server-plugin`) will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2026-10-24
9
+
10
+ Initial release of **Explita Tunnel Server Plugin**, providing pluggable database authentication, token issuance, and zero-log telemetry persistence for Explita Tunnel gateways.
11
+
12
+ ### Added
13
+
14
+ #### 🔐 Authentication & Token Engine
15
+
16
+ - **Passwordless Email OTP Authentication**:
17
+ - `POST /_api/token/request-otp`: Issues cryptographically secure 6-digit OTP codes with 10-minute expiration.
18
+ - Multi-transport delivery: Sends rich HTML emails via Nodemailer when SMTP is configured, or logs codes to stdout in non-production.
19
+ - `POST /_api/token/verify-otp`: Validates OTP codes, rate limits verification attempts, provisions or retrieves developer profiles, and returns an active developer token (`exp_live_...`).
20
+ - **Instant Headless Token Issuance**:
21
+ - `POST /_api/token/issue`: Enables non-interactive token issuance for CI/CD runners and Explita Deploy servers keyed by IP and machine ID without requiring email verification.
22
+ - **Multi-Device Token Validation**:
23
+ - `validateToken`: Multi-tier token validation engine with Redis caching (5-minute TTL) and PostgreSQL fallback.
24
+
25
+ #### 🗄️ Database & Persistence Layer
26
+
27
+ - **Bundled Zero-Config Prisma Engine**:
28
+ - Pre-generated Prisma Client and PostgreSQL adapter (`@prisma/adapter-pg`) with automatic connection pooling.
29
+ - Database schema models:
30
+ - `Developer`: Tracks developer identities, email addresses, and last login timestamps.
31
+ - `ApiToken`: Stores hashed and revocable access tokens with device labels and last-used metadata.
32
+ - `DailyMetric`: Aggregates daily tunnel connections, routed requests, transferred bytes, and unique developer counts.
33
+ - `SystemMetric`: Tracks all-time cluster throughput and total tunnels created.
34
+ - Automatic graceful degradation: Operates in in-memory mode if `DATABASE_URL` is omitted.
35
+ - **Database Push CLI (`tunnel-plugin`)**:
36
+ - Bundled executable `tunnel-plugin db:push` (also runnable via `npx @explita/tunnel-server-plugin db:push`) allowing operators to apply schema migrations directly from `.env` without installing Prisma in their gateway project.
37
+
38
+ #### 📊 Telemetry & Metrics Persistence
39
+
40
+ - **Zero-Log Cluster Telemetry**:
41
+ - Pluggable persister implementation (`flushMetrics`) executing atomic upsert transactions into `DailyMetric` and `SystemMetric`.
42
+ - Zero-payload logging guarantees: Strictly records anonymous counts, request volumes, and byte totals.
43
+ - **Internal Stats API**:
44
+ - `GET /_api/stats`: Protected internal endpoint requiring `x-internal-secret` header to inspect active tunnel counts, daily activity, and lifetime cluster totals.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Explita (https://explita.ng)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,64 @@
1
- # Temporary Holding Version
1
+ # Explita Tunnel Server Plugin
2
+
3
+ Modular authentication, token issuance, and zero-log telemetry plugin for [Explita Tunnel Server](https://github.com/explita/tunnel-server).
4
+
5
+ [**Documentation**](https://infra.explita.ng/docs/tunnel/plugin) • [**Tunnel Server**](https://github.com/explita/tunnel-server) • [**Explita Infra**](https://infra.explita.ng)
6
+
7
+ ---
8
+
9
+ ## ⚡ Features
10
+
11
+ - **Developer Authentication**: Passwordless 6-digit email OTP login (`POST /_api/token/request-otp` and `verify-otp`).
12
+ - **Instant Token Issuance**: Zero-friction token issuance for headless servers, CI/CD, and Explita Deploy (`POST /_api/token/issue`).
13
+ - **Token Management**: Persistent developer accounts and API tokens stored in PostgreSQL via Prisma with Redis caching.
14
+ - **Cluster Telemetry**: High-level throughput, request counters, and active connection metrics (`GET /_api/stats`) with zero payload logging.
15
+
16
+ ---
17
+
18
+ ## 🚀 Quick Setup
19
+
20
+ ### 1. Installation
21
+
22
+ In your tunnel gateway project:
23
+
24
+ ```bash
25
+ pnpm add @explita/tunnel-server-plugin
26
+ ```
27
+
28
+ ### 2. Enable in `tunnel.config.js`
29
+
30
+ Copy the configuration template into your gateway:
31
+
32
+ ```bash
33
+ cp tunnel.config.example.js tunnel.config.js
34
+ ```
35
+
36
+ ### 3. Sync Database Schema
37
+
38
+ Set `DATABASE_URL` in your `.env`, then apply the bundled Prisma schema:
39
+
40
+ ```bash
41
+ pnpm db:push
42
+
43
+ # Or without installing dependencies locally:
44
+ npx @explita/tunnel-server-plugin db:push
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 📖 Documentation
50
+
51
+ Full architectural breakdowns, endpoint schemas, SMTP options, and telemetry configurations live on our official docs site:
52
+
53
+ 👉 **[infra.explita.ng/docs/tunnel/plugin](https://infra.explita.ng/docs/tunnel/plugin)**
54
+
55
+ - [Self-Hosting Guide](https://infra.explita.ng/docs/tunnel/setup)
56
+ - [Security & Zero-Knowledge Cryptography](https://infra.explita.ng/docs/tunnel/security)
57
+ - [Explita Tunnel Overview](https://infra.explita.ng/docs/tunnel)
58
+
59
+ ---
60
+
61
+ ## 📄 License
62
+
63
+ MIT © [Explita](https://explita.ng)
2
64
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
package/bin/cli.js ADDED
@@ -0,0 +1,100 @@
1
+ #!/usr/bin/env node
2
+ import "@explita/env-loader/auto";
3
+ import { spawn } from "node:child_process";
4
+ import { fileURLToPath } from "node:url";
5
+ import path from "node:path";
6
+ import fs from "node:fs";
7
+ import { createRequire } from "node:module";
8
+
9
+ const require = createRequire(import.meta.url);
10
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
+
12
+ const schemaPath = path.resolve(__dirname, "../prisma/schema.prisma");
13
+
14
+ if (!fs.existsSync(schemaPath)) {
15
+ console.error(`❌ Error: schema.prisma not found at expected path: ${schemaPath}`);
16
+ process.exit(1);
17
+ }
18
+
19
+ // Resolve prisma CLI binary
20
+ let prismaCliPath;
21
+ try {
22
+ const prismaPkgPath = require.resolve("prisma/package.json");
23
+ const prismaPkg = JSON.parse(fs.readFileSync(prismaPkgPath, "utf8"));
24
+ const binRelative = typeof prismaPkg.bin === "string" ? prismaPkg.bin : prismaPkg.bin?.prisma;
25
+ prismaCliPath = path.resolve(path.dirname(prismaPkgPath), binRelative);
26
+ } catch {
27
+ // If resolution fails, fallback to npx prisma in path
28
+ prismaCliPath = null;
29
+ }
30
+
31
+ const args = process.argv.slice(2);
32
+ const first = args[0];
33
+ const second = args[1];
34
+
35
+ const isHelp = !first || first === "--help" || first === "-h" || first === "help";
36
+
37
+ if (isHelp) {
38
+ console.log(`
39
+ Explita Tunnel Plugin CLI
40
+
41
+ Usage:
42
+ npx @explita/tunnel-server-plugin <command> [options]
43
+ tunnel-plugin <command> [options]
44
+
45
+ Commands:
46
+ db push, db:push Push the bundled Prisma schema to the database
47
+
48
+ Options:
49
+ --accept-data-loss Ignore data loss warnings
50
+ --force-reset Force a reset of the database before push
51
+ -h, --help Show this help message
52
+ `);
53
+ process.exit(0);
54
+ }
55
+
56
+ const isDbPush =
57
+ (first === "db" && second === "push") ||
58
+ first === "db:push" ||
59
+ first === "push";
60
+
61
+ if (isDbPush) {
62
+ const extraArgs =
63
+ first === "db" && second === "push"
64
+ ? args.slice(2)
65
+ : args.slice(1);
66
+
67
+ const hasHelpFlag = extraArgs.some((arg) => arg === "-h" || arg === "--help");
68
+ const dbUrl = process.env.DATABASE_URL;
69
+
70
+ if (!hasHelpFlag && !dbUrl) {
71
+ console.error("\n❌ Error: DATABASE_URL is required to push database schema.");
72
+ console.error("Please define DATABASE_URL in your .env file or environment.\n");
73
+ process.exit(1);
74
+ }
75
+
76
+ console.log("🚀 Pushing Explita Tunnel schema to database...\n");
77
+
78
+ const runner = prismaCliPath ? process.execPath : "npx";
79
+ const runnerArgs = [
80
+ ...(prismaCliPath ? [prismaCliPath] : ["prisma"]),
81
+ "db",
82
+ "push",
83
+ `--schema=${schemaPath}`,
84
+ ...(dbUrl ? [`--url=${dbUrl}`] : []),
85
+ ...extraArgs.filter((arg) => !arg.startsWith("--url")),
86
+ ];
87
+
88
+ const child = spawn(runner, runnerArgs, {
89
+ stdio: "inherit",
90
+ env: process.env,
91
+ });
92
+
93
+ child.on("exit", (code) => {
94
+ process.exit(code ?? 0);
95
+ });
96
+ } else {
97
+ console.error(`Unknown command: ${args.join(" ")}`);
98
+ console.error("Run 'tunnel-plugin --help' for usage.");
99
+ process.exit(1);
100
+ }
@@ -0,0 +1,25 @@
1
+ import * as Prisma from './internal/prismaNamespaceBrowser.js';
2
+ export { Prisma };
3
+ export * as $Enums from './enums.js';
4
+ export * from './enums.js';
5
+ /**
6
+ * Model Developer
7
+ *
8
+ */
9
+ export type Developer = Prisma.DeveloperModel;
10
+ /**
11
+ * Model Token
12
+ *
13
+ */
14
+ export type Token = Prisma.TokenModel;
15
+ /**
16
+ * Model DailyMetric
17
+ *
18
+ */
19
+ export type DailyMetric = Prisma.DailyMetricModel;
20
+ /**
21
+ * Model SystemMetric
22
+ *
23
+ */
24
+ export type SystemMetric = Prisma.SystemMetricModel;
25
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/generated/prisma/browser.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAC;AAC3B;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAA;AAC7C;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;AACrC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAA;AACjD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAA"}
@@ -0,0 +1,18 @@
1
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
+ /* eslint-disable */
3
+ // biome-ignore-all lint: generated file
4
+ // @ts-nocheck
5
+ /*
6
+ * This file should be your main import to use Prisma-related types and utilities in a browser.
7
+ * Use it to get access to models, enums, and input types.
8
+ *
9
+ * This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only.
10
+ * See `client.ts` for the standard, server-side entry point.
11
+ *
12
+ * 🟢 You can import this file directly.
13
+ */
14
+ import * as Prisma from './internal/prismaNamespaceBrowser.js';
15
+ export { Prisma };
16
+ export * as $Enums from './enums.js';
17
+ export * from './enums.js';
18
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/generated/prisma/browser.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,44 @@
1
+ import * as runtime from "@prisma/client/runtime/client";
2
+ import * as $Class from "./internal/class.js";
3
+ import * as Prisma from "./internal/prismaNamespace.js";
4
+ export * as $Enums from './enums.js';
5
+ export * from "./enums.js";
6
+ /**
7
+ * ## Prisma Client
8
+ *
9
+ * Type-safe database client for TypeScript
10
+ * @example
11
+ * ```
12
+ * const prisma = new PrismaClient({
13
+ * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
14
+ * })
15
+ * // Fetch zero or more Developers
16
+ * const developers = await prisma.developer.findMany()
17
+ * ```
18
+ *
19
+ * Read more in our [docs](https://pris.ly/d/client).
20
+ */
21
+ export declare const PrismaClient: $Class.PrismaClientConstructor;
22
+ export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>;
23
+ export { Prisma };
24
+ /**
25
+ * Model Developer
26
+ *
27
+ */
28
+ export type Developer = Prisma.DeveloperModel;
29
+ /**
30
+ * Model Token
31
+ *
32
+ */
33
+ export type Token = Prisma.TokenModel;
34
+ /**
35
+ * Model DailyMetric
36
+ *
37
+ */
38
+ export type DailyMetric = Prisma.DailyMetricModel;
39
+ /**
40
+ * Model SystemMetric
41
+ *
42
+ */
43
+ export type SystemMetric = Prisma.SystemMetricModel;
44
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/generated/prisma/client.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAExD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,gCAAgC,CAAA;AACzD,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,SAAS,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AAC3S,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAA;AAC7C;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;AACrC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAA;AACjD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAA"}
@@ -0,0 +1,35 @@
1
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
+ /* eslint-disable */
3
+ // biome-ignore-all lint: generated file
4
+ // @ts-nocheck
5
+ /*
6
+ * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
7
+ * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
8
+ *
9
+ * 🟢 You can import this file directly.
10
+ */
11
+ import * as path from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url));
14
+ import * as $Class from "./internal/class.js";
15
+ import * as Prisma from "./internal/prismaNamespace.js";
16
+ export * as $Enums from './enums.js';
17
+ export * from "./enums.js";
18
+ /**
19
+ * ## Prisma Client
20
+ *
21
+ * Type-safe database client for TypeScript
22
+ * @example
23
+ * ```
24
+ * const prisma = new PrismaClient({
25
+ * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
26
+ * })
27
+ * // Fetch zero or more Developers
28
+ * const developers = await prisma.developer.findMany()
29
+ * ```
30
+ *
31
+ * Read more in our [docs](https://pris.ly/d/client).
32
+ */
33
+ export const PrismaClient = $Class.getPrismaClientClass();
34
+ export { Prisma };
35
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/generated/prisma/client.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;GAKG;AAGH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAItE,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,278 @@
1
+ import type * as Prisma from "./internal/prismaNamespace.js";
2
+ export type StringFilter<$PrismaModel = never> = {
3
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>;
4
+ in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
5
+ notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
6
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
7
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
8
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
9
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
10
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>;
11
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
12
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
13
+ mode?: Prisma.QueryMode;
14
+ not?: Prisma.NestedStringFilter<$PrismaModel> | string;
15
+ };
16
+ export type DateTimeFilter<$PrismaModel = never> = {
17
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
18
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
19
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
20
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
21
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
22
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
23
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
24
+ not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string;
25
+ };
26
+ export type StringWithAggregatesFilter<$PrismaModel = never> = {
27
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>;
28
+ in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
29
+ notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
30
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
31
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
32
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
33
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
34
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>;
35
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
36
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
37
+ mode?: Prisma.QueryMode;
38
+ not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string;
39
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
40
+ _min?: Prisma.NestedStringFilter<$PrismaModel>;
41
+ _max?: Prisma.NestedStringFilter<$PrismaModel>;
42
+ };
43
+ export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
44
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
45
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
46
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
47
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
48
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
49
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
50
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
51
+ not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string;
52
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
53
+ _min?: Prisma.NestedDateTimeFilter<$PrismaModel>;
54
+ _max?: Prisma.NestedDateTimeFilter<$PrismaModel>;
55
+ };
56
+ export type DateTimeNullableFilter<$PrismaModel = never> = {
57
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
58
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
59
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
60
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
61
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
62
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
63
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
64
+ not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null;
65
+ };
66
+ export type SortOrderInput = {
67
+ sort: Prisma.SortOrder;
68
+ nulls?: Prisma.NullsOrder;
69
+ };
70
+ export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
71
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
72
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
73
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
74
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
75
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
76
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
77
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
78
+ not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null;
79
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
80
+ _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
81
+ _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
82
+ };
83
+ export type IntFilter<$PrismaModel = never> = {
84
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
85
+ in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
86
+ notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
87
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
88
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
89
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
90
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
91
+ not?: Prisma.NestedIntFilter<$PrismaModel> | number;
92
+ };
93
+ export type BigIntFilter<$PrismaModel = never> = {
94
+ equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
95
+ in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
96
+ notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
97
+ lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
98
+ lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
99
+ gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
100
+ gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
101
+ not?: Prisma.NestedBigIntFilter<$PrismaModel> | bigint | number;
102
+ };
103
+ export type IntWithAggregatesFilter<$PrismaModel = never> = {
104
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
105
+ in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
106
+ notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
107
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
108
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
109
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
110
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
111
+ not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number;
112
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
113
+ _avg?: Prisma.NestedFloatFilter<$PrismaModel>;
114
+ _sum?: Prisma.NestedIntFilter<$PrismaModel>;
115
+ _min?: Prisma.NestedIntFilter<$PrismaModel>;
116
+ _max?: Prisma.NestedIntFilter<$PrismaModel>;
117
+ };
118
+ export type BigIntWithAggregatesFilter<$PrismaModel = never> = {
119
+ equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
120
+ in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
121
+ notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
122
+ lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
123
+ lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
124
+ gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
125
+ gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
126
+ not?: Prisma.NestedBigIntWithAggregatesFilter<$PrismaModel> | bigint | number;
127
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
128
+ _avg?: Prisma.NestedFloatFilter<$PrismaModel>;
129
+ _sum?: Prisma.NestedBigIntFilter<$PrismaModel>;
130
+ _min?: Prisma.NestedBigIntFilter<$PrismaModel>;
131
+ _max?: Prisma.NestedBigIntFilter<$PrismaModel>;
132
+ };
133
+ export type NestedStringFilter<$PrismaModel = never> = {
134
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>;
135
+ in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
136
+ notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
137
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
138
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
139
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
140
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
141
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>;
142
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
143
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
144
+ not?: Prisma.NestedStringFilter<$PrismaModel> | string;
145
+ };
146
+ export type NestedDateTimeFilter<$PrismaModel = never> = {
147
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
148
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
149
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
150
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
151
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
152
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
153
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
154
+ not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string;
155
+ };
156
+ export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
157
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>;
158
+ in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
159
+ notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>;
160
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
161
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
162
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>;
163
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>;
164
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>;
165
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
166
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>;
167
+ not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string;
168
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
169
+ _min?: Prisma.NestedStringFilter<$PrismaModel>;
170
+ _max?: Prisma.NestedStringFilter<$PrismaModel>;
171
+ };
172
+ export type NestedIntFilter<$PrismaModel = never> = {
173
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
174
+ in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
175
+ notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
176
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
177
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
178
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
179
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
180
+ not?: Prisma.NestedIntFilter<$PrismaModel> | number;
181
+ };
182
+ export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
183
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
184
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
185
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>;
186
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
187
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
188
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
189
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
190
+ not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string;
191
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
192
+ _min?: Prisma.NestedDateTimeFilter<$PrismaModel>;
193
+ _max?: Prisma.NestedDateTimeFilter<$PrismaModel>;
194
+ };
195
+ export type NestedDateTimeNullableFilter<$PrismaModel = never> = {
196
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
197
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
198
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
199
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
200
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
201
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
202
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
203
+ not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null;
204
+ };
205
+ export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
206
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
207
+ in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
208
+ notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null;
209
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
210
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
211
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
212
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
213
+ not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null;
214
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
215
+ _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
216
+ _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
217
+ };
218
+ export type NestedIntNullableFilter<$PrismaModel = never> = {
219
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null;
220
+ in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null;
221
+ notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null;
222
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
223
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
224
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
225
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
226
+ not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null;
227
+ };
228
+ export type NestedBigIntFilter<$PrismaModel = never> = {
229
+ equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
230
+ in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
231
+ notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
232
+ lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
233
+ lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
234
+ gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
235
+ gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
236
+ not?: Prisma.NestedBigIntFilter<$PrismaModel> | bigint | number;
237
+ };
238
+ export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
239
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
240
+ in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
241
+ notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>;
242
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
243
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
244
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
245
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
246
+ not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number;
247
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
248
+ _avg?: Prisma.NestedFloatFilter<$PrismaModel>;
249
+ _sum?: Prisma.NestedIntFilter<$PrismaModel>;
250
+ _min?: Prisma.NestedIntFilter<$PrismaModel>;
251
+ _max?: Prisma.NestedIntFilter<$PrismaModel>;
252
+ };
253
+ export type NestedFloatFilter<$PrismaModel = never> = {
254
+ equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
255
+ in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>;
256
+ notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>;
257
+ lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
258
+ lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
259
+ gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
260
+ gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
261
+ not?: Prisma.NestedFloatFilter<$PrismaModel> | number;
262
+ };
263
+ export type NestedBigIntWithAggregatesFilter<$PrismaModel = never> = {
264
+ equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
265
+ in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
266
+ notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>;
267
+ lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
268
+ lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
269
+ gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
270
+ gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>;
271
+ not?: Prisma.NestedBigIntWithAggregatesFilter<$PrismaModel> | bigint | number;
272
+ _count?: Prisma.NestedIntFilter<$PrismaModel>;
273
+ _avg?: Prisma.NestedFloatFilter<$PrismaModel>;
274
+ _sum?: Prisma.NestedBigIntFilter<$PrismaModel>;
275
+ _min?: Prisma.NestedBigIntFilter<$PrismaModel>;
276
+ _max?: Prisma.NestedBigIntFilter<$PrismaModel>;
277
+ };
278
+ //# sourceMappingURL=commonInputTypes.d.ts.map