blackmistcode commited on
Commit
f4efb0e
·
verified ·
1 Parent(s): 5becaed

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. backend/node_modules/.prisma/client/client.d.ts +1 -0
  2. backend/node_modules/.prisma/client/client.js +5 -0
  3. backend/node_modules/.prisma/client/default.d.ts +1 -0
  4. backend/node_modules/.prisma/client/default.js +5 -0
  5. backend/node_modules/.prisma/client/edge.d.ts +1 -0
  6. backend/node_modules/.prisma/client/edge.js +259 -0
  7. backend/node_modules/.prisma/client/index-browser.js +246 -0
  8. backend/node_modules/.prisma/client/index.d.ts +0 -0
  9. backend/node_modules/.prisma/client/index.js +280 -0
  10. backend/node_modules/.prisma/client/package.json +183 -0
  11. backend/node_modules/.prisma/client/query_engine_bg.js +2 -0
  12. backend/node_modules/.prisma/client/schema.prisma +122 -0
  13. backend/node_modules/.prisma/client/wasm-edge-light-loader.mjs +5 -0
  14. backend/node_modules/.prisma/client/wasm-worker-loader.mjs +5 -0
  15. backend/node_modules/.prisma/client/wasm.d.ts +1 -0
  16. backend/node_modules/.prisma/client/wasm.js +266 -0
  17. backend/node_modules/@prisma/config/dist/index.d.ts +650 -0
  18. backend/node_modules/@prisma/config/dist/index.js +1000 -0
  19. backend/node_modules/@prisma/engines/dist/index.d.ts +26 -0
  20. backend/node_modules/@prisma/engines/dist/index.js +112 -0
  21. backend/node_modules/@prisma/engines/dist/scripts/localinstall.d.ts +1 -0
  22. backend/node_modules/@prisma/engines/dist/scripts/localinstall.js +2048 -0
  23. backend/node_modules/@prisma/engines/dist/scripts/postinstall.d.ts +1 -0
  24. backend/node_modules/@prisma/engines/dist/scripts/postinstall.js +122 -0
  25. backend/node_modules/@prisma/engines/scripts/postinstall.js +28 -0
  26. backend/node_modules/@prisma/fetch-engine/dist/chmodPlusX.js +25 -0
  27. backend/node_modules/@prisma/fetch-engine/dist/chunk-MWVY55RY.js +161 -0
  28. backend/node_modules/@prisma/fetch-engine/dist/chunk-RXM4EBGR.js +0 -0
  29. backend/node_modules/@prisma/fetch-engine/dist/downloadZip.js +30 -0
  30. backend/node_modules/@prisma/fetch-engine/dist/getHash.d.ts +1 -0
  31. backend/node_modules/@prisma/fetch-engine/dist/index.d.ts +5 -0
  32. backend/node_modules/@prisma/fetch-engine/dist/utils.js +29 -0
  33. backend/node_modules/effect/BigInt/package.json +6 -0
  34. backend/node_modules/effect/Clock/package.json +6 -0
  35. backend/node_modules/effect/ConfigProvider/package.json +6 -0
  36. backend/node_modules/effect/ConfigProviderPathPatch/package.json +6 -0
  37. backend/node_modules/effect/Console/package.json +6 -0
  38. backend/node_modules/effect/Context/package.json +6 -0
  39. backend/node_modules/effect/Cron/package.json +6 -0
  40. backend/node_modules/effect/Data/package.json +6 -0
  41. backend/node_modules/effect/Duration/package.json +6 -0
  42. backend/node_modules/effect/Effectable/package.json +6 -0
  43. backend/node_modules/effect/Either/package.json +6 -0
  44. backend/node_modules/effect/Equal/package.json +6 -0
  45. backend/node_modules/effect/ExecutionStrategy/package.json +6 -0
  46. backend/node_modules/effect/Exit/package.json +6 -0
  47. backend/node_modules/effect/Fiber/package.json +6 -0
  48. backend/node_modules/effect/FiberHandle/package.json +6 -0
  49. backend/node_modules/effect/FiberId/package.json +6 -0
  50. backend/node_modules/effect/FiberMap/package.json +6 -0
backend/node_modules/.prisma/client/client.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export * from "./index"
backend/node_modules/.prisma/client/client.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ module.exports = { ...require('.') }
backend/node_modules/.prisma/client/default.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export * from "./index"
backend/node_modules/.prisma/client/default.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ module.exports = { ...require('#main-entry-point') }
backend/node_modules/.prisma/client/edge.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export * from "./default"
backend/node_modules/.prisma/client/edge.js ADDED
@@ -0,0 +1,259 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+
8
+ const {
9
+ PrismaClientKnownRequestError,
10
+ PrismaClientUnknownRequestError,
11
+ PrismaClientRustPanicError,
12
+ PrismaClientInitializationError,
13
+ PrismaClientValidationError,
14
+ getPrismaClient,
15
+ sqltag,
16
+ empty,
17
+ join,
18
+ raw,
19
+ skip,
20
+ Decimal,
21
+ Debug,
22
+ objectEnumValues,
23
+ makeStrictEnum,
24
+ Extensions,
25
+ warnOnce,
26
+ defineDmmfProperty,
27
+ Public,
28
+ getRuntime,
29
+ createParam,
30
+ } = require('@prisma/client/runtime/edge.js')
31
+
32
+
33
+ const Prisma = {}
34
+
35
+ exports.Prisma = Prisma
36
+ exports.$Enums = {}
37
+
38
+ /**
39
+ * Prisma Client JS version: 6.19.3
40
+ * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
41
+ */
42
+ Prisma.prismaVersion = {
43
+ client: "6.19.3",
44
+ engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
45
+ }
46
+
47
+ Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
48
+ Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
49
+ Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
50
+ Prisma.PrismaClientInitializationError = PrismaClientInitializationError
51
+ Prisma.PrismaClientValidationError = PrismaClientValidationError
52
+ Prisma.Decimal = Decimal
53
+
54
+ /**
55
+ * Re-export of sql-template-tag
56
+ */
57
+ Prisma.sql = sqltag
58
+ Prisma.empty = empty
59
+ Prisma.join = join
60
+ Prisma.raw = raw
61
+ Prisma.validator = Public.validator
62
+
63
+ /**
64
+ * Extensions
65
+ */
66
+ Prisma.getExtensionContext = Extensions.getExtensionContext
67
+ Prisma.defineExtension = Extensions.defineExtension
68
+
69
+ /**
70
+ * Shorthand utilities for JSON filtering
71
+ */
72
+ Prisma.DbNull = objectEnumValues.instances.DbNull
73
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
74
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
75
+
76
+ Prisma.NullTypes = {
77
+ DbNull: objectEnumValues.classes.DbNull,
78
+ JsonNull: objectEnumValues.classes.JsonNull,
79
+ AnyNull: objectEnumValues.classes.AnyNull
80
+ }
81
+
82
+
83
+
84
+
85
+
86
+ /**
87
+ * Enums
88
+ */
89
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
90
+ Serializable: 'Serializable'
91
+ });
92
+
93
+ exports.Prisma.UserScalarFieldEnum = {
94
+ id: 'id',
95
+ email: 'email',
96
+ passwordHash: 'passwordHash',
97
+ isActive: 'isActive',
98
+ telegramChatId: 'telegramChatId',
99
+ createdAt: 'createdAt',
100
+ updatedAt: 'updatedAt'
101
+ };
102
+
103
+ exports.Prisma.MarketScalarFieldEnum = {
104
+ id: 'id',
105
+ question: 'question',
106
+ category: 'category',
107
+ countryCode: 'countryCode',
108
+ yesPrice: 'yesPrice',
109
+ noPrice: 'noPrice',
110
+ volumeEur: 'volumeEur',
111
+ liquidityEur: 'liquidityEur',
112
+ spread: 'spread',
113
+ bestBid: 'bestBid',
114
+ bestAsk: 'bestAsk',
115
+ clobTokenId: 'clobTokenId',
116
+ analyzable: 'analyzable',
117
+ status: 'status',
118
+ closesAt: 'closesAt',
119
+ lastSynced: 'lastSynced'
120
+ };
121
+
122
+ exports.Prisma.AISignalScalarFieldEnum = {
123
+ id: 'id',
124
+ marketId: 'marketId',
125
+ signal: 'signal',
126
+ confidence: 'confidence',
127
+ summary: 'summary',
128
+ keyRisk: 'keyRisk',
129
+ newsCount: 'newsCount',
130
+ modelVersion: 'modelVersion',
131
+ impliedProb: 'impliedProb',
132
+ fairProb: 'fairProb',
133
+ edgePoints: 'edgePoints',
134
+ generatedAt: 'generatedAt'
135
+ };
136
+
137
+ exports.Prisma.PositionScalarFieldEnum = {
138
+ id: 'id',
139
+ userId: 'userId',
140
+ marketId: 'marketId',
141
+ outcome: 'outcome',
142
+ amountEur: 'amountEur',
143
+ entryPrice: 'entryPrice',
144
+ currentPrice: 'currentPrice',
145
+ pnl: 'pnl',
146
+ kellyFraction: 'kellyFraction',
147
+ status: 'status',
148
+ openedAt: 'openedAt',
149
+ closedAt: 'closedAt'
150
+ };
151
+
152
+ exports.Prisma.WatchlistScalarFieldEnum = {
153
+ id: 'id',
154
+ userId: 'userId',
155
+ marketId: 'marketId',
156
+ alertThreshold: 'alertThreshold',
157
+ createdAt: 'createdAt'
158
+ };
159
+
160
+ exports.Prisma.AlertScalarFieldEnum = {
161
+ id: 'id',
162
+ userId: 'userId',
163
+ marketId: 'marketId',
164
+ type: 'type',
165
+ message: 'message',
166
+ sentAt: 'sentAt'
167
+ };
168
+
169
+ exports.Prisma.SortOrder = {
170
+ asc: 'asc',
171
+ desc: 'desc'
172
+ };
173
+
174
+ exports.Prisma.NullsOrder = {
175
+ first: 'first',
176
+ last: 'last'
177
+ };
178
+
179
+
180
+ exports.Prisma.ModelName = {
181
+ User: 'User',
182
+ Market: 'Market',
183
+ AISignal: 'AISignal',
184
+ Position: 'Position',
185
+ Watchlist: 'Watchlist',
186
+ Alert: 'Alert'
187
+ };
188
+ /**
189
+ * Create the Client
190
+ */
191
+ const config = {
192
+ "generator": {
193
+ "name": "client",
194
+ "provider": {
195
+ "fromEnvVar": null,
196
+ "value": "prisma-client-js"
197
+ },
198
+ "output": {
199
+ "value": "/Users/josesalazar/proyecto-hackaton/backend/node_modules/@prisma/client",
200
+ "fromEnvVar": null
201
+ },
202
+ "config": {
203
+ "engineType": "library"
204
+ },
205
+ "binaryTargets": [
206
+ {
207
+ "fromEnvVar": null,
208
+ "value": "darwin-arm64",
209
+ "native": true
210
+ }
211
+ ],
212
+ "previewFeatures": [],
213
+ "sourceFilePath": "/Users/josesalazar/proyecto-hackaton/backend/prisma/schema.prisma"
214
+ },
215
+ "relativeEnvPaths": {
216
+ "rootEnvPath": null,
217
+ "schemaEnvPath": "../../../.env"
218
+ },
219
+ "relativePath": "../../../prisma",
220
+ "clientVersion": "6.19.3",
221
+ "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
222
+ "datasourceNames": [
223
+ "db"
224
+ ],
225
+ "activeProvider": "sqlite",
226
+ "postinstall": false,
227
+ "inlineDatasources": {
228
+ "db": {
229
+ "url": {
230
+ "fromEnvVar": "DATABASE_URL",
231
+ "value": null
232
+ }
233
+ }
234
+ },
235
+ "inlineSchema": "/**\n * Schema de Prisma ORM para base de datos SQLite.\n * Define 6 modelos: User, Market, AISignal, Position, Watchlist, Alert.\n * Relaciones:\n * - Market 1:N AISignal, Position, Watchlist, Alert\n * - User 1:N Position, Watchlist, Alert\n * No modificar sin consenso del equipo. Generar migraciones con:\n * npx prisma migrate dev\n * npx prisma generate\n */\n\ngenerator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n email String @unique\n passwordHash String\n isActive Boolean @default(true)\n telegramChatId String? // Configurado manualmente para demo\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n positions Position[]\n watchlist Watchlist[]\n alerts Alert[]\n}\n\nmodel Market {\n id String @id // ID nativo de Polymarket\n question String // Texto de la pregunta del mercado\n category String? // politics | crypto | economics | sports\n countryCode String? // ISO2 — usado por Leaflet para burbujas\n yesPrice Float? // Precio YES: 0.0 a 1.0\n noPrice Float? // Precio NO: 0.0 a 1.0\n volumeEur Float? // Volumen en Eur\n liquidityEur Float? // Liquidez en Eur\n spread Float? // Bid/ask spread (0-1, ej 0.02 = 2c)\n bestBid Float? // Mejor oferta de compra\n bestAsk Float? // Mejor oferta de venta\n clobTokenId String? // YES outcome CLOB token ID (para prices-history)\n analyzable Boolean @default(true) // Si la IA tiene edge plausible aqui\n status String @default(\"active\") // active | closed | resolved\n closesAt DateTime? // Fecha de cierre del mercado\n lastSynced DateTime @default(now()) // Ultima sincronizacion de precios\n\n signals AISignal[]\n positions Position[]\n watchlist Watchlist[]\n alerts Alert[]\n}\n\nmodel AISignal {\n id Int @id @default(autoincrement())\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n signal String // bullish | bearish | neutral\n confidence Float // 0.0 a 1.0\n summary String? // 2 frases generadas por Qwen3\n keyRisk String? // 1 frase de riesgo principal\n newsCount Int @default(0) // Titulares relevantes usados\n modelVersion String @default(\"Qwen3-8B\") // Modelo LLM que genero la senal\n impliedProb Float? // Probabilidad implicita YES al generar (0-1)\n fairProb Float? // Probabilidad \"justa\" segun IA (0-1)\n edgePoints Float? // (fairProb - impliedProb) * 100, signo conserva direccion\n generatedAt DateTime @default(now())\n\n @@index([marketId, generatedAt])\n}\n\nmodel Position {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n outcome String // YES | NO\n amountEur Float // Capital virtual apostado\n entryPrice Float // Precio al abrir la posicion\n currentPrice Float? // Precio actual (actualizado por scheduler)\n pnl Float @default(0) // Profit and Loss calculado\n kellyFraction Float? // Fraccion de Kelly al abrir\n status String @default(\"open\") // open | closed\n openedAt DateTime @default(now())\n closedAt DateTime?\n\n @@index([userId, status])\n @@index([marketId])\n}\n\nmodel Watchlist {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n alertThreshold Float? // Umbral de precio para alerta Telegram\n createdAt DateTime @default(now())\n\n @@unique([userId, marketId])\n @@index([userId])\n}\n\nmodel Alert {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n type String // price_threshold | signal_change\n message String // Texto enviado por Telegram\n sentAt DateTime @default(now())\n\n @@index([userId, sentAt])\n @@index([marketId])\n}\n",
236
+ "inlineSchemaHash": "317e51352744228f8aa2577b7d08529ce57f6e47ee90dbf1318c8edc1a7164fb",
237
+ "copyEngine": true
238
+ }
239
+ config.dirname = '/'
240
+
241
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"telegramChatId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"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\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"positions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Position\",\"nativeType\":null,\"relationName\":\"PositionToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"watchlist\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Watchlist\",\"nativeType\":null,\"relationName\":\"UserToWatchlist\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"alerts\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Alert\",\"nativeType\":null,\"relationName\":\"AlertToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Market\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"question\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"category\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"countryCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"yesPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"noPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"volumeEur\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"liquidityEur\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"spread\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestBid\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestAsk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"clobTokenId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"analyzable\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"active\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"closesAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastSynced\",\"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\":\"signals\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"AISignal\",\"nativeType\":null,\"relationName\":\"AISignalToMarket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"positions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Position\",\"nativeType\":null,\"relationName\":\"MarketToPosition\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"watchlist\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Watchlist\",\"nativeType\":null,\"relationName\":\"MarketToWatchlist\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"alerts\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Alert\",\"nativeType\":null,\"relationName\":\"AlertToMarket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"AISignal\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"AISignalToMarket\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"signal\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confidence\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"summary\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"keyRisk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"newsCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"modelVersion\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"Qwen3-8B\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"impliedProb\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fairProb\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"edgePoints\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"generatedAt\",\"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}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Position\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"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\":\"PositionToUser\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"MarketToPosition\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"outcome\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amountEur\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"entryPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"currentPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pnl\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Float\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kellyFraction\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"open\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"openedAt\",\"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\":\"closedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Watchlist\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"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\":\"UserToWatchlist\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"MarketToWatchlist\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"alertThreshold\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"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}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"marketId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"userId\",\"marketId\"]}],\"isGenerated\":false},\"Alert\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"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\":\"AlertToUser\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"AlertToMarket\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"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\":\"message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sentAt\",\"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}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
242
+ defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
243
+ config.engineWasm = undefined
244
+ config.compilerWasm = undefined
245
+
246
+ config.injectableEdgeEnv = () => ({
247
+ parsed: {
248
+ DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined
249
+ }
250
+ })
251
+
252
+ if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
253
+ Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
254
+ }
255
+
256
+ const PrismaClient = getPrismaClient(config)
257
+ exports.PrismaClient = PrismaClient
258
+ Object.assign(exports, Prisma)
259
+
backend/node_modules/.prisma/client/index-browser.js ADDED
@@ -0,0 +1,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+
8
+ const {
9
+ Decimal,
10
+ objectEnumValues,
11
+ makeStrictEnum,
12
+ Public,
13
+ getRuntime,
14
+ skip
15
+ } = require('@prisma/client/runtime/index-browser.js')
16
+
17
+
18
+ const Prisma = {}
19
+
20
+ exports.Prisma = Prisma
21
+ exports.$Enums = {}
22
+
23
+ /**
24
+ * Prisma Client JS version: 6.19.3
25
+ * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
26
+ */
27
+ Prisma.prismaVersion = {
28
+ client: "6.19.3",
29
+ engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
30
+ }
31
+
32
+ Prisma.PrismaClientKnownRequestError = () => {
33
+ const runtimeName = getRuntime().prettyName;
34
+ throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
35
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
36
+ )};
37
+ Prisma.PrismaClientUnknownRequestError = () => {
38
+ const runtimeName = getRuntime().prettyName;
39
+ throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
40
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
41
+ )}
42
+ Prisma.PrismaClientRustPanicError = () => {
43
+ const runtimeName = getRuntime().prettyName;
44
+ throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
45
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
46
+ )}
47
+ Prisma.PrismaClientInitializationError = () => {
48
+ const runtimeName = getRuntime().prettyName;
49
+ throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
50
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
51
+ )}
52
+ Prisma.PrismaClientValidationError = () => {
53
+ const runtimeName = getRuntime().prettyName;
54
+ throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
55
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
56
+ )}
57
+ Prisma.Decimal = Decimal
58
+
59
+ /**
60
+ * Re-export of sql-template-tag
61
+ */
62
+ Prisma.sql = () => {
63
+ const runtimeName = getRuntime().prettyName;
64
+ throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
65
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
66
+ )}
67
+ Prisma.empty = () => {
68
+ const runtimeName = getRuntime().prettyName;
69
+ throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
70
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
71
+ )}
72
+ Prisma.join = () => {
73
+ const runtimeName = getRuntime().prettyName;
74
+ throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
75
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
76
+ )}
77
+ Prisma.raw = () => {
78
+ const runtimeName = getRuntime().prettyName;
79
+ throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
80
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
81
+ )}
82
+ Prisma.validator = Public.validator
83
+
84
+ /**
85
+ * Extensions
86
+ */
87
+ Prisma.getExtensionContext = () => {
88
+ const runtimeName = getRuntime().prettyName;
89
+ throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
90
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
91
+ )}
92
+ Prisma.defineExtension = () => {
93
+ const runtimeName = getRuntime().prettyName;
94
+ throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
95
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
96
+ )}
97
+
98
+ /**
99
+ * Shorthand utilities for JSON filtering
100
+ */
101
+ Prisma.DbNull = objectEnumValues.instances.DbNull
102
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
103
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
104
+
105
+ Prisma.NullTypes = {
106
+ DbNull: objectEnumValues.classes.DbNull,
107
+ JsonNull: objectEnumValues.classes.JsonNull,
108
+ AnyNull: objectEnumValues.classes.AnyNull
109
+ }
110
+
111
+
112
+
113
+ /**
114
+ * Enums
115
+ */
116
+
117
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
118
+ Serializable: 'Serializable'
119
+ });
120
+
121
+ exports.Prisma.UserScalarFieldEnum = {
122
+ id: 'id',
123
+ email: 'email',
124
+ passwordHash: 'passwordHash',
125
+ isActive: 'isActive',
126
+ telegramChatId: 'telegramChatId',
127
+ createdAt: 'createdAt',
128
+ updatedAt: 'updatedAt'
129
+ };
130
+
131
+ exports.Prisma.MarketScalarFieldEnum = {
132
+ id: 'id',
133
+ question: 'question',
134
+ category: 'category',
135
+ countryCode: 'countryCode',
136
+ yesPrice: 'yesPrice',
137
+ noPrice: 'noPrice',
138
+ volumeEur: 'volumeEur',
139
+ liquidityEur: 'liquidityEur',
140
+ spread: 'spread',
141
+ bestBid: 'bestBid',
142
+ bestAsk: 'bestAsk',
143
+ clobTokenId: 'clobTokenId',
144
+ analyzable: 'analyzable',
145
+ status: 'status',
146
+ closesAt: 'closesAt',
147
+ lastSynced: 'lastSynced'
148
+ };
149
+
150
+ exports.Prisma.AISignalScalarFieldEnum = {
151
+ id: 'id',
152
+ marketId: 'marketId',
153
+ signal: 'signal',
154
+ confidence: 'confidence',
155
+ summary: 'summary',
156
+ keyRisk: 'keyRisk',
157
+ newsCount: 'newsCount',
158
+ modelVersion: 'modelVersion',
159
+ impliedProb: 'impliedProb',
160
+ fairProb: 'fairProb',
161
+ edgePoints: 'edgePoints',
162
+ generatedAt: 'generatedAt'
163
+ };
164
+
165
+ exports.Prisma.PositionScalarFieldEnum = {
166
+ id: 'id',
167
+ userId: 'userId',
168
+ marketId: 'marketId',
169
+ outcome: 'outcome',
170
+ amountEur: 'amountEur',
171
+ entryPrice: 'entryPrice',
172
+ currentPrice: 'currentPrice',
173
+ pnl: 'pnl',
174
+ kellyFraction: 'kellyFraction',
175
+ status: 'status',
176
+ openedAt: 'openedAt',
177
+ closedAt: 'closedAt'
178
+ };
179
+
180
+ exports.Prisma.WatchlistScalarFieldEnum = {
181
+ id: 'id',
182
+ userId: 'userId',
183
+ marketId: 'marketId',
184
+ alertThreshold: 'alertThreshold',
185
+ createdAt: 'createdAt'
186
+ };
187
+
188
+ exports.Prisma.AlertScalarFieldEnum = {
189
+ id: 'id',
190
+ userId: 'userId',
191
+ marketId: 'marketId',
192
+ type: 'type',
193
+ message: 'message',
194
+ sentAt: 'sentAt'
195
+ };
196
+
197
+ exports.Prisma.SortOrder = {
198
+ asc: 'asc',
199
+ desc: 'desc'
200
+ };
201
+
202
+ exports.Prisma.NullsOrder = {
203
+ first: 'first',
204
+ last: 'last'
205
+ };
206
+
207
+
208
+ exports.Prisma.ModelName = {
209
+ User: 'User',
210
+ Market: 'Market',
211
+ AISignal: 'AISignal',
212
+ Position: 'Position',
213
+ Watchlist: 'Watchlist',
214
+ Alert: 'Alert'
215
+ };
216
+
217
+ /**
218
+ * This is a stub Prisma Client that will error at runtime if called.
219
+ */
220
+ class PrismaClient {
221
+ constructor() {
222
+ return new Proxy(this, {
223
+ get(target, prop) {
224
+ let message
225
+ const runtime = getRuntime()
226
+ if (runtime.isEdge) {
227
+ message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either:
228
+ - Use Prisma Accelerate: https://pris.ly/d/accelerate
229
+ - Use Driver Adapters: https://pris.ly/d/driver-adapters
230
+ `;
231
+ } else {
232
+ message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).'
233
+ }
234
+
235
+ message += `
236
+ If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report`
237
+
238
+ throw new Error(message)
239
+ }
240
+ })
241
+ }
242
+ }
243
+
244
+ exports.PrismaClient = PrismaClient
245
+
246
+ Object.assign(exports, Prisma)
backend/node_modules/.prisma/client/index.d.ts ADDED
The diff for this file is too large to render. See raw diff
 
backend/node_modules/.prisma/client/index.js ADDED
@@ -0,0 +1,280 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+
8
+ const {
9
+ PrismaClientKnownRequestError,
10
+ PrismaClientUnknownRequestError,
11
+ PrismaClientRustPanicError,
12
+ PrismaClientInitializationError,
13
+ PrismaClientValidationError,
14
+ getPrismaClient,
15
+ sqltag,
16
+ empty,
17
+ join,
18
+ raw,
19
+ skip,
20
+ Decimal,
21
+ Debug,
22
+ objectEnumValues,
23
+ makeStrictEnum,
24
+ Extensions,
25
+ warnOnce,
26
+ defineDmmfProperty,
27
+ Public,
28
+ getRuntime,
29
+ createParam,
30
+ } = require('@prisma/client/runtime/library.js')
31
+
32
+
33
+ const Prisma = {}
34
+
35
+ exports.Prisma = Prisma
36
+ exports.$Enums = {}
37
+
38
+ /**
39
+ * Prisma Client JS version: 6.19.3
40
+ * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
41
+ */
42
+ Prisma.prismaVersion = {
43
+ client: "6.19.3",
44
+ engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
45
+ }
46
+
47
+ Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
48
+ Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
49
+ Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
50
+ Prisma.PrismaClientInitializationError = PrismaClientInitializationError
51
+ Prisma.PrismaClientValidationError = PrismaClientValidationError
52
+ Prisma.Decimal = Decimal
53
+
54
+ /**
55
+ * Re-export of sql-template-tag
56
+ */
57
+ Prisma.sql = sqltag
58
+ Prisma.empty = empty
59
+ Prisma.join = join
60
+ Prisma.raw = raw
61
+ Prisma.validator = Public.validator
62
+
63
+ /**
64
+ * Extensions
65
+ */
66
+ Prisma.getExtensionContext = Extensions.getExtensionContext
67
+ Prisma.defineExtension = Extensions.defineExtension
68
+
69
+ /**
70
+ * Shorthand utilities for JSON filtering
71
+ */
72
+ Prisma.DbNull = objectEnumValues.instances.DbNull
73
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
74
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
75
+
76
+ Prisma.NullTypes = {
77
+ DbNull: objectEnumValues.classes.DbNull,
78
+ JsonNull: objectEnumValues.classes.JsonNull,
79
+ AnyNull: objectEnumValues.classes.AnyNull
80
+ }
81
+
82
+
83
+
84
+
85
+ const path = require('path')
86
+
87
+ /**
88
+ * Enums
89
+ */
90
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
91
+ Serializable: 'Serializable'
92
+ });
93
+
94
+ exports.Prisma.UserScalarFieldEnum = {
95
+ id: 'id',
96
+ email: 'email',
97
+ passwordHash: 'passwordHash',
98
+ isActive: 'isActive',
99
+ telegramChatId: 'telegramChatId',
100
+ createdAt: 'createdAt',
101
+ updatedAt: 'updatedAt'
102
+ };
103
+
104
+ exports.Prisma.MarketScalarFieldEnum = {
105
+ id: 'id',
106
+ question: 'question',
107
+ category: 'category',
108
+ countryCode: 'countryCode',
109
+ yesPrice: 'yesPrice',
110
+ noPrice: 'noPrice',
111
+ volumeEur: 'volumeEur',
112
+ liquidityEur: 'liquidityEur',
113
+ spread: 'spread',
114
+ bestBid: 'bestBid',
115
+ bestAsk: 'bestAsk',
116
+ clobTokenId: 'clobTokenId',
117
+ analyzable: 'analyzable',
118
+ status: 'status',
119
+ closesAt: 'closesAt',
120
+ lastSynced: 'lastSynced'
121
+ };
122
+
123
+ exports.Prisma.AISignalScalarFieldEnum = {
124
+ id: 'id',
125
+ marketId: 'marketId',
126
+ signal: 'signal',
127
+ confidence: 'confidence',
128
+ summary: 'summary',
129
+ keyRisk: 'keyRisk',
130
+ newsCount: 'newsCount',
131
+ modelVersion: 'modelVersion',
132
+ impliedProb: 'impliedProb',
133
+ fairProb: 'fairProb',
134
+ edgePoints: 'edgePoints',
135
+ generatedAt: 'generatedAt'
136
+ };
137
+
138
+ exports.Prisma.PositionScalarFieldEnum = {
139
+ id: 'id',
140
+ userId: 'userId',
141
+ marketId: 'marketId',
142
+ outcome: 'outcome',
143
+ amountEur: 'amountEur',
144
+ entryPrice: 'entryPrice',
145
+ currentPrice: 'currentPrice',
146
+ pnl: 'pnl',
147
+ kellyFraction: 'kellyFraction',
148
+ status: 'status',
149
+ openedAt: 'openedAt',
150
+ closedAt: 'closedAt'
151
+ };
152
+
153
+ exports.Prisma.WatchlistScalarFieldEnum = {
154
+ id: 'id',
155
+ userId: 'userId',
156
+ marketId: 'marketId',
157
+ alertThreshold: 'alertThreshold',
158
+ createdAt: 'createdAt'
159
+ };
160
+
161
+ exports.Prisma.AlertScalarFieldEnum = {
162
+ id: 'id',
163
+ userId: 'userId',
164
+ marketId: 'marketId',
165
+ type: 'type',
166
+ message: 'message',
167
+ sentAt: 'sentAt'
168
+ };
169
+
170
+ exports.Prisma.SortOrder = {
171
+ asc: 'asc',
172
+ desc: 'desc'
173
+ };
174
+
175
+ exports.Prisma.NullsOrder = {
176
+ first: 'first',
177
+ last: 'last'
178
+ };
179
+
180
+
181
+ exports.Prisma.ModelName = {
182
+ User: 'User',
183
+ Market: 'Market',
184
+ AISignal: 'AISignal',
185
+ Position: 'Position',
186
+ Watchlist: 'Watchlist',
187
+ Alert: 'Alert'
188
+ };
189
+ /**
190
+ * Create the Client
191
+ */
192
+ const config = {
193
+ "generator": {
194
+ "name": "client",
195
+ "provider": {
196
+ "fromEnvVar": null,
197
+ "value": "prisma-client-js"
198
+ },
199
+ "output": {
200
+ "value": "/Users/josesalazar/proyecto-hackaton/backend/node_modules/@prisma/client",
201
+ "fromEnvVar": null
202
+ },
203
+ "config": {
204
+ "engineType": "library"
205
+ },
206
+ "binaryTargets": [
207
+ {
208
+ "fromEnvVar": null,
209
+ "value": "darwin-arm64",
210
+ "native": true
211
+ }
212
+ ],
213
+ "previewFeatures": [],
214
+ "sourceFilePath": "/Users/josesalazar/proyecto-hackaton/backend/prisma/schema.prisma"
215
+ },
216
+ "relativeEnvPaths": {
217
+ "rootEnvPath": null,
218
+ "schemaEnvPath": "../../../.env"
219
+ },
220
+ "relativePath": "../../../prisma",
221
+ "clientVersion": "6.19.3",
222
+ "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
223
+ "datasourceNames": [
224
+ "db"
225
+ ],
226
+ "activeProvider": "sqlite",
227
+ "postinstall": false,
228
+ "inlineDatasources": {
229
+ "db": {
230
+ "url": {
231
+ "fromEnvVar": "DATABASE_URL",
232
+ "value": null
233
+ }
234
+ }
235
+ },
236
+ "inlineSchema": "/**\n * Schema de Prisma ORM para base de datos SQLite.\n * Define 6 modelos: User, Market, AISignal, Position, Watchlist, Alert.\n * Relaciones:\n * - Market 1:N AISignal, Position, Watchlist, Alert\n * - User 1:N Position, Watchlist, Alert\n * No modificar sin consenso del equipo. Generar migraciones con:\n * npx prisma migrate dev\n * npx prisma generate\n */\n\ngenerator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n email String @unique\n passwordHash String\n isActive Boolean @default(true)\n telegramChatId String? // Configurado manualmente para demo\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n positions Position[]\n watchlist Watchlist[]\n alerts Alert[]\n}\n\nmodel Market {\n id String @id // ID nativo de Polymarket\n question String // Texto de la pregunta del mercado\n category String? // politics | crypto | economics | sports\n countryCode String? // ISO2 — usado por Leaflet para burbujas\n yesPrice Float? // Precio YES: 0.0 a 1.0\n noPrice Float? // Precio NO: 0.0 a 1.0\n volumeEur Float? // Volumen en Eur\n liquidityEur Float? // Liquidez en Eur\n spread Float? // Bid/ask spread (0-1, ej 0.02 = 2c)\n bestBid Float? // Mejor oferta de compra\n bestAsk Float? // Mejor oferta de venta\n clobTokenId String? // YES outcome CLOB token ID (para prices-history)\n analyzable Boolean @default(true) // Si la IA tiene edge plausible aqui\n status String @default(\"active\") // active | closed | resolved\n closesAt DateTime? // Fecha de cierre del mercado\n lastSynced DateTime @default(now()) // Ultima sincronizacion de precios\n\n signals AISignal[]\n positions Position[]\n watchlist Watchlist[]\n alerts Alert[]\n}\n\nmodel AISignal {\n id Int @id @default(autoincrement())\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n signal String // bullish | bearish | neutral\n confidence Float // 0.0 a 1.0\n summary String? // 2 frases generadas por Qwen3\n keyRisk String? // 1 frase de riesgo principal\n newsCount Int @default(0) // Titulares relevantes usados\n modelVersion String @default(\"Qwen3-8B\") // Modelo LLM que genero la senal\n impliedProb Float? // Probabilidad implicita YES al generar (0-1)\n fairProb Float? // Probabilidad \"justa\" segun IA (0-1)\n edgePoints Float? // (fairProb - impliedProb) * 100, signo conserva direccion\n generatedAt DateTime @default(now())\n\n @@index([marketId, generatedAt])\n}\n\nmodel Position {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n outcome String // YES | NO\n amountEur Float // Capital virtual apostado\n entryPrice Float // Precio al abrir la posicion\n currentPrice Float? // Precio actual (actualizado por scheduler)\n pnl Float @default(0) // Profit and Loss calculado\n kellyFraction Float? // Fraccion de Kelly al abrir\n status String @default(\"open\") // open | closed\n openedAt DateTime @default(now())\n closedAt DateTime?\n\n @@index([userId, status])\n @@index([marketId])\n}\n\nmodel Watchlist {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n alertThreshold Float? // Umbral de precio para alerta Telegram\n createdAt DateTime @default(now())\n\n @@unique([userId, marketId])\n @@index([userId])\n}\n\nmodel Alert {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n type String // price_threshold | signal_change\n message String // Texto enviado por Telegram\n sentAt DateTime @default(now())\n\n @@index([userId, sentAt])\n @@index([marketId])\n}\n",
237
+ "inlineSchemaHash": "317e51352744228f8aa2577b7d08529ce57f6e47ee90dbf1318c8edc1a7164fb",
238
+ "copyEngine": true
239
+ }
240
+
241
+ const fs = require('fs')
242
+
243
+ config.dirname = __dirname
244
+ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {
245
+ const alternativePaths = [
246
+ "node_modules/.prisma/client",
247
+ ".prisma/client",
248
+ ]
249
+
250
+ const alternativePath = alternativePaths.find((altPath) => {
251
+ return fs.existsSync(path.join(process.cwd(), altPath, 'schema.prisma'))
252
+ }) ?? alternativePaths[0]
253
+
254
+ config.dirname = path.join(process.cwd(), alternativePath)
255
+ config.isBundled = true
256
+ }
257
+
258
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"telegramChatId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"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\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"positions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Position\",\"nativeType\":null,\"relationName\":\"PositionToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"watchlist\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Watchlist\",\"nativeType\":null,\"relationName\":\"UserToWatchlist\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"alerts\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Alert\",\"nativeType\":null,\"relationName\":\"AlertToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Market\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"question\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"category\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"countryCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"yesPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"noPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"volumeEur\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"liquidityEur\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"spread\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestBid\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"bestAsk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"clobTokenId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"analyzable\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"active\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"closesAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastSynced\",\"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\":\"signals\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"AISignal\",\"nativeType\":null,\"relationName\":\"AISignalToMarket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"positions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Position\",\"nativeType\":null,\"relationName\":\"MarketToPosition\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"watchlist\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Watchlist\",\"nativeType\":null,\"relationName\":\"MarketToWatchlist\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"alerts\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Alert\",\"nativeType\":null,\"relationName\":\"AlertToMarket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"AISignal\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"AISignalToMarket\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"signal\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"confidence\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"summary\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"keyRisk\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"newsCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"modelVersion\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"Qwen3-8B\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"impliedProb\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fairProb\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"edgePoints\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"generatedAt\",\"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}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Position\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"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\":\"PositionToUser\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"MarketToPosition\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"outcome\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amountEur\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"entryPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"currentPrice\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"pnl\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Float\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kellyFraction\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"open\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"openedAt\",\"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\":\"closedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Watchlist\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"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\":\"UserToWatchlist\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"MarketToWatchlist\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"alertThreshold\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"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}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"marketId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"userId\",\"marketId\"]}],\"isGenerated\":false},\"Alert\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"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\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"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\":\"AlertToUser\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"marketId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"market\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Market\",\"nativeType\":null,\"relationName\":\"AlertToMarket\",\"relationFromFields\":[\"marketId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"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\":\"message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sentAt\",\"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}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
259
+ defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
260
+ config.engineWasm = undefined
261
+ config.compilerWasm = undefined
262
+
263
+
264
+ const { warnEnvConflicts } = require('@prisma/client/runtime/library.js')
265
+
266
+ warnEnvConflicts({
267
+ rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath),
268
+ schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath)
269
+ })
270
+
271
+ const PrismaClient = getPrismaClient(config)
272
+ exports.PrismaClient = PrismaClient
273
+ Object.assign(exports, Prisma)
274
+
275
+ // file annotations for bundling tools to include these files
276
+ path.join(__dirname, "libquery_engine-darwin-arm64.dylib.node");
277
+ path.join(process.cwd(), "node_modules/.prisma/client/libquery_engine-darwin-arm64.dylib.node")
278
+ // file annotations for bundling tools to include these files
279
+ path.join(__dirname, "schema.prisma");
280
+ path.join(process.cwd(), "node_modules/.prisma/client/schema.prisma")
backend/node_modules/.prisma/client/package.json ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "prisma-client-0634aaa4a404cb6a55c8296bd6bae6d8210c064fb5efe184937dbdfcfb1dac35",
3
+ "main": "index.js",
4
+ "types": "index.d.ts",
5
+ "browser": "default.js",
6
+ "exports": {
7
+ "./client": {
8
+ "require": {
9
+ "node": "./index.js",
10
+ "edge-light": "./wasm.js",
11
+ "workerd": "./wasm.js",
12
+ "worker": "./wasm.js",
13
+ "browser": "./index-browser.js",
14
+ "default": "./index.js"
15
+ },
16
+ "import": {
17
+ "node": "./index.js",
18
+ "edge-light": "./wasm.js",
19
+ "workerd": "./wasm.js",
20
+ "worker": "./wasm.js",
21
+ "browser": "./index-browser.js",
22
+ "default": "./index.js"
23
+ },
24
+ "default": "./index.js"
25
+ },
26
+ "./package.json": "./package.json",
27
+ ".": {
28
+ "require": {
29
+ "node": "./index.js",
30
+ "edge-light": "./wasm.js",
31
+ "workerd": "./wasm.js",
32
+ "worker": "./wasm.js",
33
+ "browser": "./index-browser.js",
34
+ "default": "./index.js"
35
+ },
36
+ "import": {
37
+ "node": "./index.js",
38
+ "edge-light": "./wasm.js",
39
+ "workerd": "./wasm.js",
40
+ "worker": "./wasm.js",
41
+ "browser": "./index-browser.js",
42
+ "default": "./index.js"
43
+ },
44
+ "default": "./index.js"
45
+ },
46
+ "./edge": {
47
+ "types": "./edge.d.ts",
48
+ "require": "./edge.js",
49
+ "import": "./edge.js",
50
+ "default": "./edge.js"
51
+ },
52
+ "./react-native": {
53
+ "types": "./react-native.d.ts",
54
+ "require": "./react-native.js",
55
+ "import": "./react-native.js",
56
+ "default": "./react-native.js"
57
+ },
58
+ "./extension": {
59
+ "types": "./extension.d.ts",
60
+ "require": "./extension.js",
61
+ "import": "./extension.js",
62
+ "default": "./extension.js"
63
+ },
64
+ "./index-browser": {
65
+ "types": "./index.d.ts",
66
+ "require": "./index-browser.js",
67
+ "import": "./index-browser.js",
68
+ "default": "./index-browser.js"
69
+ },
70
+ "./index": {
71
+ "types": "./index.d.ts",
72
+ "require": "./index.js",
73
+ "import": "./index.js",
74
+ "default": "./index.js"
75
+ },
76
+ "./wasm": {
77
+ "types": "./wasm.d.ts",
78
+ "require": "./wasm.js",
79
+ "import": "./wasm.mjs",
80
+ "default": "./wasm.mjs"
81
+ },
82
+ "./runtime/client": {
83
+ "types": "./runtime/client.d.ts",
84
+ "node": {
85
+ "require": "./runtime/client.js",
86
+ "default": "./runtime/client.js"
87
+ },
88
+ "require": "./runtime/client.js",
89
+ "import": "./runtime/client.mjs",
90
+ "default": "./runtime/client.mjs"
91
+ },
92
+ "./runtime/library": {
93
+ "types": "./runtime/library.d.ts",
94
+ "require": "./runtime/library.js",
95
+ "import": "./runtime/library.mjs",
96
+ "default": "./runtime/library.mjs"
97
+ },
98
+ "./runtime/binary": {
99
+ "types": "./runtime/binary.d.ts",
100
+ "require": "./runtime/binary.js",
101
+ "import": "./runtime/binary.mjs",
102
+ "default": "./runtime/binary.mjs"
103
+ },
104
+ "./runtime/wasm-engine-edge": {
105
+ "types": "./runtime/wasm-engine-edge.d.ts",
106
+ "require": "./runtime/wasm-engine-edge.js",
107
+ "import": "./runtime/wasm-engine-edge.mjs",
108
+ "default": "./runtime/wasm-engine-edge.mjs"
109
+ },
110
+ "./runtime/wasm-compiler-edge": {
111
+ "types": "./runtime/wasm-compiler-edge.d.ts",
112
+ "require": "./runtime/wasm-compiler-edge.js",
113
+ "import": "./runtime/wasm-compiler-edge.mjs",
114
+ "default": "./runtime/wasm-compiler-edge.mjs"
115
+ },
116
+ "./runtime/edge": {
117
+ "types": "./runtime/edge.d.ts",
118
+ "require": "./runtime/edge.js",
119
+ "import": "./runtime/edge-esm.js",
120
+ "default": "./runtime/edge-esm.js"
121
+ },
122
+ "./runtime/react-native": {
123
+ "types": "./runtime/react-native.d.ts",
124
+ "require": "./runtime/react-native.js",
125
+ "import": "./runtime/react-native.js",
126
+ "default": "./runtime/react-native.js"
127
+ },
128
+ "./runtime/index-browser": {
129
+ "types": "./runtime/index-browser.d.ts",
130
+ "require": "./runtime/index-browser.js",
131
+ "import": "./runtime/index-browser.mjs",
132
+ "default": "./runtime/index-browser.mjs"
133
+ },
134
+ "./generator-build": {
135
+ "require": "./generator-build/index.js",
136
+ "import": "./generator-build/index.js",
137
+ "default": "./generator-build/index.js"
138
+ },
139
+ "./sql": {
140
+ "require": {
141
+ "types": "./sql.d.ts",
142
+ "node": "./sql.js",
143
+ "default": "./sql.js"
144
+ },
145
+ "import": {
146
+ "types": "./sql.d.ts",
147
+ "node": "./sql.mjs",
148
+ "default": "./sql.mjs"
149
+ },
150
+ "default": "./sql.js"
151
+ },
152
+ "./*": "./*"
153
+ },
154
+ "version": "6.19.3",
155
+ "sideEffects": false,
156
+ "imports": {
157
+ "#wasm-engine-loader": {
158
+ "edge-light": "./wasm-edge-light-loader.mjs",
159
+ "workerd": "./wasm-worker-loader.mjs",
160
+ "worker": "./wasm-worker-loader.mjs",
161
+ "default": "./wasm-worker-loader.mjs"
162
+ },
163
+ "#main-entry-point": {
164
+ "require": {
165
+ "node": "./index.js",
166
+ "edge-light": "./wasm.js",
167
+ "workerd": "./wasm.js",
168
+ "worker": "./wasm.js",
169
+ "browser": "./index-browser.js",
170
+ "default": "./index.js"
171
+ },
172
+ "import": {
173
+ "node": "./index.js",
174
+ "edge-light": "./wasm.js",
175
+ "workerd": "./wasm.js",
176
+ "worker": "./wasm.js",
177
+ "browser": "./index-browser.js",
178
+ "default": "./index.js"
179
+ },
180
+ "default": "./index.js"
181
+ }
182
+ }
183
+ }
backend/node_modules/.prisma/client/query_engine_bg.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ "use strict";var F=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var n in t)F(e,n,{get:t[n],enumerable:!0})},N=(e,t,n,_)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of R(t))!U.call(e,o)&&o!==n&&F(e,o,{get:()=>t[o],enumerable:!(_=B(t,o))||_.enumerable});return e};var C=e=>N(F({},"__esModule",{value:!0}),e);var qt={};L(qt,{QueryEngine:()=>E,__wbg_Error_e83987f665cf5504:()=>J,__wbg_Number_bb48ca12f395cd08:()=>X,__wbg_String_8f0eb39a4a4c2f66:()=>Y,__wbg___wbindgen_bigint_get_as_i64_f3ebc5a755000afd:()=>K,__wbg___wbindgen_boolean_get_6d5a1ee65bab5f68:()=>Z,__wbg___wbindgen_debug_string_df47ffb5e35e6763:()=>ee,__wbg___wbindgen_in_bb933bd9e1b3bc0f:()=>te,__wbg___wbindgen_is_bigint_cb320707dcd35f0b:()=>ne,__wbg___wbindgen_is_function_ee8a6c5833c90377:()=>re,__wbg___wbindgen_is_object_c818261d21f283a4:()=>_e,__wbg___wbindgen_is_string_fbb76cb2940daafd:()=>oe,__wbg___wbindgen_is_undefined_2d472862bd29a478:()=>ce,__wbg___wbindgen_jsval_eq_6b13ab83478b1c50:()=>ie,__wbg___wbindgen_jsval_loose_eq_b664b38a2f582147:()=>se,__wbg___wbindgen_number_get_a20bf9b85341449d:()=>ue,__wbg___wbindgen_string_get_e4f06c90489ad01b:()=>be,__wbg___wbindgen_throw_b855445ff6a94295:()=>fe,__wbg__wbg_cb_unref_2454a539ea5790d9:()=>ae,__wbg_call_525440f72fbfc0ea:()=>ge,__wbg_call_e762c39fa8ea36bf:()=>le,__wbg_crypto_805be4ce92f1e370:()=>de,__wbg_done_2042aa2670fb1db1:()=>we,__wbg_entries_e171b586f8f6bdbf:()=>pe,__wbg_getRandomValues_f6a868620c8bab49:()=>xe,__wbg_getTime_14776bfb48a1bff9:()=>ye,__wbg_get_7bed016f185add81:()=>me,__wbg_get_ece95cf6585650d9:()=>he,__wbg_get_efcb449f58ec27c2:()=>Te,__wbg_get_with_ref_key_1dc361bd10053bfe:()=>Ae,__wbg_has_787fafc980c3ccdb:()=>Se,__wbg_instanceof_ArrayBuffer_70beb1189ca63b38:()=>Fe,__wbg_instanceof_Map_8579b5e2ab5437c7:()=>Ie,__wbg_instanceof_Promise_001fdd42afa1b7ef:()=>qe,__wbg_instanceof_Uint8Array_20c8e73002f7af98:()=>ke,__wbg_isArray_96e0af9891d0945d:()=>Ee,__wbg_isSafeInteger_d216eda7911dde36:()=>Oe,__wbg_iterator_e5822695327a3c39:()=>Me,__wbg_keys_b4d27b02ad14f4be:()=>ve,__wbg_length_69bca3cb64fc8748:()=>De,__wbg_length_cdd215e10d9dd507:()=>je,__wbg_msCrypto_2ac4d17c4748234a:()=>Be,__wbg_new_0_f9740686d739025c:()=>Re,__wbg_new_1acc0b6eea89d040:()=>Ue,__wbg_new_3c3d849046688a66:()=>Le,__wbg_new_5a79be3ab53b8aa5:()=>Ne,__wbg_new_68651c719dcda04e:()=>Ce,__wbg_new_e17d9f43105b08be:()=>$e,__wbg_new_from_slice_92f4d78ca282a2d2:()=>Ve,__wbg_new_no_args_ee98eee5275000a4:()=>We,__wbg_new_with_length_01aa0dc35aa13543:()=>ze,__wbg_next_020810e0ae8ebcb0:()=>Pe,__wbg_next_2c826fe5dfec6b6a:()=>Ge,__wbg_node_ecc8306b9857f33d:()=>Qe,__wbg_now_793306c526e2e3b6:()=>He,__wbg_now_7fd00a794a07d388:()=>Je,__wbg_now_b3f7572f6ef3d3a9:()=>Xe,__wbg_process_5cff2739921be718:()=>Ye,__wbg_prototypesetcall_2a6620b6922694b2:()=>Ke,__wbg_push_df81a39d04db858c:()=>Ze,__wbg_queueMicrotask_5a8a9131f3f0b37b:()=>et,__wbg_queueMicrotask_6d79674585219521:()=>tt,__wbg_randomFillSync_d3c85af7e31cf1f8:()=>nt,__wbg_require_0c566c6f2eef6c79:()=>rt,__wbg_resolve_caf97c30b83f7053:()=>_t,__wbg_setTimeout_5d6a1d4fc51ea450:()=>ot,__wbg_set_3f1d0b984ed272ed:()=>ct,__wbg_set_907fb406c34a251d:()=>it,__wbg_set_c213c871859d6500:()=>st,__wbg_set_c2abbebe8b9ebee1:()=>ut,__wbg_set_wasm:()=>$,__wbg_static_accessor_GLOBAL_89e1d9ac6a1b250e:()=>bt,__wbg_static_accessor_GLOBAL_THIS_8b530f326a9e48ac:()=>ft,__wbg_static_accessor_SELF_6fdf4b64710cc91b:()=>at,__wbg_static_accessor_WINDOW_b45bfc5a37f6cfa2:()=>gt,__wbg_subarray_480600f3d6a9f26c:()=>lt,__wbg_then_4f46f6544e6b4a28:()=>dt,__wbg_then_70d05cf780a18d77:()=>wt,__wbg_valueOf_9eee4828c11458ca:()=>pt,__wbg_value_692627309814bb8c:()=>xt,__wbg_versions_a8e5a362e1f16442:()=>yt,__wbindgen_cast_126e48f66237b479:()=>mt,__wbindgen_cast_2241b6af4c4b2941:()=>ht,__wbindgen_cast_4625c577ab2ec9ee:()=>Tt,__wbindgen_cast_9ae0607507abb057:()=>At,__wbindgen_cast_cb9088102bce6b30:()=>St,__wbindgen_cast_d6cd19b81560fd6e:()=>Ft,__wbindgen_init_externref_table:()=>It,debug_panic:()=>P,getBuildTimeInfo:()=>G});module.exports=C(qt);var h=()=>{};h.prototype=h;let r;function $(e){r=e}let T=null;function p(){return(T===null||T.byteLength===0)&&(T=new Uint8Array(r.memory.buffer)),T}let A=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});A.decode();const V=2146435072;let I=0;function W(e,t){return I+=t,I>=V&&(A=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),A.decode(),I=t),A.decode(p().subarray(e,e+t))}function S(e,t){return e=e>>>0,W(e,t)}let u=0;const x=new TextEncoder;"encodeInto"in x||(x.encodeInto=function(e,t){const n=x.encode(e);return t.set(n),{read:e.length,written:n.length}});function b(e,t,n){if(n===void 0){const s=x.encode(e),f=t(s.length,1)>>>0;return p().subarray(f,f+s.length).set(s),u=s.length,f}let _=e.length,o=t(_,1)>>>0;const i=p();let c=0;for(;c<_;c++){const s=e.charCodeAt(c);if(s>127)break;i[o+c]=s}if(c!==_){c!==0&&(e=e.slice(c)),o=n(o,_,_=c+e.length*3,1)>>>0;const s=p().subarray(o+c,o+_),f=x.encodeInto(e,s);c+=f.written,o=n(o,_,c,1)>>>0}return u=c,o}let w=null;function l(){return(w===null||w.buffer.detached===!0||w.buffer.detached===void 0&&w.buffer!==r.memory.buffer)&&(w=new DataView(r.memory.buffer)),w}function a(e){return e==null}function q(e){const t=typeof e;if(t=="number"||t=="boolean"||e==null)return`${e}`;if(t=="string")return`"${e}"`;if(t=="symbol"){const o=e.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){const o=e.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(e)){const o=e.length;let i="[";o>0&&(i+=q(e[0]));for(let c=1;c<o;c++)i+=", "+q(e[c]);return i+="]",i}const n=/\[object ([^\]]+)\]/.exec(toString.call(e));let _;if(n&&n.length>1)_=n[1];else return toString.call(e);if(_=="Object")try{return"Object("+JSON.stringify(e)+")"}catch{return"Object"}return e instanceof Error?`${e.name}: ${e.message}
2
+ ${e.stack}`:_}function y(e){const t=r.__externref_table_alloc();return r.__wbindgen_externrefs.set(t,e),t}function g(e,t){try{return e.apply(this,t)}catch(n){const _=y(n);r.__wbindgen_exn_store(_)}}function k(e,t){return e=e>>>0,p().subarray(e/1,e/1+t)}const O=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>e.dtor(e.a,e.b));function z(e,t,n,_){const o={a:e,b:t,cnt:1,dtor:n},i=(...c)=>{o.cnt++;const s=o.a;o.a=0;try{return _(s,o.b,...c)}finally{o.a=s,i._wbg_cb_unref()}};return i._wbg_cb_unref=()=>{--o.cnt===0&&(o.dtor(o.a,o.b),o.a=0,O.unregister(o))},O.register(i,o,o),i}function M(e){const t=r.__wbindgen_externrefs.get(e);return r.__externref_table_dealloc(e),t}function P(e){var t=a(e)?0:b(e,r.__wbindgen_malloc,r.__wbindgen_realloc),n=u;const _=r.debug_panic(t,n);if(_[1])throw M(_[0])}function G(){return r.getBuildTimeInfo()}function Q(e,t,n){r.wasm_bindgen__convert__closures_____invoke__ha235f3ea55a06a09(e,t,n)}function H(e,t,n,_){r.wasm_bindgen__convert__closures_____invoke__h1a2f20be69ab8911(e,t,n,_)}const v=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>r.__wbg_queryengine_free(e>>>0,1));class E{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,v.unregister(this),t}free(){const t=this.__destroy_into_raw();r.__wbg_queryengine_free(t,0)}disconnect(t,n){const _=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),o=u,i=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),c=u;return r.queryengine_disconnect(this.__wbg_ptr,_,o,i,c)}startTransaction(t,n,_){const o=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),i=u,c=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),s=u,f=b(_,r.__wbindgen_malloc,r.__wbindgen_realloc),d=u;return r.queryengine_startTransaction(this.__wbg_ptr,o,i,c,s,f,d)}commitTransaction(t,n,_){const o=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),i=u,c=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),s=u,f=b(_,r.__wbindgen_malloc,r.__wbindgen_realloc),d=u;return r.queryengine_commitTransaction(this.__wbg_ptr,o,i,c,s,f,d)}rollbackTransaction(t,n,_){const o=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),i=u,c=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),s=u,f=b(_,r.__wbindgen_malloc,r.__wbindgen_realloc),d=u;return r.queryengine_rollbackTransaction(this.__wbg_ptr,o,i,c,s,f,d)}constructor(t,n,_){const o=r.queryengine_new(t,n,_);if(o[2])throw M(o[1]);return this.__wbg_ptr=o[0]>>>0,v.register(this,this.__wbg_ptr,this),this}query(t,n,_,o){const i=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),c=u,s=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),f=u;var d=a(_)?0:b(_,r.__wbindgen_malloc,r.__wbindgen_realloc),m=u;const D=b(o,r.__wbindgen_malloc,r.__wbindgen_realloc),j=u;return r.queryengine_query(this.__wbg_ptr,i,c,s,f,d,m,D,j)}trace(t){const n=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),_=u;return r.queryengine_trace(this.__wbg_ptr,n,_)}connect(t,n){const _=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),o=u,i=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),c=u;return r.queryengine_connect(this.__wbg_ptr,_,o,i,c)}metrics(t){const n=b(t,r.__wbindgen_malloc,r.__wbindgen_realloc),_=u;return r.queryengine_metrics(this.__wbg_ptr,n,_)}}Symbol.dispose&&(E.prototype[Symbol.dispose]=E.prototype.free);function J(e,t){return Error(S(e,t))}function X(e){return Number(e)}function Y(e,t){const n=String(t),_=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),o=u;l().setInt32(e+4*1,o,!0),l().setInt32(e+4*0,_,!0)}function K(e,t){const n=t,_=typeof n=="bigint"?n:void 0;l().setBigInt64(e+8*1,a(_)?BigInt(0):_,!0),l().setInt32(e+4*0,!a(_),!0)}function Z(e){const t=e,n=typeof t=="boolean"?t:void 0;return a(n)?16777215:n?1:0}function ee(e,t){const n=q(t),_=b(n,r.__wbindgen_malloc,r.__wbindgen_realloc),o=u;l().setInt32(e+4*1,o,!0),l().setInt32(e+4*0,_,!0)}function te(e,t){return e in t}function ne(e){return typeof e=="bigint"}function re(e){return typeof e=="function"}function _e(e){const t=e;return typeof t=="object"&&t!==null}function oe(e){return typeof e=="string"}function ce(e){return e===void 0}function ie(e,t){return e===t}function se(e,t){return e==t}function ue(e,t){const n=t,_=typeof n=="number"?n:void 0;l().setFloat64(e+8*1,a(_)?0:_,!0),l().setInt32(e+4*0,!a(_),!0)}function be(e,t){const n=t,_=typeof n=="string"?n:void 0;var o=a(_)?0:b(_,r.__wbindgen_malloc,r.__wbindgen_realloc),i=u;l().setInt32(e+4*1,i,!0),l().setInt32(e+4*0,o,!0)}function fe(e,t){throw new Error(S(e,t))}function ae(e){e._wbg_cb_unref()}function ge(){return g(function(e,t,n){return e.call(t,n)},arguments)}function le(){return g(function(e,t){return e.call(t)},arguments)}function de(e){return e.crypto}function we(e){return e.done}function pe(e){return Object.entries(e)}function xe(){return g(function(e,t){e.getRandomValues(t)},arguments)}function ye(e){return e.getTime()}function me(e,t){return e[t>>>0]}function he(){return g(function(e,t){return e[t]},arguments)}function Te(){return g(function(e,t){return Reflect.get(e,t)},arguments)}function Ae(e,t){return e[t]}function Se(){return g(function(e,t){return Reflect.has(e,t)},arguments)}function Fe(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t}function Ie(e){let t;try{t=e instanceof Map}catch{t=!1}return t}function qe(e){let t;try{t=e instanceof Promise}catch{t=!1}return t}function ke(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t}function Ee(e){return Array.isArray(e)}function Oe(e){return Number.isSafeInteger(e)}function Me(){return Symbol.iterator}function ve(e){return Object.keys(e)}function De(e){return e.length}function je(e){return e.length}function Be(e){return e.msCrypto}function Re(){return new Date}function Ue(){return new Object}function Le(e,t){try{var n={a:e,b:t},_=(i,c)=>{const s=n.a;n.a=0;try{return H(s,n.b,i,c)}finally{n.a=s}};return new Promise(_)}finally{n.a=n.b=0}}function Ne(e){return new Uint8Array(e)}function Ce(){return new Map}function $e(){return new Array}function Ve(e,t){return new Uint8Array(k(e,t))}function We(e,t){return new h(S(e,t))}function ze(e){return new Uint8Array(e>>>0)}function Pe(){return g(function(e){return e.next()},arguments)}function Ge(e){return e.next}function Qe(e){return e.node}function He(){return Date.now()}function Je(e){return e.now()}function Xe(){return g(function(){return Date.now()},arguments)}function Ye(e){return e.process}function Ke(e,t,n){Uint8Array.prototype.set.call(k(e,t),n)}function Ze(e,t){return e.push(t)}function et(e){return e.queueMicrotask}function tt(e){queueMicrotask(e)}function nt(){return g(function(e,t){e.randomFillSync(t)},arguments)}function rt(){return g(function(){return module.require},arguments)}function _t(e){return Promise.resolve(e)}function ot(e,t){return setTimeout(e,t>>>0)}function ct(e,t,n){e[t]=n}function it(e,t,n){return e.set(t,n)}function st(e,t,n){e[t>>>0]=n}function ut(){return g(function(e,t,n){return Reflect.set(e,t,n)},arguments)}function bt(){const e=typeof global>"u"?null:global;return a(e)?0:y(e)}function ft(){const e=typeof globalThis>"u"?null:globalThis;return a(e)?0:y(e)}function at(){const e=typeof self>"u"?null:self;return a(e)?0:y(e)}function gt(){const e=typeof window>"u"?null:window;return a(e)?0:y(e)}function lt(e,t,n){return e.subarray(t>>>0,n>>>0)}function dt(e,t){return e.then(t)}function wt(e,t,n){return e.then(t,n)}function pt(e){return e.valueOf()}function xt(e){return e.value}function yt(e){return e.versions}function mt(e,t){return z(e,t,r.wasm_bindgen__closure__destroy__hf9ae564cf31e91c2,Q)}function ht(e,t){return S(e,t)}function Tt(e){return BigInt.asUintN(64,e)}function At(e){return e}function St(e,t){return k(e,t)}function Ft(e){return e}function It(){const e=r.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}0&&(module.exports={QueryEngine,__wbg_Error_e83987f665cf5504,__wbg_Number_bb48ca12f395cd08,__wbg_String_8f0eb39a4a4c2f66,__wbg___wbindgen_bigint_get_as_i64_f3ebc5a755000afd,__wbg___wbindgen_boolean_get_6d5a1ee65bab5f68,__wbg___wbindgen_debug_string_df47ffb5e35e6763,__wbg___wbindgen_in_bb933bd9e1b3bc0f,__wbg___wbindgen_is_bigint_cb320707dcd35f0b,__wbg___wbindgen_is_function_ee8a6c5833c90377,__wbg___wbindgen_is_object_c818261d21f283a4,__wbg___wbindgen_is_string_fbb76cb2940daafd,__wbg___wbindgen_is_undefined_2d472862bd29a478,__wbg___wbindgen_jsval_eq_6b13ab83478b1c50,__wbg___wbindgen_jsval_loose_eq_b664b38a2f582147,__wbg___wbindgen_number_get_a20bf9b85341449d,__wbg___wbindgen_string_get_e4f06c90489ad01b,__wbg___wbindgen_throw_b855445ff6a94295,__wbg__wbg_cb_unref_2454a539ea5790d9,__wbg_call_525440f72fbfc0ea,__wbg_call_e762c39fa8ea36bf,__wbg_crypto_805be4ce92f1e370,__wbg_done_2042aa2670fb1db1,__wbg_entries_e171b586f8f6bdbf,__wbg_getRandomValues_f6a868620c8bab49,__wbg_getTime_14776bfb48a1bff9,__wbg_get_7bed016f185add81,__wbg_get_ece95cf6585650d9,__wbg_get_efcb449f58ec27c2,__wbg_get_with_ref_key_1dc361bd10053bfe,__wbg_has_787fafc980c3ccdb,__wbg_instanceof_ArrayBuffer_70beb1189ca63b38,__wbg_instanceof_Map_8579b5e2ab5437c7,__wbg_instanceof_Promise_001fdd42afa1b7ef,__wbg_instanceof_Uint8Array_20c8e73002f7af98,__wbg_isArray_96e0af9891d0945d,__wbg_isSafeInteger_d216eda7911dde36,__wbg_iterator_e5822695327a3c39,__wbg_keys_b4d27b02ad14f4be,__wbg_length_69bca3cb64fc8748,__wbg_length_cdd215e10d9dd507,__wbg_msCrypto_2ac4d17c4748234a,__wbg_new_0_f9740686d739025c,__wbg_new_1acc0b6eea89d040,__wbg_new_3c3d849046688a66,__wbg_new_5a79be3ab53b8aa5,__wbg_new_68651c719dcda04e,__wbg_new_e17d9f43105b08be,__wbg_new_from_slice_92f4d78ca282a2d2,__wbg_new_no_args_ee98eee5275000a4,__wbg_new_with_length_01aa0dc35aa13543,__wbg_next_020810e0ae8ebcb0,__wbg_next_2c826fe5dfec6b6a,__wbg_node_ecc8306b9857f33d,__wbg_now_793306c526e2e3b6,__wbg_now_7fd00a794a07d388,__wbg_now_b3f7572f6ef3d3a9,__wbg_process_5cff2739921be718,__wbg_prototypesetcall_2a6620b6922694b2,__wbg_push_df81a39d04db858c,__wbg_queueMicrotask_5a8a9131f3f0b37b,__wbg_queueMicrotask_6d79674585219521,__wbg_randomFillSync_d3c85af7e31cf1f8,__wbg_require_0c566c6f2eef6c79,__wbg_resolve_caf97c30b83f7053,__wbg_setTimeout_5d6a1d4fc51ea450,__wbg_set_3f1d0b984ed272ed,__wbg_set_907fb406c34a251d,__wbg_set_c213c871859d6500,__wbg_set_c2abbebe8b9ebee1,__wbg_set_wasm,__wbg_static_accessor_GLOBAL_89e1d9ac6a1b250e,__wbg_static_accessor_GLOBAL_THIS_8b530f326a9e48ac,__wbg_static_accessor_SELF_6fdf4b64710cc91b,__wbg_static_accessor_WINDOW_b45bfc5a37f6cfa2,__wbg_subarray_480600f3d6a9f26c,__wbg_then_4f46f6544e6b4a28,__wbg_then_70d05cf780a18d77,__wbg_valueOf_9eee4828c11458ca,__wbg_value_692627309814bb8c,__wbg_versions_a8e5a362e1f16442,__wbindgen_cast_126e48f66237b479,__wbindgen_cast_2241b6af4c4b2941,__wbindgen_cast_4625c577ab2ec9ee,__wbindgen_cast_9ae0607507abb057,__wbindgen_cast_cb9088102bce6b30,__wbindgen_cast_d6cd19b81560fd6e,__wbindgen_init_externref_table,debug_panic,getBuildTimeInfo});
backend/node_modules/.prisma/client/schema.prisma ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Schema de Prisma ORM para base de datos SQLite.
3
+ * Define 6 modelos: User, Market, AISignal, Position, Watchlist, Alert.
4
+ * Relaciones:
5
+ * - Market 1:N AISignal, Position, Watchlist, Alert
6
+ * - User 1:N Position, Watchlist, Alert
7
+ * No modificar sin consenso del equipo. Generar migraciones con:
8
+ * npx prisma migrate dev
9
+ * npx prisma generate
10
+ */
11
+
12
+ generator client {
13
+ provider = "prisma-client-js"
14
+ }
15
+
16
+ datasource db {
17
+ provider = "sqlite"
18
+ url = env("DATABASE_URL")
19
+ }
20
+
21
+ model User {
22
+ id Int @id @default(autoincrement())
23
+ email String @unique
24
+ passwordHash String
25
+ isActive Boolean @default(true)
26
+ telegramChatId String? // Configurado manualmente para demo
27
+ createdAt DateTime @default(now())
28
+ updatedAt DateTime @updatedAt
29
+
30
+ positions Position[]
31
+ watchlist Watchlist[]
32
+ alerts Alert[]
33
+ }
34
+
35
+ model Market {
36
+ id String @id // ID nativo de Polymarket
37
+ question String // Texto de la pregunta del mercado
38
+ category String? // politics | crypto | economics | sports
39
+ countryCode String? // ISO2 — usado por Leaflet para burbujas
40
+ yesPrice Float? // Precio YES: 0.0 a 1.0
41
+ noPrice Float? // Precio NO: 0.0 a 1.0
42
+ volumeEur Float? // Volumen en Eur
43
+ liquidityEur Float? // Liquidez en Eur
44
+ spread Float? // Bid/ask spread (0-1, ej 0.02 = 2c)
45
+ bestBid Float? // Mejor oferta de compra
46
+ bestAsk Float? // Mejor oferta de venta
47
+ clobTokenId String? // YES outcome CLOB token ID (para prices-history)
48
+ analyzable Boolean @default(true) // Si la IA tiene edge plausible aqui
49
+ status String @default("active") // active | closed | resolved
50
+ closesAt DateTime? // Fecha de cierre del mercado
51
+ lastSynced DateTime @default(now()) // Ultima sincronizacion de precios
52
+
53
+ signals AISignal[]
54
+ positions Position[]
55
+ watchlist Watchlist[]
56
+ alerts Alert[]
57
+ }
58
+
59
+ model AISignal {
60
+ id Int @id @default(autoincrement())
61
+ marketId String
62
+ market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)
63
+ signal String // bullish | bearish | neutral
64
+ confidence Float // 0.0 a 1.0
65
+ summary String? // 2 frases generadas por Qwen3
66
+ keyRisk String? // 1 frase de riesgo principal
67
+ newsCount Int @default(0) // Titulares relevantes usados
68
+ modelVersion String @default("Qwen3-8B") // Modelo LLM que genero la senal
69
+ impliedProb Float? // Probabilidad implicita YES al generar (0-1)
70
+ fairProb Float? // Probabilidad "justa" segun IA (0-1)
71
+ edgePoints Float? // (fairProb - impliedProb) * 100, signo conserva direccion
72
+ generatedAt DateTime @default(now())
73
+
74
+ @@index([marketId, generatedAt])
75
+ }
76
+
77
+ model Position {
78
+ id Int @id @default(autoincrement())
79
+ userId Int
80
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
81
+ marketId String
82
+ market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)
83
+ outcome String // YES | NO
84
+ amountEur Float // Capital virtual apostado
85
+ entryPrice Float // Precio al abrir la posicion
86
+ currentPrice Float? // Precio actual (actualizado por scheduler)
87
+ pnl Float @default(0) // Profit and Loss calculado
88
+ kellyFraction Float? // Fraccion de Kelly al abrir
89
+ status String @default("open") // open | closed
90
+ openedAt DateTime @default(now())
91
+ closedAt DateTime?
92
+
93
+ @@index([userId, status])
94
+ @@index([marketId])
95
+ }
96
+
97
+ model Watchlist {
98
+ id Int @id @default(autoincrement())
99
+ userId Int
100
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
101
+ marketId String
102
+ market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)
103
+ alertThreshold Float? // Umbral de precio para alerta Telegram
104
+ createdAt DateTime @default(now())
105
+
106
+ @@unique([userId, marketId])
107
+ @@index([userId])
108
+ }
109
+
110
+ model Alert {
111
+ id Int @id @default(autoincrement())
112
+ userId Int
113
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
114
+ marketId String
115
+ market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)
116
+ type String // price_threshold | signal_change
117
+ message String // Texto enviado por Telegram
118
+ sentAt DateTime @default(now())
119
+
120
+ @@index([userId, sentAt])
121
+ @@index([marketId])
122
+ }
backend/node_modules/.prisma/client/wasm-edge-light-loader.mjs ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ export default import('./query_engine_bg.wasm?module')
backend/node_modules/.prisma/client/wasm-worker-loader.mjs ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ export default import('./query_engine_bg.wasm')
backend/node_modules/.prisma/client/wasm.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export * from "./default"
backend/node_modules/.prisma/client/wasm.js ADDED
@@ -0,0 +1,266 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+
8
+ const {
9
+ PrismaClientKnownRequestError,
10
+ PrismaClientUnknownRequestError,
11
+ PrismaClientRustPanicError,
12
+ PrismaClientInitializationError,
13
+ PrismaClientValidationError,
14
+ getPrismaClient,
15
+ sqltag,
16
+ empty,
17
+ join,
18
+ raw,
19
+ skip,
20
+ Decimal,
21
+ Debug,
22
+ objectEnumValues,
23
+ makeStrictEnum,
24
+ Extensions,
25
+ warnOnce,
26
+ defineDmmfProperty,
27
+ Public,
28
+ getRuntime,
29
+ createParam,
30
+ } = require('@prisma/client/runtime/wasm-engine-edge.js')
31
+
32
+
33
+ const Prisma = {}
34
+
35
+ exports.Prisma = Prisma
36
+ exports.$Enums = {}
37
+
38
+ /**
39
+ * Prisma Client JS version: 6.19.3
40
+ * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
41
+ */
42
+ Prisma.prismaVersion = {
43
+ client: "6.19.3",
44
+ engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
45
+ }
46
+
47
+ Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
48
+ Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
49
+ Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
50
+ Prisma.PrismaClientInitializationError = PrismaClientInitializationError
51
+ Prisma.PrismaClientValidationError = PrismaClientValidationError
52
+ Prisma.Decimal = Decimal
53
+
54
+ /**
55
+ * Re-export of sql-template-tag
56
+ */
57
+ Prisma.sql = sqltag
58
+ Prisma.empty = empty
59
+ Prisma.join = join
60
+ Prisma.raw = raw
61
+ Prisma.validator = Public.validator
62
+
63
+ /**
64
+ * Extensions
65
+ */
66
+ Prisma.getExtensionContext = Extensions.getExtensionContext
67
+ Prisma.defineExtension = Extensions.defineExtension
68
+
69
+ /**
70
+ * Shorthand utilities for JSON filtering
71
+ */
72
+ Prisma.DbNull = objectEnumValues.instances.DbNull
73
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
74
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
75
+
76
+ Prisma.NullTypes = {
77
+ DbNull: objectEnumValues.classes.DbNull,
78
+ JsonNull: objectEnumValues.classes.JsonNull,
79
+ AnyNull: objectEnumValues.classes.AnyNull
80
+ }
81
+
82
+
83
+
84
+
85
+
86
+ /**
87
+ * Enums
88
+ */
89
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
90
+ Serializable: 'Serializable'
91
+ });
92
+
93
+ exports.Prisma.UserScalarFieldEnum = {
94
+ id: 'id',
95
+ email: 'email',
96
+ passwordHash: 'passwordHash',
97
+ isActive: 'isActive',
98
+ telegramChatId: 'telegramChatId',
99
+ createdAt: 'createdAt',
100
+ updatedAt: 'updatedAt'
101
+ };
102
+
103
+ exports.Prisma.MarketScalarFieldEnum = {
104
+ id: 'id',
105
+ question: 'question',
106
+ category: 'category',
107
+ countryCode: 'countryCode',
108
+ yesPrice: 'yesPrice',
109
+ noPrice: 'noPrice',
110
+ volumeEur: 'volumeEur',
111
+ liquidityEur: 'liquidityEur',
112
+ spread: 'spread',
113
+ bestBid: 'bestBid',
114
+ bestAsk: 'bestAsk',
115
+ clobTokenId: 'clobTokenId',
116
+ analyzable: 'analyzable',
117
+ status: 'status',
118
+ closesAt: 'closesAt',
119
+ lastSynced: 'lastSynced'
120
+ };
121
+
122
+ exports.Prisma.AISignalScalarFieldEnum = {
123
+ id: 'id',
124
+ marketId: 'marketId',
125
+ signal: 'signal',
126
+ confidence: 'confidence',
127
+ summary: 'summary',
128
+ keyRisk: 'keyRisk',
129
+ newsCount: 'newsCount',
130
+ modelVersion: 'modelVersion',
131
+ impliedProb: 'impliedProb',
132
+ fairProb: 'fairProb',
133
+ edgePoints: 'edgePoints',
134
+ generatedAt: 'generatedAt'
135
+ };
136
+
137
+ exports.Prisma.PositionScalarFieldEnum = {
138
+ id: 'id',
139
+ userId: 'userId',
140
+ marketId: 'marketId',
141
+ outcome: 'outcome',
142
+ amountEur: 'amountEur',
143
+ entryPrice: 'entryPrice',
144
+ currentPrice: 'currentPrice',
145
+ pnl: 'pnl',
146
+ kellyFraction: 'kellyFraction',
147
+ status: 'status',
148
+ openedAt: 'openedAt',
149
+ closedAt: 'closedAt'
150
+ };
151
+
152
+ exports.Prisma.WatchlistScalarFieldEnum = {
153
+ id: 'id',
154
+ userId: 'userId',
155
+ marketId: 'marketId',
156
+ alertThreshold: 'alertThreshold',
157
+ createdAt: 'createdAt'
158
+ };
159
+
160
+ exports.Prisma.AlertScalarFieldEnum = {
161
+ id: 'id',
162
+ userId: 'userId',
163
+ marketId: 'marketId',
164
+ type: 'type',
165
+ message: 'message',
166
+ sentAt: 'sentAt'
167
+ };
168
+
169
+ exports.Prisma.SortOrder = {
170
+ asc: 'asc',
171
+ desc: 'desc'
172
+ };
173
+
174
+ exports.Prisma.NullsOrder = {
175
+ first: 'first',
176
+ last: 'last'
177
+ };
178
+
179
+
180
+ exports.Prisma.ModelName = {
181
+ User: 'User',
182
+ Market: 'Market',
183
+ AISignal: 'AISignal',
184
+ Position: 'Position',
185
+ Watchlist: 'Watchlist',
186
+ Alert: 'Alert'
187
+ };
188
+ /**
189
+ * Create the Client
190
+ */
191
+ const config = {
192
+ "generator": {
193
+ "name": "client",
194
+ "provider": {
195
+ "fromEnvVar": null,
196
+ "value": "prisma-client-js"
197
+ },
198
+ "output": {
199
+ "value": "/Users/josesalazar/proyecto-hackaton/backend/node_modules/@prisma/client",
200
+ "fromEnvVar": null
201
+ },
202
+ "config": {
203
+ "engineType": "library"
204
+ },
205
+ "binaryTargets": [
206
+ {
207
+ "fromEnvVar": null,
208
+ "value": "darwin-arm64",
209
+ "native": true
210
+ }
211
+ ],
212
+ "previewFeatures": [],
213
+ "sourceFilePath": "/Users/josesalazar/proyecto-hackaton/backend/prisma/schema.prisma"
214
+ },
215
+ "relativeEnvPaths": {
216
+ "rootEnvPath": null,
217
+ "schemaEnvPath": "../../../.env"
218
+ },
219
+ "relativePath": "../../../prisma",
220
+ "clientVersion": "6.19.3",
221
+ "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
222
+ "datasourceNames": [
223
+ "db"
224
+ ],
225
+ "activeProvider": "sqlite",
226
+ "postinstall": false,
227
+ "inlineDatasources": {
228
+ "db": {
229
+ "url": {
230
+ "fromEnvVar": "DATABASE_URL",
231
+ "value": null
232
+ }
233
+ }
234
+ },
235
+ "inlineSchema": "/**\n * Schema de Prisma ORM para base de datos SQLite.\n * Define 6 modelos: User, Market, AISignal, Position, Watchlist, Alert.\n * Relaciones:\n * - Market 1:N AISignal, Position, Watchlist, Alert\n * - User 1:N Position, Watchlist, Alert\n * No modificar sin consenso del equipo. Generar migraciones con:\n * npx prisma migrate dev\n * npx prisma generate\n */\n\ngenerator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n email String @unique\n passwordHash String\n isActive Boolean @default(true)\n telegramChatId String? // Configurado manualmente para demo\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n positions Position[]\n watchlist Watchlist[]\n alerts Alert[]\n}\n\nmodel Market {\n id String @id // ID nativo de Polymarket\n question String // Texto de la pregunta del mercado\n category String? // politics | crypto | economics | sports\n countryCode String? // ISO2 — usado por Leaflet para burbujas\n yesPrice Float? // Precio YES: 0.0 a 1.0\n noPrice Float? // Precio NO: 0.0 a 1.0\n volumeEur Float? // Volumen en Eur\n liquidityEur Float? // Liquidez en Eur\n spread Float? // Bid/ask spread (0-1, ej 0.02 = 2c)\n bestBid Float? // Mejor oferta de compra\n bestAsk Float? // Mejor oferta de venta\n clobTokenId String? // YES outcome CLOB token ID (para prices-history)\n analyzable Boolean @default(true) // Si la IA tiene edge plausible aqui\n status String @default(\"active\") // active | closed | resolved\n closesAt DateTime? // Fecha de cierre del mercado\n lastSynced DateTime @default(now()) // Ultima sincronizacion de precios\n\n signals AISignal[]\n positions Position[]\n watchlist Watchlist[]\n alerts Alert[]\n}\n\nmodel AISignal {\n id Int @id @default(autoincrement())\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n signal String // bullish | bearish | neutral\n confidence Float // 0.0 a 1.0\n summary String? // 2 frases generadas por Qwen3\n keyRisk String? // 1 frase de riesgo principal\n newsCount Int @default(0) // Titulares relevantes usados\n modelVersion String @default(\"Qwen3-8B\") // Modelo LLM que genero la senal\n impliedProb Float? // Probabilidad implicita YES al generar (0-1)\n fairProb Float? // Probabilidad \"justa\" segun IA (0-1)\n edgePoints Float? // (fairProb - impliedProb) * 100, signo conserva direccion\n generatedAt DateTime @default(now())\n\n @@index([marketId, generatedAt])\n}\n\nmodel Position {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n outcome String // YES | NO\n amountEur Float // Capital virtual apostado\n entryPrice Float // Precio al abrir la posicion\n currentPrice Float? // Precio actual (actualizado por scheduler)\n pnl Float @default(0) // Profit and Loss calculado\n kellyFraction Float? // Fraccion de Kelly al abrir\n status String @default(\"open\") // open | closed\n openedAt DateTime @default(now())\n closedAt DateTime?\n\n @@index([userId, status])\n @@index([marketId])\n}\n\nmodel Watchlist {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n alertThreshold Float? // Umbral de precio para alerta Telegram\n createdAt DateTime @default(now())\n\n @@unique([userId, marketId])\n @@index([userId])\n}\n\nmodel Alert {\n id Int @id @default(autoincrement())\n userId Int\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n marketId String\n market Market @relation(fields: [marketId], references: [id], onDelete: Cascade)\n type String // price_threshold | signal_change\n message String // Texto enviado por Telegram\n sentAt DateTime @default(now())\n\n @@index([userId, sentAt])\n @@index([marketId])\n}\n",
236
+ "inlineSchemaHash": "317e51352744228f8aa2577b7d08529ce57f6e47ee90dbf1318c8edc1a7164fb",
237
+ "copyEngine": true
238
+ }
239
+ config.dirname = '/'
240
+
241
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"telegramChatId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"positions\",\"kind\":\"object\",\"type\":\"Position\",\"relationName\":\"PositionToUser\"},{\"name\":\"watchlist\",\"kind\":\"object\",\"type\":\"Watchlist\",\"relationName\":\"UserToWatchlist\"},{\"name\":\"alerts\",\"kind\":\"object\",\"type\":\"Alert\",\"relationName\":\"AlertToUser\"}],\"dbName\":null},\"Market\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"countryCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"yesPrice\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"noPrice\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"volumeEur\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"liquidityEur\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"spread\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"bestBid\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"bestAsk\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"clobTokenId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"analyzable\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"closesAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastSynced\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"signals\",\"kind\":\"object\",\"type\":\"AISignal\",\"relationName\":\"AISignalToMarket\"},{\"name\":\"positions\",\"kind\":\"object\",\"type\":\"Position\",\"relationName\":\"MarketToPosition\"},{\"name\":\"watchlist\",\"kind\":\"object\",\"type\":\"Watchlist\",\"relationName\":\"MarketToWatchlist\"},{\"name\":\"alerts\",\"kind\":\"object\",\"type\":\"Alert\",\"relationName\":\"AlertToMarket\"}],\"dbName\":null},\"AISignal\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"marketId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"market\",\"kind\":\"object\",\"type\":\"Market\",\"relationName\":\"AISignalToMarket\"},{\"name\":\"signal\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"confidence\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"keyRisk\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"newsCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"modelVersion\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"impliedProb\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"fairProb\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"edgePoints\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"generatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Position\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PositionToUser\"},{\"name\":\"marketId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"market\",\"kind\":\"object\",\"type\":\"Market\",\"relationName\":\"MarketToPosition\"},{\"name\":\"outcome\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amountEur\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"entryPrice\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"currentPrice\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"pnl\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"kellyFraction\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Watchlist\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToWatchlist\"},{\"name\":\"marketId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"market\",\"kind\":\"object\",\"type\":\"Market\",\"relationName\":\"MarketToWatchlist\"},{\"name\":\"alertThreshold\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Alert\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AlertToUser\"},{\"name\":\"marketId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"market\",\"kind\":\"object\",\"type\":\"Market\",\"relationName\":\"AlertToMarket\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sentAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
242
+ defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
243
+ config.engineWasm = {
244
+ getRuntime: async () => require('./query_engine_bg.js'),
245
+ getQueryEngineWasmModule: async () => {
246
+ const loader = (await import('#wasm-engine-loader')).default
247
+ const engine = (await loader).default
248
+ return engine
249
+ }
250
+ }
251
+ config.compilerWasm = undefined
252
+
253
+ config.injectableEdgeEnv = () => ({
254
+ parsed: {
255
+ DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined
256
+ }
257
+ })
258
+
259
+ if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
260
+ Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
261
+ }
262
+
263
+ const PrismaClient = getPrismaClient(config)
264
+ exports.PrismaClient = PrismaClient
265
+ Object.assign(exports, Prisma)
266
+
backend/node_modules/@prisma/config/dist/index.d.ts ADDED
@@ -0,0 +1,650 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Schema } from 'effect';
2
+
3
+ /**
4
+ * An interface that exposes some basic information about the
5
+ * adapter like its name and provider type.
6
+ */
7
+ declare interface AdapterInfo {
8
+ readonly provider: Provider;
9
+ readonly adapterName: (typeof officialPrismaAdapters)[number] | (string & {});
10
+ }
11
+
12
+ declare type ArgScalarType = 'string' | 'int' | 'bigint' | 'float' | 'decimal' | 'boolean' | 'enum' | 'uuid' | 'json' | 'datetime' | 'bytes' | 'unknown';
13
+
14
+ declare type ArgType = {
15
+ scalarType: ArgScalarType;
16
+ dbType?: string;
17
+ arity: Arity;
18
+ };
19
+
20
+ declare type Arity = 'scalar' | 'list';
21
+
22
+ declare type ColumnType = (typeof ColumnTypeEnum)[keyof typeof ColumnTypeEnum];
23
+
24
+ declare const ColumnTypeEnum: {
25
+ readonly Int32: 0;
26
+ readonly Int64: 1;
27
+ readonly Float: 2;
28
+ readonly Double: 3;
29
+ readonly Numeric: 4;
30
+ readonly Boolean: 5;
31
+ readonly Character: 6;
32
+ readonly Text: 7;
33
+ readonly Date: 8;
34
+ readonly Time: 9;
35
+ readonly DateTime: 10;
36
+ readonly Json: 11;
37
+ readonly Enum: 12;
38
+ readonly Bytes: 13;
39
+ readonly Set: 14;
40
+ readonly Uuid: 15;
41
+ readonly Int32Array: 64;
42
+ readonly Int64Array: 65;
43
+ readonly FloatArray: 66;
44
+ readonly DoubleArray: 67;
45
+ readonly NumericArray: 68;
46
+ readonly BooleanArray: 69;
47
+ readonly CharacterArray: 70;
48
+ readonly TextArray: 71;
49
+ readonly DateArray: 72;
50
+ readonly TimeArray: 73;
51
+ readonly DateTimeArray: 74;
52
+ readonly JsonArray: 75;
53
+ readonly EnumArray: 76;
54
+ readonly BytesArray: 77;
55
+ readonly UuidArray: 78;
56
+ readonly UnknownNumber: 128;
57
+ };
58
+
59
+ export declare type ConfigDiagnostic = {
60
+ _tag: 'log';
61
+ value: (formatters: InjectFormatters) => () => void;
62
+ } | {
63
+ _tag: 'warn';
64
+ value: (formatters: InjectFormatters) => () => void;
65
+ };
66
+
67
+ export declare type ConfigFromFile = {
68
+ resolvedPath: string;
69
+ config: PrismaConfigInternal;
70
+ error?: never;
71
+ diagnostics: ConfigDiagnostic[];
72
+ } | {
73
+ resolvedPath: string;
74
+ config?: never;
75
+ error: LoadConfigFromFileError;
76
+ diagnostics: ConfigDiagnostic[];
77
+ } | {
78
+ resolvedPath: null;
79
+ config: PrismaConfigInternal;
80
+ error?: never;
81
+ diagnostics: ConfigDiagnostic[];
82
+ };
83
+
84
+ declare type ConnectionInfo = {
85
+ schemaName?: string;
86
+ maxBindValues?: number;
87
+ supportsRelationJoins: boolean;
88
+ };
89
+
90
+ /**
91
+ * This default config can be used as basis for unit and integration tests.
92
+ */
93
+ export declare function defaultTestConfig(): PrismaConfigInternal;
94
+
95
+ /**
96
+ * Define the configuration for the Prisma Development Kit.
97
+ */
98
+ export declare function defineConfig(configInput: PrismaConfig): PrismaConfigInternal;
99
+
100
+ /**
101
+ * A generic driver adapter factory that allows the user to instantiate a
102
+ * driver adapter. The query and result types are specific to the adapter.
103
+ */
104
+ declare interface DriverAdapterFactory<Query, Result> extends AdapterInfo {
105
+ /**
106
+ * Instantiate a driver adapter.
107
+ */
108
+ connect(): Promise<Queryable<Query, Result>>;
109
+ }
110
+
111
+ declare type EnumsConfigShape = {
112
+ /**
113
+ * List of enums that are externally managed.
114
+ * Prisma will not modify the structure of these enums and not generate migrations for those enums.
115
+ * These enums will still be represented in schema.prisma file and be available in the client API.
116
+ */
117
+ external?: string[];
118
+ };
119
+
120
+ export declare function env<Env extends Record<string, string | undefined>>(name: keyof Env & string): string;
121
+
122
+ declare type Error_2 = MappedError & {
123
+ originalCode?: string;
124
+ originalMessage?: string;
125
+ };
126
+
127
+ declare type ErrorCapturingFunction<T> = T extends (...args: infer A) => Promise<infer R> ? (...args: A) => Promise<Result<ErrorCapturingInterface<R>>> : T extends (...args: infer A) => infer R ? (...args: A) => Result<ErrorCapturingInterface<R>> : T;
128
+
129
+ declare type ErrorCapturingInterface<T> = {
130
+ [K in keyof T]: ErrorCapturingFunction<T[K]>;
131
+ };
132
+
133
+ declare interface ErrorCapturingSqlMigrationAwareDriverAdapterFactory extends ErrorCapturingInterface<SqlMigrationAwareDriverAdapterFactory> {
134
+ readonly errorRegistry: ErrorRegistry;
135
+ }
136
+
137
+ declare type ErrorRecord = {
138
+ error: unknown;
139
+ };
140
+
141
+ declare interface ErrorRegistry {
142
+ consumeError(id: number): ErrorRecord | undefined;
143
+ }
144
+
145
+ declare type ExperimentalConfig = {
146
+ /**
147
+ * Enable experimental adapter support.
148
+ */
149
+ adapter?: boolean;
150
+ /**
151
+ * Enable experimental Prisma Studio features.
152
+ */
153
+ studio?: boolean;
154
+ /**
155
+ * Enable experimental external tables support.
156
+ */
157
+ externalTables?: boolean;
158
+ /**
159
+ * Enable experimental extensions support. This is required to use the `extensions` config option.
160
+ */
161
+ extensions?: boolean;
162
+ };
163
+
164
+ export declare type InjectFormatters = {
165
+ dim: (data: string) => string;
166
+ log: (data: string) => void;
167
+ warn: (data: string) => void;
168
+ link: (data: string) => string;
169
+ };
170
+
171
+ declare type IsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SNAPSHOT' | 'SERIALIZABLE';
172
+
173
+ /**
174
+ * Load a Prisma config file from the given directory.
175
+ * This function may fail, but it will never throw.
176
+ * The possible error is returned in the result object, so the caller can handle it as needed.
177
+ */
178
+ export declare function loadConfigFromFile({ configFile, configRoot, }: LoadConfigFromFileInput): Promise<ConfigFromFile>;
179
+
180
+ export declare type LoadConfigFromFileError = {
181
+ /**
182
+ * The config file was not found at the specified path.
183
+ */
184
+ _tag: 'ConfigFileNotFound';
185
+ } | {
186
+ _tag: 'ConfigLoadError';
187
+ error: Error;
188
+ } | {
189
+ _tag: 'ConfigFileSyntaxError';
190
+ error: Error;
191
+ } | {
192
+ _tag: 'UnknownError';
193
+ error: Error;
194
+ };
195
+
196
+ declare type LoadConfigFromFileInput = {
197
+ /**
198
+ * The path to the config file to load. If not provided, we will attempt to find a config file in the `configRoot` directory.
199
+ */
200
+ configFile?: string;
201
+ /**
202
+ * The directory to search for the config file in. Defaults to the current working directory.
203
+ */
204
+ configRoot?: string;
205
+ };
206
+
207
+ /**
208
+ * User's Prisma configuration should live in `prisma.config.ts` instead of `package.json#prisma`.
209
+ * See: https://pris.ly/prisma-config.
210
+ *
211
+ * This function returns `null` if no `package.json` is found, or if the `prisma` property is not defined therein.
212
+ *
213
+ * TODO: remove in Prisma 7.
214
+ * @deprecated
215
+ */
216
+ export declare function loadConfigFromPackageJson(cwd?: string): Promise<{
217
+ config: PrismaConfigPackageJson;
218
+ loadedFromFile: string;
219
+ } | null>;
220
+
221
+ declare type MappedError = {
222
+ kind: 'GenericJs';
223
+ id: number;
224
+ } | {
225
+ kind: 'UnsupportedNativeDataType';
226
+ type: string;
227
+ } | {
228
+ kind: 'InvalidIsolationLevel';
229
+ level: string;
230
+ } | {
231
+ kind: 'LengthMismatch';
232
+ column?: string;
233
+ } | {
234
+ kind: 'UniqueConstraintViolation';
235
+ constraint?: {
236
+ fields: string[];
237
+ } | {
238
+ index: string;
239
+ } | {
240
+ foreignKey: {};
241
+ };
242
+ } | {
243
+ kind: 'NullConstraintViolation';
244
+ constraint?: {
245
+ fields: string[];
246
+ } | {
247
+ index: string;
248
+ } | {
249
+ foreignKey: {};
250
+ };
251
+ } | {
252
+ kind: 'ForeignKeyConstraintViolation';
253
+ constraint?: {
254
+ fields: string[];
255
+ } | {
256
+ index: string;
257
+ } | {
258
+ foreignKey: {};
259
+ };
260
+ } | {
261
+ kind: 'DatabaseNotReachable';
262
+ host?: string;
263
+ port?: number;
264
+ } | {
265
+ kind: 'DatabaseDoesNotExist';
266
+ db?: string;
267
+ } | {
268
+ kind: 'DatabaseAlreadyExists';
269
+ db?: string;
270
+ } | {
271
+ kind: 'DatabaseAccessDenied';
272
+ db?: string;
273
+ } | {
274
+ kind: 'ConnectionClosed';
275
+ } | {
276
+ kind: 'TlsConnectionError';
277
+ reason: string;
278
+ } | {
279
+ kind: 'AuthenticationFailed';
280
+ user?: string;
281
+ } | {
282
+ kind: 'TransactionWriteConflict';
283
+ } | {
284
+ kind: 'TableDoesNotExist';
285
+ table?: string;
286
+ } | {
287
+ kind: 'ColumnNotFound';
288
+ column?: string;
289
+ } | {
290
+ kind: 'TooManyConnections';
291
+ cause: string;
292
+ } | {
293
+ kind: 'ValueOutOfRange';
294
+ cause: string;
295
+ } | {
296
+ kind: 'MissingFullTextSearchIndex';
297
+ } | {
298
+ kind: 'SocketTimeout';
299
+ } | {
300
+ kind: 'InconsistentColumnData';
301
+ cause: string;
302
+ } | {
303
+ kind: 'TransactionAlreadyClosed';
304
+ cause: string;
305
+ } | {
306
+ kind: 'postgres';
307
+ code: string;
308
+ severity: string;
309
+ message: string;
310
+ detail: string | undefined;
311
+ column: string | undefined;
312
+ hint: string | undefined;
313
+ } | {
314
+ kind: 'mysql';
315
+ code: number;
316
+ message: string;
317
+ state: string;
318
+ } | {
319
+ kind: 'sqlite';
320
+ /**
321
+ * Sqlite extended error code: https://www.sqlite.org/rescode.html
322
+ */
323
+ extendedCode: number;
324
+ message: string;
325
+ } | {
326
+ kind: 'mssql';
327
+ code: number;
328
+ message: string;
329
+ };
330
+
331
+ declare type MigrationsConfigShape = {
332
+ /**
333
+ * The path to the directory where Prisma should store migration files, and look for them.
334
+ */
335
+ path?: string;
336
+ /**
337
+ * Provide a SQL script that will be used to setup external tables and enums during migration diffing.
338
+ * Also see `tables.external` and `enums.external`.
339
+ */
340
+ initShadowDb?: string;
341
+ /**
342
+ * The command to run to seed the database after schema migrations are applied.
343
+ */
344
+ seed?: string;
345
+ };
346
+
347
+ declare const officialPrismaAdapters: readonly ["@prisma/adapter-planetscale", "@prisma/adapter-neon", "@prisma/adapter-libsql", "@prisma/adapter-better-sqlite3", "@prisma/adapter-d1", "@prisma/adapter-pg", "@prisma/adapter-mssql", "@prisma/adapter-mariadb"];
348
+
349
+ declare const PRISMA_CONFIG_INTERNAL_BRAND: unique symbol;
350
+
351
+ /**
352
+ * The configuration for the Prisma Development Kit, before it is passed to the `defineConfig` function.
353
+ * Thanks to the branding, this type is opaque and cannot be constructed directly.
354
+ */
355
+ export declare type PrismaConfig = PrismaConfigUnconditional & SchemaEngineConfig;
356
+
357
+ export declare class PrismaConfigEnvError extends Error {
358
+ constructor(name: string);
359
+ }
360
+
361
+ /**
362
+ * The configuration for the Prisma Development Kit, after it has been parsed and processed
363
+ * by the `defineConfig` function.
364
+ * Thanks to the branding, this type is opaque and cannot be constructed directly.
365
+ */
366
+ export declare type PrismaConfigInternal = _PrismaConfigInternal & {
367
+ __brand: typeof PRISMA_CONFIG_INTERNAL_BRAND;
368
+ };
369
+
370
+ declare type _PrismaConfigInternal = Omit<PrismaConfig, 'engine' | 'datasource' | 'adapter'> & {
371
+ loadedFromFile: string | null;
372
+ /**
373
+ * The deprecated Prisma configuration from `package.json#prisma`.
374
+ * This is set to `null` if no `package.json#prisma` config was found.
375
+ * The configuration read from the Prisma config file (e.g., `prisma.config.ts`) takes precedence over
376
+ * this `package.json#prisma` config.
377
+ * @deprecated
378
+ */
379
+ deprecatedPackageJson: {
380
+ /**
381
+ * The Prisma configuration from `package.json#prisma`.
382
+ * @deprecated
383
+ */
384
+ config: PrismaConfigPackageJson;
385
+ /**
386
+ * The path from where the `package.json` config was loaded.
387
+ * @deprecated
388
+ */
389
+ loadedFromFile: string;
390
+ } | null;
391
+ } & ({
392
+ engine: 'classic';
393
+ datasource: {
394
+ url: string;
395
+ shadowDatabaseUrl?: string;
396
+ };
397
+ } | {
398
+ engine: 'js';
399
+ adapter: () => Promise<ErrorCapturingSqlMigrationAwareDriverAdapterFactory>;
400
+ } | {
401
+ engine?: never;
402
+ });
403
+
404
+ /**
405
+ * Example:
406
+ * ```json
407
+ * {
408
+ * "schema": "./prisma/schema.prisma",
409
+ * "seed": "tsx ./prisma/seed.ts"
410
+ * }
411
+ * ```
412
+ */
413
+ declare type PrismaConfigPackageJson = {
414
+ schema?: string;
415
+ seed?: string;
416
+ };
417
+
418
+ declare type PrismaConfigUnconditional = {
419
+ /**
420
+ * Experimental feature gates. Each experimental feature must be explicitly enabled.
421
+ */
422
+ experimental?: Simplify<ExperimentalConfig>;
423
+ /**
424
+ * The path to the schema file, or path to a folder that shall be recursively searched for *.prisma files.
425
+ */
426
+ schema?: string;
427
+ /**
428
+ * The configuration for Prisma Studio.
429
+ */
430
+ studio?: Simplify<PrismaStudioConfigShape>;
431
+ /**
432
+ * Configuration for Prisma migrations.
433
+ */
434
+ migrations?: Simplify<MigrationsConfigShape>;
435
+ /**
436
+ * Configuration for the database table entities.
437
+ */
438
+ tables?: Simplify<TablesConfigShape>;
439
+ /**
440
+ * Configuration for the database enum entities.
441
+ */
442
+ enums?: Simplify<EnumsConfigShape>;
443
+ /**
444
+ * Configuration for the database view entities.
445
+ */
446
+ views?: Simplify<ViewsConfigShape>;
447
+ /**
448
+ * Configuration for the `typedSql` preview feature.
449
+ */
450
+ typedSql?: Simplify<TypedSqlConfigShape>;
451
+ };
452
+
453
+ declare type PrismaStudioConfigShape = {
454
+ adapter: () => Promise<SqlMigrationAwareDriverAdapterFactory>;
455
+ };
456
+
457
+ declare type Provider = 'mysql' | 'postgres' | 'sqlite' | 'sqlserver';
458
+
459
+ declare interface Queryable<Query, Result> extends AdapterInfo {
460
+ /**
461
+ * Execute a query and return its result.
462
+ */
463
+ queryRaw(params: Query): Promise<Result>;
464
+ /**
465
+ * Execute a query and return the number of affected rows.
466
+ */
467
+ executeRaw(params: Query): Promise<number>;
468
+ }
469
+
470
+ declare type Result<T> = {
471
+ map<U>(fn: (value: T) => U): Result<U>;
472
+ flatMap<U>(fn: (value: T) => Result<U>): Result<U>;
473
+ } & ({
474
+ readonly ok: true;
475
+ readonly value: T;
476
+ } | {
477
+ readonly ok: false;
478
+ readonly error: Error_2;
479
+ });
480
+
481
+ declare type SchemaEngineConfig = SchemaEngineConfigJs | SchemaEngineConfigClassic | SchemaEngineConfigAbsent;
482
+
483
+ declare type SchemaEngineConfigAbsent = {
484
+ engine?: never;
485
+ };
486
+
487
+ declare type SchemaEngineConfigClassic = {
488
+ /**
489
+ * Uses the "old classic" Schema Engine binary
490
+ */
491
+ engine: 'classic';
492
+ /**
493
+ * The database connection configuration, which overwrites the `datasource` block's `url`-like attributes in the Prisma schema file.
494
+ */
495
+ datasource: SchemaEngineConfigClassicDatasource;
496
+ };
497
+
498
+ export declare type SchemaEngineConfigClassicDatasource = {
499
+ url: string;
500
+ directUrl?: string;
501
+ shadowDatabaseUrl?: string;
502
+ };
503
+
504
+ export declare type SchemaEngineConfigInternal = SchemaEngineConfigJsInternal | SchemaEngineConfigClassic | SchemaEngineConfigAbsent;
505
+
506
+ declare type SchemaEngineConfigJs = {
507
+ /**
508
+ * Uses the new, unstable JavaScript based Schema Engine.
509
+ */
510
+ engine: 'js';
511
+ /**
512
+ * The function that instantiates the driver adapter to use for the JavaScript based Schema Engine.
513
+ */
514
+ adapter: () => Promise<SqlMigrationAwareDriverAdapterFactory>;
515
+ };
516
+
517
+ declare type SchemaEngineConfigJsInternal = {
518
+ /**
519
+ * Uses the new, unstable JavaScript based Schema Engine.
520
+ */
521
+ engine: 'js';
522
+ /**
523
+ * The function that instantiates the driver adapter to use for the JavaScript based Schema Engine.
524
+ */
525
+ adapter: () => Promise<ErrorCapturingSqlMigrationAwareDriverAdapterFactory>;
526
+ };
527
+
528
+ declare const SchemaEngineConfigJsInternal: Schema.Struct<{
529
+ engine: Schema.Literal<["js"]>;
530
+ adapter: Schema.declare<() => Promise<ErrorCapturingSqlMigrationAwareDriverAdapterFactory>, () => Promise<ErrorCapturingSqlMigrationAwareDriverAdapterFactory>, readonly [], never>;
531
+ }>;
532
+
533
+ /**
534
+ * Simplifies the type signature of a type.
535
+ * Re-exported from `effect/Types`.
536
+ *
537
+ * @example
538
+ * ```ts
539
+ * type Res = Simplify<{ a: number } & { b: number }> // { a: number; b: number; }
540
+ * ```
541
+ */
542
+ declare type Simplify<A> = {
543
+ [K in keyof A]: A[K];
544
+ } extends infer B ? B : never;
545
+
546
+ declare interface SqlDriverAdapter extends SqlQueryable {
547
+ /**
548
+ * Execute multiple SQL statements separated by semicolon.
549
+ */
550
+ executeScript(script: string): Promise<void>;
551
+ /**
552
+ * Start new transaction.
553
+ */
554
+ startTransaction(isolationLevel?: IsolationLevel): Promise<Transaction>;
555
+ /**
556
+ * Optional method that returns extra connection info
557
+ */
558
+ getConnectionInfo?(): ConnectionInfo;
559
+ /**
560
+ * Dispose of the connection and release any resources.
561
+ */
562
+ dispose(): Promise<void>;
563
+ }
564
+
565
+ declare interface SqlDriverAdapterFactory extends DriverAdapterFactory<SqlQuery, SqlResultSet> {
566
+ connect(): Promise<SqlDriverAdapter>;
567
+ }
568
+
569
+ /**
570
+ * An SQL migration adapter that is aware of the notion of a shadow database
571
+ * and can create a connection to it.
572
+ */
573
+ declare interface SqlMigrationAwareDriverAdapterFactory extends SqlDriverAdapterFactory {
574
+ connectToShadowDb(): Promise<SqlDriverAdapter>;
575
+ }
576
+
577
+ declare type SqlQuery = {
578
+ sql: string;
579
+ args: Array<unknown>;
580
+ argTypes: Array<ArgType>;
581
+ };
582
+
583
+ declare interface SqlQueryable extends Queryable<SqlQuery, SqlResultSet> {
584
+ }
585
+
586
+ declare interface SqlResultSet {
587
+ /**
588
+ * List of column types appearing in a database query, in the same order as `columnNames`.
589
+ * They are used within the Query Engine to convert values from JS to Quaint values.
590
+ */
591
+ columnTypes: Array<ColumnType>;
592
+ /**
593
+ * List of column names appearing in a database query, in the same order as `columnTypes`.
594
+ */
595
+ columnNames: Array<string>;
596
+ /**
597
+ * List of rows retrieved from a database query.
598
+ * Each row is a list of values, whose length matches `columnNames` and `columnTypes`.
599
+ */
600
+ rows: Array<Array<unknown>>;
601
+ /**
602
+ * The last ID of an `INSERT` statement, if any.
603
+ * This is required for `AUTO_INCREMENT` columns in databases based on MySQL and SQLite.
604
+ */
605
+ lastInsertId?: string;
606
+ }
607
+
608
+ declare type TablesConfigShape = {
609
+ /**
610
+ * List of tables that are externally managed.
611
+ * Prisma will not modify the structure of these tables and not generate migrations for those tables.
612
+ * These tables will still be represented in schema.prisma file and be available in the client API.
613
+ */
614
+ external?: string[];
615
+ };
616
+
617
+ declare interface Transaction extends AdapterInfo, SqlQueryable {
618
+ /**
619
+ * Transaction options.
620
+ */
621
+ readonly options: TransactionOptions;
622
+ /**
623
+ * Commit the transaction.
624
+ */
625
+ commit(): Promise<void>;
626
+ /**
627
+ * Roll back the transaction.
628
+ */
629
+ rollback(): Promise<void>;
630
+ }
631
+
632
+ declare type TransactionOptions = {
633
+ usePhantomQuery: boolean;
634
+ };
635
+
636
+ declare type TypedSqlConfigShape = {
637
+ /**
638
+ * The path to the directory where Prisma should look for the `typedSql` queries, where *.sql files will be loaded.
639
+ */
640
+ path?: string;
641
+ };
642
+
643
+ declare type ViewsConfigShape = {
644
+ /**
645
+ * The path to the directory where Prisma should look for the view definitions, where *.sql files will be loaded.
646
+ */
647
+ path?: string;
648
+ };
649
+
650
+ export { }
backend/node_modules/@prisma/config/dist/index.js ADDED
@@ -0,0 +1,1000 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ PrismaConfigEnvError: () => PrismaConfigEnvError,
34
+ defaultTestConfig: () => defaultTestConfig,
35
+ defineConfig: () => defineConfig,
36
+ env: () => env,
37
+ loadConfigFromFile: () => loadConfigFromFile,
38
+ loadConfigFromPackageJson: () => loadConfigFromPackageJson
39
+ });
40
+ module.exports = __toCommonJS(index_exports);
41
+
42
+ // ../debug/dist/index.mjs
43
+ var __defProp2 = Object.defineProperty;
44
+ var __export2 = (target, all) => {
45
+ for (var name in all)
46
+ __defProp2(target, name, { get: all[name], enumerable: true });
47
+ };
48
+ var colors_exports = {};
49
+ __export2(colors_exports, {
50
+ $: () => $,
51
+ bgBlack: () => bgBlack,
52
+ bgBlue: () => bgBlue,
53
+ bgCyan: () => bgCyan,
54
+ bgGreen: () => bgGreen,
55
+ bgMagenta: () => bgMagenta,
56
+ bgRed: () => bgRed,
57
+ bgWhite: () => bgWhite,
58
+ bgYellow: () => bgYellow,
59
+ black: () => black,
60
+ blue: () => blue,
61
+ bold: () => bold,
62
+ cyan: () => cyan,
63
+ dim: () => dim,
64
+ gray: () => gray,
65
+ green: () => green,
66
+ grey: () => grey,
67
+ hidden: () => hidden,
68
+ inverse: () => inverse,
69
+ italic: () => italic,
70
+ magenta: () => magenta,
71
+ red: () => red,
72
+ reset: () => reset,
73
+ strikethrough: () => strikethrough,
74
+ underline: () => underline,
75
+ white: () => white,
76
+ yellow: () => yellow
77
+ });
78
+ var FORCE_COLOR;
79
+ var NODE_DISABLE_COLORS;
80
+ var NO_COLOR;
81
+ var TERM;
82
+ var isTTY = true;
83
+ if (typeof process !== "undefined") {
84
+ ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});
85
+ isTTY = process.stdout && process.stdout.isTTY;
86
+ }
87
+ var $ = {
88
+ enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY)
89
+ };
90
+ function init(x, y) {
91
+ let rgx = new RegExp(`\\x1b\\[${y}m`, "g");
92
+ let open = `\x1B[${x}m`, close = `\x1B[${y}m`;
93
+ return function(txt) {
94
+ if (!$.enabled || txt == null) return txt;
95
+ return open + (!!~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close;
96
+ };
97
+ }
98
+ var reset = init(0, 0);
99
+ var bold = init(1, 22);
100
+ var dim = init(2, 22);
101
+ var italic = init(3, 23);
102
+ var underline = init(4, 24);
103
+ var inverse = init(7, 27);
104
+ var hidden = init(8, 28);
105
+ var strikethrough = init(9, 29);
106
+ var black = init(30, 39);
107
+ var red = init(31, 39);
108
+ var green = init(32, 39);
109
+ var yellow = init(33, 39);
110
+ var blue = init(34, 39);
111
+ var magenta = init(35, 39);
112
+ var cyan = init(36, 39);
113
+ var white = init(37, 39);
114
+ var gray = init(90, 39);
115
+ var grey = init(90, 39);
116
+ var bgBlack = init(40, 49);
117
+ var bgRed = init(41, 49);
118
+ var bgGreen = init(42, 49);
119
+ var bgYellow = init(43, 49);
120
+ var bgBlue = init(44, 49);
121
+ var bgMagenta = init(45, 49);
122
+ var bgCyan = init(46, 49);
123
+ var bgWhite = init(47, 49);
124
+ var MAX_ARGS_HISTORY = 100;
125
+ var COLORS = ["green", "yellow", "blue", "magenta", "cyan", "red"];
126
+ var argsHistory = [];
127
+ var lastTimestamp = Date.now();
128
+ var lastColor = 0;
129
+ var processEnv = typeof process !== "undefined" ? process.env : {};
130
+ globalThis.DEBUG ??= processEnv.DEBUG ?? "";
131
+ globalThis.DEBUG_COLORS ??= processEnv.DEBUG_COLORS ? processEnv.DEBUG_COLORS === "true" : true;
132
+ var topProps = {
133
+ enable(namespace) {
134
+ if (typeof namespace === "string") {
135
+ globalThis.DEBUG = namespace;
136
+ }
137
+ },
138
+ disable() {
139
+ const prev = globalThis.DEBUG;
140
+ globalThis.DEBUG = "";
141
+ return prev;
142
+ },
143
+ // this is the core logic to check if logging should happen or not
144
+ enabled(namespace) {
145
+ const listenedNamespaces = globalThis.DEBUG.split(",").map((s) => {
146
+ return s.replace(/[.+?^${}()|[\]\\]/g, "\\$&");
147
+ });
148
+ const isListened = listenedNamespaces.some((listenedNamespace) => {
149
+ if (listenedNamespace === "" || listenedNamespace[0] === "-") return false;
150
+ return namespace.match(RegExp(listenedNamespace.split("*").join(".*") + "$"));
151
+ });
152
+ const isExcluded = listenedNamespaces.some((listenedNamespace) => {
153
+ if (listenedNamespace === "" || listenedNamespace[0] !== "-") return false;
154
+ return namespace.match(RegExp(listenedNamespace.slice(1).split("*").join(".*") + "$"));
155
+ });
156
+ return isListened && !isExcluded;
157
+ },
158
+ log: (...args) => {
159
+ const [namespace, format, ...rest] = args;
160
+ const logWithFormatting = console.warn ?? console.log;
161
+ logWithFormatting(`${namespace} ${format}`, ...rest);
162
+ },
163
+ formatters: {}
164
+ // not implemented
165
+ };
166
+ function debugCreate(namespace) {
167
+ const instanceProps = {
168
+ color: COLORS[lastColor++ % COLORS.length],
169
+ enabled: topProps.enabled(namespace),
170
+ namespace,
171
+ log: topProps.log,
172
+ extend: () => {
173
+ }
174
+ // not implemented
175
+ };
176
+ const debugCall = (...args) => {
177
+ const { enabled, namespace: namespace2, color, log } = instanceProps;
178
+ if (args.length !== 0) {
179
+ argsHistory.push([namespace2, ...args]);
180
+ }
181
+ if (argsHistory.length > MAX_ARGS_HISTORY) {
182
+ argsHistory.shift();
183
+ }
184
+ if (topProps.enabled(namespace2) || enabled) {
185
+ const stringArgs = args.map((arg) => {
186
+ if (typeof arg === "string") {
187
+ return arg;
188
+ }
189
+ return safeStringify(arg);
190
+ });
191
+ const ms = `+${Date.now() - lastTimestamp}ms`;
192
+ lastTimestamp = Date.now();
193
+ if (globalThis.DEBUG_COLORS) {
194
+ log(colors_exports[color](bold(namespace2)), ...stringArgs, colors_exports[color](ms));
195
+ } else {
196
+ log(namespace2, ...stringArgs, ms);
197
+ }
198
+ }
199
+ };
200
+ return new Proxy(debugCall, {
201
+ get: (_, prop) => instanceProps[prop],
202
+ set: (_, prop, value) => instanceProps[prop] = value
203
+ });
204
+ }
205
+ var Debug = new Proxy(debugCreate, {
206
+ get: (_, prop) => topProps[prop],
207
+ set: (_, prop, value) => topProps[prop] = value
208
+ });
209
+ function safeStringify(value, indent = 2) {
210
+ const cache = /* @__PURE__ */ new Set();
211
+ return JSON.stringify(
212
+ value,
213
+ (key, value2) => {
214
+ if (typeof value2 === "object" && value2 !== null) {
215
+ if (cache.has(value2)) {
216
+ return `[Circular *]`;
217
+ }
218
+ cache.add(value2);
219
+ } else if (typeof value2 === "bigint") {
220
+ return value2.toString();
221
+ }
222
+ return value2;
223
+ },
224
+ indent
225
+ );
226
+ }
227
+
228
+ // ../driver-adapter-utils/dist/index.mjs
229
+ function isDriverAdapterError(error) {
230
+ return error["name"] === "DriverAdapterError" && typeof error["cause"] === "object";
231
+ }
232
+ function ok(value) {
233
+ return {
234
+ ok: true,
235
+ value,
236
+ map(fn) {
237
+ return ok(fn(value));
238
+ },
239
+ flatMap(fn) {
240
+ return fn(value);
241
+ }
242
+ };
243
+ }
244
+ function err(error) {
245
+ return {
246
+ ok: false,
247
+ error,
248
+ map() {
249
+ return err(error);
250
+ },
251
+ flatMap() {
252
+ return err(error);
253
+ }
254
+ };
255
+ }
256
+ var debug = Debug("driver-adapter-utils");
257
+ var ErrorRegistryInternal = class {
258
+ registeredErrors = [];
259
+ consumeError(id) {
260
+ return this.registeredErrors[id];
261
+ }
262
+ registerNewError(error) {
263
+ let i = 0;
264
+ while (this.registeredErrors[i] !== void 0) {
265
+ i++;
266
+ }
267
+ this.registeredErrors[i] = { error };
268
+ return i;
269
+ }
270
+ };
271
+ function copySymbolsFromSource(source, target) {
272
+ const symbols = Object.getOwnPropertySymbols(source);
273
+ const symbolObject = Object.fromEntries(symbols.map((symbol) => [symbol, true]));
274
+ Object.assign(target, symbolObject);
275
+ }
276
+ var bindMigrationAwareSqlAdapterFactory = (adapterFactory) => {
277
+ const errorRegistry = new ErrorRegistryInternal();
278
+ const boundFactory = {
279
+ adapterName: adapterFactory.adapterName,
280
+ provider: adapterFactory.provider,
281
+ errorRegistry,
282
+ connect: async (...args) => {
283
+ const ctx = await wrapAsync(errorRegistry, adapterFactory.connect.bind(adapterFactory))(...args);
284
+ return ctx.map((ctx2) => bindAdapter(ctx2, errorRegistry));
285
+ },
286
+ connectToShadowDb: async (...args) => {
287
+ const ctx = await wrapAsync(errorRegistry, adapterFactory.connectToShadowDb.bind(adapterFactory))(...args);
288
+ return ctx.map((ctx2) => bindAdapter(ctx2, errorRegistry));
289
+ }
290
+ };
291
+ copySymbolsFromSource(adapterFactory, boundFactory);
292
+ return boundFactory;
293
+ };
294
+ var bindAdapter = (adapter, errorRegistry = new ErrorRegistryInternal()) => {
295
+ const boundAdapter = {
296
+ adapterName: adapter.adapterName,
297
+ errorRegistry,
298
+ queryRaw: wrapAsync(errorRegistry, adapter.queryRaw.bind(adapter)),
299
+ executeRaw: wrapAsync(errorRegistry, adapter.executeRaw.bind(adapter)),
300
+ executeScript: wrapAsync(errorRegistry, adapter.executeScript.bind(adapter)),
301
+ dispose: wrapAsync(errorRegistry, adapter.dispose.bind(adapter)),
302
+ provider: adapter.provider,
303
+ startTransaction: async (...args) => {
304
+ const ctx = await wrapAsync(errorRegistry, adapter.startTransaction.bind(adapter))(...args);
305
+ return ctx.map((ctx2) => bindTransaction(errorRegistry, ctx2));
306
+ }
307
+ };
308
+ if (adapter.getConnectionInfo) {
309
+ boundAdapter.getConnectionInfo = wrapSync(errorRegistry, adapter.getConnectionInfo.bind(adapter));
310
+ }
311
+ return boundAdapter;
312
+ };
313
+ var bindTransaction = (errorRegistry, transaction) => {
314
+ return {
315
+ adapterName: transaction.adapterName,
316
+ provider: transaction.provider,
317
+ options: transaction.options,
318
+ queryRaw: wrapAsync(errorRegistry, transaction.queryRaw.bind(transaction)),
319
+ executeRaw: wrapAsync(errorRegistry, transaction.executeRaw.bind(transaction)),
320
+ commit: wrapAsync(errorRegistry, transaction.commit.bind(transaction)),
321
+ rollback: wrapAsync(errorRegistry, transaction.rollback.bind(transaction))
322
+ };
323
+ };
324
+ function wrapAsync(registry, fn) {
325
+ return async (...args) => {
326
+ try {
327
+ return ok(await fn(...args));
328
+ } catch (error) {
329
+ debug("[error@wrapAsync]", error);
330
+ if (isDriverAdapterError(error)) {
331
+ return err(error.cause);
332
+ }
333
+ const id = registry.registerNewError(error);
334
+ return err({ kind: "GenericJs", id });
335
+ }
336
+ };
337
+ }
338
+ function wrapSync(registry, fn) {
339
+ return (...args) => {
340
+ try {
341
+ return ok(fn(...args));
342
+ } catch (error) {
343
+ debug("[error@wrapSync]", error);
344
+ if (isDriverAdapterError(error)) {
345
+ return err(error.cause);
346
+ }
347
+ const id = registry.registerNewError(error);
348
+ return err({ kind: "GenericJs", id });
349
+ }
350
+ };
351
+ }
352
+ var mockAdapterErrors = {
353
+ queryRaw: new Error("Not implemented: queryRaw"),
354
+ executeRaw: new Error("Not implemented: executeRaw"),
355
+ startTransaction: new Error("Not implemented: startTransaction"),
356
+ executeScript: new Error("Not implemented: executeScript"),
357
+ dispose: new Error("Not implemented: dispose")
358
+ };
359
+
360
+ // src/PrismaConfig.ts
361
+ var import_effect3 = require("effect");
362
+ var import_Function = require("effect/Function");
363
+
364
+ // src/defineConfig.ts
365
+ var import_effect = require("effect");
366
+
367
+ // src/defaultConfig.ts
368
+ function defaultConfig() {
369
+ return makePrismaConfigInternal({
370
+ loadedFromFile: null,
371
+ deprecatedPackageJson: null
372
+ });
373
+ }
374
+
375
+ // src/defineConfig.ts
376
+ function validateExperimentalFeatures(config) {
377
+ const experimental = config.experimental || {};
378
+ if (config.engine === "js" && !experimental.adapter) {
379
+ return import_effect.Either.left(
380
+ new Error('The `engine === "js"` configuration requires `experimental.adapter` to be set to `true`.')
381
+ );
382
+ }
383
+ if (config.studio && !experimental.studio) {
384
+ return import_effect.Either.left(new Error("The `studio` configuration requires `experimental.studio` to be set to `true`."));
385
+ }
386
+ if (config.tables?.external && !experimental.externalTables) {
387
+ return import_effect.Either.left(
388
+ new Error("The `tables.external` configuration requires `experimental.externalTables` to be set to `true`.")
389
+ );
390
+ }
391
+ if (config.migrations?.initShadowDb && !experimental.externalTables) {
392
+ return import_effect.Either.left(
393
+ new Error(
394
+ "The `migrations.initShadowDb` configuration requires `experimental.externalTables` to be set to `true`."
395
+ )
396
+ );
397
+ }
398
+ if (config["extensions"] !== void 0 && !experimental.extensions) {
399
+ return import_effect.Either.left(
400
+ new Error("The `extensions` configuration requires `experimental.extensions` to be set to `true`.")
401
+ );
402
+ }
403
+ return import_effect.Either.right(config);
404
+ }
405
+ var debug2 = Debug("prisma:config:defineConfig");
406
+ function defineConfig(configInput) {
407
+ const validationResult = validateExperimentalFeatures(configInput);
408
+ if (validationResult._tag === "Left") {
409
+ throw validationResult.left;
410
+ }
411
+ const config = defaultConfig();
412
+ debug2("[default]: %o", config);
413
+ defineExperimentalConfig(config, configInput);
414
+ defineSchemaConfig(config, configInput);
415
+ defineEngineConfig(config, configInput);
416
+ defineStudioConfig(config, configInput);
417
+ defineMigrationsConfig(config, configInput);
418
+ defineTablesConfig(config, configInput);
419
+ defineEnumsConfig(config, configInput);
420
+ defineTypedSqlConfig(config, configInput);
421
+ defineViewsConfig(config, configInput);
422
+ defineExtensionsConfig(config, configInput);
423
+ return config;
424
+ }
425
+ function defineExperimentalConfig(config, configInput) {
426
+ if (!configInput.experimental) {
427
+ return;
428
+ }
429
+ config.experimental = configInput.experimental;
430
+ debug2("[config.experimental]: %o", config.experimental);
431
+ }
432
+ function defineSchemaConfig(config, configInput) {
433
+ if (!configInput.schema) {
434
+ return;
435
+ }
436
+ config.schema = configInput.schema;
437
+ debug2("[config.schema]: %o", config.schema);
438
+ }
439
+ function defineMigrationsConfig(config, configInput) {
440
+ if (!configInput.migrations) {
441
+ return;
442
+ }
443
+ config.migrations = configInput.migrations;
444
+ debug2("[config.migrations]: %o", config.migrations);
445
+ }
446
+ function defineTypedSqlConfig(config, configInput) {
447
+ if (!configInput.typedSql) {
448
+ return;
449
+ }
450
+ config.typedSql = configInput.typedSql;
451
+ debug2("[config.typedSql]: %o", config.typedSql);
452
+ }
453
+ function defineViewsConfig(config, configInput) {
454
+ if (!configInput.views) {
455
+ return;
456
+ }
457
+ config.views = configInput.views;
458
+ debug2("[config.views]: %o", config.views);
459
+ }
460
+ function defineTablesConfig(config, configInput) {
461
+ if (!configInput.tables) {
462
+ return;
463
+ }
464
+ config.tables = configInput.tables;
465
+ debug2("[config.tables]: %o", config.tables);
466
+ }
467
+ function defineEnumsConfig(config, configInput) {
468
+ if (!configInput.enums) {
469
+ return;
470
+ }
471
+ config.enums = configInput.enums;
472
+ debug2("[config.enums]: %o", config.enums);
473
+ }
474
+ function defineStudioConfig(config, configInput) {
475
+ if (!configInput.studio?.adapter) {
476
+ return;
477
+ }
478
+ const { adapter: getAdapterFactory } = configInput.studio;
479
+ config.studio = {
480
+ adapter: async () => {
481
+ const adapterFactory = await getAdapterFactory();
482
+ debug2("[config.studio.adapter]: %o", adapterFactory.adapterName);
483
+ return adapterFactory;
484
+ }
485
+ };
486
+ debug2("[config.studio]: %o", config.studio);
487
+ }
488
+ function defineEngineConfig(config, configInput) {
489
+ if (configInput.engine === void 0) {
490
+ return;
491
+ } else if (configInput.engine === "js") {
492
+ const { engine, adapter: getAdapterFactory } = configInput;
493
+ const adapter = async () => {
494
+ const adapterFactory = await getAdapterFactory();
495
+ debug2("[config.adapter]: %o", adapterFactory.adapterName);
496
+ return bindMigrationAwareSqlAdapterFactory(adapterFactory);
497
+ };
498
+ Object.assign(config, { engine, adapter });
499
+ debug2("[config.engine]: %o", engine);
500
+ debug2("[config.adapter]: %o", adapter);
501
+ } else if (configInput.engine === "classic") {
502
+ const { engine, datasource } = configInput;
503
+ Object.assign(config, { engine, datasource });
504
+ debug2("[config.engine]: %o", engine);
505
+ debug2("[config.datasource]: %o", datasource);
506
+ }
507
+ }
508
+ function defineExtensionsConfig(config, configInput) {
509
+ if (!configInput["extensions"]) {
510
+ return;
511
+ }
512
+ config["extensions"] = configInput["extensions"];
513
+ debug2("[config.extensions]: %o", config["extensions"]);
514
+ }
515
+
516
+ // src/loadConfigFromPackageJson.ts
517
+ var import_promises = require("node:fs/promises");
518
+ var import_node_process = __toESM(require("node:process"));
519
+ var import_effect2 = require("effect");
520
+ var import_package = require("empathic/package");
521
+ var PrismaConfigPackageJsonShape = import_effect2.Schema.Struct({
522
+ schema: import_effect2.Schema.optional(import_effect2.Schema.String),
523
+ seed: import_effect2.Schema.optional(import_effect2.Schema.NonEmptyString)
524
+ });
525
+ async function loadConfigFromPackageJson(cwd = import_node_process.default.cwd()) {
526
+ const pkgPath = (0, import_package.up)({ cwd });
527
+ if (pkgPath === void 0) {
528
+ return null;
529
+ }
530
+ const pkgJson = await (0, import_promises.readFile)(pkgPath, { encoding: "utf-8" }).then((p) => JSON.parse(p));
531
+ const deprecatedConfig = pkgJson["prisma"];
532
+ if (deprecatedConfig === void 0) {
533
+ return null;
534
+ }
535
+ if (Object.keys(deprecatedConfig).length === 1 && deprecatedConfig["prismaCommit"] !== void 0) {
536
+ return null;
537
+ }
538
+ return {
539
+ config: deprecatedConfig,
540
+ loadedFromFile: pkgPath
541
+ };
542
+ }
543
+
544
+ // src/PrismaConfig.ts
545
+ var debug3 = Debug("prisma:config:PrismaConfig");
546
+ var SqlMigrationAwareDriverAdapterFactoryShape = import_effect3.Schema.declare(
547
+ (input) => {
548
+ return typeof input === "function";
549
+ },
550
+ {
551
+ identifier: "SqlMigrationAwareDriverAdapterFactory",
552
+ encode: import_effect3.identity,
553
+ decode: import_effect3.identity
554
+ }
555
+ );
556
+ var ErrorCapturingSqlMigrationAwareDriverAdapterFactoryShape = import_effect3.Schema.declare(
557
+ (input) => {
558
+ return typeof input === "function";
559
+ },
560
+ {
561
+ identifier: "ErrorCapturingSqlMigrationAwareDriverAdapterFactory",
562
+ encode: import_effect3.identity,
563
+ decode: import_effect3.identity
564
+ }
565
+ );
566
+ var SchemaEngineConfigClassicShape = import_effect3.Schema.Struct({
567
+ engine: import_effect3.Schema.Literal("classic"),
568
+ datasource: import_effect3.Schema.Struct({
569
+ url: import_effect3.Schema.String,
570
+ directUrl: import_effect3.Schema.optional(import_effect3.Schema.String),
571
+ shadowDatabaseUrl: import_effect3.Schema.optional(import_effect3.Schema.String)
572
+ })
573
+ });
574
+ var SchemaEngineConfigJsShape = import_effect3.Schema.Struct({
575
+ engine: import_effect3.Schema.Literal("js"),
576
+ adapter: SqlMigrationAwareDriverAdapterFactoryShape
577
+ });
578
+ var SchemaEngineConfigAbsentShape = import_effect3.Schema.Struct({
579
+ engine: import_effect3.Schema.optional(import_effect3.Schema.Never)
580
+ });
581
+ var SchemaEngineConfigShape = import_effect3.Schema.Union(
582
+ SchemaEngineConfigClassicShape,
583
+ SchemaEngineConfigJsShape,
584
+ SchemaEngineConfigAbsentShape
585
+ );
586
+ var SchemaEngineConfigJsInternal = import_effect3.Schema.Struct({
587
+ engine: import_effect3.Schema.Literal("js"),
588
+ adapter: ErrorCapturingSqlMigrationAwareDriverAdapterFactoryShape
589
+ });
590
+ var SchemaEngineConfigInternal = import_effect3.Schema.Union(
591
+ SchemaEngineConfigClassicShape,
592
+ SchemaEngineConfigJsInternal,
593
+ SchemaEngineConfigAbsentShape
594
+ );
595
+ var ExperimentalConfigShape = import_effect3.Schema.Struct({
596
+ adapter: import_effect3.Schema.optional(import_effect3.Schema.Boolean),
597
+ studio: import_effect3.Schema.optional(import_effect3.Schema.Boolean),
598
+ externalTables: import_effect3.Schema.optional(import_effect3.Schema.Boolean),
599
+ extensions: import_effect3.Schema.optional(import_effect3.Schema.Boolean)
600
+ });
601
+ if (false) {
602
+ __testExperimentalConfigShapeValueA;
603
+ __testExperimentalConfigShapeValueB;
604
+ }
605
+ var MigrationsConfigShape = import_effect3.Schema.Struct({
606
+ path: import_effect3.Schema.optional(import_effect3.Schema.String),
607
+ initShadowDb: import_effect3.Schema.optional(import_effect3.Schema.String),
608
+ seed: import_effect3.Schema.optional(import_effect3.Schema.NonEmptyString)
609
+ });
610
+ if (false) {
611
+ __testMigrationsConfigShapeValueA;
612
+ __testMigrationsConfigShapeValueB;
613
+ }
614
+ var TablesConfigShape = import_effect3.Schema.Struct({
615
+ external: import_effect3.Schema.optional(import_effect3.Schema.mutable(import_effect3.Schema.Array(import_effect3.Schema.String)))
616
+ });
617
+ if (false) {
618
+ __testTablesConfigShapeValueA;
619
+ __testTablesConfigShapeValueB;
620
+ }
621
+ var EnumsConfigShape = import_effect3.Schema.Struct({
622
+ external: import_effect3.Schema.optional(import_effect3.Schema.mutable(import_effect3.Schema.Array(import_effect3.Schema.String)))
623
+ });
624
+ if (false) {
625
+ __testEnumsConfigShapeValueA;
626
+ __testEnumsConfigShapeValueB;
627
+ }
628
+ var ViewsConfigShape = import_effect3.Schema.Struct({
629
+ path: import_effect3.Schema.optional(import_effect3.Schema.String)
630
+ });
631
+ if (false) {
632
+ __testViewsConfigShapeValueA;
633
+ __testViewsConfigShapeValueB;
634
+ }
635
+ var TypedSqlConfigShape = import_effect3.Schema.Struct({
636
+ path: import_effect3.Schema.optional(import_effect3.Schema.String)
637
+ });
638
+ if (false) {
639
+ __testTypedSqlConfigShapeValueA;
640
+ __testTypedSqlConfigShapeValueB;
641
+ }
642
+ var PrismaStudioConfigShape = import_effect3.Schema.Struct({
643
+ /**
644
+ * Instantiates the Prisma driver adapter to use for Prisma Studio.
645
+ */
646
+ adapter: SqlMigrationAwareDriverAdapterFactoryShape
647
+ });
648
+ if (false) {
649
+ __testPrismaStudioConfigShapeValueA;
650
+ __testPrismaStudioConfigShapeValueB;
651
+ }
652
+ if (false) {
653
+ __testPrismaConfig;
654
+ __testPrismaConfigInternal;
655
+ }
656
+ var PrismaConfigUnconditionalShape = import_effect3.Schema.Struct({
657
+ experimental: import_effect3.Schema.optional(ExperimentalConfigShape),
658
+ schema: import_effect3.Schema.optional(import_effect3.Schema.String),
659
+ studio: import_effect3.Schema.optional(PrismaStudioConfigShape),
660
+ migrations: import_effect3.Schema.optional(MigrationsConfigShape),
661
+ tables: import_effect3.Schema.optional(TablesConfigShape),
662
+ enums: import_effect3.Schema.optional(EnumsConfigShape),
663
+ views: import_effect3.Schema.optional(ViewsConfigShape),
664
+ typedSql: import_effect3.Schema.optional(TypedSqlConfigShape),
665
+ extensions: import_effect3.Schema.optional(import_effect3.Schema.Any)
666
+ });
667
+ var PrismaConfigShape = import_effect3.Schema.extend(SchemaEngineConfigShape, PrismaConfigUnconditionalShape);
668
+ if (false) {
669
+ __testPrismaConfigValueA;
670
+ __testPrismaConfigValueB;
671
+ }
672
+ function validateExperimentalFeatures2(config) {
673
+ const experimental = config.experimental || {};
674
+ if (config.engine === "js" && !experimental.adapter) {
675
+ return import_effect3.Either.left(
676
+ new Error("The `engine === 'js'` configuration requires `experimental.adapter` to be set to `true`.")
677
+ );
678
+ }
679
+ if (config.studio && !experimental.studio) {
680
+ return import_effect3.Either.left(new Error("The `studio` configuration requires `experimental.studio` to be set to `true`."));
681
+ }
682
+ if (config.tables?.external && !experimental.externalTables) {
683
+ return import_effect3.Either.left(
684
+ new Error("The `tables.external` configuration requires `experimental.externalTables` to be set to `true`.")
685
+ );
686
+ }
687
+ if (config.enums?.external && !experimental.externalTables) {
688
+ return import_effect3.Either.left(
689
+ new Error("The `enums.external` configuration requires `experimental.externalTables` to be set to `true`.")
690
+ );
691
+ }
692
+ if (config.migrations?.initShadowDb && !experimental.externalTables) {
693
+ return import_effect3.Either.left(
694
+ new Error(
695
+ "The `migrations.initShadowDb` configuration requires `experimental.externalTables` to be set to `true`."
696
+ )
697
+ );
698
+ }
699
+ if (config["extensions"] && !experimental.extensions) {
700
+ return import_effect3.Either.left(
701
+ new Error("The `extensions` configuration requires `experimental.extensions` to be set to `true`.")
702
+ );
703
+ }
704
+ return import_effect3.Either.right(config);
705
+ }
706
+ function parsePrismaConfigShape(input) {
707
+ return (0, import_Function.pipe)(
708
+ import_effect3.Schema.decodeUnknownEither(PrismaConfigShape, {})(input, {
709
+ onExcessProperty: "error"
710
+ }),
711
+ import_effect3.Either.flatMap(validateExperimentalFeatures2)
712
+ );
713
+ }
714
+ var PRISMA_CONFIG_INTERNAL_BRAND = Symbol.for("PrismaConfigInternal");
715
+ var PrismaConfigInternalShape = import_effect3.Schema.extend(
716
+ PrismaConfigUnconditionalShape,
717
+ import_effect3.Schema.extend(
718
+ SchemaEngineConfigInternal,
719
+ import_effect3.Schema.Struct({
720
+ loadedFromFile: import_effect3.Schema.NullOr(import_effect3.Schema.String),
721
+ deprecatedPackageJson: import_effect3.Schema.NullOr(
722
+ import_effect3.Schema.Struct({
723
+ config: PrismaConfigPackageJsonShape,
724
+ loadedFromFile: import_effect3.Schema.String
725
+ })
726
+ )
727
+ })
728
+ )
729
+ );
730
+ function brandPrismaConfigInternal(config) {
731
+ Object.defineProperty(config, "__brand", {
732
+ value: PRISMA_CONFIG_INTERNAL_BRAND,
733
+ writable: true,
734
+ configurable: true,
735
+ enumerable: false
736
+ });
737
+ return config;
738
+ }
739
+ function parsePrismaConfigInternalShape(input) {
740
+ debug3("Parsing PrismaConfigInternal: %o", input);
741
+ if (typeof input === "object" && input !== null && input["__brand"] === PRISMA_CONFIG_INTERNAL_BRAND) {
742
+ debug3("Short-circuit: input is already a PrismaConfigInternal object");
743
+ return import_effect3.Either.right(input);
744
+ }
745
+ return (0, import_Function.pipe)(
746
+ import_effect3.Schema.decodeUnknownEither(PrismaConfigInternalShape, {})(input, {
747
+ onExcessProperty: "error"
748
+ }),
749
+ // Brand the output type to make `PrismaConfigInternal` opaque, without exposing the `Effect/Brand` type
750
+ // to the public API.
751
+ // This is done to work around the following issues:
752
+ // - https://github.com/microsoft/rushstack/issues/1308
753
+ // - https://github.com/microsoft/rushstack/issues/4034
754
+ // - https://github.com/microsoft/TypeScript/issues/58914
755
+ import_effect3.Either.map(brandPrismaConfigInternal)
756
+ );
757
+ }
758
+ function makePrismaConfigInternal(makeArgs) {
759
+ return brandPrismaConfigInternal(makeArgs);
760
+ }
761
+ function parseDefaultExport(defaultExport) {
762
+ const parseResultEither = (0, import_Function.pipe)(
763
+ // If the given config conforms to the `PrismaConfig` shape, feed it to `defineConfig`.
764
+ parsePrismaConfigShape(defaultExport),
765
+ import_effect3.Either.map((config) => {
766
+ debug3("Parsed `PrismaConfig` shape: %o", config);
767
+ return defineConfig(config);
768
+ }),
769
+ // Otherwise, try to parse it as a `PrismaConfigInternal` shape.
770
+ import_effect3.Either.orElse(() => parsePrismaConfigInternalShape(defaultExport))
771
+ );
772
+ if (import_effect3.Either.isLeft(parseResultEither)) {
773
+ throw parseResultEither.left;
774
+ }
775
+ return parseResultEither.right;
776
+ }
777
+
778
+ // src/defaultTestConfig.ts
779
+ function defaultTestConfig() {
780
+ return makePrismaConfigInternal({
781
+ loadedFromFile: null,
782
+ deprecatedPackageJson: null
783
+ });
784
+ }
785
+
786
+ // src/env.ts
787
+ var PrismaConfigEnvError = class extends Error {
788
+ constructor(name) {
789
+ super(`Missing required environment variable: ${name}`);
790
+ this.name = "PrismaConfigEnvError";
791
+ }
792
+ };
793
+ function env(name) {
794
+ const value = process.env[name];
795
+ if (!value) {
796
+ throw new PrismaConfigEnvError(name);
797
+ }
798
+ return value;
799
+ }
800
+
801
+ // src/loadConfigFromFile.ts
802
+ var import_node_path = __toESM(require("node:path"));
803
+ var import_node_process2 = __toESM(require("node:process"));
804
+ var debug4 = Debug("prisma:config:loadConfigFromFile");
805
+ var SUPPORTED_EXTENSIONS = [".js", ".ts", ".mjs", ".cjs", ".mts", ".cts"];
806
+ async function loadConfigFromFile({
807
+ configFile,
808
+ configRoot = import_node_process2.default.cwd()
809
+ }) {
810
+ const start = performance.now();
811
+ const getTime = () => `${(performance.now() - start).toFixed(2)}ms`;
812
+ const diagnostics = [];
813
+ const deprecatedPrismaConfigFromJson = await loadConfigFromPackageJson(configRoot);
814
+ if (deprecatedPrismaConfigFromJson) {
815
+ diagnostics.push({
816
+ _tag: "warn",
817
+ value: ({ warn, link }) => () => warn(
818
+ `The configuration property \`package.json#prisma\` is deprecated and will be removed in Prisma 7. Please migrate to a Prisma config file (e.g., \`prisma.config.ts\`).
819
+ For more information, see: ${link("https://pris.ly/prisma-config")}
820
+ `
821
+ )
822
+ });
823
+ }
824
+ try {
825
+ const { configModule, resolvedPath, error } = await loadConfigTsOrJs(configRoot, configFile);
826
+ if (error) {
827
+ return {
828
+ resolvedPath,
829
+ error,
830
+ diagnostics
831
+ };
832
+ }
833
+ debug4(`Config file loaded in %s`, getTime());
834
+ if (resolvedPath === null) {
835
+ debug4(`No config file found in the current working directory %s`, configRoot);
836
+ return { resolvedPath: null, config: defaultConfig(), diagnostics };
837
+ }
838
+ let parsedConfig;
839
+ try {
840
+ parsedConfig = parseDefaultExport(configModule);
841
+ } catch (e) {
842
+ const error2 = e;
843
+ return {
844
+ resolvedPath,
845
+ error: {
846
+ _tag: "ConfigFileSyntaxError",
847
+ error: error2
848
+ },
849
+ diagnostics
850
+ };
851
+ }
852
+ diagnostics.push({
853
+ _tag: "log",
854
+ value: ({ log, dim: dim2 }) => () => log(dim2(`Loaded Prisma config from ${import_node_path.default.relative(configRoot, resolvedPath)}.
855
+ `))
856
+ });
857
+ const prismaConfig = transformPathsInConfigToAbsolute(parsedConfig, resolvedPath);
858
+ if (deprecatedPrismaConfigFromJson) {
859
+ diagnostics.push({
860
+ _tag: "warn",
861
+ value: ({ warn, link }) => () => warn(`The Prisma config file in ${import_node_path.default.relative(
862
+ configRoot,
863
+ resolvedPath
864
+ )} overrides the deprecated \`package.json#prisma\` property in ${import_node_path.default.relative(
865
+ configRoot,
866
+ deprecatedPrismaConfigFromJson.loadedFromFile
867
+ )}.
868
+ For more information, see: ${link("https://pris.ly/prisma-config")}
869
+ `)
870
+ });
871
+ }
872
+ return {
873
+ config: {
874
+ ...prismaConfig,
875
+ loadedFromFile: resolvedPath
876
+ },
877
+ resolvedPath,
878
+ diagnostics
879
+ };
880
+ } catch (e) {
881
+ const error = e;
882
+ return {
883
+ resolvedPath: configRoot,
884
+ error: {
885
+ _tag: "UnknownError",
886
+ error
887
+ },
888
+ diagnostics
889
+ };
890
+ }
891
+ }
892
+ async function loadConfigTsOrJs(configRoot, configFile) {
893
+ const { loadConfig: loadConfigWithC12 } = await import("c12");
894
+ const { deepmerge } = await import("deepmerge-ts");
895
+ try {
896
+ const {
897
+ config,
898
+ configFile: _resolvedPath,
899
+ meta
900
+ } = await loadConfigWithC12({
901
+ cwd: configRoot,
902
+ // configuration base name
903
+ name: "prisma",
904
+ // the config file to load (without file extensions), defaulting to `${cwd}.${name}`
905
+ configFile,
906
+ // do not load .env files
907
+ dotenv: false,
908
+ // do not load RC config
909
+ rcFile: false,
910
+ // do not extend remote config files
911
+ giget: false,
912
+ // do not extend the default config
913
+ extend: false,
914
+ // do not load from nearest package.json
915
+ packageJson: false,
916
+ // @ts-expect-error: this is a type-error in `c12` itself
917
+ merger: deepmerge,
918
+ jitiOptions: {
919
+ interopDefault: true,
920
+ moduleCache: false,
921
+ extensions: SUPPORTED_EXTENSIONS
922
+ }
923
+ });
924
+ const resolvedPath = _resolvedPath ? import_node_path.default.normalize(_resolvedPath) : void 0;
925
+ const doesConfigFileExist = resolvedPath !== void 0 && meta !== void 0;
926
+ if (configFile && !doesConfigFileExist) {
927
+ debug4(`The given config file was not found at %s`, resolvedPath);
928
+ return {
929
+ require: null,
930
+ resolvedPath: import_node_path.default.join(configRoot, configFile),
931
+ error: { _tag: "ConfigFileNotFound" }
932
+ };
933
+ }
934
+ if (doesConfigFileExist) {
935
+ const extension = import_node_path.default.extname(import_node_path.default.basename(resolvedPath));
936
+ if (!SUPPORTED_EXTENSIONS.includes(extension)) {
937
+ return {
938
+ configModule: config,
939
+ resolvedPath,
940
+ error: {
941
+ _tag: "ConfigLoadError",
942
+ error: new Error(`Unsupported Prisma config file extension: ${extension}`)
943
+ }
944
+ };
945
+ }
946
+ }
947
+ return {
948
+ configModule: config,
949
+ resolvedPath: doesConfigFileExist ? resolvedPath : null,
950
+ error: null
951
+ };
952
+ } catch (e) {
953
+ const error = e;
954
+ debug4("jiti import failed: %s", error.message);
955
+ const configFileMatch = error.message.match(/prisma\.config\.(\w+)/);
956
+ const extension = configFileMatch?.[1];
957
+ const filenameWithExtension = import_node_path.default.join(configRoot, extension ? `prisma.config.${extension}` : "");
958
+ debug4("faulty config file: %s", filenameWithExtension);
959
+ return {
960
+ error: {
961
+ _tag: "ConfigLoadError",
962
+ error
963
+ },
964
+ resolvedPath: filenameWithExtension
965
+ };
966
+ }
967
+ }
968
+ function transformPathsInConfigToAbsolute(prismaConfig, resolvedPath) {
969
+ function resolvePath(value) {
970
+ if (!value) {
971
+ return void 0;
972
+ }
973
+ return import_node_path.default.resolve(import_node_path.default.dirname(resolvedPath), value);
974
+ }
975
+ return {
976
+ ...prismaConfig,
977
+ schema: resolvePath(prismaConfig.schema),
978
+ migrations: {
979
+ ...prismaConfig.migrations,
980
+ path: resolvePath(prismaConfig.migrations?.path)
981
+ },
982
+ typedSql: {
983
+ ...prismaConfig.typedSql,
984
+ path: resolvePath(prismaConfig.typedSql?.path)
985
+ },
986
+ views: {
987
+ ...prismaConfig.views,
988
+ path: resolvePath(prismaConfig.views?.path)
989
+ }
990
+ };
991
+ }
992
+ // Annotate the CommonJS export names for ESM import in node:
993
+ 0 && (module.exports = {
994
+ PrismaConfigEnvError,
995
+ defaultTestConfig,
996
+ defineConfig,
997
+ env,
998
+ loadConfigFromFile,
999
+ loadConfigFromPackageJson
1000
+ });
backend/node_modules/@prisma/engines/dist/index.d.ts ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { BinaryPaths } from '@prisma/fetch-engine';
2
+ import { BinaryType as BinaryType_2 } from '@prisma/fetch-engine';
3
+ import type { DownloadOptions } from '@prisma/fetch-engine';
4
+ import { enginesVersion } from '@prisma/engines-version';
5
+
6
+ export declare const DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE = BinaryType.QueryEngineLibrary;
7
+
8
+ export { enginesVersion }
9
+
10
+ export declare function ensureNeededBinariesExist({ clientEngineType, download, hasMigrateAdapterInConfig, }: EnsureSomeBinariesExistInput): Promise<void>;
11
+
12
+ declare type EnsureSomeBinariesExistInput = {
13
+ clientEngineType: 'library' | 'binary' | 'client';
14
+ hasMigrateAdapterInConfig: boolean;
15
+ download: (options: DownloadOptions) => Promise<BinaryPaths>;
16
+ };
17
+
18
+ /**
19
+ * Checks if the env override `PRISMA_CLI_QUERY_ENGINE_TYPE` is set to `library` or `binary`
20
+ * Otherwise returns the default
21
+ */
22
+ export declare function getCliQueryEngineBinaryType(clientEngineType?: string | undefined): BinaryType_2;
23
+
24
+ export declare function getEnginesPath(): string;
25
+
26
+ export { }
backend/node_modules/@prisma/engines/dist/index.js ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE: () => DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE,
34
+ enginesVersion: () => import_engines_version2.enginesVersion,
35
+ ensureNeededBinariesExist: () => ensureNeededBinariesExist,
36
+ getCliQueryEngineBinaryType: () => getCliQueryEngineBinaryType,
37
+ getEnginesPath: () => getEnginesPath
38
+ });
39
+ module.exports = __toCommonJS(index_exports);
40
+ var import_debug = require("@prisma/debug");
41
+ var import_engines_version = require("@prisma/engines-version");
42
+ var import_fetch_engine = require("@prisma/fetch-engine");
43
+ var import_path = __toESM(require("path"));
44
+ var import_engines_version2 = require("@prisma/engines-version");
45
+ var debug = (0, import_debug.Debug)("prisma:engines");
46
+ function getEnginesPath() {
47
+ return import_path.default.join(__dirname, "../");
48
+ }
49
+ var DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE = import_fetch_engine.BinaryType.QueryEngineLibrary;
50
+ function getCliQueryEngineBinaryType(clientEngineType = process.env.PRISMA_CLI_QUERY_ENGINE_TYPE) {
51
+ if (clientEngineType === "binary") {
52
+ return import_fetch_engine.BinaryType.QueryEngineBinary;
53
+ }
54
+ return DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE;
55
+ }
56
+ async function ensureNeededBinariesExist({
57
+ clientEngineType,
58
+ download,
59
+ hasMigrateAdapterInConfig
60
+ }) {
61
+ const binaryDir = import_path.default.join(__dirname, "../");
62
+ const binaries = {};
63
+ if (!hasMigrateAdapterInConfig) {
64
+ binaries[import_fetch_engine.BinaryType.SchemaEngineBinary] = binaryDir;
65
+ }
66
+ const usesQueryCompiler = clientEngineType === "client";
67
+ if (!usesQueryCompiler) {
68
+ const cliQueryEngineBinaryType = getCliQueryEngineBinaryType(clientEngineType);
69
+ binaries[cliQueryEngineBinaryType] = binaryDir;
70
+ }
71
+ debug(`binaries to download ${Object.keys(binaries).join(", ")}`);
72
+ const binaryTargets = process.env.PRISMA_CLI_BINARY_TARGETS ? process.env.PRISMA_CLI_BINARY_TARGETS.split(",") : void 0;
73
+ await download({
74
+ binaries,
75
+ showProgress: true,
76
+ version: import_engines_version.enginesVersion,
77
+ failSilent: false,
78
+ binaryTargets
79
+ });
80
+ }
81
+ import_path.default.join(__dirname, "../query-engine-darwin");
82
+ import_path.default.join(__dirname, "../query-engine-darwin-arm64");
83
+ import_path.default.join(__dirname, "../query-engine-debian-openssl-1.0.x");
84
+ import_path.default.join(__dirname, "../query-engine-debian-openssl-1.1.x");
85
+ import_path.default.join(__dirname, "../query-engine-debian-openssl-3.0.x");
86
+ import_path.default.join(__dirname, "../query-engine-linux-static-x64");
87
+ import_path.default.join(__dirname, "../query-engine-linux-static-arm64");
88
+ import_path.default.join(__dirname, "../query-engine-rhel-openssl-1.0.x");
89
+ import_path.default.join(__dirname, "../query-engine-rhel-openssl-1.1.x");
90
+ import_path.default.join(__dirname, "../query-engine-rhel-openssl-3.0.x");
91
+ import_path.default.join(__dirname, "../libquery_engine-darwin.dylib.node");
92
+ import_path.default.join(__dirname, "../libquery_engine-darwin-arm64.dylib.node");
93
+ import_path.default.join(__dirname, "../libquery_engine-debian-openssl-1.0.x.so.node");
94
+ import_path.default.join(__dirname, "../libquery_engine-debian-openssl-1.1.x.so.node");
95
+ import_path.default.join(__dirname, "../libquery_engine-debian-openssl-3.0.x.so.node");
96
+ import_path.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.0.x.so.node");
97
+ import_path.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.1.x.so.node");
98
+ import_path.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-3.0.x.so.node");
99
+ import_path.default.join(__dirname, "../libquery_engine-linux-musl.so.node");
100
+ import_path.default.join(__dirname, "../libquery_engine-linux-musl-openssl-3.0.x.so.node");
101
+ import_path.default.join(__dirname, "../libquery_engine-rhel-openssl-1.0.x.so.node");
102
+ import_path.default.join(__dirname, "../libquery_engine-rhel-openssl-1.1.x.so.node");
103
+ import_path.default.join(__dirname, "../libquery_engine-rhel-openssl-3.0.x.so.node");
104
+ import_path.default.join(__dirname, "../query_engine-windows.dll.node");
105
+ // Annotate the CommonJS export names for ESM import in node:
106
+ 0 && (module.exports = {
107
+ DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE,
108
+ enginesVersion,
109
+ ensureNeededBinariesExist,
110
+ getCliQueryEngineBinaryType,
111
+ getEnginesPath
112
+ });
backend/node_modules/@prisma/engines/dist/scripts/localinstall.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export {};
backend/node_modules/@prisma/engines/dist/scripts/localinstall.js ADDED
@@ -0,0 +1,2048 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function __require() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+
28
+ // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js
29
+ var require_windows = __commonJS({
30
+ "../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js"(exports2, module2) {
31
+ "use strict";
32
+ module2.exports = isexe;
33
+ isexe.sync = sync;
34
+ var fs2 = require("fs");
35
+ function checkPathExt(path2, options) {
36
+ var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
37
+ if (!pathext) {
38
+ return true;
39
+ }
40
+ pathext = pathext.split(";");
41
+ if (pathext.indexOf("") !== -1) {
42
+ return true;
43
+ }
44
+ for (var i = 0; i < pathext.length; i++) {
45
+ var p = pathext[i].toLowerCase();
46
+ if (p && path2.substr(-p.length).toLowerCase() === p) {
47
+ return true;
48
+ }
49
+ }
50
+ return false;
51
+ }
52
+ function checkStat(stat, path2, options) {
53
+ if (!stat.isSymbolicLink() && !stat.isFile()) {
54
+ return false;
55
+ }
56
+ return checkPathExt(path2, options);
57
+ }
58
+ function isexe(path2, options, cb) {
59
+ fs2.stat(path2, function(er, stat) {
60
+ cb(er, er ? false : checkStat(stat, path2, options));
61
+ });
62
+ }
63
+ function sync(path2, options) {
64
+ return checkStat(fs2.statSync(path2), path2, options);
65
+ }
66
+ }
67
+ });
68
+
69
+ // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js
70
+ var require_mode = __commonJS({
71
+ "../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"(exports2, module2) {
72
+ "use strict";
73
+ module2.exports = isexe;
74
+ isexe.sync = sync;
75
+ var fs2 = require("fs");
76
+ function isexe(path2, options, cb) {
77
+ fs2.stat(path2, function(er, stat) {
78
+ cb(er, er ? false : checkStat(stat, options));
79
+ });
80
+ }
81
+ function sync(path2, options) {
82
+ return checkStat(fs2.statSync(path2), options);
83
+ }
84
+ function checkStat(stat, options) {
85
+ return stat.isFile() && checkMode(stat, options);
86
+ }
87
+ function checkMode(stat, options) {
88
+ var mod = stat.mode;
89
+ var uid = stat.uid;
90
+ var gid = stat.gid;
91
+ var myUid = options.uid !== void 0 ? options.uid : process.getuid && process.getuid();
92
+ var myGid = options.gid !== void 0 ? options.gid : process.getgid && process.getgid();
93
+ var u = parseInt("100", 8);
94
+ var g = parseInt("010", 8);
95
+ var o = parseInt("001", 8);
96
+ var ug = u | g;
97
+ var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;
98
+ return ret;
99
+ }
100
+ }
101
+ });
102
+
103
+ // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js
104
+ var require_isexe = __commonJS({
105
+ "../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js"(exports2, module2) {
106
+ "use strict";
107
+ var fs2 = require("fs");
108
+ var core;
109
+ if (process.platform === "win32" || global.TESTING_WINDOWS) {
110
+ core = require_windows();
111
+ } else {
112
+ core = require_mode();
113
+ }
114
+ module2.exports = isexe;
115
+ isexe.sync = sync;
116
+ function isexe(path2, options, cb) {
117
+ if (typeof options === "function") {
118
+ cb = options;
119
+ options = {};
120
+ }
121
+ if (!cb) {
122
+ if (typeof Promise !== "function") {
123
+ throw new TypeError("callback not provided");
124
+ }
125
+ return new Promise(function(resolve, reject) {
126
+ isexe(path2, options || {}, function(er, is) {
127
+ if (er) {
128
+ reject(er);
129
+ } else {
130
+ resolve(is);
131
+ }
132
+ });
133
+ });
134
+ }
135
+ core(path2, options || {}, function(er, is) {
136
+ if (er) {
137
+ if (er.code === "EACCES" || options && options.ignoreErrors) {
138
+ er = null;
139
+ is = false;
140
+ }
141
+ }
142
+ cb(er, is);
143
+ });
144
+ }
145
+ function sync(path2, options) {
146
+ try {
147
+ return core.sync(path2, options || {});
148
+ } catch (er) {
149
+ if (options && options.ignoreErrors || er.code === "EACCES") {
150
+ return false;
151
+ } else {
152
+ throw er;
153
+ }
154
+ }
155
+ }
156
+ }
157
+ });
158
+
159
+ // ../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js
160
+ var require_which = __commonJS({
161
+ "../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"(exports2, module2) {
162
+ "use strict";
163
+ var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
164
+ var path2 = require("path");
165
+ var COLON = isWindows ? ";" : ":";
166
+ var isexe = require_isexe();
167
+ var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
168
+ var getPathInfo = (cmd, opt) => {
169
+ const colon = opt.colon || COLON;
170
+ const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [""] : [
171
+ // windows always checks the cwd first
172
+ ...isWindows ? [process.cwd()] : [],
173
+ ...(opt.path || process.env.PATH || /* istanbul ignore next: very unusual */
174
+ "").split(colon)
175
+ ];
176
+ const pathExtExe = isWindows ? opt.pathExt || process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM" : "";
177
+ const pathExt = isWindows ? pathExtExe.split(colon) : [""];
178
+ if (isWindows) {
179
+ if (cmd.indexOf(".") !== -1 && pathExt[0] !== "")
180
+ pathExt.unshift("");
181
+ }
182
+ return {
183
+ pathEnv,
184
+ pathExt,
185
+ pathExtExe
186
+ };
187
+ };
188
+ var which = (cmd, opt, cb) => {
189
+ if (typeof opt === "function") {
190
+ cb = opt;
191
+ opt = {};
192
+ }
193
+ if (!opt)
194
+ opt = {};
195
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
196
+ const found = [];
197
+ const step = (i) => new Promise((resolve, reject) => {
198
+ if (i === pathEnv.length)
199
+ return opt.all && found.length ? resolve(found) : reject(getNotFoundError(cmd));
200
+ const ppRaw = pathEnv[i];
201
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
202
+ const pCmd = path2.join(pathPart, cmd);
203
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
204
+ resolve(subStep(p, i, 0));
205
+ });
206
+ const subStep = (p, i, ii) => new Promise((resolve, reject) => {
207
+ if (ii === pathExt.length)
208
+ return resolve(step(i + 1));
209
+ const ext = pathExt[ii];
210
+ isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
211
+ if (!er && is) {
212
+ if (opt.all)
213
+ found.push(p + ext);
214
+ else
215
+ return resolve(p + ext);
216
+ }
217
+ return resolve(subStep(p, i, ii + 1));
218
+ });
219
+ });
220
+ return cb ? step(0).then((res) => cb(null, res), cb) : step(0);
221
+ };
222
+ var whichSync = (cmd, opt) => {
223
+ opt = opt || {};
224
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
225
+ const found = [];
226
+ for (let i = 0; i < pathEnv.length; i++) {
227
+ const ppRaw = pathEnv[i];
228
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
229
+ const pCmd = path2.join(pathPart, cmd);
230
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
231
+ for (let j = 0; j < pathExt.length; j++) {
232
+ const cur = p + pathExt[j];
233
+ try {
234
+ const is = isexe.sync(cur, { pathExt: pathExtExe });
235
+ if (is) {
236
+ if (opt.all)
237
+ found.push(cur);
238
+ else
239
+ return cur;
240
+ }
241
+ } catch (ex) {
242
+ }
243
+ }
244
+ }
245
+ if (opt.all && found.length)
246
+ return found;
247
+ if (opt.nothrow)
248
+ return null;
249
+ throw getNotFoundError(cmd);
250
+ };
251
+ module2.exports = which;
252
+ which.sync = whichSync;
253
+ }
254
+ });
255
+
256
+ // ../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js
257
+ var require_path_key = __commonJS({
258
+ "../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js"(exports2, module2) {
259
+ "use strict";
260
+ var pathKey = (options = {}) => {
261
+ const environment = options.env || process.env;
262
+ const platform = options.platform || process.platform;
263
+ if (platform !== "win32") {
264
+ return "PATH";
265
+ }
266
+ return Object.keys(environment).reverse().find((key) => key.toUpperCase() === "PATH") || "Path";
267
+ };
268
+ module2.exports = pathKey;
269
+ module2.exports.default = pathKey;
270
+ }
271
+ });
272
+
273
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
274
+ var require_resolveCommand = __commonJS({
275
+ "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports2, module2) {
276
+ "use strict";
277
+ var path2 = require("path");
278
+ var which = require_which();
279
+ var getPathKey = require_path_key();
280
+ function resolveCommandAttempt(parsed, withoutPathExt) {
281
+ const env = parsed.options.env || process.env;
282
+ const cwd = process.cwd();
283
+ const hasCustomCwd = parsed.options.cwd != null;
284
+ const shouldSwitchCwd = hasCustomCwd && process.chdir !== void 0 && !process.chdir.disabled;
285
+ if (shouldSwitchCwd) {
286
+ try {
287
+ process.chdir(parsed.options.cwd);
288
+ } catch (err) {
289
+ }
290
+ }
291
+ let resolved;
292
+ try {
293
+ resolved = which.sync(parsed.command, {
294
+ path: env[getPathKey({ env })],
295
+ pathExt: withoutPathExt ? path2.delimiter : void 0
296
+ });
297
+ } catch (e) {
298
+ } finally {
299
+ if (shouldSwitchCwd) {
300
+ process.chdir(cwd);
301
+ }
302
+ }
303
+ if (resolved) {
304
+ resolved = path2.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
305
+ }
306
+ return resolved;
307
+ }
308
+ function resolveCommand(parsed) {
309
+ return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);
310
+ }
311
+ module2.exports = resolveCommand;
312
+ }
313
+ });
314
+
315
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js
316
+ var require_escape = __commonJS({
317
+ "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"(exports2, module2) {
318
+ "use strict";
319
+ var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
320
+ function escapeCommand(arg) {
321
+ arg = arg.replace(metaCharsRegExp, "^$1");
322
+ return arg;
323
+ }
324
+ function escapeArgument(arg, doubleEscapeMetaChars) {
325
+ arg = `${arg}`;
326
+ arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
327
+ arg = arg.replace(/(?=(\\+?)?)\1$/, "$1$1");
328
+ arg = `"${arg}"`;
329
+ arg = arg.replace(metaCharsRegExp, "^$1");
330
+ if (doubleEscapeMetaChars) {
331
+ arg = arg.replace(metaCharsRegExp, "^$1");
332
+ }
333
+ return arg;
334
+ }
335
+ module2.exports.command = escapeCommand;
336
+ module2.exports.argument = escapeArgument;
337
+ }
338
+ });
339
+
340
+ // ../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js
341
+ var require_shebang_regex = __commonJS({
342
+ "../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"(exports2, module2) {
343
+ "use strict";
344
+ module2.exports = /^#!(.*)/;
345
+ }
346
+ });
347
+
348
+ // ../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js
349
+ var require_shebang_command = __commonJS({
350
+ "../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js"(exports2, module2) {
351
+ "use strict";
352
+ var shebangRegex = require_shebang_regex();
353
+ module2.exports = (string = "") => {
354
+ const match = string.match(shebangRegex);
355
+ if (!match) {
356
+ return null;
357
+ }
358
+ const [path2, argument] = match[0].replace(/#! ?/, "").split(" ");
359
+ const binary = path2.split("/").pop();
360
+ if (binary === "env") {
361
+ return argument;
362
+ }
363
+ return argument ? `${binary} ${argument}` : binary;
364
+ };
365
+ }
366
+ });
367
+
368
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js
369
+ var require_readShebang = __commonJS({
370
+ "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"(exports2, module2) {
371
+ "use strict";
372
+ var fs2 = require("fs");
373
+ var shebangCommand = require_shebang_command();
374
+ function readShebang(command) {
375
+ const size = 150;
376
+ const buffer = Buffer.alloc(size);
377
+ let fd;
378
+ try {
379
+ fd = fs2.openSync(command, "r");
380
+ fs2.readSync(fd, buffer, 0, size, 0);
381
+ fs2.closeSync(fd);
382
+ } catch (e) {
383
+ }
384
+ return shebangCommand(buffer.toString());
385
+ }
386
+ module2.exports = readShebang;
387
+ }
388
+ });
389
+
390
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js
391
+ var require_parse = __commonJS({
392
+ "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"(exports2, module2) {
393
+ "use strict";
394
+ var path2 = require("path");
395
+ var resolveCommand = require_resolveCommand();
396
+ var escape = require_escape();
397
+ var readShebang = require_readShebang();
398
+ var isWin = process.platform === "win32";
399
+ var isExecutableRegExp = /\.(?:com|exe)$/i;
400
+ var isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;
401
+ function detectShebang(parsed) {
402
+ parsed.file = resolveCommand(parsed);
403
+ const shebang = parsed.file && readShebang(parsed.file);
404
+ if (shebang) {
405
+ parsed.args.unshift(parsed.file);
406
+ parsed.command = shebang;
407
+ return resolveCommand(parsed);
408
+ }
409
+ return parsed.file;
410
+ }
411
+ function parseNonShell(parsed) {
412
+ if (!isWin) {
413
+ return parsed;
414
+ }
415
+ const commandFile = detectShebang(parsed);
416
+ const needsShell = !isExecutableRegExp.test(commandFile);
417
+ if (parsed.options.forceShell || needsShell) {
418
+ const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
419
+ parsed.command = path2.normalize(parsed.command);
420
+ parsed.command = escape.command(parsed.command);
421
+ parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));
422
+ const shellCommand = [parsed.command].concat(parsed.args).join(" ");
423
+ parsed.args = ["/d", "/s", "/c", `"${shellCommand}"`];
424
+ parsed.command = process.env.comspec || "cmd.exe";
425
+ parsed.options.windowsVerbatimArguments = true;
426
+ }
427
+ return parsed;
428
+ }
429
+ function parse(command, args, options) {
430
+ if (args && !Array.isArray(args)) {
431
+ options = args;
432
+ args = null;
433
+ }
434
+ args = args ? args.slice(0) : [];
435
+ options = Object.assign({}, options);
436
+ const parsed = {
437
+ command,
438
+ args,
439
+ options,
440
+ file: void 0,
441
+ original: {
442
+ command,
443
+ args
444
+ }
445
+ };
446
+ return options.shell ? parsed : parseNonShell(parsed);
447
+ }
448
+ module2.exports = parse;
449
+ }
450
+ });
451
+
452
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js
453
+ var require_enoent = __commonJS({
454
+ "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"(exports2, module2) {
455
+ "use strict";
456
+ var isWin = process.platform === "win32";
457
+ function notFoundError(original, syscall) {
458
+ return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {
459
+ code: "ENOENT",
460
+ errno: "ENOENT",
461
+ syscall: `${syscall} ${original.command}`,
462
+ path: original.command,
463
+ spawnargs: original.args
464
+ });
465
+ }
466
+ function hookChildProcess(cp, parsed) {
467
+ if (!isWin) {
468
+ return;
469
+ }
470
+ const originalEmit = cp.emit;
471
+ cp.emit = function(name, arg1) {
472
+ if (name === "exit") {
473
+ const err = verifyENOENT(arg1, parsed);
474
+ if (err) {
475
+ return originalEmit.call(cp, "error", err);
476
+ }
477
+ }
478
+ return originalEmit.apply(cp, arguments);
479
+ };
480
+ }
481
+ function verifyENOENT(status, parsed) {
482
+ if (isWin && status === 1 && !parsed.file) {
483
+ return notFoundError(parsed.original, "spawn");
484
+ }
485
+ return null;
486
+ }
487
+ function verifyENOENTSync(status, parsed) {
488
+ if (isWin && status === 1 && !parsed.file) {
489
+ return notFoundError(parsed.original, "spawnSync");
490
+ }
491
+ return null;
492
+ }
493
+ module2.exports = {
494
+ hookChildProcess,
495
+ verifyENOENT,
496
+ verifyENOENTSync,
497
+ notFoundError
498
+ };
499
+ }
500
+ });
501
+
502
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js
503
+ var require_cross_spawn = __commonJS({
504
+ "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"(exports2, module2) {
505
+ "use strict";
506
+ var cp = require("child_process");
507
+ var parse = require_parse();
508
+ var enoent = require_enoent();
509
+ function spawn(command, args, options) {
510
+ const parsed = parse(command, args, options);
511
+ const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);
512
+ enoent.hookChildProcess(spawned, parsed);
513
+ return spawned;
514
+ }
515
+ function spawnSync(command, args, options) {
516
+ const parsed = parse(command, args, options);
517
+ const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);
518
+ result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);
519
+ return result;
520
+ }
521
+ module2.exports = spawn;
522
+ module2.exports.spawn = spawn;
523
+ module2.exports.sync = spawnSync;
524
+ module2.exports._parse = parse;
525
+ module2.exports._enoent = enoent;
526
+ }
527
+ });
528
+
529
+ // ../../node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js
530
+ var require_strip_final_newline = __commonJS({
531
+ "../../node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js"(exports2, module2) {
532
+ "use strict";
533
+ module2.exports = (input) => {
534
+ const LF = typeof input === "string" ? "\n" : "\n".charCodeAt();
535
+ const CR = typeof input === "string" ? "\r" : "\r".charCodeAt();
536
+ if (input[input.length - 1] === LF) {
537
+ input = input.slice(0, input.length - 1);
538
+ }
539
+ if (input[input.length - 1] === CR) {
540
+ input = input.slice(0, input.length - 1);
541
+ }
542
+ return input;
543
+ };
544
+ }
545
+ });
546
+
547
+ // ../../node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js
548
+ var require_npm_run_path = __commonJS({
549
+ "../../node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js"(exports2, module2) {
550
+ "use strict";
551
+ var path2 = require("path");
552
+ var pathKey = require_path_key();
553
+ var npmRunPath = (options) => {
554
+ options = {
555
+ cwd: process.cwd(),
556
+ path: process.env[pathKey()],
557
+ execPath: process.execPath,
558
+ ...options
559
+ };
560
+ let previous;
561
+ let cwdPath = path2.resolve(options.cwd);
562
+ const result = [];
563
+ while (previous !== cwdPath) {
564
+ result.push(path2.join(cwdPath, "node_modules/.bin"));
565
+ previous = cwdPath;
566
+ cwdPath = path2.resolve(cwdPath, "..");
567
+ }
568
+ const execPathDir = path2.resolve(options.cwd, options.execPath, "..");
569
+ result.push(execPathDir);
570
+ return result.concat(options.path).join(path2.delimiter);
571
+ };
572
+ module2.exports = npmRunPath;
573
+ module2.exports.default = npmRunPath;
574
+ module2.exports.env = (options) => {
575
+ options = {
576
+ env: process.env,
577
+ ...options
578
+ };
579
+ const env = { ...options.env };
580
+ const path3 = pathKey({ env });
581
+ options.path = env[path3];
582
+ env[path3] = module2.exports(options);
583
+ return env;
584
+ };
585
+ }
586
+ });
587
+
588
+ // ../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js
589
+ var require_mimic_fn = __commonJS({
590
+ "../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js"(exports2, module2) {
591
+ "use strict";
592
+ var mimicFn = (to, from) => {
593
+ for (const prop of Reflect.ownKeys(from)) {
594
+ Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
595
+ }
596
+ return to;
597
+ };
598
+ module2.exports = mimicFn;
599
+ module2.exports.default = mimicFn;
600
+ }
601
+ });
602
+
603
+ // ../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js
604
+ var require_onetime = __commonJS({
605
+ "../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js"(exports2, module2) {
606
+ "use strict";
607
+ var mimicFn = require_mimic_fn();
608
+ var calledFunctions = /* @__PURE__ */ new WeakMap();
609
+ var onetime = (function_, options = {}) => {
610
+ if (typeof function_ !== "function") {
611
+ throw new TypeError("Expected a function");
612
+ }
613
+ let returnValue;
614
+ let callCount = 0;
615
+ const functionName = function_.displayName || function_.name || "<anonymous>";
616
+ const onetime2 = function(...arguments_) {
617
+ calledFunctions.set(onetime2, ++callCount);
618
+ if (callCount === 1) {
619
+ returnValue = function_.apply(this, arguments_);
620
+ function_ = null;
621
+ } else if (options.throw === true) {
622
+ throw new Error(`Function \`${functionName}\` can only be called once`);
623
+ }
624
+ return returnValue;
625
+ };
626
+ mimicFn(onetime2, function_);
627
+ calledFunctions.set(onetime2, callCount);
628
+ return onetime2;
629
+ };
630
+ module2.exports = onetime;
631
+ module2.exports.default = onetime;
632
+ module2.exports.callCount = (function_) => {
633
+ if (!calledFunctions.has(function_)) {
634
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
635
+ }
636
+ return calledFunctions.get(function_);
637
+ };
638
+ }
639
+ });
640
+
641
+ // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js
642
+ var require_core = __commonJS({
643
+ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js"(exports2) {
644
+ "use strict";
645
+ Object.defineProperty(exports2, "__esModule", { value: true });
646
+ exports2.SIGNALS = void 0;
647
+ var SIGNALS = [
648
+ {
649
+ name: "SIGHUP",
650
+ number: 1,
651
+ action: "terminate",
652
+ description: "Terminal closed",
653
+ standard: "posix"
654
+ },
655
+ {
656
+ name: "SIGINT",
657
+ number: 2,
658
+ action: "terminate",
659
+ description: "User interruption with CTRL-C",
660
+ standard: "ansi"
661
+ },
662
+ {
663
+ name: "SIGQUIT",
664
+ number: 3,
665
+ action: "core",
666
+ description: "User interruption with CTRL-\\",
667
+ standard: "posix"
668
+ },
669
+ {
670
+ name: "SIGILL",
671
+ number: 4,
672
+ action: "core",
673
+ description: "Invalid machine instruction",
674
+ standard: "ansi"
675
+ },
676
+ {
677
+ name: "SIGTRAP",
678
+ number: 5,
679
+ action: "core",
680
+ description: "Debugger breakpoint",
681
+ standard: "posix"
682
+ },
683
+ {
684
+ name: "SIGABRT",
685
+ number: 6,
686
+ action: "core",
687
+ description: "Aborted",
688
+ standard: "ansi"
689
+ },
690
+ {
691
+ name: "SIGIOT",
692
+ number: 6,
693
+ action: "core",
694
+ description: "Aborted",
695
+ standard: "bsd"
696
+ },
697
+ {
698
+ name: "SIGBUS",
699
+ number: 7,
700
+ action: "core",
701
+ description: "Bus error due to misaligned, non-existing address or paging error",
702
+ standard: "bsd"
703
+ },
704
+ {
705
+ name: "SIGEMT",
706
+ number: 7,
707
+ action: "terminate",
708
+ description: "Command should be emulated but is not implemented",
709
+ standard: "other"
710
+ },
711
+ {
712
+ name: "SIGFPE",
713
+ number: 8,
714
+ action: "core",
715
+ description: "Floating point arithmetic error",
716
+ standard: "ansi"
717
+ },
718
+ {
719
+ name: "SIGKILL",
720
+ number: 9,
721
+ action: "terminate",
722
+ description: "Forced termination",
723
+ standard: "posix",
724
+ forced: true
725
+ },
726
+ {
727
+ name: "SIGUSR1",
728
+ number: 10,
729
+ action: "terminate",
730
+ description: "Application-specific signal",
731
+ standard: "posix"
732
+ },
733
+ {
734
+ name: "SIGSEGV",
735
+ number: 11,
736
+ action: "core",
737
+ description: "Segmentation fault",
738
+ standard: "ansi"
739
+ },
740
+ {
741
+ name: "SIGUSR2",
742
+ number: 12,
743
+ action: "terminate",
744
+ description: "Application-specific signal",
745
+ standard: "posix"
746
+ },
747
+ {
748
+ name: "SIGPIPE",
749
+ number: 13,
750
+ action: "terminate",
751
+ description: "Broken pipe or socket",
752
+ standard: "posix"
753
+ },
754
+ {
755
+ name: "SIGALRM",
756
+ number: 14,
757
+ action: "terminate",
758
+ description: "Timeout or timer",
759
+ standard: "posix"
760
+ },
761
+ {
762
+ name: "SIGTERM",
763
+ number: 15,
764
+ action: "terminate",
765
+ description: "Termination",
766
+ standard: "ansi"
767
+ },
768
+ {
769
+ name: "SIGSTKFLT",
770
+ number: 16,
771
+ action: "terminate",
772
+ description: "Stack is empty or overflowed",
773
+ standard: "other"
774
+ },
775
+ {
776
+ name: "SIGCHLD",
777
+ number: 17,
778
+ action: "ignore",
779
+ description: "Child process terminated, paused or unpaused",
780
+ standard: "posix"
781
+ },
782
+ {
783
+ name: "SIGCLD",
784
+ number: 17,
785
+ action: "ignore",
786
+ description: "Child process terminated, paused or unpaused",
787
+ standard: "other"
788
+ },
789
+ {
790
+ name: "SIGCONT",
791
+ number: 18,
792
+ action: "unpause",
793
+ description: "Unpaused",
794
+ standard: "posix",
795
+ forced: true
796
+ },
797
+ {
798
+ name: "SIGSTOP",
799
+ number: 19,
800
+ action: "pause",
801
+ description: "Paused",
802
+ standard: "posix",
803
+ forced: true
804
+ },
805
+ {
806
+ name: "SIGTSTP",
807
+ number: 20,
808
+ action: "pause",
809
+ description: 'Paused using CTRL-Z or "suspend"',
810
+ standard: "posix"
811
+ },
812
+ {
813
+ name: "SIGTTIN",
814
+ number: 21,
815
+ action: "pause",
816
+ description: "Background process cannot read terminal input",
817
+ standard: "posix"
818
+ },
819
+ {
820
+ name: "SIGBREAK",
821
+ number: 21,
822
+ action: "terminate",
823
+ description: "User interruption with CTRL-BREAK",
824
+ standard: "other"
825
+ },
826
+ {
827
+ name: "SIGTTOU",
828
+ number: 22,
829
+ action: "pause",
830
+ description: "Background process cannot write to terminal output",
831
+ standard: "posix"
832
+ },
833
+ {
834
+ name: "SIGURG",
835
+ number: 23,
836
+ action: "ignore",
837
+ description: "Socket received out-of-band data",
838
+ standard: "bsd"
839
+ },
840
+ {
841
+ name: "SIGXCPU",
842
+ number: 24,
843
+ action: "core",
844
+ description: "Process timed out",
845
+ standard: "bsd"
846
+ },
847
+ {
848
+ name: "SIGXFSZ",
849
+ number: 25,
850
+ action: "core",
851
+ description: "File too big",
852
+ standard: "bsd"
853
+ },
854
+ {
855
+ name: "SIGVTALRM",
856
+ number: 26,
857
+ action: "terminate",
858
+ description: "Timeout or timer",
859
+ standard: "bsd"
860
+ },
861
+ {
862
+ name: "SIGPROF",
863
+ number: 27,
864
+ action: "terminate",
865
+ description: "Timeout or timer",
866
+ standard: "bsd"
867
+ },
868
+ {
869
+ name: "SIGWINCH",
870
+ number: 28,
871
+ action: "ignore",
872
+ description: "Terminal window size changed",
873
+ standard: "bsd"
874
+ },
875
+ {
876
+ name: "SIGIO",
877
+ number: 29,
878
+ action: "terminate",
879
+ description: "I/O is available",
880
+ standard: "other"
881
+ },
882
+ {
883
+ name: "SIGPOLL",
884
+ number: 29,
885
+ action: "terminate",
886
+ description: "Watched event",
887
+ standard: "other"
888
+ },
889
+ {
890
+ name: "SIGINFO",
891
+ number: 29,
892
+ action: "ignore",
893
+ description: "Request for process information",
894
+ standard: "other"
895
+ },
896
+ {
897
+ name: "SIGPWR",
898
+ number: 30,
899
+ action: "terminate",
900
+ description: "Device running out of power",
901
+ standard: "systemv"
902
+ },
903
+ {
904
+ name: "SIGSYS",
905
+ number: 31,
906
+ action: "core",
907
+ description: "Invalid system call",
908
+ standard: "other"
909
+ },
910
+ {
911
+ name: "SIGUNUSED",
912
+ number: 31,
913
+ action: "terminate",
914
+ description: "Invalid system call",
915
+ standard: "other"
916
+ }
917
+ ];
918
+ exports2.SIGNALS = SIGNALS;
919
+ }
920
+ });
921
+
922
+ // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js
923
+ var require_realtime = __commonJS({
924
+ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js"(exports2) {
925
+ "use strict";
926
+ Object.defineProperty(exports2, "__esModule", { value: true });
927
+ exports2.SIGRTMAX = exports2.getRealtimeSignals = void 0;
928
+ var getRealtimeSignals = function() {
929
+ const length = SIGRTMAX - SIGRTMIN + 1;
930
+ return Array.from({ length }, getRealtimeSignal);
931
+ };
932
+ exports2.getRealtimeSignals = getRealtimeSignals;
933
+ var getRealtimeSignal = function(value, index) {
934
+ return {
935
+ name: `SIGRT${index + 1}`,
936
+ number: SIGRTMIN + index,
937
+ action: "terminate",
938
+ description: "Application-specific signal (realtime)",
939
+ standard: "posix"
940
+ };
941
+ };
942
+ var SIGRTMIN = 34;
943
+ var SIGRTMAX = 64;
944
+ exports2.SIGRTMAX = SIGRTMAX;
945
+ }
946
+ });
947
+
948
+ // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js
949
+ var require_signals = __commonJS({
950
+ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js"(exports2) {
951
+ "use strict";
952
+ Object.defineProperty(exports2, "__esModule", { value: true });
953
+ exports2.getSignals = void 0;
954
+ var _os = require("os");
955
+ var _core = require_core();
956
+ var _realtime = require_realtime();
957
+ var getSignals = function() {
958
+ const realtimeSignals = (0, _realtime.getRealtimeSignals)();
959
+ const signals = [..._core.SIGNALS, ...realtimeSignals].map(normalizeSignal);
960
+ return signals;
961
+ };
962
+ exports2.getSignals = getSignals;
963
+ var normalizeSignal = function({
964
+ name,
965
+ number: defaultNumber,
966
+ description,
967
+ action,
968
+ forced = false,
969
+ standard
970
+ }) {
971
+ const {
972
+ signals: { [name]: constantSignal }
973
+ } = _os.constants;
974
+ const supported = constantSignal !== void 0;
975
+ const number = supported ? constantSignal : defaultNumber;
976
+ return { name, number, description, supported, action, forced, standard };
977
+ };
978
+ }
979
+ });
980
+
981
+ // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js
982
+ var require_main = __commonJS({
983
+ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js"(exports2) {
984
+ "use strict";
985
+ Object.defineProperty(exports2, "__esModule", { value: true });
986
+ exports2.signalsByNumber = exports2.signalsByName = void 0;
987
+ var _os = require("os");
988
+ var _signals = require_signals();
989
+ var _realtime = require_realtime();
990
+ var getSignalsByName = function() {
991
+ const signals = (0, _signals.getSignals)();
992
+ return signals.reduce(getSignalByName, {});
993
+ };
994
+ var getSignalByName = function(signalByNameMemo, { name, number, description, supported, action, forced, standard }) {
995
+ return {
996
+ ...signalByNameMemo,
997
+ [name]: { name, number, description, supported, action, forced, standard }
998
+ };
999
+ };
1000
+ var signalsByName = getSignalsByName();
1001
+ exports2.signalsByName = signalsByName;
1002
+ var getSignalsByNumber = function() {
1003
+ const signals = (0, _signals.getSignals)();
1004
+ const length = _realtime.SIGRTMAX + 1;
1005
+ const signalsA = Array.from({ length }, (value, number) => getSignalByNumber(number, signals));
1006
+ return Object.assign({}, ...signalsA);
1007
+ };
1008
+ var getSignalByNumber = function(number, signals) {
1009
+ const signal = findSignalByNumber(number, signals);
1010
+ if (signal === void 0) {
1011
+ return {};
1012
+ }
1013
+ const { name, description, supported, action, forced, standard } = signal;
1014
+ return {
1015
+ [number]: {
1016
+ name,
1017
+ number,
1018
+ description,
1019
+ supported,
1020
+ action,
1021
+ forced,
1022
+ standard
1023
+ }
1024
+ };
1025
+ };
1026
+ var findSignalByNumber = function(number, signals) {
1027
+ const signal = signals.find(({ name }) => _os.constants.signals[name] === number);
1028
+ if (signal !== void 0) {
1029
+ return signal;
1030
+ }
1031
+ return signals.find((signalA) => signalA.number === number);
1032
+ };
1033
+ var signalsByNumber = getSignalsByNumber();
1034
+ exports2.signalsByNumber = signalsByNumber;
1035
+ }
1036
+ });
1037
+
1038
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js
1039
+ var require_error = __commonJS({
1040
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js"(exports2, module2) {
1041
+ "use strict";
1042
+ var { signalsByName } = require_main();
1043
+ var getErrorPrefix = ({ timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled }) => {
1044
+ if (timedOut) {
1045
+ return `timed out after ${timeout} milliseconds`;
1046
+ }
1047
+ if (isCanceled) {
1048
+ return "was canceled";
1049
+ }
1050
+ if (errorCode !== void 0) {
1051
+ return `failed with ${errorCode}`;
1052
+ }
1053
+ if (signal !== void 0) {
1054
+ return `was killed with ${signal} (${signalDescription})`;
1055
+ }
1056
+ if (exitCode !== void 0) {
1057
+ return `failed with exit code ${exitCode}`;
1058
+ }
1059
+ return "failed";
1060
+ };
1061
+ var makeError = ({
1062
+ stdout,
1063
+ stderr,
1064
+ all,
1065
+ error,
1066
+ signal,
1067
+ exitCode,
1068
+ command,
1069
+ escapedCommand,
1070
+ timedOut,
1071
+ isCanceled,
1072
+ killed,
1073
+ parsed: { options: { timeout } }
1074
+ }) => {
1075
+ exitCode = exitCode === null ? void 0 : exitCode;
1076
+ signal = signal === null ? void 0 : signal;
1077
+ const signalDescription = signal === void 0 ? void 0 : signalsByName[signal].description;
1078
+ const errorCode = error && error.code;
1079
+ const prefix = getErrorPrefix({ timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled });
1080
+ const execaMessage = `Command ${prefix}: ${command}`;
1081
+ const isError = Object.prototype.toString.call(error) === "[object Error]";
1082
+ const shortMessage = isError ? `${execaMessage}
1083
+ ${error.message}` : execaMessage;
1084
+ const message = [shortMessage, stderr, stdout].filter(Boolean).join("\n");
1085
+ if (isError) {
1086
+ error.originalMessage = error.message;
1087
+ error.message = message;
1088
+ } else {
1089
+ error = new Error(message);
1090
+ }
1091
+ error.shortMessage = shortMessage;
1092
+ error.command = command;
1093
+ error.escapedCommand = escapedCommand;
1094
+ error.exitCode = exitCode;
1095
+ error.signal = signal;
1096
+ error.signalDescription = signalDescription;
1097
+ error.stdout = stdout;
1098
+ error.stderr = stderr;
1099
+ if (all !== void 0) {
1100
+ error.all = all;
1101
+ }
1102
+ if ("bufferedData" in error) {
1103
+ delete error.bufferedData;
1104
+ }
1105
+ error.failed = true;
1106
+ error.timedOut = Boolean(timedOut);
1107
+ error.isCanceled = isCanceled;
1108
+ error.killed = killed && !timedOut;
1109
+ return error;
1110
+ };
1111
+ module2.exports = makeError;
1112
+ }
1113
+ });
1114
+
1115
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js
1116
+ var require_stdio = __commonJS({
1117
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js"(exports2, module2) {
1118
+ "use strict";
1119
+ var aliases = ["stdin", "stdout", "stderr"];
1120
+ var hasAlias = (options) => aliases.some((alias) => options[alias] !== void 0);
1121
+ var normalizeStdio = (options) => {
1122
+ if (!options) {
1123
+ return;
1124
+ }
1125
+ const { stdio } = options;
1126
+ if (stdio === void 0) {
1127
+ return aliases.map((alias) => options[alias]);
1128
+ }
1129
+ if (hasAlias(options)) {
1130
+ throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map((alias) => `\`${alias}\``).join(", ")}`);
1131
+ }
1132
+ if (typeof stdio === "string") {
1133
+ return stdio;
1134
+ }
1135
+ if (!Array.isArray(stdio)) {
1136
+ throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``);
1137
+ }
1138
+ const length = Math.max(stdio.length, aliases.length);
1139
+ return Array.from({ length }, (value, index) => stdio[index]);
1140
+ };
1141
+ module2.exports = normalizeStdio;
1142
+ module2.exports.node = (options) => {
1143
+ const stdio = normalizeStdio(options);
1144
+ if (stdio === "ipc") {
1145
+ return "ipc";
1146
+ }
1147
+ if (stdio === void 0 || typeof stdio === "string") {
1148
+ return [stdio, stdio, stdio, "ipc"];
1149
+ }
1150
+ if (stdio.includes("ipc")) {
1151
+ return stdio;
1152
+ }
1153
+ return [...stdio, "ipc"];
1154
+ };
1155
+ }
1156
+ });
1157
+
1158
+ // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js
1159
+ var require_signals2 = __commonJS({
1160
+ "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports2, module2) {
1161
+ "use strict";
1162
+ module2.exports = [
1163
+ "SIGABRT",
1164
+ "SIGALRM",
1165
+ "SIGHUP",
1166
+ "SIGINT",
1167
+ "SIGTERM"
1168
+ ];
1169
+ if (process.platform !== "win32") {
1170
+ module2.exports.push(
1171
+ "SIGVTALRM",
1172
+ "SIGXCPU",
1173
+ "SIGXFSZ",
1174
+ "SIGUSR2",
1175
+ "SIGTRAP",
1176
+ "SIGSYS",
1177
+ "SIGQUIT",
1178
+ "SIGIOT"
1179
+ // should detect profiler and enable/disable accordingly.
1180
+ // see #21
1181
+ // 'SIGPROF'
1182
+ );
1183
+ }
1184
+ if (process.platform === "linux") {
1185
+ module2.exports.push(
1186
+ "SIGIO",
1187
+ "SIGPOLL",
1188
+ "SIGPWR",
1189
+ "SIGSTKFLT",
1190
+ "SIGUNUSED"
1191
+ );
1192
+ }
1193
+ }
1194
+ });
1195
+
1196
+ // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js
1197
+ var require_signal_exit = __commonJS({
1198
+ "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports2, module2) {
1199
+ "use strict";
1200
+ var process2 = global.process;
1201
+ var processOk = function(process3) {
1202
+ return process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function";
1203
+ };
1204
+ if (!processOk(process2)) {
1205
+ module2.exports = function() {
1206
+ return function() {
1207
+ };
1208
+ };
1209
+ } else {
1210
+ assert = require("assert");
1211
+ signals = require_signals2();
1212
+ isWin = /^win/i.test(process2.platform);
1213
+ EE = require("events");
1214
+ if (typeof EE !== "function") {
1215
+ EE = EE.EventEmitter;
1216
+ }
1217
+ if (process2.__signal_exit_emitter__) {
1218
+ emitter = process2.__signal_exit_emitter__;
1219
+ } else {
1220
+ emitter = process2.__signal_exit_emitter__ = new EE();
1221
+ emitter.count = 0;
1222
+ emitter.emitted = {};
1223
+ }
1224
+ if (!emitter.infinite) {
1225
+ emitter.setMaxListeners(Infinity);
1226
+ emitter.infinite = true;
1227
+ }
1228
+ module2.exports = function(cb, opts) {
1229
+ if (!processOk(global.process)) {
1230
+ return function() {
1231
+ };
1232
+ }
1233
+ assert.equal(typeof cb, "function", "a callback must be provided for exit handler");
1234
+ if (loaded === false) {
1235
+ load();
1236
+ }
1237
+ var ev = "exit";
1238
+ if (opts && opts.alwaysLast) {
1239
+ ev = "afterexit";
1240
+ }
1241
+ var remove = function() {
1242
+ emitter.removeListener(ev, cb);
1243
+ if (emitter.listeners("exit").length === 0 && emitter.listeners("afterexit").length === 0) {
1244
+ unload();
1245
+ }
1246
+ };
1247
+ emitter.on(ev, cb);
1248
+ return remove;
1249
+ };
1250
+ unload = function unload2() {
1251
+ if (!loaded || !processOk(global.process)) {
1252
+ return;
1253
+ }
1254
+ loaded = false;
1255
+ signals.forEach(function(sig) {
1256
+ try {
1257
+ process2.removeListener(sig, sigListeners[sig]);
1258
+ } catch (er) {
1259
+ }
1260
+ });
1261
+ process2.emit = originalProcessEmit;
1262
+ process2.reallyExit = originalProcessReallyExit;
1263
+ emitter.count -= 1;
1264
+ };
1265
+ module2.exports.unload = unload;
1266
+ emit = function emit2(event, code, signal) {
1267
+ if (emitter.emitted[event]) {
1268
+ return;
1269
+ }
1270
+ emitter.emitted[event] = true;
1271
+ emitter.emit(event, code, signal);
1272
+ };
1273
+ sigListeners = {};
1274
+ signals.forEach(function(sig) {
1275
+ sigListeners[sig] = function listener() {
1276
+ if (!processOk(global.process)) {
1277
+ return;
1278
+ }
1279
+ var listeners = process2.listeners(sig);
1280
+ if (listeners.length === emitter.count) {
1281
+ unload();
1282
+ emit("exit", null, sig);
1283
+ emit("afterexit", null, sig);
1284
+ if (isWin && sig === "SIGHUP") {
1285
+ sig = "SIGINT";
1286
+ }
1287
+ process2.kill(process2.pid, sig);
1288
+ }
1289
+ };
1290
+ });
1291
+ module2.exports.signals = function() {
1292
+ return signals;
1293
+ };
1294
+ loaded = false;
1295
+ load = function load2() {
1296
+ if (loaded || !processOk(global.process)) {
1297
+ return;
1298
+ }
1299
+ loaded = true;
1300
+ emitter.count += 1;
1301
+ signals = signals.filter(function(sig) {
1302
+ try {
1303
+ process2.on(sig, sigListeners[sig]);
1304
+ return true;
1305
+ } catch (er) {
1306
+ return false;
1307
+ }
1308
+ });
1309
+ process2.emit = processEmit;
1310
+ process2.reallyExit = processReallyExit;
1311
+ };
1312
+ module2.exports.load = load;
1313
+ originalProcessReallyExit = process2.reallyExit;
1314
+ processReallyExit = function processReallyExit2(code) {
1315
+ if (!processOk(global.process)) {
1316
+ return;
1317
+ }
1318
+ process2.exitCode = code || /* istanbul ignore next */
1319
+ 0;
1320
+ emit("exit", process2.exitCode, null);
1321
+ emit("afterexit", process2.exitCode, null);
1322
+ originalProcessReallyExit.call(process2, process2.exitCode);
1323
+ };
1324
+ originalProcessEmit = process2.emit;
1325
+ processEmit = function processEmit2(ev, arg) {
1326
+ if (ev === "exit" && processOk(global.process)) {
1327
+ if (arg !== void 0) {
1328
+ process2.exitCode = arg;
1329
+ }
1330
+ var ret = originalProcessEmit.apply(this, arguments);
1331
+ emit("exit", process2.exitCode, null);
1332
+ emit("afterexit", process2.exitCode, null);
1333
+ return ret;
1334
+ } else {
1335
+ return originalProcessEmit.apply(this, arguments);
1336
+ }
1337
+ };
1338
+ }
1339
+ var assert;
1340
+ var signals;
1341
+ var isWin;
1342
+ var EE;
1343
+ var emitter;
1344
+ var unload;
1345
+ var emit;
1346
+ var sigListeners;
1347
+ var loaded;
1348
+ var load;
1349
+ var originalProcessReallyExit;
1350
+ var processReallyExit;
1351
+ var originalProcessEmit;
1352
+ var processEmit;
1353
+ }
1354
+ });
1355
+
1356
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js
1357
+ var require_kill = __commonJS({
1358
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js"(exports2, module2) {
1359
+ "use strict";
1360
+ var os = require("os");
1361
+ var onExit = require_signal_exit();
1362
+ var DEFAULT_FORCE_KILL_TIMEOUT = 1e3 * 5;
1363
+ var spawnedKill = (kill, signal = "SIGTERM", options = {}) => {
1364
+ const killResult = kill(signal);
1365
+ setKillTimeout(kill, signal, options, killResult);
1366
+ return killResult;
1367
+ };
1368
+ var setKillTimeout = (kill, signal, options, killResult) => {
1369
+ if (!shouldForceKill(signal, options, killResult)) {
1370
+ return;
1371
+ }
1372
+ const timeout = getForceKillAfterTimeout(options);
1373
+ const t = setTimeout(() => {
1374
+ kill("SIGKILL");
1375
+ }, timeout);
1376
+ if (t.unref) {
1377
+ t.unref();
1378
+ }
1379
+ };
1380
+ var shouldForceKill = (signal, { forceKillAfterTimeout }, killResult) => {
1381
+ return isSigterm(signal) && forceKillAfterTimeout !== false && killResult;
1382
+ };
1383
+ var isSigterm = (signal) => {
1384
+ return signal === os.constants.signals.SIGTERM || typeof signal === "string" && signal.toUpperCase() === "SIGTERM";
1385
+ };
1386
+ var getForceKillAfterTimeout = ({ forceKillAfterTimeout = true }) => {
1387
+ if (forceKillAfterTimeout === true) {
1388
+ return DEFAULT_FORCE_KILL_TIMEOUT;
1389
+ }
1390
+ if (!Number.isFinite(forceKillAfterTimeout) || forceKillAfterTimeout < 0) {
1391
+ throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`);
1392
+ }
1393
+ return forceKillAfterTimeout;
1394
+ };
1395
+ var spawnedCancel = (spawned, context) => {
1396
+ const killResult = spawned.kill();
1397
+ if (killResult) {
1398
+ context.isCanceled = true;
1399
+ }
1400
+ };
1401
+ var timeoutKill = (spawned, signal, reject) => {
1402
+ spawned.kill(signal);
1403
+ reject(Object.assign(new Error("Timed out"), { timedOut: true, signal }));
1404
+ };
1405
+ var setupTimeout = (spawned, { timeout, killSignal = "SIGTERM" }, spawnedPromise) => {
1406
+ if (timeout === 0 || timeout === void 0) {
1407
+ return spawnedPromise;
1408
+ }
1409
+ let timeoutId;
1410
+ const timeoutPromise = new Promise((resolve, reject) => {
1411
+ timeoutId = setTimeout(() => {
1412
+ timeoutKill(spawned, killSignal, reject);
1413
+ }, timeout);
1414
+ });
1415
+ const safeSpawnedPromise = spawnedPromise.finally(() => {
1416
+ clearTimeout(timeoutId);
1417
+ });
1418
+ return Promise.race([timeoutPromise, safeSpawnedPromise]);
1419
+ };
1420
+ var validateTimeout = ({ timeout }) => {
1421
+ if (timeout !== void 0 && (!Number.isFinite(timeout) || timeout < 0)) {
1422
+ throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`);
1423
+ }
1424
+ };
1425
+ var setExitHandler = async (spawned, { cleanup, detached }, timedPromise) => {
1426
+ if (!cleanup || detached) {
1427
+ return timedPromise;
1428
+ }
1429
+ const removeExitHandler = onExit(() => {
1430
+ spawned.kill();
1431
+ });
1432
+ return timedPromise.finally(() => {
1433
+ removeExitHandler();
1434
+ });
1435
+ };
1436
+ module2.exports = {
1437
+ spawnedKill,
1438
+ spawnedCancel,
1439
+ setupTimeout,
1440
+ validateTimeout,
1441
+ setExitHandler
1442
+ };
1443
+ }
1444
+ });
1445
+
1446
+ // ../../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js
1447
+ var require_is_stream = __commonJS({
1448
+ "../../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js"(exports2, module2) {
1449
+ "use strict";
1450
+ var isStream = (stream) => stream !== null && typeof stream === "object" && typeof stream.pipe === "function";
1451
+ isStream.writable = (stream) => isStream(stream) && stream.writable !== false && typeof stream._write === "function" && typeof stream._writableState === "object";
1452
+ isStream.readable = (stream) => isStream(stream) && stream.readable !== false && typeof stream._read === "function" && typeof stream._readableState === "object";
1453
+ isStream.duplex = (stream) => isStream.writable(stream) && isStream.readable(stream);
1454
+ isStream.transform = (stream) => isStream.duplex(stream) && typeof stream._transform === "function";
1455
+ module2.exports = isStream;
1456
+ }
1457
+ });
1458
+
1459
+ // ../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js
1460
+ var require_buffer_stream = __commonJS({
1461
+ "../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js"(exports2, module2) {
1462
+ "use strict";
1463
+ var { PassThrough: PassThroughStream } = require("stream");
1464
+ module2.exports = (options) => {
1465
+ options = { ...options };
1466
+ const { array } = options;
1467
+ let { encoding } = options;
1468
+ const isBuffer = encoding === "buffer";
1469
+ let objectMode = false;
1470
+ if (array) {
1471
+ objectMode = !(encoding || isBuffer);
1472
+ } else {
1473
+ encoding = encoding || "utf8";
1474
+ }
1475
+ if (isBuffer) {
1476
+ encoding = null;
1477
+ }
1478
+ const stream = new PassThroughStream({ objectMode });
1479
+ if (encoding) {
1480
+ stream.setEncoding(encoding);
1481
+ }
1482
+ let length = 0;
1483
+ const chunks = [];
1484
+ stream.on("data", (chunk) => {
1485
+ chunks.push(chunk);
1486
+ if (objectMode) {
1487
+ length = chunks.length;
1488
+ } else {
1489
+ length += chunk.length;
1490
+ }
1491
+ });
1492
+ stream.getBufferedValue = () => {
1493
+ if (array) {
1494
+ return chunks;
1495
+ }
1496
+ return isBuffer ? Buffer.concat(chunks, length) : chunks.join("");
1497
+ };
1498
+ stream.getBufferedLength = () => length;
1499
+ return stream;
1500
+ };
1501
+ }
1502
+ });
1503
+
1504
+ // ../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js
1505
+ var require_get_stream = __commonJS({
1506
+ "../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js"(exports2, module2) {
1507
+ "use strict";
1508
+ var { constants: BufferConstants } = require("buffer");
1509
+ var stream = require("stream");
1510
+ var { promisify } = require("util");
1511
+ var bufferStream = require_buffer_stream();
1512
+ var streamPipelinePromisified = promisify(stream.pipeline);
1513
+ var MaxBufferError = class extends Error {
1514
+ constructor() {
1515
+ super("maxBuffer exceeded");
1516
+ this.name = "MaxBufferError";
1517
+ }
1518
+ };
1519
+ async function getStream(inputStream, options) {
1520
+ if (!inputStream) {
1521
+ throw new Error("Expected a stream");
1522
+ }
1523
+ options = {
1524
+ maxBuffer: Infinity,
1525
+ ...options
1526
+ };
1527
+ const { maxBuffer } = options;
1528
+ const stream2 = bufferStream(options);
1529
+ await new Promise((resolve, reject) => {
1530
+ const rejectPromise = (error) => {
1531
+ if (error && stream2.getBufferedLength() <= BufferConstants.MAX_LENGTH) {
1532
+ error.bufferedData = stream2.getBufferedValue();
1533
+ }
1534
+ reject(error);
1535
+ };
1536
+ (async () => {
1537
+ try {
1538
+ await streamPipelinePromisified(inputStream, stream2);
1539
+ resolve();
1540
+ } catch (error) {
1541
+ rejectPromise(error);
1542
+ }
1543
+ })();
1544
+ stream2.on("data", () => {
1545
+ if (stream2.getBufferedLength() > maxBuffer) {
1546
+ rejectPromise(new MaxBufferError());
1547
+ }
1548
+ });
1549
+ });
1550
+ return stream2.getBufferedValue();
1551
+ }
1552
+ module2.exports = getStream;
1553
+ module2.exports.buffer = (stream2, options) => getStream(stream2, { ...options, encoding: "buffer" });
1554
+ module2.exports.array = (stream2, options) => getStream(stream2, { ...options, array: true });
1555
+ module2.exports.MaxBufferError = MaxBufferError;
1556
+ }
1557
+ });
1558
+
1559
+ // ../../node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js
1560
+ var require_merge_stream = __commonJS({
1561
+ "../../node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js"(exports2, module2) {
1562
+ "use strict";
1563
+ var { PassThrough } = require("stream");
1564
+ module2.exports = function() {
1565
+ var sources = [];
1566
+ var output = new PassThrough({ objectMode: true });
1567
+ output.setMaxListeners(0);
1568
+ output.add = add;
1569
+ output.isEmpty = isEmpty;
1570
+ output.on("unpipe", remove);
1571
+ Array.prototype.slice.call(arguments).forEach(add);
1572
+ return output;
1573
+ function add(source) {
1574
+ if (Array.isArray(source)) {
1575
+ source.forEach(add);
1576
+ return this;
1577
+ }
1578
+ sources.push(source);
1579
+ source.once("end", remove.bind(null, source));
1580
+ source.once("error", output.emit.bind(output, "error"));
1581
+ source.pipe(output, { end: false });
1582
+ return this;
1583
+ }
1584
+ function isEmpty() {
1585
+ return sources.length == 0;
1586
+ }
1587
+ function remove(source) {
1588
+ sources = sources.filter(function(it) {
1589
+ return it !== source;
1590
+ });
1591
+ if (!sources.length && output.readable) {
1592
+ output.end();
1593
+ }
1594
+ }
1595
+ };
1596
+ }
1597
+ });
1598
+
1599
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js
1600
+ var require_stream = __commonJS({
1601
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js"(exports2, module2) {
1602
+ "use strict";
1603
+ var isStream = require_is_stream();
1604
+ var getStream = require_get_stream();
1605
+ var mergeStream = require_merge_stream();
1606
+ var handleInput = (spawned, input) => {
1607
+ if (input === void 0 || spawned.stdin === void 0) {
1608
+ return;
1609
+ }
1610
+ if (isStream(input)) {
1611
+ input.pipe(spawned.stdin);
1612
+ } else {
1613
+ spawned.stdin.end(input);
1614
+ }
1615
+ };
1616
+ var makeAllStream = (spawned, { all }) => {
1617
+ if (!all || !spawned.stdout && !spawned.stderr) {
1618
+ return;
1619
+ }
1620
+ const mixed = mergeStream();
1621
+ if (spawned.stdout) {
1622
+ mixed.add(spawned.stdout);
1623
+ }
1624
+ if (spawned.stderr) {
1625
+ mixed.add(spawned.stderr);
1626
+ }
1627
+ return mixed;
1628
+ };
1629
+ var getBufferedData = async (stream, streamPromise) => {
1630
+ if (!stream) {
1631
+ return;
1632
+ }
1633
+ stream.destroy();
1634
+ try {
1635
+ return await streamPromise;
1636
+ } catch (error) {
1637
+ return error.bufferedData;
1638
+ }
1639
+ };
1640
+ var getStreamPromise = (stream, { encoding, buffer, maxBuffer }) => {
1641
+ if (!stream || !buffer) {
1642
+ return;
1643
+ }
1644
+ if (encoding) {
1645
+ return getStream(stream, { encoding, maxBuffer });
1646
+ }
1647
+ return getStream.buffer(stream, { maxBuffer });
1648
+ };
1649
+ var getSpawnedResult = async ({ stdout, stderr, all }, { encoding, buffer, maxBuffer }, processDone) => {
1650
+ const stdoutPromise = getStreamPromise(stdout, { encoding, buffer, maxBuffer });
1651
+ const stderrPromise = getStreamPromise(stderr, { encoding, buffer, maxBuffer });
1652
+ const allPromise = getStreamPromise(all, { encoding, buffer, maxBuffer: maxBuffer * 2 });
1653
+ try {
1654
+ return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]);
1655
+ } catch (error) {
1656
+ return Promise.all([
1657
+ { error, signal: error.signal, timedOut: error.timedOut },
1658
+ getBufferedData(stdout, stdoutPromise),
1659
+ getBufferedData(stderr, stderrPromise),
1660
+ getBufferedData(all, allPromise)
1661
+ ]);
1662
+ }
1663
+ };
1664
+ var validateInputSync = ({ input }) => {
1665
+ if (isStream(input)) {
1666
+ throw new TypeError("The `input` option cannot be a stream in sync mode");
1667
+ }
1668
+ };
1669
+ module2.exports = {
1670
+ handleInput,
1671
+ makeAllStream,
1672
+ getSpawnedResult,
1673
+ validateInputSync
1674
+ };
1675
+ }
1676
+ });
1677
+
1678
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js
1679
+ var require_promise = __commonJS({
1680
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js"(exports2, module2) {
1681
+ "use strict";
1682
+ var nativePromisePrototype = (async () => {
1683
+ })().constructor.prototype;
1684
+ var descriptors = ["then", "catch", "finally"].map((property) => [
1685
+ property,
1686
+ Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property)
1687
+ ]);
1688
+ var mergePromise = (spawned, promise) => {
1689
+ for (const [property, descriptor] of descriptors) {
1690
+ const value = typeof promise === "function" ? (...args) => Reflect.apply(descriptor.value, promise(), args) : descriptor.value.bind(promise);
1691
+ Reflect.defineProperty(spawned, property, { ...descriptor, value });
1692
+ }
1693
+ return spawned;
1694
+ };
1695
+ var getSpawnedPromise = (spawned) => {
1696
+ return new Promise((resolve, reject) => {
1697
+ spawned.on("exit", (exitCode, signal) => {
1698
+ resolve({ exitCode, signal });
1699
+ });
1700
+ spawned.on("error", (error) => {
1701
+ reject(error);
1702
+ });
1703
+ if (spawned.stdin) {
1704
+ spawned.stdin.on("error", (error) => {
1705
+ reject(error);
1706
+ });
1707
+ }
1708
+ });
1709
+ };
1710
+ module2.exports = {
1711
+ mergePromise,
1712
+ getSpawnedPromise
1713
+ };
1714
+ }
1715
+ });
1716
+
1717
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js
1718
+ var require_command = __commonJS({
1719
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js"(exports2, module2) {
1720
+ "use strict";
1721
+ var normalizeArgs = (file, args = []) => {
1722
+ if (!Array.isArray(args)) {
1723
+ return [file];
1724
+ }
1725
+ return [file, ...args];
1726
+ };
1727
+ var NO_ESCAPE_REGEXP = /^[\w.-]+$/;
1728
+ var DOUBLE_QUOTES_REGEXP = /"/g;
1729
+ var escapeArg = (arg) => {
1730
+ if (typeof arg !== "string" || NO_ESCAPE_REGEXP.test(arg)) {
1731
+ return arg;
1732
+ }
1733
+ return `"${arg.replace(DOUBLE_QUOTES_REGEXP, '\\"')}"`;
1734
+ };
1735
+ var joinCommand = (file, args) => {
1736
+ return normalizeArgs(file, args).join(" ");
1737
+ };
1738
+ var getEscapedCommand = (file, args) => {
1739
+ return normalizeArgs(file, args).map((arg) => escapeArg(arg)).join(" ");
1740
+ };
1741
+ var SPACES_REGEXP = / +/g;
1742
+ var parseCommand = (command) => {
1743
+ const tokens = [];
1744
+ for (const token of command.trim().split(SPACES_REGEXP)) {
1745
+ const previousToken = tokens[tokens.length - 1];
1746
+ if (previousToken && previousToken.endsWith("\\")) {
1747
+ tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;
1748
+ } else {
1749
+ tokens.push(token);
1750
+ }
1751
+ }
1752
+ return tokens;
1753
+ };
1754
+ module2.exports = {
1755
+ joinCommand,
1756
+ getEscapedCommand,
1757
+ parseCommand
1758
+ };
1759
+ }
1760
+ });
1761
+
1762
+ // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js
1763
+ var require_execa = __commonJS({
1764
+ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js"(exports2, module2) {
1765
+ "use strict";
1766
+ var path2 = require("path");
1767
+ var childProcess = require("child_process");
1768
+ var crossSpawn = require_cross_spawn();
1769
+ var stripFinalNewline = require_strip_final_newline();
1770
+ var npmRunPath = require_npm_run_path();
1771
+ var onetime = require_onetime();
1772
+ var makeError = require_error();
1773
+ var normalizeStdio = require_stdio();
1774
+ var { spawnedKill, spawnedCancel, setupTimeout, validateTimeout, setExitHandler } = require_kill();
1775
+ var { handleInput, getSpawnedResult, makeAllStream, validateInputSync } = require_stream();
1776
+ var { mergePromise, getSpawnedPromise } = require_promise();
1777
+ var { joinCommand, parseCommand, getEscapedCommand } = require_command();
1778
+ var DEFAULT_MAX_BUFFER = 1e3 * 1e3 * 100;
1779
+ var getEnv = ({ env: envOption, extendEnv, preferLocal, localDir, execPath }) => {
1780
+ const env = extendEnv ? { ...process.env, ...envOption } : envOption;
1781
+ if (preferLocal) {
1782
+ return npmRunPath.env({ env, cwd: localDir, execPath });
1783
+ }
1784
+ return env;
1785
+ };
1786
+ var handleArguments = (file, args, options = {}) => {
1787
+ const parsed = crossSpawn._parse(file, args, options);
1788
+ file = parsed.command;
1789
+ args = parsed.args;
1790
+ options = parsed.options;
1791
+ options = {
1792
+ maxBuffer: DEFAULT_MAX_BUFFER,
1793
+ buffer: true,
1794
+ stripFinalNewline: true,
1795
+ extendEnv: true,
1796
+ preferLocal: false,
1797
+ localDir: options.cwd || process.cwd(),
1798
+ execPath: process.execPath,
1799
+ encoding: "utf8",
1800
+ reject: true,
1801
+ cleanup: true,
1802
+ all: false,
1803
+ windowsHide: true,
1804
+ ...options
1805
+ };
1806
+ options.env = getEnv(options);
1807
+ options.stdio = normalizeStdio(options);
1808
+ if (process.platform === "win32" && path2.basename(file, ".exe") === "cmd") {
1809
+ args.unshift("/q");
1810
+ }
1811
+ return { file, args, options, parsed };
1812
+ };
1813
+ var handleOutput = (options, value, error) => {
1814
+ if (typeof value !== "string" && !Buffer.isBuffer(value)) {
1815
+ return error === void 0 ? void 0 : "";
1816
+ }
1817
+ if (options.stripFinalNewline) {
1818
+ return stripFinalNewline(value);
1819
+ }
1820
+ return value;
1821
+ };
1822
+ var execa2 = (file, args, options) => {
1823
+ const parsed = handleArguments(file, args, options);
1824
+ const command = joinCommand(file, args);
1825
+ const escapedCommand = getEscapedCommand(file, args);
1826
+ validateTimeout(parsed.options);
1827
+ let spawned;
1828
+ try {
1829
+ spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options);
1830
+ } catch (error) {
1831
+ const dummySpawned = new childProcess.ChildProcess();
1832
+ const errorPromise = Promise.reject(makeError({
1833
+ error,
1834
+ stdout: "",
1835
+ stderr: "",
1836
+ all: "",
1837
+ command,
1838
+ escapedCommand,
1839
+ parsed,
1840
+ timedOut: false,
1841
+ isCanceled: false,
1842
+ killed: false
1843
+ }));
1844
+ return mergePromise(dummySpawned, errorPromise);
1845
+ }
1846
+ const spawnedPromise = getSpawnedPromise(spawned);
1847
+ const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise);
1848
+ const processDone = setExitHandler(spawned, parsed.options, timedPromise);
1849
+ const context = { isCanceled: false };
1850
+ spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned));
1851
+ spawned.cancel = spawnedCancel.bind(null, spawned, context);
1852
+ const handlePromise = async () => {
1853
+ const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone);
1854
+ const stdout = handleOutput(parsed.options, stdoutResult);
1855
+ const stderr = handleOutput(parsed.options, stderrResult);
1856
+ const all = handleOutput(parsed.options, allResult);
1857
+ if (error || exitCode !== 0 || signal !== null) {
1858
+ const returnedError = makeError({
1859
+ error,
1860
+ exitCode,
1861
+ signal,
1862
+ stdout,
1863
+ stderr,
1864
+ all,
1865
+ command,
1866
+ escapedCommand,
1867
+ parsed,
1868
+ timedOut,
1869
+ isCanceled: context.isCanceled,
1870
+ killed: spawned.killed
1871
+ });
1872
+ if (!parsed.options.reject) {
1873
+ return returnedError;
1874
+ }
1875
+ throw returnedError;
1876
+ }
1877
+ return {
1878
+ command,
1879
+ escapedCommand,
1880
+ exitCode: 0,
1881
+ stdout,
1882
+ stderr,
1883
+ all,
1884
+ failed: false,
1885
+ timedOut: false,
1886
+ isCanceled: false,
1887
+ killed: false
1888
+ };
1889
+ };
1890
+ const handlePromiseOnce = onetime(handlePromise);
1891
+ handleInput(spawned, parsed.options.input);
1892
+ spawned.all = makeAllStream(spawned, parsed.options);
1893
+ return mergePromise(spawned, handlePromiseOnce);
1894
+ };
1895
+ module2.exports = execa2;
1896
+ module2.exports.sync = (file, args, options) => {
1897
+ const parsed = handleArguments(file, args, options);
1898
+ const command = joinCommand(file, args);
1899
+ const escapedCommand = getEscapedCommand(file, args);
1900
+ validateInputSync(parsed.options);
1901
+ let result;
1902
+ try {
1903
+ result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options);
1904
+ } catch (error) {
1905
+ throw makeError({
1906
+ error,
1907
+ stdout: "",
1908
+ stderr: "",
1909
+ all: "",
1910
+ command,
1911
+ escapedCommand,
1912
+ parsed,
1913
+ timedOut: false,
1914
+ isCanceled: false,
1915
+ killed: false
1916
+ });
1917
+ }
1918
+ const stdout = handleOutput(parsed.options, result.stdout, result.error);
1919
+ const stderr = handleOutput(parsed.options, result.stderr, result.error);
1920
+ if (result.error || result.status !== 0 || result.signal !== null) {
1921
+ const error = makeError({
1922
+ stdout,
1923
+ stderr,
1924
+ error: result.error,
1925
+ signal: result.signal,
1926
+ exitCode: result.status,
1927
+ command,
1928
+ escapedCommand,
1929
+ parsed,
1930
+ timedOut: result.error && result.error.code === "ETIMEDOUT",
1931
+ isCanceled: false,
1932
+ killed: result.signal !== null
1933
+ });
1934
+ if (!parsed.options.reject) {
1935
+ return error;
1936
+ }
1937
+ throw error;
1938
+ }
1939
+ return {
1940
+ command,
1941
+ escapedCommand,
1942
+ exitCode: 0,
1943
+ stdout,
1944
+ stderr,
1945
+ failed: false,
1946
+ timedOut: false,
1947
+ isCanceled: false,
1948
+ killed: false
1949
+ };
1950
+ };
1951
+ module2.exports.command = (command, options) => {
1952
+ const [file, ...args] = parseCommand(command);
1953
+ return execa2(file, args, options);
1954
+ };
1955
+ module2.exports.commandSync = (command, options) => {
1956
+ const [file, ...args] = parseCommand(command);
1957
+ return execa2.sync(file, args, options);
1958
+ };
1959
+ module2.exports.node = (scriptPath, args, options = {}) => {
1960
+ if (args && !Array.isArray(args) && typeof args === "object") {
1961
+ options = args;
1962
+ args = [];
1963
+ }
1964
+ const stdio = normalizeStdio.node(options);
1965
+ const defaultExecArgv = process.execArgv.filter((arg) => !arg.startsWith("--inspect"));
1966
+ const {
1967
+ nodePath = process.execPath,
1968
+ nodeOptions = defaultExecArgv
1969
+ } = options;
1970
+ return execa2(
1971
+ nodePath,
1972
+ [
1973
+ ...nodeOptions,
1974
+ scriptPath,
1975
+ ...Array.isArray(args) ? args : []
1976
+ ],
1977
+ {
1978
+ ...options,
1979
+ stdin: void 0,
1980
+ stdout: void 0,
1981
+ stderr: void 0,
1982
+ stdio,
1983
+ shell: false
1984
+ }
1985
+ );
1986
+ };
1987
+ }
1988
+ });
1989
+
1990
+ // src/scripts/localinstall.ts
1991
+ var import_fetch_engine = require("@prisma/fetch-engine");
1992
+ var import_package = require("@prisma/fetch-engine/package.json");
1993
+ var import_get_platform = require("@prisma/get-platform");
1994
+ var import_execa = __toESM(require_execa());
1995
+ var import_fs = __toESM(require("fs"));
1996
+ var import_path = __toESM(require("path"));
1997
+ var baseDir = import_path.default.join(__dirname, "..", "..");
1998
+ async function main() {
1999
+ const binaryTarget = await (0, import_get_platform.getBinaryTargetForCurrentPlatform)();
2000
+ const cacheDir = await (0, import_fetch_engine.getCacheDir)("master", "_local_", binaryTarget);
2001
+ const branch = import_package.enginesOverride?.["branch"];
2002
+ let folder = import_package.enginesOverride?.["folder"];
2003
+ const engineCachePaths = {
2004
+ [import_fetch_engine.BinaryType.QueryEngineBinary]: import_path.default.join(cacheDir, import_fetch_engine.BinaryType.QueryEngineBinary),
2005
+ [import_fetch_engine.BinaryType.QueryEngineLibrary]: import_path.default.join(cacheDir, import_fetch_engine.BinaryType.QueryEngineLibrary),
2006
+ [import_fetch_engine.BinaryType.SchemaEngineBinary]: import_path.default.join(cacheDir, import_fetch_engine.BinaryType.SchemaEngineBinary)
2007
+ };
2008
+ if (branch !== void 0) {
2009
+ const enginesRepoUri = "git@github.com:prisma/prisma-engines.git";
2010
+ const enginesRepoDir = import_path.default.join(baseDir, "dist", "prisma-engines");
2011
+ const currentBranch = await (0, import_execa.default)("git", ["branch", "--show-current"], {
2012
+ cwd: enginesRepoDir
2013
+ }).catch(() => ({ failed: true, stdout: "" }));
2014
+ if (currentBranch.failed === true || currentBranch.stdout !== branch) {
2015
+ await import_fs.default.promises.rm(enginesRepoDir, { recursive: true, force: true });
2016
+ await (0, import_execa.default)("git", ["clone", enginesRepoUri, "--depth", "1", "--branch", branch], {
2017
+ cwd: import_path.default.join(baseDir, "dist"),
2018
+ stdio: "inherit"
2019
+ });
2020
+ }
2021
+ await (0, import_execa.default)("git", ["pull", "origin", branch], {
2022
+ cwd: enginesRepoDir,
2023
+ stdio: "inherit"
2024
+ });
2025
+ await (0, import_execa.default)("cargo", ["build", "--release"], {
2026
+ cwd: enginesRepoDir,
2027
+ stdio: "inherit"
2028
+ });
2029
+ folder = import_path.default.join(enginesRepoDir, "target", "release");
2030
+ }
2031
+ if (folder !== void 0) {
2032
+ folder = import_path.default.isAbsolute(folder) ? folder : import_path.default.join(baseDir, folder);
2033
+ const libExt = binaryTarget.includes("windows") ? ".dll" : binaryTarget.includes("darwin") ? ".dylib" : ".so";
2034
+ const binExt = binaryTarget.includes("windows") ? ".exe" : "";
2035
+ const engineOutputPaths = {
2036
+ [import_fetch_engine.BinaryType.QueryEngineLibrary]: import_path.default.join(folder, "libquery_engine".concat(libExt)),
2037
+ [import_fetch_engine.BinaryType.QueryEngineBinary]: import_path.default.join(folder, import_fetch_engine.BinaryType.QueryEngineBinary.concat(binExt)),
2038
+ [import_fetch_engine.BinaryType.SchemaEngineBinary]: import_path.default.join(folder, import_fetch_engine.BinaryType.SchemaEngineBinary.concat(binExt))
2039
+ };
2040
+ for (const [binaryType, outputPath] of Object.entries(engineOutputPaths)) {
2041
+ await import_fs.default.promises.copyFile(outputPath, engineCachePaths[binaryType]);
2042
+ }
2043
+ }
2044
+ }
2045
+ main().catch((e) => {
2046
+ console.log(e.message);
2047
+ process.exit(1);
2048
+ });
backend/node_modules/@prisma/engines/dist/scripts/postinstall.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export {};
backend/node_modules/@prisma/engines/dist/scripts/postinstall.js ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+
25
+ // src/scripts/postinstall.ts
26
+ var import_debug2 = __toESM(require("@prisma/debug"));
27
+ var import_engines_version3 = require("@prisma/engines-version");
28
+ var import_fetch_engine2 = require("@prisma/fetch-engine");
29
+ var import_fs = __toESM(require("fs"));
30
+ var import_path2 = __toESM(require("path"));
31
+
32
+ // src/index.ts
33
+ var import_debug = require("@prisma/debug");
34
+ var import_engines_version = require("@prisma/engines-version");
35
+ var import_fetch_engine = require("@prisma/fetch-engine");
36
+ var import_path = __toESM(require("path"));
37
+ var import_engines_version2 = require("@prisma/engines-version");
38
+ var debug = (0, import_debug.Debug)("prisma:engines");
39
+ var DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE = import_fetch_engine.BinaryType.QueryEngineLibrary;
40
+ function getCliQueryEngineBinaryType(clientEngineType = process.env.PRISMA_CLI_QUERY_ENGINE_TYPE) {
41
+ if (clientEngineType === "binary") {
42
+ return import_fetch_engine.BinaryType.QueryEngineBinary;
43
+ }
44
+ return DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE;
45
+ }
46
+ import_path.default.join(__dirname, "../query-engine-darwin");
47
+ import_path.default.join(__dirname, "../query-engine-darwin-arm64");
48
+ import_path.default.join(__dirname, "../query-engine-debian-openssl-1.0.x");
49
+ import_path.default.join(__dirname, "../query-engine-debian-openssl-1.1.x");
50
+ import_path.default.join(__dirname, "../query-engine-debian-openssl-3.0.x");
51
+ import_path.default.join(__dirname, "../query-engine-linux-static-x64");
52
+ import_path.default.join(__dirname, "../query-engine-linux-static-arm64");
53
+ import_path.default.join(__dirname, "../query-engine-rhel-openssl-1.0.x");
54
+ import_path.default.join(__dirname, "../query-engine-rhel-openssl-1.1.x");
55
+ import_path.default.join(__dirname, "../query-engine-rhel-openssl-3.0.x");
56
+ import_path.default.join(__dirname, "../libquery_engine-darwin.dylib.node");
57
+ import_path.default.join(__dirname, "../libquery_engine-darwin-arm64.dylib.node");
58
+ import_path.default.join(__dirname, "../libquery_engine-debian-openssl-1.0.x.so.node");
59
+ import_path.default.join(__dirname, "../libquery_engine-debian-openssl-1.1.x.so.node");
60
+ import_path.default.join(__dirname, "../libquery_engine-debian-openssl-3.0.x.so.node");
61
+ import_path.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.0.x.so.node");
62
+ import_path.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.1.x.so.node");
63
+ import_path.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-3.0.x.so.node");
64
+ import_path.default.join(__dirname, "../libquery_engine-linux-musl.so.node");
65
+ import_path.default.join(__dirname, "../libquery_engine-linux-musl-openssl-3.0.x.so.node");
66
+ import_path.default.join(__dirname, "../libquery_engine-rhel-openssl-1.0.x.so.node");
67
+ import_path.default.join(__dirname, "../libquery_engine-rhel-openssl-1.1.x.so.node");
68
+ import_path.default.join(__dirname, "../libquery_engine-rhel-openssl-3.0.x.so.node");
69
+ import_path.default.join(__dirname, "../query_engine-windows.dll.node");
70
+
71
+ // src/scripts/postinstall.ts
72
+ var debug2 = (0, import_debug2.default)("prisma:download");
73
+ var baseDir = import_path2.default.join(__dirname, "../../");
74
+ var lockFile = import_path2.default.join(baseDir, "download-lock");
75
+ var createdLockFile = false;
76
+ async function main() {
77
+ if (import_fs.default.existsSync(lockFile) && parseInt(import_fs.default.readFileSync(lockFile, "utf-8"), 10) > Date.now() - 2e4) {
78
+ debug2(`Lock file already exists, so we're skipping the download of the prisma binaries`);
79
+ } else {
80
+ createLockFile();
81
+ let binaryTargets;
82
+ if (process.env.PRISMA_CLI_BINARY_TARGETS) {
83
+ binaryTargets = process.env.PRISMA_CLI_BINARY_TARGETS.split(",");
84
+ }
85
+ const cliQueryEngineBinaryType = getCliQueryEngineBinaryType();
86
+ const binaries = {
87
+ [cliQueryEngineBinaryType]: baseDir,
88
+ [import_fetch_engine2.BinaryType.SchemaEngineBinary]: baseDir
89
+ };
90
+ await (0, import_fetch_engine2.download)({
91
+ binaries,
92
+ version: import_engines_version3.enginesVersion,
93
+ showProgress: true,
94
+ failSilent: true,
95
+ binaryTargets
96
+ }).catch((e) => debug2(e));
97
+ cleanupLockFile();
98
+ }
99
+ }
100
+ function createLockFile() {
101
+ createdLockFile = true;
102
+ import_fs.default.writeFileSync(lockFile, Date.now().toString());
103
+ }
104
+ function cleanupLockFile() {
105
+ if (createdLockFile) {
106
+ try {
107
+ if (import_fs.default.existsSync(lockFile)) {
108
+ import_fs.default.unlinkSync(lockFile);
109
+ }
110
+ } catch (e) {
111
+ debug2(e);
112
+ }
113
+ }
114
+ }
115
+ main().catch((e) => debug2(e));
116
+ process.on("beforeExit", () => {
117
+ cleanupLockFile();
118
+ });
119
+ process.once("SIGINT", () => {
120
+ cleanupLockFile();
121
+ process.exit();
122
+ });
backend/node_modules/@prisma/engines/scripts/postinstall.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const path = require('path')
2
+
3
+ const postInstallScriptPath = path.join(__dirname, '..', 'dist', 'scripts', 'postinstall.js')
4
+ const localInstallScriptPath = path.join(__dirname, '..', 'dist', 'scripts', 'localinstall.js')
5
+
6
+ try {
7
+ // that's when we develop in the monorepo, `dist` does not exist yet
8
+ // so we compile postinstall script and trigger it immediately after
9
+ if (require('../package.json').version === '0.0.0') {
10
+ const execa = require('execa')
11
+ const buildScriptPath = path.join(__dirname, '..', 'helpers', 'build.ts')
12
+
13
+ execa.sync('pnpm', ['tsx', buildScriptPath], {
14
+ // for the sake of simplicity, we IGNORE_EXTERNALS in our own setup
15
+ // ie. when the monorepo installs, the postinstall is self-contained
16
+ env: { DEV: true, IGNORE_EXTERNALS: true },
17
+ stdio: 'inherit',
18
+ })
19
+
20
+ // if enabled, it will install engine overrides into the cache dir
21
+ execa.sync('node', [localInstallScriptPath], {
22
+ stdio: 'inherit',
23
+ })
24
+ }
25
+ } catch {}
26
+
27
+ // that's the normal path, when users get this package ready/installed
28
+ require(postInstallScriptPath)
backend/node_modules/@prisma/fetch-engine/dist/chmodPlusX.js ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chmodPlusX_exports = {};
20
+ __export(chmodPlusX_exports, {
21
+ chmodPlusX: () => import_chunk_7JLQJWOR.chmodPlusX
22
+ });
23
+ module.exports = __toCommonJS(chmodPlusX_exports);
24
+ var import_chunk_7JLQJWOR = require("./chunk-7JLQJWOR.js");
25
+ var import_chunk_QGM4M3NI = require("./chunk-QGM4M3NI.js");
backend/node_modules/@prisma/fetch-engine/dist/chunk-MWVY55RY.js ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chunk_MWVY55RY_exports = {};
20
+ __export(chunk_MWVY55RY_exports, {
21
+ getBar: () => getBar
22
+ });
23
+ module.exports = __toCommonJS(chunk_MWVY55RY_exports);
24
+ var import_chunk_QGM4M3NI = require("./chunk-QGM4M3NI.js");
25
+ var require_node_progress = (0, import_chunk_QGM4M3NI.__commonJS)({
26
+ "../../node_modules/.pnpm/progress@2.0.3/node_modules/progress/lib/node-progress.js"(exports, module2) {
27
+ "use strict";
28
+ exports = module2.exports = ProgressBar;
29
+ function ProgressBar(fmt, options) {
30
+ this.stream = options.stream || process.stderr;
31
+ if (typeof options == "number") {
32
+ var total = options;
33
+ options = {};
34
+ options.total = total;
35
+ } else {
36
+ options = options || {};
37
+ if ("string" != typeof fmt) throw new Error("format required");
38
+ if ("number" != typeof options.total) throw new Error("total required");
39
+ }
40
+ this.fmt = fmt;
41
+ this.curr = options.curr || 0;
42
+ this.total = options.total;
43
+ this.width = options.width || this.total;
44
+ this.clear = options.clear;
45
+ this.chars = {
46
+ complete: options.complete || "=",
47
+ incomplete: options.incomplete || "-",
48
+ head: options.head || (options.complete || "=")
49
+ };
50
+ this.renderThrottle = options.renderThrottle !== 0 ? options.renderThrottle || 16 : 0;
51
+ this.lastRender = -Infinity;
52
+ this.callback = options.callback || function() {
53
+ };
54
+ this.tokens = {};
55
+ this.lastDraw = "";
56
+ }
57
+ ProgressBar.prototype.tick = function(len, tokens) {
58
+ if (len !== 0)
59
+ len = len || 1;
60
+ if ("object" == typeof len) tokens = len, len = 1;
61
+ if (tokens) this.tokens = tokens;
62
+ if (0 == this.curr) this.start = /* @__PURE__ */ new Date();
63
+ this.curr += len;
64
+ this.render();
65
+ if (this.curr >= this.total) {
66
+ this.render(void 0, true);
67
+ this.complete = true;
68
+ this.terminate();
69
+ this.callback(this);
70
+ return;
71
+ }
72
+ };
73
+ ProgressBar.prototype.render = function(tokens, force) {
74
+ force = force !== void 0 ? force : false;
75
+ if (tokens) this.tokens = tokens;
76
+ if (!this.stream.isTTY) return;
77
+ var now = Date.now();
78
+ var delta = now - this.lastRender;
79
+ if (!force && delta < this.renderThrottle) {
80
+ return;
81
+ } else {
82
+ this.lastRender = now;
83
+ }
84
+ var ratio = this.curr / this.total;
85
+ ratio = Math.min(Math.max(ratio, 0), 1);
86
+ var percent = Math.floor(ratio * 100);
87
+ var incomplete, complete, completeLength;
88
+ var elapsed = /* @__PURE__ */ new Date() - this.start;
89
+ var eta = percent == 100 ? 0 : elapsed * (this.total / this.curr - 1);
90
+ var rate = this.curr / (elapsed / 1e3);
91
+ var str = this.fmt.replace(":current", this.curr).replace(":total", this.total).replace(":elapsed", isNaN(elapsed) ? "0.0" : (elapsed / 1e3).toFixed(1)).replace(":eta", isNaN(eta) || !isFinite(eta) ? "0.0" : (eta / 1e3).toFixed(1)).replace(":percent", percent.toFixed(0) + "%").replace(":rate", Math.round(rate));
92
+ var availableSpace = Math.max(0, this.stream.columns - str.replace(":bar", "").length);
93
+ if (availableSpace && process.platform === "win32") {
94
+ availableSpace = availableSpace - 1;
95
+ }
96
+ var width = Math.min(this.width, availableSpace);
97
+ completeLength = Math.round(width * ratio);
98
+ complete = Array(Math.max(0, completeLength + 1)).join(this.chars.complete);
99
+ incomplete = Array(Math.max(0, width - completeLength + 1)).join(this.chars.incomplete);
100
+ if (completeLength > 0)
101
+ complete = complete.slice(0, -1) + this.chars.head;
102
+ str = str.replace(":bar", complete + incomplete);
103
+ if (this.tokens) for (var key in this.tokens) str = str.replace(":" + key, this.tokens[key]);
104
+ if (this.lastDraw !== str) {
105
+ this.stream.cursorTo(0);
106
+ this.stream.write(str);
107
+ this.stream.clearLine(1);
108
+ this.lastDraw = str;
109
+ }
110
+ };
111
+ ProgressBar.prototype.update = function(ratio, tokens) {
112
+ var goal = Math.floor(ratio * this.total);
113
+ var delta = goal - this.curr;
114
+ this.tick(delta, tokens);
115
+ };
116
+ ProgressBar.prototype.interrupt = function(message) {
117
+ this.stream.clearLine();
118
+ this.stream.cursorTo(0);
119
+ this.stream.write(message);
120
+ this.stream.write("\n");
121
+ this.stream.write(this.lastDraw);
122
+ };
123
+ ProgressBar.prototype.terminate = function() {
124
+ if (this.clear) {
125
+ if (this.stream.clearLine) {
126
+ this.stream.clearLine();
127
+ this.stream.cursorTo(0);
128
+ }
129
+ } else {
130
+ this.stream.write("\n");
131
+ }
132
+ };
133
+ }
134
+ });
135
+ var require_progress = (0, import_chunk_QGM4M3NI.__commonJS)({
136
+ "../../node_modules/.pnpm/progress@2.0.3/node_modules/progress/index.js"(exports, module2) {
137
+ "use strict";
138
+ module2.exports = require_node_progress();
139
+ }
140
+ });
141
+ var import_progress = (0, import_chunk_QGM4M3NI.__toESM)(require_progress());
142
+ function getBar(text) {
143
+ return new import_progress.default(`> ${text} [:bar] :percent`, {
144
+ stream: process.stdout,
145
+ width: 20,
146
+ complete: "=",
147
+ incomplete: " ",
148
+ total: 100,
149
+ head: "",
150
+ clear: true
151
+ });
152
+ }
153
+ /*! Bundled license information:
154
+
155
+ progress/lib/node-progress.js:
156
+ (*!
157
+ * node-progress
158
+ * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>
159
+ * MIT Licensed
160
+ *)
161
+ */
backend/node_modules/@prisma/fetch-engine/dist/chunk-RXM4EBGR.js ADDED
The diff for this file is too large to render. See raw diff
 
backend/node_modules/@prisma/fetch-engine/dist/downloadZip.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var downloadZip_exports = {};
20
+ __export(downloadZip_exports, {
21
+ downloadZip: () => import_chunk_CY52DY2B.downloadZip
22
+ });
23
+ module.exports = __toCommonJS(downloadZip_exports);
24
+ var import_chunk_CY52DY2B = require("./chunk-CY52DY2B.js");
25
+ var import_chunk_RXM4EBGR = require("./chunk-RXM4EBGR.js");
26
+ var import_chunk_FSAAZH62 = require("./chunk-FSAAZH62.js");
27
+ var import_chunk_LONQL55G = require("./chunk-LONQL55G.js");
28
+ var import_chunk_X37PZICB = require("./chunk-X37PZICB.js");
29
+ var import_chunk_VAPNG6TS = require("./chunk-VAPNG6TS.js");
30
+ var import_chunk_QGM4M3NI = require("./chunk-QGM4M3NI.js");
backend/node_modules/@prisma/fetch-engine/dist/getHash.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export declare function getHash(filePath: string): Promise<string>;
backend/node_modules/@prisma/fetch-engine/dist/index.d.ts ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ export * from './BinaryType';
2
+ export * from './download';
3
+ export * from './env';
4
+ export { getProxyAgent } from './getProxyAgent';
5
+ export { getCacheDir, overwriteFile } from './utils';
backend/node_modules/@prisma/fetch-engine/dist/utils.js ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var utils_exports = {};
20
+ __export(utils_exports, {
21
+ getCacheDir: () => import_chunk_LONQL55G.getCacheDir,
22
+ getDownloadUrl: () => import_chunk_LONQL55G.getDownloadUrl,
23
+ getRootCacheDir: () => import_chunk_LONQL55G.getRootCacheDir,
24
+ overwriteFile: () => import_chunk_LONQL55G.overwriteFile
25
+ });
26
+ module.exports = __toCommonJS(utils_exports);
27
+ var import_chunk_LONQL55G = require("./chunk-LONQL55G.js");
28
+ var import_chunk_X37PZICB = require("./chunk-X37PZICB.js");
29
+ var import_chunk_QGM4M3NI = require("./chunk-QGM4M3NI.js");
backend/node_modules/effect/BigInt/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/BigInt.js",
4
+ "module": "../dist/esm/BigInt.js",
5
+ "types": "../dist/dts/BigInt.d.ts"
6
+ }
backend/node_modules/effect/Clock/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Clock.js",
4
+ "module": "../dist/esm/Clock.js",
5
+ "types": "../dist/dts/Clock.d.ts"
6
+ }
backend/node_modules/effect/ConfigProvider/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/ConfigProvider.js",
4
+ "module": "../dist/esm/ConfigProvider.js",
5
+ "types": "../dist/dts/ConfigProvider.d.ts"
6
+ }
backend/node_modules/effect/ConfigProviderPathPatch/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/ConfigProviderPathPatch.js",
4
+ "module": "../dist/esm/ConfigProviderPathPatch.js",
5
+ "types": "../dist/dts/ConfigProviderPathPatch.d.ts"
6
+ }
backend/node_modules/effect/Console/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Console.js",
4
+ "module": "../dist/esm/Console.js",
5
+ "types": "../dist/dts/Console.d.ts"
6
+ }
backend/node_modules/effect/Context/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Context.js",
4
+ "module": "../dist/esm/Context.js",
5
+ "types": "../dist/dts/Context.d.ts"
6
+ }
backend/node_modules/effect/Cron/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Cron.js",
4
+ "module": "../dist/esm/Cron.js",
5
+ "types": "../dist/dts/Cron.d.ts"
6
+ }
backend/node_modules/effect/Data/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Data.js",
4
+ "module": "../dist/esm/Data.js",
5
+ "types": "../dist/dts/Data.d.ts"
6
+ }
backend/node_modules/effect/Duration/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Duration.js",
4
+ "module": "../dist/esm/Duration.js",
5
+ "types": "../dist/dts/Duration.d.ts"
6
+ }
backend/node_modules/effect/Effectable/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Effectable.js",
4
+ "module": "../dist/esm/Effectable.js",
5
+ "types": "../dist/dts/Effectable.d.ts"
6
+ }
backend/node_modules/effect/Either/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Either.js",
4
+ "module": "../dist/esm/Either.js",
5
+ "types": "../dist/dts/Either.d.ts"
6
+ }
backend/node_modules/effect/Equal/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Equal.js",
4
+ "module": "../dist/esm/Equal.js",
5
+ "types": "../dist/dts/Equal.d.ts"
6
+ }
backend/node_modules/effect/ExecutionStrategy/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/ExecutionStrategy.js",
4
+ "module": "../dist/esm/ExecutionStrategy.js",
5
+ "types": "../dist/dts/ExecutionStrategy.d.ts"
6
+ }
backend/node_modules/effect/Exit/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Exit.js",
4
+ "module": "../dist/esm/Exit.js",
5
+ "types": "../dist/dts/Exit.d.ts"
6
+ }
backend/node_modules/effect/Fiber/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/Fiber.js",
4
+ "module": "../dist/esm/Fiber.js",
5
+ "types": "../dist/dts/Fiber.d.ts"
6
+ }
backend/node_modules/effect/FiberHandle/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/FiberHandle.js",
4
+ "module": "../dist/esm/FiberHandle.js",
5
+ "types": "../dist/dts/FiberHandle.d.ts"
6
+ }
backend/node_modules/effect/FiberId/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/FiberId.js",
4
+ "module": "../dist/esm/FiberId.js",
5
+ "types": "../dist/dts/FiberId.d.ts"
6
+ }
backend/node_modules/effect/FiberMap/package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/FiberMap.js",
4
+ "module": "../dist/esm/FiberMap.js",
5
+ "types": "../dist/dts/FiberMap.d.ts"
6
+ }