veloce-ts 0.4.10 → 0.4.11

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.
@@ -75,7 +75,7 @@ and limitations under the License.
75
75
  };
76
76
  </script>
77
77
  </body>
78
- </html>`}}class u${manager;id;_ws;constructor($,J,Q){this.manager=J;this._ws=$,this.id=Q||crypto.randomUUID()}send($){if(!this._ws||this._ws.readyState!==WebSocket.OPEN)return;let J=typeof $==="string"?$:JSON.stringify($);this._ws.send(J)}broadcast($,J){this.manager.broadcast($,J)}join($){this.manager.joinRoom(this.id,$)}leave($){this.manager.leaveRoom(this.id,$)}close($,J){if(this._ws&&this._ws.readyState===WebSocket.OPEN)this._ws.close($,J)}get native(){return this._ws}get isOpen(){return this._ws!==null&&this._ws.readyState===WebSocket.OPEN}_markClosed(){this._ws=null}}class m${connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection($,J){let Q=new u$($,this);if(this.connections.set(Q.id,Q),J.onConnect)this.executeHandler(J,J.onConnect,Q);return $.addEventListener("message",async(X)=>{await this.handleMessage(X,Q,J)}),$.addEventListener("close",()=>{this.handleDisconnect(Q,J)}),$.addEventListener("error",(X)=>{console.error(`WebSocket error for connection ${Q.id}:`,X)}),Q}async handleMessage($,J,Q){if(!Q.onMessage)return;let X;try{if(X=typeof $.data==="string"?JSON.parse($.data):$.data,Q.messageSchema)X=await Q.messageSchema.parseAsync(X);await this.executeHandler(Q,Q.onMessage,J,X)}catch(Y){J.send({error:"Invalid message format",details:Y instanceof Error?Y.message:"Unknown error"})}}handleDisconnect($,J){if(Array.from(this.connectionsByRoom.entries()).forEach(([Q,X])=>{if(X.delete($),X.size===0)this.connectionsByRoom.delete(Q)}),Array.from(this.rooms.entries()).forEach(([Q,X])=>{if(X.delete($.id),X.size===0)this.rooms.delete(Q)}),this.connections.delete($.id),$._markClosed(),J.onDisconnect)this.executeHandler(J,J.onDisconnect,$)}async executeHandler($,J,Q,X){try{let Y=$.instance??new $.target,W=Y[J];if(typeof W==="function")if(X!==void 0)await W.call(Y,Q,X);else await W.call(Y,Q)}catch(Y){console.error(`Error executing WebSocket handler ${J}:`,Y)}}broadcast($,J){let Q=J?this.getConnectionsInRoom(J):Array.from(this.connections.values()),X=typeof $==="string"?$:JSON.stringify($);for(let Y of Q)if(Y.isOpen)Y.send(X)}joinRoom($,J){let Q=this.connections.get($);if(!Q)return;if(!this.rooms.has(J))this.rooms.set(J,new Set);if(this.rooms.get(J).add($),!this.connectionsByRoom.has(J))this.connectionsByRoom.set(J,new Set);this.connectionsByRoom.get(J).add(Q)}leaveRoom($,J){let Q=this.connections.get($);if(!Q)return;let X=this.rooms.get(J);if(X){if(X.delete($),X.size===0)this.rooms.delete(J)}let Y=this.connectionsByRoom.get(J);if(Y){if(Y.delete(Q),Y.size===0)this.connectionsByRoom.delete(J)}}getConnectionsInRoom($){let J=this.connectionsByRoom.get($);return J?Array.from(J):[]}getConnection($){return this.connections.get($)}getAllConnections(){return Array.from(this.connections.values())}getConnectionCount(){return this.connections.size}getRooms(){return Array.from(this.rooms.keys())}getRoomSize($){return this.rooms.get($)?.size||0}}class l${name="websocket";version="1.0.0";manager;constructor(){this.manager=new m$}async install($){let Q=$.getMetadata().getWebSockets(),X=$.getContainer();for(let Y of Q)Y.instance=await X.resolve(Y.target),this.registerWebSocket($,Y)}registerWebSocket($,J){$.getHono().get(J.path,async(X)=>{if(X.req.header("upgrade")?.toLowerCase()!=="websocket")return X.text("Expected WebSocket upgrade",426);return this.handleUpgrade(X,J)})}handleUpgrade($,J){if(typeof Bun<"u")return this.handleBunUpgrade($,J);else if(typeof globalThis.Deno<"u")return this.handleDenoUpgrade($,J);else return this.handleNodeUpgrade($,J)}handleBunUpgrade($,J){let Q=$.env;if(!Q?.upgrade)return $.text("WebSocket upgrade not supported in this environment",501);if(!Q.upgrade($.req.raw,{data:{manager:this.manager,metadata:J}}))return $.text("WebSocket upgrade failed",500);return}handleDenoUpgrade($,J){let Q=globalThis.Deno,{socket:X,response:Y}=Q.upgradeWebSocket($.req.raw);return X.onopen=()=>{this.manager.handleConnection(X,J)},Y}handleNodeUpgrade($,J){return $.text("WebSocket support requires Bun or Deno runtime",501)}getManager(){return this.manager}broadcast($,J){this.manager.broadcast($,J)}getConnectionCount(){return this.manager.getConnectionCount()}getRooms(){return this.manager.getRooms()}}var _M=N1(Q$(),1),S9=Symbol("graphql:resolver"),c$=Symbol("graphql:field"),x2=Symbol("graphql:args");function ZQ($){return(J)=>{let Q={target:J,name:$||J.name};Reflect.defineMetadata(S9,Q,J)}}function SQ($,J){return C9("query",$,J)}function CQ($,J){return C9("mutation",$,J)}function MQ($,J){return C9("subscription",$,J)}function C9($,J,Q){return(X,Y)=>{let W={target:X.constructor,propertyKey:Y,type:$,name:J||Y,description:Q?.description,deprecated:Q?.deprecated,deprecationReason:Q?.deprecationReason},H=Reflect.getMetadata(c$,X.constructor)||[];H.push(W),Reflect.defineMetadata(c$,H,X.constructor),Reflect.defineMetadata(c$,W,X,Y)}}function PQ($,J,Q){return(X,Y,W)=>{if(!Y)return;let H=Reflect.getMetadata(x2,X,Y)||[],G={index:W,name:$,schema:J,description:Q?.description,defaultValue:Q?.defaultValue,nullable:Q?.nullable};H[W]=G,Reflect.defineMetadata(x2,H,X,Y)}}function KQ(){return($,J,Q)=>{if(!J)return;let X=Reflect.getMetadata(x2,$,J)||[],Y={index:Q,name:"__context__",nullable:!1};X[Q]=Y,Reflect.defineMetadata(x2,X,$,J)}}function IQ($){return Reflect.getMetadata(S9,$)}function TQ($){return Reflect.getMetadata(c$,$)||[]}function bQ($,J){return Reflect.getMetadata(c$,$,J)}function v2($,J){return Reflect.getMetadata(x2,$,J)||[]}function fQ($){return Reflect.hasMetadata(S9,$)}function kQ($,J){return Reflect.hasMetadata(c$,$,J)}function J1($){let J=$._def.typeName;if(J==="ZodString")return"String";if(J==="ZodNumber"){if($._def.checks?.some((X)=>X.kind==="int"))return"Int";return"Float"}if(J==="ZodBoolean")return"Boolean";if(J==="ZodArray")return`[${J1($._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return J1($._def.innerType);if(J==="ZodNullable")return J1($._def.innerType);if(J==="ZodDefault")return J1($._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let Q=$._def.options;if(Q&&Q.length>0)return J1(Q[0])}if(J==="ZodLiteral"){let Q=$._def.value;if(typeof Q==="string")return"String";if(typeof Q==="number")return"Float";if(typeof Q==="boolean")return"Boolean"}if(J==="ZodDate")return"String";return"String"}function X$($){let J=$._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return X$($._def.innerType);return!1}function o6($){let J=$._def.typeName;if(J==="ZodDefault")return $._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let Q=$._def.innerType;if(Q)return o6(Q)}return}function xQ($,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let X=J._def.shape(),Y=[];for(let[W,H]of Object.entries(X)){let G=H,V=J1(G),q=X$(G)?V:`${V}!`;Y.push(` ${W}: ${q}`)}return`type ${$} {
78
+ </html>`}}class u${manager;id;_ws;constructor($,J,Q){this.manager=J;this._ws=$,this.id=Q||crypto.randomUUID()}send($){if(!this._ws||this._ws.readyState!==WebSocket.OPEN)return;let J=typeof $==="string"?$:JSON.stringify($);this._ws.send(J)}broadcast($,J){this.manager.broadcast($,J)}join($){this.manager.joinRoom(this.id,$)}leave($){this.manager.leaveRoom(this.id,$)}close($,J){if(this._ws&&this._ws.readyState===WebSocket.OPEN)this._ws.close($,J)}get native(){return this._ws}get isOpen(){return this._ws!==null&&this._ws.readyState===WebSocket.OPEN}_markClosed(){this._ws=null}}class m${connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection($,J){let Q=new u$($,this);if(this.connections.set(Q.id,Q),J.onConnect)this.executeHandler(J,J.onConnect,Q);return $.addEventListener("message",async(X)=>{await this.handleMessage(X,Q,J)}),$.addEventListener("close",()=>{this.handleDisconnect(Q,J)}),$.addEventListener("error",(X)=>{console.error(`WebSocket error for connection ${Q.id}:`,X)}),Q}async handleMessage($,J,Q){if(!Q.onMessage)return;let X;try{if(X=typeof $.data==="string"?JSON.parse($.data):$.data,Q.messageSchema)X=await Q.messageSchema.parseAsync(X);await this.executeHandler(Q,Q.onMessage,J,X)}catch(Y){J.send({error:"Invalid message format",details:Y instanceof Error?Y.message:"Unknown error"})}}handleDisconnect($,J){if(Array.from(this.connectionsByRoom.entries()).forEach(([Q,X])=>{if(X.delete($),X.size===0)this.connectionsByRoom.delete(Q)}),Array.from(this.rooms.entries()).forEach(([Q,X])=>{if(X.delete($.id),X.size===0)this.rooms.delete(Q)}),this.connections.delete($.id),$._markClosed(),J.onDisconnect)this.executeHandler(J,J.onDisconnect,$)}async executeHandler($,J,Q,X){try{let Y=$.instance??new $.target,W=Y[J];if(typeof W==="function")if(X!==void 0)await W.call(Y,Q,X);else await W.call(Y,Q)}catch(Y){console.error(`Error executing WebSocket handler ${J}:`,Y)}}broadcast($,J){let Q=J?this.getConnectionsInRoom(J):Array.from(this.connections.values()),X=typeof $==="string"?$:JSON.stringify($);for(let Y of Q)if(Y.isOpen)Y.send(X)}joinRoom($,J){let Q=this.connections.get($);if(!Q)return;if(!this.rooms.has(J))this.rooms.set(J,new Set);if(this.rooms.get(J).add($),!this.connectionsByRoom.has(J))this.connectionsByRoom.set(J,new Set);this.connectionsByRoom.get(J).add(Q)}leaveRoom($,J){let Q=this.connections.get($);if(!Q)return;let X=this.rooms.get(J);if(X){if(X.delete($),X.size===0)this.rooms.delete(J)}let Y=this.connectionsByRoom.get(J);if(Y){if(Y.delete(Q),Y.size===0)this.connectionsByRoom.delete(J)}}getConnectionsInRoom($){let J=this.connectionsByRoom.get($);return J?Array.from(J):[]}getConnection($){return this.connections.get($)}getAllConnections(){return Array.from(this.connections.values())}getConnectionCount(){return this.connections.size}getRooms(){return Array.from(this.rooms.keys())}getRoomSize($){return this.rooms.get($)?.size||0}}class l${name="websocket";version="1.0.0";manager;constructor(){this.manager=new m$}async install($){let Q=$.getMetadata().getWebSockets(),X=$.getContainer();for(let Y of Q)Y.instance=await X.resolve(Y.target),this.registerWebSocket($,Y)}registerWebSocket($,J){$.getHono().get(J.path,async(X)=>{if(X.req.header("upgrade")?.toLowerCase()!=="websocket")return X.text("Expected WebSocket upgrade",426);return this.handleUpgrade(X,J)})}handleUpgrade($,J){if(typeof Bun<"u")return this.handleBunUpgrade($,J);else if(typeof globalThis.Deno<"u")return this.handleDenoUpgrade($,J);else return this.handleNodeUpgrade($,J)}handleBunUpgrade($,J){let Q=$.env;if(!Q?.upgrade)return $.text("WebSocket upgrade not supported in this environment",501);if(!Q.upgrade($.req.raw,{data:{manager:this.manager,metadata:J,requestUrl:$.req.url}}))return $.text("WebSocket upgrade failed",500);return}handleDenoUpgrade($,J){let Q=globalThis.Deno,{socket:X,response:Y}=Q.upgradeWebSocket($.req.raw);return X.onopen=()=>{this.manager.handleConnection(X,J)},Y}handleNodeUpgrade($,J){return $.text("WebSocket support requires Bun or Deno runtime",501)}getManager(){return this.manager}broadcast($,J){this.manager.broadcast($,J)}getConnectionCount(){return this.manager.getConnectionCount()}getRooms(){return this.manager.getRooms()}}var _M=N1(Q$(),1),S9=Symbol("graphql:resolver"),c$=Symbol("graphql:field"),x2=Symbol("graphql:args");function ZQ($){return(J)=>{let Q={target:J,name:$||J.name};Reflect.defineMetadata(S9,Q,J)}}function SQ($,J){return C9("query",$,J)}function CQ($,J){return C9("mutation",$,J)}function MQ($,J){return C9("subscription",$,J)}function C9($,J,Q){return(X,Y)=>{let W={target:X.constructor,propertyKey:Y,type:$,name:J||Y,description:Q?.description,deprecated:Q?.deprecated,deprecationReason:Q?.deprecationReason},H=Reflect.getMetadata(c$,X.constructor)||[];H.push(W),Reflect.defineMetadata(c$,H,X.constructor),Reflect.defineMetadata(c$,W,X,Y)}}function PQ($,J,Q){return(X,Y,W)=>{if(!Y)return;let H=Reflect.getMetadata(x2,X,Y)||[],G={index:W,name:$,schema:J,description:Q?.description,defaultValue:Q?.defaultValue,nullable:Q?.nullable};H[W]=G,Reflect.defineMetadata(x2,H,X,Y)}}function KQ(){return($,J,Q)=>{if(!J)return;let X=Reflect.getMetadata(x2,$,J)||[],Y={index:Q,name:"__context__",nullable:!1};X[Q]=Y,Reflect.defineMetadata(x2,X,$,J)}}function IQ($){return Reflect.getMetadata(S9,$)}function TQ($){return Reflect.getMetadata(c$,$)||[]}function bQ($,J){return Reflect.getMetadata(c$,$,J)}function v2($,J){return Reflect.getMetadata(x2,$,J)||[]}function fQ($){return Reflect.hasMetadata(S9,$)}function kQ($,J){return Reflect.hasMetadata(c$,$,J)}function J1($){let J=$._def.typeName;if(J==="ZodString")return"String";if(J==="ZodNumber"){if($._def.checks?.some((X)=>X.kind==="int"))return"Int";return"Float"}if(J==="ZodBoolean")return"Boolean";if(J==="ZodArray")return`[${J1($._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return J1($._def.innerType);if(J==="ZodNullable")return J1($._def.innerType);if(J==="ZodDefault")return J1($._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let Q=$._def.options;if(Q&&Q.length>0)return J1(Q[0])}if(J==="ZodLiteral"){let Q=$._def.value;if(typeof Q==="string")return"String";if(typeof Q==="number")return"Float";if(typeof Q==="boolean")return"Boolean"}if(J==="ZodDate")return"String";return"String"}function X$($){let J=$._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return X$($._def.innerType);return!1}function o6($){let J=$._def.typeName;if(J==="ZodDefault")return $._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let Q=$._def.innerType;if(Q)return o6(Q)}return}function xQ($,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let X=J._def.shape(),Y=[];for(let[W,H]of Object.entries(X)){let G=H,V=J1(G),q=X$(G)?V:`${V}!`;Y.push(` ${W}: ${q}`)}return`type ${$} {
79
79
  ${Y.join(`
80
80
  `)}
81
81
  }`}function vQ($,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let X=J._def.shape(),Y=[];for(let[W,H]of Object.entries(X)){let G=H,V=J1(G),U=X$(G),q=o6(G),_=U?V:`${V}!`;if(q!==void 0){let F=JSON.stringify(q);_+=` = ${F}`}Y.push(` ${W}: ${_}`)}return`input ${$} {
@@ -167,4 +167,4 @@ Body: ${Y.text}`);let W={};if($.username)W.username=$.username;if($.email)W.emai
167
167
 
168
168
  `}U2.default.writeFileSync(this.config.outputPath,J)}zodSchemaToString($){return"z.object({})"}registerRepositoryFactory($){let J=$.getContainer();class Q{}class X{}J.register(Q,{scope:"singleton",factory:()=>({create:(Y,W)=>{let H=this.client[Y.toLowerCase()];if(!H)throw Error(`Model ${Y} not found in Prisma client`);return new P1({client:this.client,delegate:H,model:Y,zodSchema:W})}})}),J.register(X,{scope:"singleton",factory:()=>this.transactionManager})}registerShutdownHook($){process.on("SIGINT",async()=>{console.log("\uD83D\uDD0C Disconnecting from database..."),await this.client.$disconnect(),process.exit(0)}),process.on("SIGTERM",async()=>{console.log("\uD83D\uDD0C Disconnecting from database..."),await this.client.$disconnect(),process.exit(0)})}getModel($){return this.models.get($)}getModels(){return this.models}createRepository($,J){let Q=this.client[$.toLowerCase()];if(!Q)throw Error(`Model ${$} not found in Prisma client`);return new P1({client:this.client,delegate:Q,model:$,zodSchema:J})}getClient(){return this.client}getTransactionManager(){return this.transactionManager}}function EV($,J){return new J8($,J)}c0();class z6 extends Y1{dataSource;activeQueryRunners=new Map;constructor($){super();this.dataSource=$}async begin($){let J=this.createTransactionContext($),Q=this.dataSource.createQueryRunner();return await Q.connect(),await Q.startTransaction(),this.activeQueryRunners.set(J.id,Q),J}async commit($){let J=this.activeQueryRunners.get($.id);if(!J)throw Error(`Transaction ${$.id} not found`);try{if($.rollbackOnly)await J.rollbackTransaction();else await J.commitTransaction()}finally{await J.release(),this.activeQueryRunners.delete($.id),this.removeTransactionContext($)}}async rollback($){let J=this.activeQueryRunners.get($.id);if(!J)throw Error(`Transaction ${$.id} not found`);try{if(J.isTransactionActive)await J.rollbackTransaction()}finally{await J.release(),this.activeQueryRunners.delete($.id),this.removeTransactionContext($)}}async savepoint($,J){let Q=this.activeQueryRunners.get($.id);if(!Q)throw Error(`Transaction ${$.id} not found`);await Q.manager.query(`SAVEPOINT ${J}`),$.savepoints.push(J)}async rollbackToSavepoint($,J){let Q=this.activeQueryRunners.get($.id);if(!Q)throw Error(`Transaction ${$.id} not found`);let X=$.savepoints.indexOf(J);if(X===-1)throw Error(`Savepoint ${J} not found`);await Q.manager.query(`ROLLBACK TO SAVEPOINT ${J}`),$.savepoints=$.savepoints.slice(0,X+1)}async executeInTransaction($,J){return await this.dataSource.transaction(async(Q)=>{return await $(Q)})}async handleTransactional($,J,Q,X,Y){let W=Reflect.getMetadata("transactional",$,J);if(!W)return X.apply($,Q);let H=Y?this.getRequestTransaction(Y):null;if(H)return this.handleNestedTransaction(H,$,Q,X);return await this.executeInTransaction(async(G)=>{let V=await this.begin(W);if(Y)this.setRequestTransaction(Y,V);try{let U=await this.injectTransactionManager($,Q,X,G);if(V.rollbackOnly)throw Error("Transaction marked for rollback");return U}catch(U){throw this.setRollbackOnly(V),U}finally{if(Y)this.clearRequestTransaction(Y);this.removeTransactionContext(V)}},W)}async handleNestedTransaction($,J,Q,X){let Y=`sp_${Date.now()}_${Math.random().toString(36).substring(2,11)}`;try{return await this.savepoint($,Y),await X.apply(J,Q)}catch(W){throw await this.rollbackToSavepoint($,Y),W}}async injectTransactionManager($,J,Q,X){if($.repositories){let Y={...$.repositories};try{for(let[W,H]of Object.entries($.repositories))if(H&&typeof H==="object"&&"dataSource"in H){let G=H.entity,V=X.getRepository?X.getRepository(G):H.repository;$.repositories[W]=new H.constructor({dataSource:H.dataSource,repository:V,entity:G,zodSchema:H.schema})}return await Q.apply($,J)}finally{$.repositories=Y}}return await Q.apply($,J)}createTransactionalRepository($,J){let Q=new $(J);if(Q&&typeof Q==="object"&&"withTransaction"in Q){let X=Q.withTransaction;Q.withTransaction=async(Y)=>{return await this.executeInTransaction(async(W)=>{let H=W.getRepository?W.getRepository(J.entity):J.repository,G=new $({...J,repository:H});return await Y(G)})}}return Q}getQueryRunner($){return this.activeQueryRunners.get($.id)}isTransactionActive($){let J=this.activeQueryRunners.get($.id);return J?J.isTransactionActive:!1}getDataSource(){return this.dataSource}}c0();class Q8{name="typeorm";version="1.0.0";dataSource;config;transactionManager;entities=new Map;constructor($,J){this.dataSource=$,this.config={synchronize:!1,logging:!1,migrationsRun:!1,dropSchema:!1,cache:!1,...J},this.transactionManager=new z6($)}async install($){if(!this.dataSource.isInitialized)await this.dataSource.initialize();l0(this.transactionManager),this.extractEntityMetadata(),this.registerRepositoryFactory($),this.registerMigrationUtilities($),this.registerShutdownHook($),console.log("✅ TypeORM plugin installed successfully")}extractEntityMetadata(){try{let $=this.dataSource.entityMetadatas||this.dataSource.manager.connection?.entityMetadatas||[];for(let J of $){let Q={name:J.name,tableName:J.tableName,columns:J.columns?.map((X)=>({propertyName:X.propertyName,type:X.type,isPrimary:X.isPrimary,isGenerated:X.isGenerated,isNullable:X.isNullable,isUnique:X.isUnique,length:X.length,default:X.default}))||[],relations:J.relations?.map((X)=>({propertyName:X.propertyName,type:X.relationType,target:X.inverseEntityMetadata?.name||"unknown",inverseSide:X.inverseSidePropertyPath,joinColumn:X.joinColumns?.[0]?.databaseName,joinTable:X.joinTableName}))||[]};this.entities.set(J.name,Q)}console.log(`\uD83D\uDCDD Extracted metadata for ${this.entities.size} entities`)}catch($){console.error("❌ Failed to extract entity metadata:",$)}}registerRepositoryFactory($){let J=$.getContainer();class Q{}class X{}class Y{}class W{}J.register(Q,{scope:"singleton",factory:()=>({create:(H,G)=>{let V=this.dataSource.getRepository(H);return new K1({dataSource:this.dataSource,repository:V,entity:H,zodSchema:G})}})}),J.register(X,{scope:"singleton",factory:()=>this.dataSource}),J.register(Y,{scope:"request",factory:()=>this.dataSource.manager}),J.register(W,{scope:"singleton",factory:()=>this.transactionManager})}registerMigrationUtilities($){let J=$.getContainer();class Q{}class X{}J.register(Q,{scope:"singleton",factory:()=>({run:async()=>{if(this.config.migrationsRun&&this.dataSource.runMigrations)await this.dataSource.runMigrations(),console.log("✅ Migrations executed successfully")},revert:async()=>{if(this.dataSource.undoLastMigration)await this.dataSource.undoLastMigration(),console.log("✅ Last migration reverted successfully")},generate:async(Y)=>{console.log(`\uD83D\uDCDD Generate migration: ${Y}`)}})}),J.register(X,{scope:"singleton",factory:()=>({seed:async(Y)=>{for(let W of Y)if(typeof W.run==="function")await W.run(this.dataSource);console.log("✅ Database seeded successfully")}})})}registerShutdownHook($){process.on("SIGINT",async()=>{if(console.log("\uD83D\uDD0C Closing database connection..."),this.dataSource.isInitialized)await this.dataSource.destroy();process.exit(0)}),process.on("SIGTERM",async()=>{if(console.log("\uD83D\uDD0C Closing database connection..."),this.dataSource.isInitialized)await this.dataSource.destroy();process.exit(0)})}getEntity($){return this.entities.get($)}getEntities(){return this.entities}createRepository($,J){let Q=this.dataSource.getRepository($);return new K1({dataSource:this.dataSource,repository:Q,entity:$,zodSchema:J})}getDataSource(){return this.dataSource}getTransactionManager(){return this.transactionManager}async runMigrations(){if(this.dataSource.runMigrations)await this.dataSource.runMigrations(),console.log("✅ Migrations executed successfully");else console.warn("⚠️ Migration support not available")}async revertMigration(){if(this.dataSource.undoLastMigration)await this.dataSource.undoLastMigration(),console.log("✅ Last migration reverted successfully");else console.warn("⚠️ Migration revert not available")}async synchronize(){if(this.config.synchronize&&this.dataSource.synchronize)await this.dataSource.synchronize(),console.log("✅ Database schema synchronized");else console.warn("⚠️ Schema synchronization is disabled or not available")}async dropSchema(){if(this.config.dropSchema&&this.dataSource.dropDatabase)await this.dataSource.dropDatabase(),console.log("✅ Database schema dropped");else console.warn("⚠️ Schema dropping is disabled or not available")}}function LV($,J){return new Q8($,J)}class U7{}var pf=N1(Q$(),1);function OV($){return(J)=>{let Q={name:$?.name||J.name,tableName:$?.tableName||J.name.toLowerCase(),schema:$?.schema,database:$?.database,synchronize:$?.synchronize};Reflect.defineMetadata("typeorm:entity",Q,J)}}c0();class w6 extends Y1{database;drizzleTransactions=new Map;constructor($){super();this.database=$}async begin($){let J=this.createTransactionContext($);return this.drizzleTransactions.set(J.id,{options:$,startTime:J.startTime}),J}async commit($){this.drizzleTransactions.delete($.id),this.removeTransactionContext($)}async rollback($){this.drizzleTransactions.delete($.id),this.removeTransactionContext($)}async savepoint($,J){$.savepoints.push(J);let Q=this.drizzleTransactions.get($.id);if(Q)Q.savepoints=Q.savepoints||[],Q.savepoints.push(J)}async rollbackToSavepoint($,J){let Q=$.savepoints.indexOf(J);if(Q===-1)throw Error(`Savepoint ${J} not found`);$.savepoints=$.savepoints.slice(0,Q+1);let X=this.drizzleTransactions.get($.id);if(X&&X.savepoints)X.savepoints=X.savepoints.slice(0,Q+1)}async executeInTransaction($,J){return await this.database.transaction(async(Q)=>{return await $(Q)})}async handleTransactional($,J,Q,X,Y){let W=Reflect.getMetadata("transactional",$,J);if(!W)return X.apply($,Q);if(Y?this.getRequestTransaction(Y):null)return X.apply($,Q);return await this.executeInTransaction(async(G)=>{let V=await this.begin(W);if(Y)this.setRequestTransaction(Y,V);try{let U=await this.injectTransactionDatabase($,Q,X,G);if(V.rollbackOnly)throw Error("Transaction marked for rollback");return U}catch(U){throw this.setRollbackOnly(V),U}finally{if(Y)this.clearRequestTransaction(Y);await this.commit(V)}},W)}async injectTransactionDatabase($,J,Q,X){if($.repositories){let Y={...$.repositories};try{for(let[W,H]of Object.entries($.repositories))if(H&&typeof H==="object"&&"database"in H){let{table:G,schema:V}=H;$.repositories[W]=new H.constructor({database:X,table:G,zodSchema:V})}return await Q.apply($,J)}finally{$.repositories=Y}}return await Q.apply($,J)}createTransactionalRepository($,J){let Q=new $(J);if(Q&&typeof Q==="object"&&"withTransaction"in Q){let X=Q.withTransaction;Q.withTransaction=async(Y)=>{return await this.executeInTransaction(async(W)=>{let H=new $({...J,database:W});return await Y(H)})}}return Q}async batch($){return await this.executeInTransaction(async(J)=>{let Q=[];for(let X of $){let Y=await X();Q.push(Y)}return Q})}async executeWithRetry($,J={}){let{maxRetries:Q=3,retryDelay:X=1000,retryCondition:Y=(H)=>H.code==="SERIALIZATION_FAILURE"||H.code==="DEADLOCK_DETECTED"}=J,W;for(let H=0;H<=Q;H++)try{return await this.executeInTransaction($)}catch(G){if(W=G,H===Q||!Y(G))throw G;await new Promise((V)=>setTimeout(V,X*Math.pow(2,H)))}throw W}getDatabase(){return this.database}isInTransaction(){return this.drizzleTransactions.size>0}getActiveTransactionCount(){return this.drizzleTransactions.size}}c0();class X8{tableSchemas=new Map;convertTableToZod($){let J=$._.name;if(this.tableSchemas.has(J))return this.tableSchemas.get(J);let Q={};for(let[Y,W]of Object.entries($._.columns))Q[Y]=this.convertColumnToZod(W);let X=N.object(Q);return this.tableSchemas.set(J,X),X}convertColumnToZod($){let J=this.getBaseZodSchema($);if(!$._.notNull)J=J.nullable();if($._.hasDefault||!$._.notNull)J=J.optional();return J}getBaseZodSchema($){let J=$._.dataType.toLowerCase(),Q=$._.columnType.toLowerCase();if($._.enumValues&&$._.enumValues.length>0)return N.enum($._.enumValues);switch(Q){case"serial":case"bigserial":return N.number().int().positive();case"boolean":return N.boolean();case"date":return N.date();case"timestamp":case"timestamptz":return N.date();case"json":case"jsonb":return N.record(N.any());case"uuid":return N.string().uuid();case"text":case"varchar":case"char":return N.string();case"integer":case"int":case"int4":return N.number().int();case"bigint":case"int8":return N.bigint();case"smallint":case"int2":return N.number().int().min(-32768).max(32767);case"real":case"float4":return N.number();case"double precision":case"float8":return N.number();case"decimal":case"numeric":return N.number();case"bytea":return N.instanceof(Buffer);default:return this.getBaseZodSchemaByDataType(J)}}getBaseZodSchemaByDataType($){switch($){case"string":case"text":return N.string();case"number":case"integer":return N.number();case"boolean":return N.boolean();case"date":return N.date();case"json":return N.record(N.any());case"buffer":return N.instanceof(Buffer);case"bigint":return N.bigint();default:return N.string()}}generateCreateSchema($){let J={};for(let[Q,X]of Object.entries($._.columns)){if(X._.isPrimaryKey&&X._.hasDefault)continue;if(X._.columnType.includes("serial"))continue;J[Q]=this.convertColumnToZod(X)}return N.object(J)}generateUpdateSchema($){let J={};for(let[Q,X]of Object.entries($._.columns)){if(X._.isPrimaryKey)continue;let Y=this.convertColumnToZod(X);if(!Y.isOptional())Y=Y.optional();J[Q]=Y}return N.object(J)}extractTableMetadata($){let J=[];for(let[Q,X]of Object.entries($._.columns))J.push({name:Q,dataType:X._.dataType,isPrimaryKey:X._.isPrimaryKey,isNotNull:X._.notNull,hasDefault:X._.hasDefault,isUnique:X._.isUnique,isAutoIncrement:X._.columnType.includes("serial"),enumValues:X._.enumValues});return{name:$._.name,schema:$._.schema,columns:J,relations:[],zodSchema:this.convertTableToZod($)}}generateAllSchemas($){return{base:this.convertTableToZod($),create:this.generateCreateSchema($),update:this.generateUpdateSchema($)}}clearCache(){this.tableSchemas.clear()}getCachedSchema($){return this.tableSchemas.get($)}}class q7{name="drizzle";version="1.0.0";database;config;transactionManager;schemaConverter;tables=new Map;tableMetadata=new Map;logger=o1({component:"DrizzlePlugin"});constructor($,J){this.database=$,this.config={logger:!1,mode:"default",...J},this.transactionManager=new w6($),this.schemaConverter=new X8}async install($){try{if(this.logger.info("Installing Drizzle ORM plugin..."),l0(this.transactionManager),this.logger.debug("Global transaction manager configured"),this.config.schema)this.registerSchema(this.config.schema);this.registerRepositoryFactory($),this.registerDatabaseUtilities($),this.logger.info("✅ Drizzle plugin installed successfully")}catch(J){let Q=J instanceof Error?J:Error(String(J));throw this.logger.error("Failed to install Drizzle plugin",Q),Error(`Drizzle plugin installation failed: ${Q.message}`)}}registerSchema($){let J=0,Q=0;for(let[X,Y]of Object.entries($))if(this.isValidDrizzleTable(Y))try{this.tables.set(X,Y);let W=this.schemaConverter.extractTableMetadata(Y);this.tableMetadata.set(X,W),J++,this.logger.debug(`Registered table: ${X}`)}catch(W){let H=W instanceof Error?W:Error(String(W));this.logger.error(`Failed to register table ${X}`,H,{tableName:X}),Q++}else this.logger.debug(`Skipped invalid table: ${X}`),Q++;this.logger.info(`\uD83D\uDCDD Registered ${J} Drizzle table(s)${Q>0?` (${Q} skipped)`:""}`)}isValidDrizzleTable($){if(!$||typeof $!=="object")return!1;let J=$;if(!J._||typeof J._!=="object")return!1;if(typeof J._.name!=="string"||J._.name.trim().length===0)return!1;if(!J._.columns||typeof J._.columns!=="object")return!1;if(Object.keys(J._.columns).length===0)return this.logger.warn(`Table ${J._.name} has no columns defined`),!1;return!0}registerRepositoryFactory($){let J=$.getContainer();J.register("DrizzleRepositoryFactory",{scope:"singleton",factory:()=>({create:(Q,X)=>{let Y=this.tables.get(Q);if(!Y)throw Error(`Table ${Q} not found in Drizzle schema`);return new m0({database:this.database,table:Y,zodSchema:X||this.tableMetadata.get(Q)?.zodSchema})},createFromTable:(Q,X)=>{return new m0({database:this.database,table:Q,zodSchema:X})}})}),J.register("DrizzleDatabase",{scope:"singleton",factory:()=>this.database}),J.register("TransactionManager",{scope:"singleton",factory:()=>this.transactionManager}),J.register("DrizzleSchemaConverter",{scope:"singleton",factory:()=>this.schemaConverter})}registerDatabaseUtilities($){let J=$.getContainer();J.register("QueryBuilder",{scope:"request",factory:()=>({select:(Q)=>this.database.select(Q),insert:(Q)=>this.database.insert(Q),update:(Q)=>this.database.update(Q),delete:(Q)=>this.database.delete(Q),raw:(Q,X)=>this.database.execute({sql:Q,params:X})})}),J.register("Seeder",{scope:"singleton",factory:()=>({seed:async(Q)=>{let X=o1({component:"Seeder"});try{X.info(`Running ${Q.length} seeder(s)...`),await this.transactionManager.executeInTransaction(async(Y)=>{for(let W of Q)if(typeof W.run==="function")X.debug(`Running seeder: ${W.constructor.name}`),await W.run(Y);else X.warn(`Skipping invalid seeder (no run method): ${W.constructor.name}`)}),X.info("✅ Database seeded successfully")}catch(Y){let W=Y instanceof Error?Y:Error(String(Y));throw X.error("Failed to seed database",W),Error(`Database seeding failed: ${W.message}`)}}})})}getTable($){return this.tables.get($)}getTables(){return this.tables}getTableMetadata($){return this.tableMetadata.get($)}getAllTableMetadata(){return this.tableMetadata}createRepository($,J){let Q=this.tables.get($);if(!Q)throw Error(`Table ${$} not found in Drizzle schema`);return new m0({database:this.database,table:Q,zodSchema:J||this.tableMetadata.get($)?.zodSchema})}createRepositoryFromTable($,J){return new m0({database:this.database,table:$,zodSchema:J})}getDatabase(){return this.database}getTransactionManager(){return this.transactionManager}getSchemaConverter(){return this.schemaConverter}addTable($,J){if(!this.isValidDrizzleTable(J))throw Error(`Invalid Drizzle table: ${$}`);this.tables.set($,J);let Q=this.schemaConverter.extractTableMetadata(J);this.tableMetadata.set($,Q),this.logger.debug(`Added table dynamically: ${$}`)}removeTable($){let J=this.tables.has($);if(this.tables.delete($),this.tableMetadata.delete($),J)this.logger.debug(`Removed table: ${$}`);return J}generateZodSchemas(){let $={};for(let[J,Q]of this.tables){let X=this.schemaConverter.generateAllSchemas(Q);$[J]=X}return $}async executeRaw($,J){try{return this.logger.debug("Executing raw SQL query"),await this.database.execute({sql:$,params:J})}catch(Q){let X=Q instanceof Error?Q:Error(String(Q));throw this.logger.error("Raw SQL query failed",X),Error(`SQL execution failed: ${X.message}`)}}async executeInTransaction($){try{return await this.transactionManager.executeInTransaction($)}catch(J){let Q=J instanceof Error?J:Error(String(J));throw this.logger.error("Transaction failed",Q),J}}}class Y8{client;prefix;constructor($,J={}){this.client=$,this.prefix=J.prefix||"cache:"}async get($){let J=this.getFullKey($),Q=await this.client.get(J);if(!Q)return null;try{return JSON.parse(Q)}catch{return Q}}async set($,J,Q=0){let X=this.getFullKey($),Y=JSON.stringify(J);if(Q>0)await this.client.setex(X,Q,Y);else await this.client.set(X,Y)}async delete($){let J=this.getFullKey($);return await this.client.del(J)>0}async has($){let J=this.getFullKey($);return await this.client.exists(J)>0}async clear(){let $=await this.keys("*");if($.length>0)await Promise.all($.map((J)=>this.delete(J)))}async deletePattern($){let J=await this.keys($);if(J.length===0)return 0;return await Promise.all(J.map((Q)=>this.delete(Q))),J.length}async keys($="*"){let J=this.getFullKey($);return(await this.client.keys(J)).map((X)=>X.substring(this.prefix.length))}getFullKey($){return`${this.prefix}${$}`}}function RV($,J){return new Y8($,J)}C2();
169
169
 
170
- //# debugId=87961FF8D451AD8D64756E2164756E21
170
+ //# debugId=1090E718D5DA325D64756E2164756E21