prisma 5.23.0-dev.7 → 5.23.0-dev.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +3 -3
- package/package.json +11 -11
- package/preinstall/index.js +5 -5
- package/prisma-client/generator-build/index.js +2 -2
- package/prisma-client/package.json +2 -2
- package/prisma-client/runtime/binary.js +67 -67
- package/prisma-client/runtime/edge-esm.js +18 -18
- package/prisma-client/runtime/edge.js +18 -18
- package/prisma-client/runtime/library.d.ts +39 -50
- package/prisma-client/runtime/library.js +41 -41
- package/prisma-client/runtime/react-native.d.ts +39 -50
- package/prisma-client/runtime/react-native.js +3 -3
- package/prisma-client/scripts/default-index.js +1 -1
|
@@ -101,7 +101,7 @@ declare type BatchQuery = {
|
|
|
101
101
|
args: JsArgs | RawQueryArgs;
|
|
102
102
|
};
|
|
103
103
|
|
|
104
|
-
declare type BatchQueryEngineResult<T> =
|
|
104
|
+
declare type BatchQueryEngineResult<T> = QueryEngineResultData<T> | Error;
|
|
105
105
|
|
|
106
106
|
declare type BatchQueryOptionsCb = (args: BatchQueryOptionsCbArgs) => Promise<any>;
|
|
107
107
|
|
|
@@ -266,7 +266,36 @@ export declare type Count<O> = {
|
|
|
266
266
|
[K in keyof O]: Count<number>;
|
|
267
267
|
} & {};
|
|
268
268
|
|
|
269
|
-
|
|
269
|
+
/**
|
|
270
|
+
* Custom fetch function for `DataProxyEngine`.
|
|
271
|
+
*
|
|
272
|
+
* We can't use the actual type of `globalThis.fetch` because this will result
|
|
273
|
+
* in API Extractor referencing Node.js type definitions in the `.d.ts` bundle
|
|
274
|
+
* for the client runtime. We can only use such types in internal types that
|
|
275
|
+
* don't end up exported anywhere.
|
|
276
|
+
|
|
277
|
+
* It's also not possible to write a definition of `fetch` that would accept the
|
|
278
|
+
* actual `fetch` function from different environments such as Node.js and
|
|
279
|
+
* Cloudflare Workers (with their extensions to `RequestInit` and `Response`).
|
|
280
|
+
* `fetch` is used in both covariant and contravariant positions in
|
|
281
|
+
* `CustomDataProxyFetch`, making it invariant, so we need the exact same type.
|
|
282
|
+
* Even if we removed the argument and left `fetch` in covariant position only,
|
|
283
|
+
* then for an extension-supplied function to be assignable to `customDataProxyFetch`,
|
|
284
|
+
* the platform-specific (or custom) `fetch` function needs to be assignable
|
|
285
|
+
* to our `fetch` definition. This, in turn, requires the third-party `Response`
|
|
286
|
+
* to be a subtype of our `Response` (which is not a problem, we could declare
|
|
287
|
+
* a minimal `Response` type that only includes what we use) *and* requires the
|
|
288
|
+
* third-party `RequestInit` to be a supertype of our `RequestInit` (i.e. we
|
|
289
|
+
* have to declare all properties any `RequestInit` implementation in existence
|
|
290
|
+
* could possibly have), which is not possible.
|
|
291
|
+
*
|
|
292
|
+
* Since `@prisma/extension-accelerate` redefines the type of
|
|
293
|
+
* `__internalParams.customDataProxyFetch` to its own type anyway (probably for
|
|
294
|
+
* exactly this reason), our definition is never actually used and is completely
|
|
295
|
+
* ignored, so it doesn't matter, and we can just use `unknown` as the type of
|
|
296
|
+
* `fetch` here.
|
|
297
|
+
*/
|
|
298
|
+
declare type CustomDataProxyFetch = (fetch: unknown) => unknown;
|
|
270
299
|
|
|
271
300
|
declare class DataLoader<T = unknown> {
|
|
272
301
|
private options;
|
|
@@ -1037,7 +1066,7 @@ declare interface Engine<InteractiveTransactionPayload = unknown> {
|
|
|
1037
1066
|
start(): Promise<void>;
|
|
1038
1067
|
stop(): Promise<void>;
|
|
1039
1068
|
version(forceRun?: boolean): Promise<string> | string;
|
|
1040
|
-
request<T>(query: JsonQuery, options:
|
|
1069
|
+
request<T>(query: JsonQuery, options: RequestOptions<InteractiveTransactionPayload>): Promise<QueryEngineResultData<T>>;
|
|
1041
1070
|
requestBatch<T>(queries: JsonQuery[], options: RequestBatchOptions<InteractiveTransactionPayload>): Promise<BatchQueryEngineResult<T>[]>;
|
|
1042
1071
|
transaction(action: 'start', headers: Transaction_2.TransactionHeaders, options: Transaction_2.Options): Promise<Transaction_2.InteractiveTransactionInfo<unknown>>;
|
|
1043
1072
|
transaction(action: 'commit', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo<unknown>): Promise<void>;
|
|
@@ -1348,8 +1377,6 @@ export declare type ExtractGlobalOmit<Options, ModelName extends string> = Optio
|
|
|
1348
1377
|
};
|
|
1349
1378
|
} ? GlobalOmit : {};
|
|
1350
1379
|
|
|
1351
|
-
declare type Fetch = typeof nodeFetch;
|
|
1352
|
-
|
|
1353
1380
|
/**
|
|
1354
1381
|
* A reference to a specific field of a specific model
|
|
1355
1382
|
*/
|
|
@@ -1836,7 +1863,7 @@ declare type InternalRequestParams = {
|
|
|
1836
1863
|
/** Used to convert args for middleware and back */
|
|
1837
1864
|
middlewareArgsMapper?: MiddlewareArgsMapper<unknown, unknown>;
|
|
1838
1865
|
/** Used for Accelerate client extension via Data Proxy */
|
|
1839
|
-
customDataProxyFetch?:
|
|
1866
|
+
customDataProxyFetch?: CustomDataProxyFetch;
|
|
1840
1867
|
} & Omit<QueryMiddlewareParams, 'runInTransaction'>;
|
|
1841
1868
|
|
|
1842
1869
|
declare enum IsolationLevel {
|
|
@@ -2166,27 +2193,6 @@ export declare type Narrowable = string | number | bigint | boolean | [];
|
|
|
2166
2193
|
|
|
2167
2194
|
export declare type NeverToUnknown<T> = [T] extends [never] ? unknown : T;
|
|
2168
2195
|
|
|
2169
|
-
/**
|
|
2170
|
-
* Imitates `fetch` via `https` to only suit our needs, it does nothing more.
|
|
2171
|
-
* This is because we cannot bundle `node-fetch` as it uses many other Node.js
|
|
2172
|
-
* utilities, while also bloating our bundles. This approach is much leaner.
|
|
2173
|
-
* @param url
|
|
2174
|
-
* @param options
|
|
2175
|
-
* @returns
|
|
2176
|
-
*/
|
|
2177
|
-
declare function nodeFetch(url: string, options?: RequestOptions): Promise<RequestResponse>;
|
|
2178
|
-
|
|
2179
|
-
declare class NodeHeaders {
|
|
2180
|
-
readonly headers: Map<string, string>;
|
|
2181
|
-
constructor(init?: Record<any, any>);
|
|
2182
|
-
append(name: string, value: string): void;
|
|
2183
|
-
delete(name: string): void;
|
|
2184
|
-
get(name: string): string | null;
|
|
2185
|
-
has(name: string): boolean;
|
|
2186
|
-
set(name: string, value: string): void;
|
|
2187
|
-
forEach(callbackfn: (value: string, key: string, parent: this) => void, thisArg?: any): void;
|
|
2188
|
-
}
|
|
2189
|
-
|
|
2190
2196
|
declare class NullTypesEnumValue extends ObjectEnumValue {
|
|
2191
2197
|
_getNamespace(): string;
|
|
2192
2198
|
}
|
|
@@ -2556,9 +2562,8 @@ declare type QueryEngineRequest = {
|
|
|
2556
2562
|
variables: Object;
|
|
2557
2563
|
};
|
|
2558
2564
|
|
|
2559
|
-
declare type
|
|
2565
|
+
declare type QueryEngineResultData<T> = {
|
|
2560
2566
|
data: T;
|
|
2561
|
-
elapsed: number;
|
|
2562
2567
|
};
|
|
2563
2568
|
|
|
2564
2569
|
declare type QueryEngineTelemetry = {
|
|
@@ -2651,7 +2656,7 @@ declare type RequestBatchOptions<InteractiveTransactionPayload> = {
|
|
|
2651
2656
|
traceparent?: string;
|
|
2652
2657
|
numTry?: number;
|
|
2653
2658
|
containsWrite: boolean;
|
|
2654
|
-
customDataProxyFetch?:
|
|
2659
|
+
customDataProxyFetch?: CustomDataProxyFetch;
|
|
2655
2660
|
};
|
|
2656
2661
|
|
|
2657
2662
|
declare interface RequestError {
|
|
@@ -2671,7 +2676,7 @@ declare class RequestHandler {
|
|
|
2671
2676
|
private logEmitter?;
|
|
2672
2677
|
constructor(client: Client, logEmitter?: LogEmitter);
|
|
2673
2678
|
request(params: RequestParams): Promise<any>;
|
|
2674
|
-
mapQueryEngineResult({ dataPath, unpacker }: RequestParams, response:
|
|
2679
|
+
mapQueryEngineResult({ dataPath, unpacker }: RequestParams, response: QueryEngineResultData<any>): any;
|
|
2675
2680
|
/**
|
|
2676
2681
|
* Handles the error and logs it, logging the error is done synchronously waiting for the event
|
|
2677
2682
|
* handlers to finish.
|
|
@@ -2683,18 +2688,12 @@ declare class RequestHandler {
|
|
|
2683
2688
|
get [Symbol.toStringTag](): string;
|
|
2684
2689
|
}
|
|
2685
2690
|
|
|
2686
|
-
declare type RequestOptions = {
|
|
2687
|
-
method?: string;
|
|
2688
|
-
headers?: Record<string, string>;
|
|
2689
|
-
body?: string;
|
|
2690
|
-
};
|
|
2691
|
-
|
|
2692
|
-
declare type RequestOptions_2<InteractiveTransactionPayload> = {
|
|
2691
|
+
declare type RequestOptions<InteractiveTransactionPayload> = {
|
|
2693
2692
|
traceparent?: string;
|
|
2694
2693
|
numTry?: number;
|
|
2695
2694
|
interactiveTransaction?: InteractiveTransactionOptions<InteractiveTransactionPayload>;
|
|
2696
2695
|
isWrite: boolean;
|
|
2697
|
-
customDataProxyFetch?:
|
|
2696
|
+
customDataProxyFetch?: CustomDataProxyFetch;
|
|
2698
2697
|
};
|
|
2699
2698
|
|
|
2700
2699
|
declare type RequestParams = {
|
|
@@ -2712,17 +2711,7 @@ declare type RequestParams = {
|
|
|
2712
2711
|
otelParentCtx?: Context;
|
|
2713
2712
|
otelChildCtx?: Context;
|
|
2714
2713
|
globalOmit?: GlobalOmitOptions;
|
|
2715
|
-
customDataProxyFetch?:
|
|
2716
|
-
};
|
|
2717
|
-
|
|
2718
|
-
declare type RequestResponse = {
|
|
2719
|
-
ok: boolean;
|
|
2720
|
-
url: string;
|
|
2721
|
-
statusText?: string;
|
|
2722
|
-
status: number;
|
|
2723
|
-
headers: NodeHeaders;
|
|
2724
|
-
text: () => Promise<string>;
|
|
2725
|
-
json: () => Promise<any>;
|
|
2714
|
+
customDataProxyFetch?: CustomDataProxyFetch;
|
|
2726
2715
|
};
|
|
2727
2716
|
|
|
2728
2717
|
declare type RequiredExtensionArgs = NameArgs & ResultArgs & ModelArgs & ClientArgs & QueryOptions;
|
|
@@ -57,8 +57,8 @@ ${Pt(h)}
|
|
|
57
57
|
If you want the Prisma team to look into it, please open the link above \u{1F64F}
|
|
58
58
|
To increase the chance of success, please post your schema and a snippet of
|
|
59
59
|
how you used Prisma Client in the issue.
|
|
60
|
-
`}m();c();p();d();f();function $r({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new V(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new V("error: Missing URL environment variable, value, or override.",n);return i}m();c();p();d();f();m();c();p();d();f();function vs(e){if(e?.kind==="itx")return e.options.id}m();c();p();d();f();var jn=class{constructor(t,r,n){this.engineObject=__PrismaProxy.create({datamodel:t.datamodel,env:y.env,ignoreEnvVarErrors:!0,datasourceOverrides:t.datasourceOverrides??{},logLevel:t.logLevel,logQueries:t.logQueries??!1,logCallback:r})}async connect(t){return __PrismaProxy.connect(this.engineObject,t)}async disconnect(t){return __PrismaProxy.disconnect(this.engineObject,t)}query(t,r,n){return __PrismaProxy.execute(this.engineObject,t,r,n)}sdlSchema(){return Promise.resolve("{}")}dmmf(t){return Promise.resolve("{}")}async startTransaction(t,r){return __PrismaProxy.startTransaction(this.engineObject,t,r)}async commitTransaction(t,r){return __PrismaProxy.commitTransaction(this.engineObject,t,r)}async rollbackTransaction(t,r){return __PrismaProxy.rollbackTransaction(this.engineObject,t,r)}metrics(t){return Promise.resolve("{}")}async applyPendingMigrations(){return __PrismaProxy.applyPendingMigrations(this.engineObject)}},Ps={async loadLibrary(e){if(!__PrismaProxy)throw new V("__PrismaProxy not detected make sure React Native bindings are installed",e.clientVersion);return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:jn}}};var zc="P2036",Re=ae("prisma:client:libraryEngine");function Yc(e){return e.item_type==="query"&&"query"in e}function Zc(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var zA=[...on,"native"],Yt=class{constructor(t,r){this.name="LibraryEngine";this.libraryLoader=Ps,this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}async applyPendingMigrations(){await this.start(),await this.engine?.applyPendingMigrations()}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t==="start"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t==="commit"?o=await this.engine?.commitTransaction(n.id,i):t==="rollback"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(Xc(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new ie(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(Re("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.loadEngine(),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(t){if(!t)throw new W("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new W("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new b(this),{adapter:r}=this.config;r&&Re("Using driver adapter: %O",r),this.engine=new this.QueryEngineConstructor({datamodel:this.datamodel,env:y.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json"},n=>{t.deref()?.logger(n)},r)}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);if(r){if("span"in r){this.config.tracingHelper.createEngineSpan(r);return}r.level=r?.level.toLowerCase()??"unknown",Yc(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):Zc(r)?this.loggerRustPanic=new ue(Un(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})}}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Re(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Re("library starting");try{let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Re("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.config.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Re("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Re("library stopping");let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,Re("library stopped")};return this.libraryStoppingPromise=this.config.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Re(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new W(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s
|
|
61
|
-
${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Re("requestBatch");let i=_r(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),vs(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new W(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:l}=s;if(Array.isArray(a))return a.map(u=>u.errors&&u.errors.length>0?this.loggerRustPanic??this.buildQueryError(u.errors[0]):{data:u
|
|
60
|
+
`}m();c();p();d();f();function $r({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new V(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new V("error: Missing URL environment variable, value, or override.",n);return i}m();c();p();d();f();m();c();p();d();f();function vs(e){if(e?.kind==="itx")return e.options.id}m();c();p();d();f();var jn=class{constructor(t,r,n){this.engineObject=__PrismaProxy.create({datamodel:t.datamodel,env:y.env,ignoreEnvVarErrors:!0,datasourceOverrides:t.datasourceOverrides??{},logLevel:t.logLevel,logQueries:t.logQueries??!1,logCallback:r})}async connect(t){return __PrismaProxy.connect(this.engineObject,t)}async disconnect(t){return __PrismaProxy.disconnect(this.engineObject,t)}query(t,r,n){return __PrismaProxy.execute(this.engineObject,t,r,n)}sdlSchema(){return Promise.resolve("{}")}dmmf(t){return Promise.resolve("{}")}async startTransaction(t,r){return __PrismaProxy.startTransaction(this.engineObject,t,r)}async commitTransaction(t,r){return __PrismaProxy.commitTransaction(this.engineObject,t,r)}async rollbackTransaction(t,r){return __PrismaProxy.rollbackTransaction(this.engineObject,t,r)}metrics(t){return Promise.resolve("{}")}async applyPendingMigrations(){return __PrismaProxy.applyPendingMigrations(this.engineObject)}},Ps={async loadLibrary(e){if(!__PrismaProxy)throw new V("__PrismaProxy not detected make sure React Native bindings are installed",e.clientVersion);return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:jn}}};var zc="P2036",Re=ae("prisma:client:libraryEngine");function Yc(e){return e.item_type==="query"&&"query"in e}function Zc(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var zA=[...on,"native"],Yt=class{constructor(t,r){this.name="LibraryEngine";this.libraryLoader=Ps,this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}async applyPendingMigrations(){await this.start(),await this.engine?.applyPendingMigrations()}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t==="start"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t==="commit"?o=await this.engine?.commitTransaction(n.id,i):t==="rollback"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(Xc(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new ie(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(Re("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.loadEngine(),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(t){if(!t)throw new W("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new W("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new b(this),{adapter:r}=this.config;r&&Re("Using driver adapter: %O",r),this.engine=new this.QueryEngineConstructor({datamodel:this.datamodel,env:y.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json"},n=>{t.deref()?.logger(n)},r)}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);if(r){if("span"in r){this.config.tracingHelper.createEngineSpan(r);return}r.level=r?.level.toLowerCase()??"unknown",Yc(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):Zc(r)?this.loggerRustPanic=new ue(Un(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})}}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Re(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Re("library starting");try{let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Re("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.config.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Re("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Re("library stopping");let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,Re("library stopped")};return this.libraryStoppingPromise=this.config.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Re(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new W(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s}}catch(s){if(s instanceof V)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new ue(Un(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new W(`${a.message}
|
|
61
|
+
${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Re("requestBatch");let i=_r(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),vs(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new W(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:l}=s;if(Array.isArray(a))return a.map(u=>u.errors&&u.errors.length>0?this.loggerRustPanic??this.buildQueryError(u.errors[0]):{data:u});throw l&&l.length===1?new Error(l[0].error):new Error(JSON.stringify(s))}buildQueryError(t){if(t.user_facing_error.is_panic)return new ue(Un(this,t.user_facing_error.message),this.config.clientVersion);let r=this.getExternalAdapterError(t.user_facing_error);return r?r.error:Lr(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t){if(t.error_code===zc&&this.config.adapter){let r=t.meta?.id;or(typeof r=="number","Malformed external JS error received from the engine");let n=this.config.adapter.errorRegistry.consumeError(r);return or(n,"External error with reported id was not registered"),n}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format==="prometheus"?r:this.parseEngineResponse(r)}};function Xc(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function Un(e,t){return xs({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function Ts({copyEngine:e=!0},t){let r;try{r=$r({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||r?.startsWith("prisma+postgres://"));e&&n&&It("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ot(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary";if(o&&s||s&&!1){let u;throw e?r?.startsWith("prisma://")?u=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:u=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:u=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new X(u.join(`
|
|
62
62
|
`),{clientVersion:t.clientVersion})}return new Yt(t)}m();c();p();d();f();function Br({generator:e}){return e?.previewFeatures??[]}m();c();p();d();f();var Cs=e=>({command:e});m();c();p();d();f();m();c();p();d();f();var As=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);m();c();p();d();f();function yt(e){try{return Rs(e,"fast")}catch{return Rs(e,"slow")}}function Rs(e,t){return JSON.stringify(e.map(r=>Os(r,t)))}function Os(e,t){return Array.isArray(e)?e.map(r=>Os(r,t)):typeof e=="bigint"?{prisma__type:"bigint",prisma__value:e.toString()}:ot(e)?{prisma__type:"date",prisma__value:e.toJSON()}:Ee.isDecimal(e)?{prisma__type:"decimal",prisma__value:e.toJSON()}:w.Buffer.isBuffer(e)?{prisma__type:"bytes",prisma__value:e.toString("base64")}:ep(e)||ArrayBuffer.isView(e)?{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")}:typeof e=="object"&&t==="slow"?ks(e):e}function ep(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function ks(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Ss);let t={};for(let r of Object.keys(e))t[r]=Ss(e[r]);return t}function Ss(e){return typeof e=="bigint"?e.toString():ks(e)}m();c();p();d();f();var tp=["$connect","$disconnect","$on","$transaction","$use","$extends"],Fs=tp;var rp=/^(\s*alter\s)/i,Ms=ae("prisma:client");function qn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&rp.exec(t))throw new Error(`Running ALTER using ${n} is not supported
|
|
63
63
|
Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization.
|
|
64
64
|
|
|
@@ -66,7 +66,7 @@ Example:
|
|
|
66
66
|
await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`)
|
|
67
67
|
|
|
68
68
|
More Information: https://pris.ly/d/execute-raw
|
|
69
|
-
`)}var Vn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Lo(r))n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:yt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=As(r),i={values:yt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Ms(`prisma.${e}(${n}, ${i.values})`):Ms(`prisma.${e}(${n})`),{query:n,parameters:i}},Is={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new se(t,r)}},_s={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};m();c();p();d();f();function Qn(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=Ls(r(o)):Ls(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function Ls(e){return typeof e.then=="function"?e:Promise.resolve(e)}m();c();p();d();f();var Ns={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},async createEngineSpan(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Jn=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}createEngineSpan(t){return this.getGlobalTracingHelper().createEngineSpan(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Ns}};function Ds(e){return e.includes("tracing")?new Jn:Ns}m();c();p();d();f();function $s(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}m();c();p();d();f();function Bs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}m();c();p();d();f();var jr=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};m();c();p();d();f();var qs=he(un());m();c();p();d();f();function Ur(e){return typeof e.batchRequestIdx=="number"}m();c();p();d();f();function js(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(Gn(e.query.arguments)),t.push(Gn(e.query.selection)),t.join("")}function Gn(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${Gn(n)})`:r}).join(" ")})`}m();c();p();d();f();var np={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function Wn(e){return np[e]}m();c();p();d();f();var qr=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i<r.length;i++)r[i].reject(n);else for(let i=0;i<r.length;i++){let o=n[i];o instanceof Error?r[i].reject(o):r[i].resolve(o)}}).catch(n=>{for(let i=0;i<r.length;i++)r[i].reject(n)}))}}get[Symbol.toStringTag](){return"DataLoader"}};m();c();p();d();f();function Ke(e,t){if(t===null)return t;switch(e){case"bigint":return BigInt(t);case"bytes":return w.Buffer.from(t,"base64");case"decimal":return new Ee(t);case"datetime":case"date":return new Date(t);case"time":return new Date(`1970-01-01T${t}Z`);case"bigint-array":return t.map(r=>Ke("bigint",r));case"bytes-array":return t.map(r=>Ke("bytes",r));case"decimal-array":return t.map(r=>Ke("decimal",r));case"datetime-array":return t.map(r=>Ke("datetime",r));case"date-array":return t.map(r=>Ke("date",r));case"time-array":return t.map(r=>Ke("time",r));default:return t}}function Us(e){let t=[],r=ip(e);for(let n=0;n<e.rows.length;n++){let i=e.rows[n],o={...r};for(let s=0;s<i.length;s++)o[e.columns[s]]=Ke(e.types[s],i[s]);t.push(o)}return t}function ip(e){let t={};for(let r=0;r<e.columns.length;r++)t[e.columns[r]]=null;return t}var op=ae("prisma:client:request_handler"),Vr=class{constructor(t,r){this.logEmitter=r,this.client=t,this.dataloader=new qr({batchLoader:ls(async({requests:n,customDataProxyFetch:i})=>{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(h=>Wn(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:sp(o),containsWrite:u,customDataProxyFetch:i})).map((h,P)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[P],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Vs(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Wn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:js(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=
|
|
69
|
+
`)}var Vn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Lo(r))n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:yt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=As(r),i={values:yt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Ms(`prisma.${e}(${n}, ${i.values})`):Ms(`prisma.${e}(${n})`),{query:n,parameters:i}},Is={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new se(t,r)}},_s={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};m();c();p();d();f();function Qn(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=Ls(r(o)):Ls(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function Ls(e){return typeof e.then=="function"?e:Promise.resolve(e)}m();c();p();d();f();var Ns={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},async createEngineSpan(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Jn=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}createEngineSpan(t){return this.getGlobalTracingHelper().createEngineSpan(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Ns}};function Ds(e){return e.includes("tracing")?new Jn:Ns}m();c();p();d();f();function $s(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}m();c();p();d();f();function Bs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}m();c();p();d();f();var jr=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};m();c();p();d();f();var qs=he(un());m();c();p();d();f();function Ur(e){return typeof e.batchRequestIdx=="number"}m();c();p();d();f();function js(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(Gn(e.query.arguments)),t.push(Gn(e.query.selection)),t.join("")}function Gn(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${Gn(n)})`:r}).join(" ")})`}m();c();p();d();f();var np={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function Wn(e){return np[e]}m();c();p();d();f();var qr=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i<r.length;i++)r[i].reject(n);else for(let i=0;i<r.length;i++){let o=n[i];o instanceof Error?r[i].reject(o):r[i].resolve(o)}}).catch(n=>{for(let i=0;i<r.length;i++)r[i].reject(n)}))}}get[Symbol.toStringTag](){return"DataLoader"}};m();c();p();d();f();function Ke(e,t){if(t===null)return t;switch(e){case"bigint":return BigInt(t);case"bytes":return w.Buffer.from(t,"base64");case"decimal":return new Ee(t);case"datetime":case"date":return new Date(t);case"time":return new Date(`1970-01-01T${t}Z`);case"bigint-array":return t.map(r=>Ke("bigint",r));case"bytes-array":return t.map(r=>Ke("bytes",r));case"decimal-array":return t.map(r=>Ke("decimal",r));case"datetime-array":return t.map(r=>Ke("datetime",r));case"date-array":return t.map(r=>Ke("date",r));case"time-array":return t.map(r=>Ke("time",r));default:return t}}function Us(e){let t=[],r=ip(e);for(let n=0;n<e.rows.length;n++){let i=e.rows[n],o={...r};for(let s=0;s<i.length;s++)o[e.columns[s]]=Ke(e.types[s],i[s]);t.push(o)}return t}function ip(e){let t={};for(let r=0;r<e.columns.length;r++)t[e.columns[r]]=null;return t}var op=ae("prisma:client:request_handler"),Vr=class{constructor(t,r){this.logEmitter=r,this.client=t,this.dataloader=new qr({batchLoader:ls(async({requests:n,customDataProxyFetch:i})=>{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(h=>Wn(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:sp(o),containsWrite:u,customDataProxyFetch:i})).map((h,P)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[P],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Vs(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Wn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:js(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(op(t),ap(t,i))throw t;if(t instanceof ie&&lp(t)){let u=Qs(t.meta);Rr({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=yr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new ie(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ue(l,this.client._clientVersion);if(t instanceof W)throw new W(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof V)throw new V(l,this.client._clientVersion);if(t instanceof ue)throw new ue(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,qs.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!=="select"&&u!=="include"),a=Ln(o,s),l=i==="queryRaw"?Us(a):nt(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function sp(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Vs(e)};Fe(e,"Unknown transaction kind")}}function Vs(e){return{id:e.id,payload:e.payload}}function ap(e,t){return Ur(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function lp(e){return e.code==="P2009"||e.code==="P2012"}function Qs(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Qs)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}m();c();p();d();f();var Js="5.23.0-dev.9";var Gs=Js;m();c();p();d();f();var Ys=he(bn());m();c();p();d();f();var B=class extends Error{constructor(t){super(t+`
|
|
70
70
|
Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};le(B,"PrismaClientConstructorValidationError");var Ws=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Ks=["pretty","colorless","minimal"],Hs=["info","query","warn","error"],cp={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new B(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=wt(r,t)||` Available datasources: ${t.join(", ")}`;throw new B(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new B(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor.
|
|
71
71
|
It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new B(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor.
|
|
72
72
|
It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new B(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor.
|