@prisma/extension-optimize 0.0.0-dev.202412311800 → 0.0.0-dev.202412311819

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var de=Object.create;var g=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var ye=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},H=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of fe(e))!xe.call(t,r)&&r!==n&&g(t,r,{get:()=>e[r],enumerable:!(s=he(e,r))||s.enumerable});return t};var Te=(t,e,n)=>(n=t!=null?de(ge(t)):{},H(e||!t||!t.__esModule?g(n,"default",{value:t,enumerable:!0}):n,t)),Ie=t=>H(g({},"__esModule",{value:!0}),t);var He={};ye(He,{PROD_DASHBOARD_URL:()=>ie,PROD_INGESTION_URL:()=>se,withOptimize:()=>Fe});module.exports=Ie(He);var re=require("@opentelemetry/api"),ae=require("@prisma/client/extension");function Re(t,e){let n;return async function(s,r,i){let p=new URL(s,t),c=new Headers({"Content-Type":"application/json",Authorization:`Bearer ${e}`});n&&c.set("prisma-optimize-jwt",n);let l=await fetch(p,{method:r,headers:c,body:JSON.stringify(i)});if(!l.ok){let b=await l.clone().text().catch(()=>"<unreadable>");console.error(`[optimize] HTTP ${l.status} ${l.statusText}: ${b}`)}let f=l.headers.get("prisma-optimize-jwt");return f&&(n=f),l}}function M(t,e){let n=Re(t,e);return{request:n,post:(s,r)=>n(s,"POST",r)}}var $=Te(require("kleur"));var{bold:be,underline:ve}=$.default;function B(t){let e="See your Optimize dashboard at:",n=e.length,s=`${ve(be(t))}`,r=t.length,i=Math.max(n,r)+2;console.log("\u250C"+"\u2500".repeat(i)+"\u2510"),console.log("\u2502 "+e+" ".repeat(i-n-2)+" \u2502"),console.log("\u2502 "+s+" ".repeat(i-r-2)+" \u2502"),console.log("\u2514"+"\u2500".repeat(i)+"\u2518")}var N=require("@opentelemetry/api"),J=require("@opentelemetry/context-async-hooks"),G=require("@opentelemetry/instrumentation"),Z=require("@opentelemetry/resources"),K=require("@opentelemetry/sdk-trace-base"),R=require("@opentelemetry/semantic-conventions"),A=require("prisma-instrumentation-5-x"),W=require("prisma-instrumentation-6-x");async function L(t,e){e.length>0&&await t.post("/ingest",e)}async function U(t,e){return await(await t.post("/schema",e)).text()}function u(t){return t[0]*1e3+t[1]/1e6}var a=require("zod");var m=require("zod"),x=class{spans={};rootSpans={};waitSpans={};treeShape;collectedSpans;collectedRootSpans;sendTimeout;sendInterval;pendingSend;constructor(e){this.treeShape=e.treeShape,this.sendTimeout=e.sendTimeout,this.sendInterval=e.sendInterval,this.collectedSpans=e.collectedSpans,this.collectedRootSpans=e.collectedRootSpans,this.onEnd=qe(()=>void this.forceFlush(),this.sendInterval)}onStart(e){let{parentSpanId:n,name:s}=e,{spanId:r}=e.spanContext();if(!this.collectedSpans.includes(s))return this.cleanSpan(this.spans[r]);this.spans[r]&&this.spans[r].kind==="future"?Object.assign(this.spans[r],{kind:"present",value:e}):this.spans[r]={spanId:r,kind:"present",children:[],value:e,retries:0},this.collectedRootSpans.includes(s)&&(this.rootSpans[r]={...this.spans[r],done:!1},this.waitSpans[r]=this.spans[r]),n!==void 0&&(this.spans[n]?this.spans[n].children.push(this.spans[r]):(this.spans[n]={spanId:n,kind:"future",children:[this.spans[r]],retries:0},this.waitSpans[n]=this.spans[n]))}cleanSpan(e){if(e===void 0)return;let n=e.spanId;for(let s of e.children)this.cleanSpan(s);delete this.spans[n],delete this.rootSpans[n],delete this.waitSpans[n],this.onClean(e)}async forceFlush(){await this.pendingSend;let e=Object.values(this.rootSpans).flatMap(n=>{if(n.done)return[];let s=this.treeShape.safeParse(n);return s.data?(n.done=!0,[{original:n,pruned:s.data}]):[]});e.length>0&&(this.pendingSend=this.onFlush(e).finally(()=>{e.forEach(({original:n})=>this.cleanSpan(n))}));for(let n of Object.values(this.waitSpans))++n.retries*this.sendInterval>this.sendTimeout&&this.cleanSpan(n)}async shutdown(){await this.forceFlush(),this.spans={},this.rootSpans={},this.waitSpans={}}onEnd(){}};function qe(t,e){let n=!1;return()=>{n===!1&&(n=!0,setTimeout(()=>(n=!1)||t(),e))}}var o={ended:m.z.literal(!0),_spanContext:m.z.custom(),spanContext:m.z.custom(),startTime:m.z.custom(),endTime:m.z.custom(),attributes:m.z.custom()};var Q=a.z.object({value:a.z.object({name:a.z.literal("prisma:engine:db_query"),...o})}),Ce=a.z.object({value:a.z.object({name:a.z.literal("prisma:engine:itx_execute_single"),...o}),children:S([Q])}),y=a.z.object({value:a.z.object({name:a.z.union([a.z.literal("prisma:engine"),a.z.literal("prisma:engine:query")]),...o}),children:S([Q])}),Pe=a.z.object({value:a.z.object({name:a.z.union([a.z.literal("prisma:engine"),a.z.literal("prisma:engine:query")]),...o}),children:S([Ce])}),T=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:connect"),...o})}),q=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:operation"),...o}),children:a.z.union([a.z.tuple([y]),a.z.tuple([T,y]),a.z.tuple([y,T])])}),C=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:operation"),...o}),children:S([Pe])}),Oe=a.z.object({value:a.z.object({name:a.z.union([a.z.literal("prisma:engine:start_transaction"),a.z.literal("prisma:engine:commit_transaction")]),...o})}),P=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:operation"),...o}),children:a.z.array(T)}),O=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:transaction"),...o}),children:S([Oe,C,T])}),w=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:transaction"),...o}),children:S([P,y])}),D=a.z.union([q,O,w]);function S(t){return a.z.array(a.z.any()).nonempty().superRefine((e,n)=>{t.every(r=>e.some(i=>r.safeParse(i).success))||n.addIssue({code:"custom",message:"Array does not contain all the required items"})})}var I=class extends x{requests={};errors={};schemaHash;resolvedSchemaHash;apiClient;schemaRequest;constructor(e){super({treeShape:D,sendTimeout:e.sendTimeout,sendInterval:e.sendInterval,collectedSpans:["prisma:client:transaction","prisma:client:operation","prisma:client:connect","prisma:engine","prisma:engine:query","prisma:engine:db_query","prisma:engine:itx_execute_single","prisma:engine:start_transaction","prisma:engine:commit_transaction"],collectedRootSpans:["prisma:client:operation","prisma:client:transaction"]}),this.apiClient=e.apiClient,this.schemaRequest=e.schemaRequest}setRequest(e){this.requests[e.spanId]=e}setError(e){this.errors[e.spanId]=e}onClean({spanId:e}){delete this.requests[e],delete this.errors[e]}async onFlush(e){this.schemaHash??=U(this.apiClient,this.schemaRequest),this.resolvedSchemaHash??=await this.schemaHash;let n=e.flatMap(({pruned:s})=>we(s,this));await L(this.apiClient,n)}};function we(t,e){return O.safeParse(t).success?je(t,e):w.safeParse(t).success?Ee(t,e):q.safeParse(t).success?Ae(t,e):[]}function je(t,e){let n=[],s=t.children.filter(r=>C.safeParse(r).success);for(let r of s){if(E({span:r,ip:e})===!1)continue;let i=ze(r);n.push(d({ip:e,span:r,sql:i,connect:!1}))}if(n.length){let r=j(t);n.unshift(d({ip:e,span:t,sql:null,connect:r}))}return n}function Ee(t,e){let n=[],s=t.children.filter(i=>P.safeParse(i).success),r=!1;for(let i of s)E({span:i,ip:e})!==!1&&(r||=j(i),n.push(d({ip:e,span:i,sql:null,connect:!1})));return n.length&&n.unshift(d({ip:e,span:t,sql:null,connect:r})),n}function Ae(t,e){let n=j(t),s=_e(t);return E({span:t,ip:e})===!1?[]:[d({ip:e,span:t,sql:s,connect:n})]}function d(t){let{span:e,sql:n,connect:s,ip:r}=t,i=e.value.spanContext().spanId,{value:p}=e;return{hash:r.resolvedSchemaHash,sql:n??null,connect:s??!1,error:r.errors[i]?.error??null,ts:u(p.startTime),model:r.requests[i]?.model??p.attributes.model??null,operation:r.requests[i]?.operation??p.attributes.method,args:r.requests[i]?.args??{},latency:u(p.endTime)-u(p.startTime)}}function V(t){return t.sort((n,s)=>u(n.value.startTime)-u(s.value.startTime)).reduce((n,s)=>{let r=s.value.attributes["db.statement"];return r??=s.value.attributes["db.query.text"],typeof r=="string"?`${n}${r}
2
- `:n},"")}function _e(t){let{children:e}=t.children.find(({value:s})=>s.name==="prisma:engine"||s.name==="prisma:engine:query"),n=e.filter(({value:s})=>s.name==="prisma:engine:db_query");return V(n)}function ze(t){let{children:e}=t.children.find(({value:r})=>r.name==="prisma:engine"||r.name==="prisma:engine:query"),s=e.filter(({value:r})=>r.name==="prisma:engine:itx_execute_single").flatMap(({children:r})=>r.filter(({value:i})=>i.name==="prisma:engine:db_query"));return V(s)}function j(t){let{value:e}=t.children.find(({value:n})=>n.name==="prisma:client:connect")??{};return e?u(e.endTime)-u(e.startTime):!1}function E(t){let{span:e,ip:n}=t;return!!n.requests[e.value.spanContext().spanId]}var h,ke={"5-x":A.PrismaInstrumentation,"6-x":W.PrismaInstrumentation};function X(t){if(h)return h;let e=new J.AsyncHooksContextManager().enable();N.context.setGlobalContextManager(e);let n=new K.BasicTracerProvider({resource:new Z.Resource({[R.SEMRESATTRS_SERVICE_NAME]:"extension-optimize",[R.SEMRESATTRS_SERVICE_VERSION]:"0.0.0"})});h=new I(t),n.addSpanProcessor(h);let[s="5",r="0"]=t.clientVersion.split("."),i=ke[`${s}-x`];return(s==="6"&&r==="0"||i===void 0)&&(i=A.PrismaInstrumentation),(0,G.registerInstrumentations)({tracerProvider:n,instrumentations:[new i]}),n.register(),h}function Y(t){return t._engineConfig.inlineSchema}function ee(t){if(t instanceof Error)return t.stack??t.message;switch(typeof t){case"undefined":return"undefined";case"object":{let e;return t!==null&&typeof t.toString=="function"&&(e=t.toString()),typeof e=="string"&&e!=="[object Object]"?e:JSON.stringify(t)}default:return String(t)}}var te=require("@prisma/client/extension"),ne=te.Prisma.defineExtension(t=>t.$extends({}));var se="https://optimize-ingestion.datacdn.workers.dev/",ie="https://optimize.prisma.io";function Fe({enable:t=!0,ingestionUrl:e=se,dashboardUrl:n=ie,sendInterval:s=500,sendTimeout:r=1e4,showNotification:i=!0,apiKey:p}){return t?(i&&B(n),ae.Prisma.defineExtension(c=>{let l=Y(c),f=Reflect.get(c,"_clientVersion"),b=Reflect.get(c,"_activeProvider"),_=Reflect.get(c,"_accelerateEngineConfig"),{protocol:oe}=new URL(_.accelerateUtils.resolveDatasourceUrl(_)),pe={schema:l,provider:b,protocol:oe},ce=M(e,p),z=X({schemaRequest:pe,apiClient:ce,sendInterval:s,sendTimeout:r,clientVersion:f});return c.$extends({query:{async $allOperations({query:le,model:ue,operation:me,args:k}){let v=re.trace.getActiveSpan()?.spanContext().spanId;if(!v)throw new Error("prisma:client:operation span is expected to be entered in the client extension when tracing is enabled");z.setRequest({spanId:v,model:ue,operation:me,args:k});try{return await le(k)}catch(F){let Se=ee(F);throw z.setError({spanId:v,error:Se}),F}}}})})):ne}0&&(module.exports={PROD_DASHBOARD_URL,PROD_INGESTION_URL,withOptimize});
1
+ "use strict";var he=Object.create;var g=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty;var Te=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},H=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ge(e))!ye.call(t,r)&&r!==n&&g(t,r,{get:()=>e[r],enumerable:!(s=fe(e,r))||s.enumerable});return t};var Ie=(t,e,n)=>(n=t!=null?he(xe(t)):{},H(e||!t||!t.__esModule?g(n,"default",{value:t,enumerable:!0}):n,t)),be=t=>H(g({},"__esModule",{value:!0}),t);var Me={};Te(Me,{PROD_DASHBOARD_URL:()=>oe,PROD_INGESTION_URL:()=>ie,withOptimize:()=>He});module.exports=be(Me);var ae=require("@opentelemetry/api"),se=require("@prisma/client/extension");function Re(t,e){let n;return async function(s,r,i){let p=new URL(s,t),c=new Headers({"Content-Type":"application/json",Authorization:`Bearer ${e}`});n&&c.set("prisma-optimize-jwt",n);let l=await fetch(p,{method:r,headers:c,body:JSON.stringify(i)});if(!l.ok){let R=await l.clone().text().catch(()=>"<unreadable>");console.error(`[optimize] HTTP ${l.status} ${l.statusText}: ${R}`)}let f=l.headers.get("prisma-optimize-jwt");return f&&(n=f),l}}function M(t,e){let n=Re(t,e);return{request:n,post:(s,r)=>n(s,"POST",r)}}var $=Ie(require("kleur"));var{bold:ve,underline:qe}=$.default;function B(t){let e="See your Optimize dashboard at:",n=e.length,s=`${qe(ve(t))}`,r=t.length,i=Math.max(n,r)+2;console.log("\u250C"+"\u2500".repeat(i)+"\u2510"),console.log("\u2502 "+e+" ".repeat(i-n-2)+" \u2502"),console.log("\u2502 "+s+" ".repeat(i-r-2)+" \u2502"),console.log("\u2514"+"\u2500".repeat(i)+"\u2518")}var N=require("@opentelemetry/api"),J=require("@opentelemetry/context-async-hooks"),G=require("@opentelemetry/instrumentation"),Z=require("@opentelemetry/resources"),K=require("@opentelemetry/sdk-trace-base"),b=require("@opentelemetry/semantic-conventions"),A=require("prisma-instrumentation-5-x"),W=require("prisma-instrumentation-6-x");async function L(t,e){e.length>0&&await t.post("/ingest",e)}async function V(t,e){return await(await t.post("/schema",e)).text()}function u(t){return t[0]*1e3+t[1]/1e6}var a=require("zod");var m=require("zod"),x=class{spans={};rootSpans={};waitSpans={};treeShape;collectedSpans;collectedRootSpans;sendTimeout;sendInterval;pendingSend;constructor(e){this.treeShape=e.treeShape,this.sendTimeout=e.sendTimeout,this.sendInterval=e.sendInterval,this.collectedSpans=e.collectedSpans,this.collectedRootSpans=e.collectedRootSpans,this.onEnd=Ce(()=>void this.forceFlush(),this.sendInterval)}onStart(e){let{parentSpanId:n,name:s}=e,{spanId:r}=e.spanContext();if(!this.collectedSpans.includes(s))return this.cleanSpan(this.spans[r]);this.spans[r]&&this.spans[r].kind==="future"?Object.assign(this.spans[r],{kind:"present",value:e}):this.spans[r]={spanId:r,kind:"present",children:[],value:e,retries:0},this.collectedRootSpans.includes(s)&&(this.rootSpans[r]={...this.spans[r],done:!1},this.waitSpans[r]=this.spans[r]),n!==void 0&&(this.spans[n]?this.spans[n].children.push(this.spans[r]):(this.spans[n]={spanId:n,kind:"future",children:[this.spans[r]],retries:0},this.waitSpans[n]=this.spans[n]))}cleanSpan(e){if(e===void 0)return;let n=e.spanId;for(let s of e.children)this.cleanSpan(s);delete this.spans[n],delete this.rootSpans[n],delete this.waitSpans[n],this.onClean(e)}async forceFlush(){await this.pendingSend;let e=Object.values(this.rootSpans).flatMap(n=>{if(n.done)return[];let s=this.treeShape.safeParse(n);return s.data?(n.done=!0,[{original:n,pruned:s.data}]):[]});e.length>0&&(this.pendingSend=this.onFlush(e).finally(()=>{e.forEach(({original:n})=>this.cleanSpan(n))}));for(let n of Object.values(this.waitSpans))++n.retries*this.sendInterval>this.sendTimeout&&this.cleanSpan(n)}async shutdown(){await this.forceFlush(),this.spans={},this.rootSpans={},this.waitSpans={}}onEnd(){}};function Ce(t,e){let n=!1;return()=>{n===!1&&(n=!0,setTimeout(()=>(n=!1)||t(),e))}}var o={ended:m.z.literal(!0),_spanContext:m.z.custom(),spanContext:m.z.custom(),startTime:m.z.custom(),endTime:m.z.custom(),attributes:m.z.custom()};var U=a.z.object({value:a.z.object({name:a.z.literal("prisma:engine:db_query"),...o})}),Pe=a.z.object({value:a.z.object({name:a.z.literal("prisma:engine:itx_execute_single"),...o}),children:S([U])}),y=a.z.object({value:a.z.object({name:a.z.union([a.z.literal("prisma:engine"),a.z.literal("prisma:engine:query")]),...o}),children:S([U])}),we=a.z.object({value:a.z.object({name:a.z.union([a.z.literal("prisma:engine"),a.z.literal("prisma:engine:query")]),...o}),children:S([Pe])}),T=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:connect"),...o})}),q=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:operation"),...o}),children:a.z.union([a.z.tuple([y]),a.z.tuple([T,y]),a.z.tuple([y,T])])}),C=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:operation"),...o}),children:S([we])}),Oe=a.z.object({value:a.z.object({name:a.z.union([a.z.literal("prisma:engine:start_transaction"),a.z.literal("prisma:engine:commit_transaction")]),...o})}),P=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:operation"),...o}),children:a.z.array(T)}),w=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:transaction"),...o}),children:S([Oe,C,T])}),O=a.z.object({value:a.z.object({name:a.z.literal("prisma:client:transaction"),...o}),children:S([P,y])}),Q=a.z.union([q,w,O]);function S(t){return a.z.array(a.z.any()).nonempty().superRefine((e,n)=>{t.every(r=>e.some(i=>r.safeParse(i).success))||n.addIssue({code:"custom",message:"Array does not contain all the required items"})})}var I=class extends x{requests={};errors={};schemaHash;resolvedSchemaHash;apiClient;schemaRequest;constructor(e){super({treeShape:Q,sendTimeout:e.sendTimeout,sendInterval:e.sendInterval,collectedSpans:["prisma:client:transaction","prisma:client:operation","prisma:client:connect","prisma:engine","prisma:engine:query","prisma:engine:db_query","prisma:engine:itx_execute_single","prisma:engine:start_transaction","prisma:engine:commit_transaction"],collectedRootSpans:["prisma:client:operation","prisma:client:transaction"]}),this.apiClient=e.apiClient,this.schemaRequest=e.schemaRequest}setRequest(e){this.requests[e.spanId]=e}setError(e){this.errors[e.spanId]=e}onClean({spanId:e}){delete this.requests[e],delete this.errors[e]}async onFlush(e){this.schemaHash??=V(this.apiClient,this.schemaRequest),this.resolvedSchemaHash??=await this.schemaHash;let n=e.flatMap(({pruned:s})=>Ee(s,this));await L(this.apiClient,n)}};function Ee(t,e){return w.safeParse(t).success?je(t,e):O.safeParse(t).success?Ae(t,e):q.safeParse(t).success?_e(t,e):[]}function je(t,e){let n=[],s=t.children.filter(r=>C.safeParse(r).success);for(let r of s){if(j({span:r,ip:e})===!1)continue;let i=Fe(r);n.push(d({ip:e,span:r,sql:i,connect:!1}))}if(n.length){let r=E(t);n.unshift(d({ip:e,span:t,sql:null,connect:r}))}return n}function Ae(t,e){let n=[],s=t.children.filter(i=>P.safeParse(i).success),r=!1;for(let i of s)j({span:i,ip:e})!==!1&&(r||=E(i),n.push(d({ip:e,span:i,sql:null,connect:!1})));return n.length&&n.unshift(d({ip:e,span:t,sql:null,connect:r})),n}function _e(t,e){let n=E(t),s=ze(t);return j({span:t,ip:e})===!1?[]:[d({ip:e,span:t,sql:s,connect:n})]}function d(t){let{span:e,sql:n,connect:s,ip:r}=t,i=e.value.spanContext().spanId,{value:p}=e;return{hash:r.resolvedSchemaHash,sql:n??null,connect:s??!1,error:r.errors[i]?.error??null,ts:u(p.startTime),model:r.requests[i]?.model??p.attributes.model??null,operation:r.requests[i]?.operation??p.attributes.method,args:r.requests[i]?.args??{},latency:u(p.endTime)-u(p.startTime)}}function D(t){return t.sort((n,s)=>u(n.value.startTime)-u(s.value.startTime)).reduce((n,s)=>{let r=s.value.attributes["db.statement"];return r??=s.value.attributes["db.query.text"],typeof r=="string"?`${n}${r}
2
+ `:n},"")}function ze(t){let{children:e}=t.children.find(({value:s})=>s.name==="prisma:engine"||s.name==="prisma:engine:query"),n=e.filter(({value:s})=>s.name==="prisma:engine:db_query");return D(n)}function Fe(t){let{children:e}=t.children.find(({value:r})=>r.name==="prisma:engine"||r.name==="prisma:engine:query"),s=e.filter(({value:r})=>r.name==="prisma:engine:itx_execute_single").flatMap(({children:r})=>r.filter(({value:i})=>i.name==="prisma:engine:db_query"));return D(s)}function E(t){let{value:e}=t.children.find(({value:n})=>n.name==="prisma:client:connect")??{};return e?u(e.endTime)-u(e.startTime):!1}function j(t){let{span:e,ip:n}=t;return!!n.requests[e.value.spanContext().spanId]}var h,ke={"5-x":A.PrismaInstrumentation,"6-x":W.PrismaInstrumentation};function X(t){if(h)return h;let e=new J.AsyncHooksContextManager().enable();N.context.setGlobalContextManager(e);let n=new K.BasicTracerProvider({resource:new Z.Resource({[b.SEMRESATTRS_SERVICE_NAME]:"extension-optimize",[b.SEMRESATTRS_SERVICE_VERSION]:"0.0.0"})});h=new I(t),n.addSpanProcessor(h);let[s="5",r="0"]=t.clientVersion.split("."),i=ke[`${s}-x`];return(s==="6"&&r==="0"||i===void 0)&&(i=A.PrismaInstrumentation),(0,G.registerInstrumentations)({tracerProvider:n,instrumentations:[new i]}),n.register(),h}function Y(t){let e=Reflect.get(t,"_clientVersion");return Number(e.split(".")[0]??"5")<6?t._previewFeatures?.includes("tracing"):!0}function ee(t){return t._engineConfig.inlineSchema}function te(t){if(t instanceof Error)return t.stack??t.message;switch(typeof t){case"undefined":return"undefined";case"object":{let e;return t!==null&&typeof t.toString=="function"&&(e=t.toString()),typeof e=="string"&&e!=="[object Object]"?e:JSON.stringify(t)}default:return String(t)}}var ne=require("@prisma/client/extension"),re=ne.Prisma.defineExtension(t=>t.$extends({}));var ie="https://optimize-ingestion.datacdn.workers.dev/",oe="https://optimize.prisma.io";function He({enable:t=!0,ingestionUrl:e=ie,dashboardUrl:n=oe,sendInterval:s=500,sendTimeout:r=1e4,showNotification:i=!0,apiKey:p}){return t?(i&&B(n),se.Prisma.defineExtension(c=>{let l=ee(c),f=Reflect.get(c,"_clientVersion"),R=Reflect.get(c,"_activeProvider"),_=Reflect.get(c,"_accelerateEngineConfig"),{protocol:pe}=new URL(_.accelerateUtils.resolveDatasourceUrl(_)),ce={schema:l,provider:R,protocol:pe},le=M(e,p),z=X({schemaRequest:ce,apiClient:le,sendInterval:s,sendTimeout:r,clientVersion:f});if(!Y(c))throw new Error('Please enable the "tracing" preview feature and regenerate the client.');return c.$extends({query:{async $allOperations({query:ue,model:me,operation:Se,args:F}){let v=ae.trace.getActiveSpan()?.spanContext().spanId;if(!v)throw new Error("prisma:client:operation span is expected to be entered in the client extension when tracing is enabled");z.setRequest({spanId:v,model:me,operation:Se,args:F});try{return await ue(F)}catch(k){let de=te(k);throw z.setError({spanId:v,error:de}),k}}}})})):re}0&&(module.exports={PROD_DASHBOARD_URL,PROD_INGESTION_URL,withOptimize});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/extension-optimize",
3
- "version": "0.0.0-dev.202412311800",
3
+ "version": "0.0.0-dev.202412311819",
4
4
  "sideEffects": false,
5
5
  "description": "",
6
6
  "main": "./dist/index.js",
@@ -26,7 +26,7 @@
26
26
  "hono": "4.4.6",
27
27
  "tsup": "8.0.2",
28
28
  "vitest": "1.4.0",
29
- "common": "0.0.0-dev.202412311800"
29
+ "common": "0.0.0-dev.202412311819"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@prisma/client": "5.x || 6.x"