@persistica/flux-mesh 0.0.25 → 0.0.26

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/index.js +1 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -270,4 +270,4 @@ model Verification {
270
270
  @@index([identifier])
271
271
  @@map("verification")
272
272
  }
273
- `,runtimeDataModel:{models:{},enums:{},types:{}},parameterizationSchema:{strings:[],graph:""}};tQ.runtimeDataModel=JSON.parse('{"models":{"User":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"userNetworks","kind":"object","type":"UserNetwork","relationName":"UserToUserNetwork"},{"name":"name","kind":"scalar","type":"String"},{"name":"emailVerified","kind":"scalar","type":"Boolean"},{"name":"image","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"sessions","kind":"object","type":"Session","relationName":"SessionToUser"},{"name":"accounts","kind":"object","type":"Account","relationName":"AccountToUser"},{"name":"createdNetworkTokens","kind":"object","type":"NetworkToken","relationName":"NetworkTokenToUser"},{"name":"isFluxAdmin","kind":"scalar","type":"Boolean"}],"dbName":"user"},"Network":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"alias","kind":"scalar","type":"String"},{"name":"subscriptionType","kind":"enum","type":"ESubscriptionType"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"userNetworks","kind":"object","type":"UserNetwork","relationName":"NetworkToUserNetwork"},{"name":"tokens","kind":"object","type":"NetworkToken","relationName":"NetworkToNetworkToken"}],"dbName":null},"NetworkToken":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"network","kind":"object","type":"Network","relationName":"NetworkToNetworkToken"},{"name":"token","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"createdByUserId","kind":"scalar","type":"String"},{"name":"createdByUser","kind":"object","type":"User","relationName":"NetworkTokenToUser"},{"name":"rotatedOutAt","kind":"scalar","type":"DateTime"}],"dbName":null},"UserNetwork":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"userId","kind":"scalar","type":"String"},{"name":"user","kind":"object","type":"User","relationName":"UserToUserNetwork"},{"name":"role","kind":"enum","type":"EUserNetworkRole"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"network","kind":"object","type":"Network","relationName":"NetworkToUserNetwork"}],"dbName":null},"UsageHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"usageKb","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ConnectedAuthoritiesHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"count","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ConnectedAgentsHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"count","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ChannelsHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"count","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Session":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"token","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"ipAddress","kind":"scalar","type":"String"},{"name":"userAgent","kind":"scalar","type":"String"},{"name":"userId","kind":"scalar","type":"String"},{"name":"user","kind":"object","type":"User","relationName":"SessionToUser"}],"dbName":"session"},"Account":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"accountId","kind":"scalar","type":"String"},{"name":"providerId","kind":"scalar","type":"String"},{"name":"userId","kind":"scalar","type":"String"},{"name":"user","kind":"object","type":"User","relationName":"AccountToUser"},{"name":"accessToken","kind":"scalar","type":"String"},{"name":"refreshToken","kind":"scalar","type":"String"},{"name":"idToken","kind":"scalar","type":"String"},{"name":"accessTokenExpiresAt","kind":"scalar","type":"DateTime"},{"name":"refreshTokenExpiresAt","kind":"scalar","type":"DateTime"},{"name":"scope","kind":"scalar","type":"String"},{"name":"password","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":"account"},"Verification":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"identifier","kind":"scalar","type":"String"},{"name":"value","kind":"scalar","type":"String"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":"verification"}},"enums":{},"types":{}}');tQ.parameterizationSchema={strings:JSON.parse('["where","orderBy","cursor","user","userNetworks","network","createdByUser","tokens","_count","sessions","accounts","createdNetworkTokens","User.findUnique","User.findUniqueOrThrow","User.findFirst","User.findFirstOrThrow","User.findMany","data","User.createOne","User.createMany","User.createManyAndReturn","User.updateOne","User.updateMany","User.updateManyAndReturn","create","update","User.upsertOne","User.deleteOne","User.deleteMany","having","_min","_max","User.groupBy","User.aggregate","Network.findUnique","Network.findUniqueOrThrow","Network.findFirst","Network.findFirstOrThrow","Network.findMany","Network.createOne","Network.createMany","Network.createManyAndReturn","Network.updateOne","Network.updateMany","Network.updateManyAndReturn","Network.upsertOne","Network.deleteOne","Network.deleteMany","Network.groupBy","Network.aggregate","NetworkToken.findUnique","NetworkToken.findUniqueOrThrow","NetworkToken.findFirst","NetworkToken.findFirstOrThrow","NetworkToken.findMany","NetworkToken.createOne","NetworkToken.createMany","NetworkToken.createManyAndReturn","NetworkToken.updateOne","NetworkToken.updateMany","NetworkToken.updateManyAndReturn","NetworkToken.upsertOne","NetworkToken.deleteOne","NetworkToken.deleteMany","NetworkToken.groupBy","NetworkToken.aggregate","UserNetwork.findUnique","UserNetwork.findUniqueOrThrow","UserNetwork.findFirst","UserNetwork.findFirstOrThrow","UserNetwork.findMany","UserNetwork.createOne","UserNetwork.createMany","UserNetwork.createManyAndReturn","UserNetwork.updateOne","UserNetwork.updateMany","UserNetwork.updateManyAndReturn","UserNetwork.upsertOne","UserNetwork.deleteOne","UserNetwork.deleteMany","UserNetwork.groupBy","UserNetwork.aggregate","UsageHistory.findUnique","UsageHistory.findUniqueOrThrow","UsageHistory.findFirst","UsageHistory.findFirstOrThrow","UsageHistory.findMany","UsageHistory.createOne","UsageHistory.createMany","UsageHistory.createManyAndReturn","UsageHistory.updateOne","UsageHistory.updateMany","UsageHistory.updateManyAndReturn","UsageHistory.upsertOne","UsageHistory.deleteOne","UsageHistory.deleteMany","_avg","_sum","UsageHistory.groupBy","UsageHistory.aggregate","ConnectedAuthoritiesHistory.findUnique","ConnectedAuthoritiesHistory.findUniqueOrThrow","ConnectedAuthoritiesHistory.findFirst","ConnectedAuthoritiesHistory.findFirstOrThrow","ConnectedAuthoritiesHistory.findMany","ConnectedAuthoritiesHistory.createOne","ConnectedAuthoritiesHistory.createMany","ConnectedAuthoritiesHistory.createManyAndReturn","ConnectedAuthoritiesHistory.updateOne","ConnectedAuthoritiesHistory.updateMany","ConnectedAuthoritiesHistory.updateManyAndReturn","ConnectedAuthoritiesHistory.upsertOne","ConnectedAuthoritiesHistory.deleteOne","ConnectedAuthoritiesHistory.deleteMany","ConnectedAuthoritiesHistory.groupBy","ConnectedAuthoritiesHistory.aggregate","ConnectedAgentsHistory.findUnique","ConnectedAgentsHistory.findUniqueOrThrow","ConnectedAgentsHistory.findFirst","ConnectedAgentsHistory.findFirstOrThrow","ConnectedAgentsHistory.findMany","ConnectedAgentsHistory.createOne","ConnectedAgentsHistory.createMany","ConnectedAgentsHistory.createManyAndReturn","ConnectedAgentsHistory.updateOne","ConnectedAgentsHistory.updateMany","ConnectedAgentsHistory.updateManyAndReturn","ConnectedAgentsHistory.upsertOne","ConnectedAgentsHistory.deleteOne","ConnectedAgentsHistory.deleteMany","ConnectedAgentsHistory.groupBy","ConnectedAgentsHistory.aggregate","ChannelsHistory.findUnique","ChannelsHistory.findUniqueOrThrow","ChannelsHistory.findFirst","ChannelsHistory.findFirstOrThrow","ChannelsHistory.findMany","ChannelsHistory.createOne","ChannelsHistory.createMany","ChannelsHistory.createManyAndReturn","ChannelsHistory.updateOne","ChannelsHistory.updateMany","ChannelsHistory.updateManyAndReturn","ChannelsHistory.upsertOne","ChannelsHistory.deleteOne","ChannelsHistory.deleteMany","ChannelsHistory.groupBy","ChannelsHistory.aggregate","Session.findUnique","Session.findUniqueOrThrow","Session.findFirst","Session.findFirstOrThrow","Session.findMany","Session.createOne","Session.createMany","Session.createManyAndReturn","Session.updateOne","Session.updateMany","Session.updateManyAndReturn","Session.upsertOne","Session.deleteOne","Session.deleteMany","Session.groupBy","Session.aggregate","Account.findUnique","Account.findUniqueOrThrow","Account.findFirst","Account.findFirstOrThrow","Account.findMany","Account.createOne","Account.createMany","Account.createManyAndReturn","Account.updateOne","Account.updateMany","Account.updateManyAndReturn","Account.upsertOne","Account.deleteOne","Account.deleteMany","Account.groupBy","Account.aggregate","Verification.findUnique","Verification.findUniqueOrThrow","Verification.findFirst","Verification.findFirstOrThrow","Verification.findMany","Verification.createOne","Verification.createMany","Verification.createManyAndReturn","Verification.updateOne","Verification.updateMany","Verification.updateManyAndReturn","Verification.upsertOne","Verification.deleteOne","Verification.deleteMany","Verification.groupBy","Verification.aggregate","AND","OR","NOT","id","identifier","value","expiresAt","createdAt","updatedAt","equals","in","notIn","lt","lte","gt","gte","not","contains","startsWith","endsWith","accountId","providerId","userId","accessToken","refreshToken","idToken","accessTokenExpiresAt","refreshTokenExpiresAt","scope","password","token","ipAddress","userAgent","networkId","count","timeslotAt","usageKb","EUserNetworkRole","role","createdByUserId","rotatedOutAt","alias","ESubscriptionType","subscriptionType","every","some","none","email","name","emailVerified","image","isFluxAdmin","is","isNot","connectOrCreate","upsert","createMany","set","disconnect","delete","connect","updateMany","deleteMany","increment","decrement","multiply","divide"]'),graph:"kwRjsAEPBAAAywIAIAkAANQCACAKAADVAgAgCwAAzAIAIMQBAADRAgAwxQEAABwAEMYBAADRAgAwxwEBAAAAAcsBQACqAgAhzAFAAKoCACHzAQEAAAAB9AEBAKkCACH1ASAA0gIAIfYBAQDTAgAh9wEgANICACEBAAAAAQAgCQMAANgCACAFAADbAgAgxAEAANwCADDFAQAAAwAQxgEAANwCADDHAQEAqQIAIdoBAQCpAgAh5QEBAKkCACHqAQAA3QLqASICAwAA7gMAIAUAAO8DACAJAwAA2AIAIAUAANsCACDEAQAA3AIAMMUBAAADABDGAQAA3AIAMMcBAQAAAAHaAQEAqQIAIeUBAQCpAgAh6gEAAN0C6gEiAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACALBQAA2wIAIAYAANgCACDEAQAA2gIAMMUBAAAIABDGAQAA2gIAMMcBAQCpAgAhywFAAKoCACHiAQEAqQIAIeUBAQCpAgAh6wEBAKkCACHsAUAA1wIAIQMFAADvAwAgBgAA7gMAIOwBAADjAgAgCwUAANsCACAGAADYAgAgxAEAANoCADDFAQAACAAQxgEAANoCADDHAQEAAAABywFAAKoCACHiAQEAAAAB5QEBAKkCACHrAQEAqQIAIewBQADXAgAhAwAAAAgAIAEAAAkAMAIAAAoAIAEAAAADACABAAAACAAgDAMAANgCACDEAQAA2QIAMMUBAAAOABDGAQAA2QIAMMcBAQCpAgAhygFAAKoCACHLAUAAqgIAIcwBQACqAgAh2gEBAKkCACHiAQEAqQIAIeMBAQDTAgAh5AEBANMCACEDAwAA7gMAIOMBAADjAgAg5AEAAOMCACAMAwAA2AIAIMQBAADZAgAwxQEAAA4AEMYBAADZAgAwxwEBAAAAAcoBQACqAgAhywFAAKoCACHMAUAAqgIAIdoBAQCpAgAh4gEBAAAAAeMBAQDTAgAh5AEBANMCACEDAAAADgAgAQAADwAwAgAAEAAgEQMAANgCACDEAQAA1gIAMMUBAAASABDGAQAA1gIAMMcBAQCpAgAhywFAAKoCACHMAUAAqgIAIdgBAQCpAgAh2QEBAKkCACHaAQEAqQIAIdsBAQDTAgAh3AEBANMCACHdAQEA0wIAId4BQADXAgAh3wFAANcCACHgAQEA0wIAIeEBAQDTAgAhCAMAAO4DACDbAQAA4wIAINwBAADjAgAg3QEAAOMCACDeAQAA4wIAIN8BAADjAgAg4AEAAOMCACDhAQAA4wIAIBEDAADYAgAgxAEAANYCADDFAQAAEgAQxgEAANYCADDHAQEAAAABywFAAKoCACHMAUAAqgIAIdgBAQCpAgAh2QEBAKkCACHaAQEAqQIAIdsBAQDTAgAh3AEBANMCACHdAQEA0wIAId4BQADXAgAh3wFAANcCACHgAQEA0wIAIeEBAQDTAgAhAwAAABIAIAEAABMAMAIAABQAIAMAAAAIACABAAAJADACAAAKACABAAAAAwAgAQAAAA4AIAEAAAASACABAAAACAAgAQAAAAEAIA8EAADLAgAgCQAA1AIAIAoAANUCACALAADMAgAgxAEAANECADDFAQAAHAAQxgEAANECADDHAQEAqQIAIcsBQACqAgAhzAFAAKoCACHzAQEAqQIAIfQBAQCpAgAh9QEgANICACH2AQEA0wIAIfcBIADSAgAhBQQAALQDACAJAADsAwAgCgAA7QMAIAsAALUDACD2AQAA4wIAIAMAAAAcACABAAAdADACAAABACADAAAAHAAgAQAAHQAwAgAAAQAgAwAAABwAIAEAAB0AMAIAAAEAIAwEAADoAwAgCQAA6QMAIAoAAOoDACALAADrAwAgxwEBAAAAAcsBQAAAAAHMAUAAAAAB8wEBAAAAAfQBAQAAAAH1ASAAAAAB9gEBAAAAAfcBIAAAAAEBEQAAIQAgCMcBAQAAAAHLAUAAAAABzAFAAAAAAfMBAQAAAAH0AQEAAAAB9QEgAAAAAfYBAQAAAAH3ASAAAAABAREAACMAMAERAAAjADAMBAAAugMAIAkAALsDACAKAAC8AwAgCwAAvQMAIMcBAQDhAgAhywFAAOICACHMAUAA4gIAIfMBAQDhAgAh9AEBAOECACH1ASAAuQMAIfYBAQDnAgAh9wEgALkDACECAAAAAQAgEQAAJgAgCMcBAQDhAgAhywFAAOICACHMAUAA4gIAIfMBAQDhAgAh9AEBAOECACH1ASAAuQMAIfYBAQDnAgAh9wEgALkDACECAAAAHAAgEQAAKAAgAgAAABwAIBEAACgAIAMAAAABACAYAAAhACAZAAAmACABAAAAAQAgAQAAABwAIAQIAAC2AwAgHgAAuAMAIB8AALcDACD2AQAA4wIAIAvEAQAAzQIAMMUBAAAvABDGAQAAzQIAMMcBAQChAgAhywFAAKICACHMAUAAogIAIfMBAQChAgAh9AEBAKECACH1ASAAzgIAIfYBAQCsAgAh9wEgAM4CACEDAAAAHAAgAQAALgAwHQAALwAgAwAAABwAIAEAAB0AMAIAAAEAIAoEAADLAgAgBwAAzAIAIMQBAADJAgAwxQEAADUAEMYBAADJAgAwxwEBAAAAAcsBQACqAgAhzAFAAKoCACHtAQEAqQIAIe8BAADKAu8BIgEAAAAyACABAAAAMgAgCgQAAMsCACAHAADMAgAgxAEAAMkCADDFAQAANQAQxgEAAMkCADDHAQEAqQIAIcsBQACqAgAhzAFAAKoCACHtAQEAqQIAIe8BAADKAu8BIgIEAAC0AwAgBwAAtQMAIAMAAAA1ACABAAA2ADACAAAyACADAAAANQAgAQAANgAwAgAAMgAgAwAAADUAIAEAADYAMAIAADIAIAcEAACyAwAgBwAAswMAIMcBAQAAAAHLAUAAAAABzAFAAAAAAe0BAQAAAAHvAQAAAO8BAgERAAA6ACAFxwEBAAAAAcsBQAAAAAHMAUAAAAAB7QEBAAAAAe8BAAAA7wECAREAADwAMAERAAA8ADAHBAAAmAMAIAcAAJkDACDHAQEA4QIAIcsBQADiAgAhzAFAAOICACHtAQEA4QIAIe8BAACXA-8BIgIAAAAyACARAAA_ACAFxwEBAOECACHLAUAA4gIAIcwBQADiAgAh7QEBAOECACHvAQAAlwPvASICAAAANQAgEQAAQQAgAgAAADUAIBEAAEEAIAMAAAAyACAYAAA6ACAZAAA_ACABAAAAMgAgAQAAADUAIAMIAACUAwAgHgAAlgMAIB8AAJUDACAIxAEAAMUCADDFAQAASAAQxgEAAMUCADDHAQEAoQIAIcsBQACiAgAhzAFAAKICACHtAQEAoQIAIe8BAADGAu8BIgMAAAA1ACABAABHADAdAABIACADAAAANQAgAQAANgAwAgAAMgAgAQAAAAoAIAEAAAAKACADAAAACAAgAQAACQAwAgAACgAgAwAAAAgAIAEAAAkAMAIAAAoAIAMAAAAIACABAAAJADACAAAKACAIBQAAkgMAIAYAAJMDACDHAQEAAAABywFAAAAAAeIBAQAAAAHlAQEAAAAB6wEBAAAAAewBQAAAAAEBEQAAUAAgBscBAQAAAAHLAUAAAAAB4gEBAAAAAeUBAQAAAAHrAQEAAAAB7AFAAAAAAQERAABSADABEQAAUgAwCAUAAJADACAGAACRAwAgxwEBAOECACHLAUAA4gIAIeIBAQDhAgAh5QEBAOECACHrAQEA4QIAIewBQADoAgAhAgAAAAoAIBEAAFUAIAbHAQEA4QIAIcsBQADiAgAh4gEBAOECACHlAQEA4QIAIesBAQDhAgAh7AFAAOgCACECAAAACAAgEQAAVwAgAgAAAAgAIBEAAFcAIAMAAAAKACAYAABQACAZAABVACABAAAACgAgAQAAAAgAIAQIAACNAwAgHgAAjwMAIB8AAI4DACDsAQAA4wIAIAnEAQAAxAIAMMUBAABeABDGAQAAxAIAMMcBAQChAgAhywFAAKICACHiAQEAoQIAIeUBAQChAgAh6wEBAKECACHsAUAArQIAIQMAAAAIACABAABdADAdAABeACADAAAACAAgAQAACQAwAgAACgAgAQAAAAUAIAEAAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACAGAwAAiwMAIAUAAIwDACDHAQEAAAAB2gEBAAAAAeUBAQAAAAHqAQAAAOoBAgERAABmACAExwEBAAAAAdoBAQAAAAHlAQEAAAAB6gEAAADqAQIBEQAAaAAwAREAAGgAMAYDAACJAwAgBQAAigMAIMcBAQDhAgAh2gEBAOECACHlAQEA4QIAIeoBAACIA-oBIgIAAAAFACARAABrACAExwEBAOECACHaAQEA4QIAIeUBAQDhAgAh6gEAAIgD6gEiAgAAAAMAIBEAAG0AIAIAAAADACARAABtACADAAAABQAgGAAAZgAgGQAAawAgAQAAAAUAIAEAAAADACADCAAAhQMAIB4AAIcDACAfAACGAwAgB8QBAADAAgAwxQEAAHQAEMYBAADAAgAwxwEBAKECACHaAQEAoQIAIeUBAQChAgAh6gEAAMEC6gEiAwAAAAMAIAEAAHMAMB0AAHQAIAMAAAADACABAAAEADACAAAFACAHxAEAAL8CADDFAQAAegAQxgEAAL8CADDHAQEAAAAB5QEBAKkCACHnAUAAqgIAIegBAgC5AgAhAQAAAHcAIAEAAAB3ACAHxAEAAL8CADDFAQAAegAQxgEAAL8CADDHAQEAqQIAIeUBAQCpAgAh5wFAAKoCACHoAQIAuQIAIQADAAAAegAgAQAAewAwAgAAdwAgAwAAAHoAIAEAAHsAMAIAAHcAIAMAAAB6ACABAAB7ADACAAB3ACAExwEBAAAAAeUBAQAAAAHnAUAAAAAB6AECAAAAAQERAAB_ACAExwEBAAAAAeUBAQAAAAHnAUAAAAAB6AECAAAAAQERAACBAQAwAREAAIEBADAExwEBAOECACHlAQEA4QIAIecBQADiAgAh6AECAPUCACECAAAAdwAgEQAAhAEAIATHAQEA4QIAIeUBAQDhAgAh5wFAAOICACHoAQIA9QIAIQIAAAB6ACARAACGAQAgAgAAAHoAIBEAAIYBACADAAAAdwAgGAAAfwAgGQAAhAEAIAEAAAB3ACABAAAAegAgBQgAAIADACAeAACDAwAgHwAAggMAIGAAAIEDACBhAACEAwAgB8QBAAC-AgAwxQEAAI0BABDGAQAAvgIAMMcBAQChAgAh5QEBAKECACHnAUAAogIAIegBAgC1AgAhAwAAAHoAIAEAAIwBADAdAACNAQAgAwAAAHoAIAEAAHsAMAIAAHcAIAfEAQAAvQIAMMUBAACTAQAQxgEAAL0CADDHAQEAAAAB5QEBAKkCACHmAQIAuQIAIecBQACqAgAhAQAAAJABACABAAAAkAEAIAfEAQAAvQIAMMUBAACTAQAQxgEAAL0CADDHAQEAqQIAIeUBAQCpAgAh5gECALkCACHnAUAAqgIAIQADAAAAkwEAIAEAAJQBADACAACQAQAgAwAAAJMBACABAACUAQAwAgAAkAEAIAMAAACTAQAgAQAAlAEAMAIAAJABACAExwEBAAAAAeUBAQAAAAHmAQIAAAAB5wFAAAAAAQERAACYAQAgBMcBAQAAAAHlAQEAAAAB5gECAAAAAecBQAAAAAEBEQAAmgEAMAERAACaAQAwBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAJABACARAACdAQAgBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAJMBACARAACfAQAgAgAAAJMBACARAACfAQAgAwAAAJABACAYAACYAQAgGQAAnQEAIAEAAACQAQAgAQAAAJMBACAFCAAA-wIAIB4AAP4CACAfAAD9AgAgYAAA_AIAIGEAAP8CACAHxAEAALwCADDFAQAApgEAEMYBAAC8AgAwxwEBAKECACHlAQEAoQIAIeYBAgC1AgAh5wFAAKICACEDAAAAkwEAIAEAAKUBADAdAACmAQAgAwAAAJMBACABAACUAQAwAgAAkAEAIAfEAQAAuwIAMMUBAACsAQAQxgEAALsCADDHAQEAAAAB5QEBAKkCACHmAQIAuQIAIecBQACqAgAhAQAAAKkBACABAAAAqQEAIAfEAQAAuwIAMMUBAACsAQAQxgEAALsCADDHAQEAqQIAIeUBAQCpAgAh5gECALkCACHnAUAAqgIAIQADAAAArAEAIAEAAK0BADACAACpAQAgAwAAAKwBACABAACtAQAwAgAAqQEAIAMAAACsAQAgAQAArQEAMAIAAKkBACAExwEBAAAAAeUBAQAAAAHmAQIAAAAB5wFAAAAAAQERAACxAQAgBMcBAQAAAAHlAQEAAAAB5gECAAAAAecBQAAAAAEBEQAAswEAMAERAACzAQAwBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAKkBACARAAC2AQAgBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAKwBACARAAC4AQAgAgAAAKwBACARAAC4AQAgAwAAAKkBACAYAACxAQAgGQAAtgEAIAEAAACpAQAgAQAAAKwBACAFCAAA9gIAIB4AAPkCACAfAAD4AgAgYAAA9wIAIGEAAPoCACAHxAEAALoCADDFAQAAvwEAEMYBAAC6AgAwxwEBAKECACHlAQEAoQIAIeYBAgC1AgAh5wFAAKICACEDAAAArAEAIAEAAL4BADAdAAC_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_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_ABAAAIACDxAQAACAAg8gEAAAgAIAvEAQAAzQIAMMUBAAAvABDGAQAAzQIAMMcBAQChAgAhywFAAKICACHMAUAAogIAIfMBAQChAgAh9AEBAKECACH1ASAAzgIAIfYBAQCsAgAh9wEgAM4CACEFCAAApAIAIB4AANACACAfAADQAgAgzQEgAAAAAdQBIADPAgAhBQgAAKQCACAeAADQAgAgHwAA0AIAIM0BIAAAAAHUASAAzwIAIQLNASAAAAAB1AEgANACACEPBAAAywIAIAkAANQCACAKAADVAgAgCwAAzAIAIMQBAADRAgAwxQEAABwAEMYBAADRAgAwxwEBAKkCACHLAUAAqgIAIcwBQACqAgAh8wEBAKkCACH0AQEAqQIAIfUBIADSAgAh9gEBANMCACH3ASAA0gIAIQLNASAAAAAB1AEgANACACELzQEBAAAAAc4BAQAAAAXPAQEAAAAF0AEBAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQCyAgAh1QEBAAAAAdYBAQAAAAHXAQEAAAABA_ABAAAOACDxAQAADgAg8gEAAA4AIAPwAQAAEgAg8QEAABIAIPIBAAASACARAwAA2AIAIMQBAADWAgAwxQEAABIAEMYBAADWAgAwxwEBAKkCACHLAUAAqgIAIcwBQACqAgAh2AEBAKkCACHZAQEAqQIAIdoBAQCpAgAh2wEBANMCACHcAQEA0wIAId0BAQDTAgAh3gFAANcCACHfAUAA1wIAIeABAQDTAgAh4QEBANMCACEIzQFAAAAAAc4BQAAAAAXPAUAAAAAF0AFAAAAAAdEBQAAAAAHSAUAAAAAB0wFAAAAAAdQBQACwAgAhEQQAAMsCACAJAADUAgAgCgAA1QIAIAsAAMwCACDEAQAA0QIAMMUBAAAcABDGAQAA0QIAMMcBAQCpAgAhywFAAKoCACHMAUAAqgIAIfMBAQCpAgAh9AEBAKkCACH1ASAA0gIAIfYBAQDTAgAh9wEgANICACH4AQAAHAAg-QEAABwAIAwDAADYAgAgxAEAANkCADDFAQAADgAQxgEAANkCADDHAQEAqQIAIcoBQACqAgAhywFAAKoCACHMAUAAqgIAIdoBAQCpAgAh4gEBAKkCACHjAQEA0wIAIeQBAQDTAgAhCwUAANsCACAGAADYAgAgxAEAANoCADDFAQAACAAQxgEAANoCADDHAQEAqQIAIcsBQACqAgAh4gEBAKkCACHlAQEAqQIAIesBAQCpAgAh7AFAANcCACEMBAAAywIAIAcAAMwCACDEAQAAyQIAMMUBAAA1ABDGAQAAyQIAMMcBAQCpAgAhywFAAKoCACHMAUAAqgIAIe0BAQCpAgAh7wEAAMoC7wEi-AEAADUAIPkBAAA1ACAJAwAA2AIAIAUAANsCACDEAQAA3AIAMMUBAAADABDGAQAA3AIAMMcBAQCpAgAh2gEBAKkCACHlAQEAqQIAIeoBAADdAuoBIgTNAQAAAOoBAs4BAAAA6gEIzwEAAADqAQjUAQAAwwLqASIAAAAB_QEBAAAAAQH9AUAAAAABAAAAAAH9AQEAAAABAf0BQAAAAAEFGAAAjwQAIBkAAJIEACD6AQAAkAQAIPsBAACRBAAggAIAAAEAIAMYAACPBAAg-gEAAJAEACCAAgAAAQAgAAAABRgAAIoEACAZAACNBAAg-gEAAIsEACD7AQAAjAQAIIACAAABACADGAAAigQAIPoBAACLBAAggAIAAAEAIAAAAAAABf0BAgAAAAGDAgIAAAABhAICAAAAAYUCAgAAAAGGAgIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAf0BAAAA6gECBRgAAIIEACAZAACIBAAg-gEAAIMEACD7AQAAhwQAIIACAAABACAFGAAAgAQAIBkAAIUEACD6AQAAgQQAIPsBAACEBAAggAIAADIAIAMYAACCBAAg-gEAAIMEACCAAgAAAQAgAxgAAIAEACD6AQAAgQQAIIACAAAyACAAAAAFGAAA-AMAIBkAAP4DACD6AQAA-QMAIPsBAAD9AwAggAIAADIAIAUYAAD2AwAgGQAA-wMAIPoBAAD3AwAg-wEAAPoDACCAAgAAAQAgAxgAAPgDACD6AQAA-QMAIIACAAAyACADGAAA9gMAIPoBAAD3AwAggAIAAAEAIAAAAAH9AQAAAO8BAgsYAACmAwAwGQAAqwMAMPoBAACnAwAw-wEAAKgDADD8AQAAqQMAIP0BAACqAwAw_gEAAKoDADD_AQAAqgMAMIACAACqAwAwgQIAAKwDADCCAgAArQMAMAsYAACaAwAwGQAAnwMAMPoBAACbAwAw-wEAAJwDADD8AQAAnQMAIP0BAACeAwAw_gEAAJ4DADD_AQAAngMAMIACAACeAwAwgQIAAKADADCCAgAAoQMAMAYGAACTAwAgxwEBAAAAAcsBQAAAAAHiAQEAAAAB6wEBAAAAAewBQAAAAAECAAAACgAgGAAApQMAIAMAAAAKACAYAAClAwAgGQAApAMAIAERAAD1AwAwCwUAANsCACAGAADYAgAgxAEAANoCADDFAQAACAAQxgEAANoCADDHAQEAAAABywFAAKoCACHiAQEAAAAB5QEBAKkCACHrAQEAqQIAIewBQADXAgAhAgAAAAoAIBEAAKQDACACAAAAogMAIBEAAKMDACAJxAEAAKEDADDFAQAAogMAEMYBAAChAwAwxwEBAKkCACHLAUAAqgIAIeIBAQCpAgAh5QEBAKkCACHrAQEAqQIAIewBQADXAgAhCcQBAAChAwAwxQEAAKIDABDGAQAAoQMAMMcBAQCpAgAhywFAAKoCACHiAQEAqQIAIeUBAQCpAgAh6wEBAKkCACHsAUAA1wIAIQXHAQEA4QIAIcsBQADiAgAh4gEBAOECACHrAQEA4QIAIewBQADoAgAhBgYAAJEDACDHAQEA4QIAIcsBQADiAgAh4gEBAOECACHrAQEA4QIAIewBQADoAgAhBgYAAJMDACDHAQEAAAABywFAAAAAAeIBAQAAAAHrAQEAAAAB7AFAAAAAAQQDAACLAwAgxwEBAAAAAdoBAQAAAAHqAQAAAOoBAgIAAAAFACAYAACxAwAgAwAAAAUAIBgAALEDACAZAACwAwAgAREAAPQDADAJAwAA2AIAIAUAANsCACDEAQAA3AIAMMUBAAADABDGAQAA3AIAMMcBAQAAAAHaAQEAqQIAIeUBAQCpAgAh6gEAAN0C6gEiAgAAAAUAIBEAALADACACAAAArgMAIBEAAK8DACAHxAEAAK0DADDFAQAArgMAEMYBAACtAwAwxwEBAKkCACHaAQEAqQIAIeUBAQCpAgAh6gEAAN0C6gEiB8QBAACtAwAwxQEAAK4DABDGAQAArQMAMMcBAQCpAgAh2gEBAKkCACHlAQEAqQIAIeoBAADdAuoBIgPHAQEA4QIAIdoBAQDhAgAh6gEAAIgD6gEiBAMAAIkDACDHAQEA4QIAIdoBAQDhAgAh6gEAAIgD6gEiBAMAAIsDACDHAQEAAAAB2gEBAAAAAeoBAAAA6gECBBgAAKYDADD6AQAApwMAMPwBAACpAwAggAIAAKoDADAEGAAAmgMAMPoBAACbAwAw_AEAAJ0DACCAAgAAngMAMAAAAAAAAf0BIAAAAAELGAAA3wMAMBkAAOMDADD6AQAA4AMAMPsBAADhAwAw_AEAAOIDACD9AQAAqgMAMP4BAACqAwAw_wEAAKoDADCAAgAAqgMAMIECAADkAwAwggIAAK0DADALGAAA0wMAMBkAANgDADD6AQAA1AMAMPsBAADVAwAw_AEAANYDACD9AQAA1wMAMP4BAADXAwAw_wEAANcDADCAAgAA1wMAMIECAADZAwAwggIAANoDADALGAAAxwMAMBkAAMwDADD6AQAAyAMAMPsBAADJAwAw_AEAAMoDACD9AQAAywMAMP4BAADLAwAw_wEAAMsDADCAAgAAywMAMIECAADNAwAwggIAAM4DADALGAAAvgMAMBkAAMIDADD6AQAAvwMAMPsBAADAAwAw_AEAAMEDACD9AQAAngMAMP4BAACeAwAw_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_AEAAMoDACCAAgAAywMAMAQYAAC-AwAw-gEAAL8DADD8AQAAwQMAIIACAACeAwAwAAAFBAAAtAMAIAkAAOwDACAKAADtAwAgCwAAtQMAIPYBAADjAgAgAgQAALQDACAHAAC1AwAgA8cBAQAAAAHlAQEAAAAB6gEAAADqAQIHxwEBAAAAAcoBQAAAAAHLAUAAAAABzAFAAAAAAeIBAQAAAAHjAQEAAAAB5AEBAAAAAQzHAQEAAAABywFAAAAAAcwBQAAAAAHYAQEAAAAB2QEBAAAAAdsBAQAAAAHcAQEAAAAB3QEBAAAAAd4BQAAAAAHfAUAAAAAB4AEBAAAAAeEBAQAAAAEFxwEBAAAAAcsBQAAAAAHiAQEAAAAB5QEBAAAAAewBQAAAAAEDxwEBAAAAAdoBAQAAAAHqAQAAAOoBAgXHAQEAAAABywFAAAAAAeIBAQAAAAHrAQEAAAAB7AFAAAAAAQsEAADoAwAgCQAA6QMAIAoAAOoDACDHAQEAAAABywFAAAAAAcwBQAAAAAHzAQEAAAAB9AEBAAAAAfUBIAAAAAH2AQEAAAAB9wEgAAAAAQIAAAABACAYAAD2AwAgBgQAALIDACDHAQEAAAABywFAAAAAAcwBQAAAAAHtAQEAAAAB7wEAAADvAQICAAAAMgAgGAAA-AMAIAMAAAAcACAYAAD2AwAgGQAA_AMAIA0AAAAcACAEAAC6AwAgCQAAuwMAIAoAALwDACARAAD8AwAgxwEBAOECACHLAUAA4gIAIcwBQADiAgAh8wEBAOECACH0AQEA4QIAIfUBIAC5AwAh9gEBAOcCACH3ASAAuQMAIQsEAAC6AwAgCQAAuwMAIAoAALwDACDHAQEA4QIAIcsBQADiAgAhzAFAAOICACHzAQEA4QIAIfQBAQDhAgAh9QEgALkDACH2AQEA5wIAIfcBIAC5AwAhAwAAADUAIBgAAPgDACAZAAD_AwAgCAAAADUAIAQAAJgDACARAAD_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-QEJqwH6AVWsAfwBB60B_gEJrgH_AVavAYACB7ABgQIHsQGCAgmyAYUCV7MBhgJbtAGIAly1AYkCXLYBjAJctwGNAly4AY4CXLkBkAJcugGSAgm7AZMCXbwBlQJcvQGXAgm-AZgCXr8BmQJcwAGaAlzBAZsCCcIBngJfwwGfAmM"};async function Y4(A){let{Buffer:I}=await import("buffer"),g=I.from(A,"base64");return new WebAssembly.Module(g)}tQ.compilerWasm={getRuntime:async()=>await Promise.resolve().then(() => (WF(),ZF)),getQueryCompilerWasmModule:async()=>{let{wasm:A}=await Promise.resolve().then(() => (OF(),TF));return await Y4(A)},importName:"./query_compiler_fast_bg.js"};function jF(){return VF.getPrismaClient(tQ)}var gA=SB(iD(),1);var hb=gA.Extensions.getExtensionContext;var Ub={DbNull:gA.NullTypes.DbNull,JsonNull:gA.NullTypes.JsonNull,AnyNull:gA.NullTypes.AnyNull};var Yb=gA.makeStrictEnum({ReadUncommitted:"ReadUncommitted",ReadCommitted:"ReadCommitted",RepeatableRead:"RepeatableRead",Serializable:"Serializable"});var Jb=gA.Extensions.defineExtension;globalThis.__dirname=dF.dirname(c4(import.meta.url));var bF=jF();var L4=Object.defineProperty,s4=(A,I)=>{for(var g in I)L4(A,g,{get:I[g],enumerable:!0})},ND={};s4(ND,{$:()=>tF,bgBlack:()=>t4,bgBlue:()=>n4,bgCyan:()=>_4,bgGreen:()=>r4,bgMagenta:()=>$4,bgRed:()=>u4,bgWhite:()=>e4,bgYellow:()=>v4,black:()=>V4,blue:()=>z4,bold:()=>uF,cyan:()=>P4,dim:()=>x4,gray:()=>l4,green:()=>d4,grey:()=>m4,hidden:()=>T4,inverse:()=>W4,italic:()=>p4,magenta:()=>X4,red:()=>j4,reset:()=>q4,strikethrough:()=>O4,underline:()=>Z4,white:()=>f4,yellow:()=>b4});var kD,PF,fF,lF,mF=!0;if(typeof process<"u")({FORCE_COLOR:kD,NODE_DISABLE_COLORS:PF,NO_COLOR:fF,TERM:lF}=process.env||{}),mF=process.stdout&&process.stdout.isTTY;var tF={enabled:!PF&&fF==null&&lF!=="dumb"&&(kD!=null&&kD!=="0"||mF)};function $(A,I){let g=new RegExp(`\\x1b\\[${I}m`,"g"),B=`\x1B[${A}m`,Q=`\x1B[${I}m`;return function(C){if(!tF.enabled||C==null)return C;return B+(~(""+C).indexOf(Q)?C.replace(g,Q+B):C)+Q}}var q4=$(0,0),uF=$(1,22),x4=$(2,22),p4=$(3,23),Z4=$(4,24),W4=$(7,27),T4=$(8,28),O4=$(9,29),V4=$(30,39),j4=$(31,39),d4=$(32,39),b4=$(33,39),z4=$(34,39),X4=$(35,39),P4=$(36,39),f4=$(37,39),l4=$(90,39),m4=$(90,39),t4=$(40,49),u4=$(41,49),r4=$(42,49),v4=$(43,49),n4=$(44,49),$4=$(45,49),_4=$(46,49),e4=$(47,49),Ap=100,zF=["green","yellow","blue","magenta","cyan","red"],wD=[],XF=Date.now(),Ip=0,KD=typeof process<"u"?process.env:{};globalThis.DEBUG??=KD.DEBUG??"";globalThis.DEBUG_COLORS??=KD.DEBUG_COLORS?KD.DEBUG_COLORS==="true":!0;var QB={enable(A){if(typeof A==="string")globalThis.DEBUG=A},disable(){let A=globalThis.DEBUG;return globalThis.DEBUG="",A},enabled(A){let I=globalThis.DEBUG.split(",").map((Q)=>{return Q.replace(/[.+?^${}()|[\]\\]/g,"\\$&")}),g=I.some((Q)=>{if(Q===""||Q[0]==="-")return!1;return A.match(RegExp(Q.split("*").join(".*")+"$"))}),B=I.some((Q)=>{if(Q===""||Q[0]!=="-")return!1;return A.match(RegExp(Q.slice(1).split("*").join(".*")+"$"))});return g&&!B},log:(...A)=>{let[I,g,...B]=A;(console.warn??console.log)(`${I} ${g}`,...B)},formatters:{}};function gp(A){let I={color:zF[Ip++%zF.length],enabled:QB.enabled(A),namespace:A,log:QB.log,extend:()=>{}};return new Proxy((...B)=>{let{enabled:Q,namespace:C,color:E,log:D}=I;if(B.length!==0)wD.push([C,...B]);if(wD.length>Ap)wD.shift();if(QB.enabled(C)||Q){let i=B.map((o)=>{if(typeof o==="string")return o;return Bp(o)}),G=`+${Date.now()-XF}ms`;if(XF=Date.now(),globalThis.DEBUG_COLORS)D(ND[E](uF(C)),...i,ND[E](G));else D(C,...i,G)}},{get:(B,Q)=>I[Q],set:(B,Q,C)=>I[Q]=C})}var uQ=new Proxy(gp,{get:(A,I)=>QB[I],set:(A,I,g)=>QB[I]=g});function Bp(A,I=2){let g=new Set;return JSON.stringify(A,(B,Q)=>{if(typeof Q==="object"&&Q!==null){if(g.has(Q))return"[Circular *]";g.add(Q)}else if(typeof Q==="bigint")return Q.toString();return Q},I)}var FD=class extends Error{name="DriverAdapterError";cause;constructor(A){super(typeof A.message==="string"?A.message:A.kind);this.cause=A}};var qb=uQ("driver-adapter-utils");var u={Int32:0,Int64:1,Float:2,Double:3,Numeric:4,Boolean:5,Character:6,Text:7,Date:8,Time:9,DateTime:10,Json:11,Enum:12,Bytes:13,Set:14,Uuid:15,Int32Array:64,Int64Array:65,FloatArray:66,DoubleArray:67,NumericArray:68,BooleanArray:69,CharacterArray:70,TextArray:71,DateArray:72,TimeArray:73,DateTimeArray:74,JsonArray:75,EnumArray:76,BytesArray:77,UuidArray:78,UnknownNumber:128},xb={queryRaw:Error("Not implemented: queryRaw"),executeRaw:Error("Not implemented: executeRaw"),startTransaction:Error("Not implemented: startTransaction"),executeScript:Error("Not implemented: executeScript"),dispose:Error("Not implemented: dispose")};var xA=SB(uD(),1),Uz=xA.default.Client,Yz=xA.default.Pool,Jz=xA.default.Connection,az=xA.default.types,Hz=xA.default.Query,cz=xA.default.DatabaseError,Lz=xA.default.escapeIdentifier,sz=xA.default.escapeLiteral,qz=xA.default.Result,xz=xA.default.TypeOverrides,pz=xA.default.defaults,jI=xA.default;function KM(A){let I=A!=null;return function(B){let Q=B.length-1;if(Q===1)return[];if(B[Q]!=="}")throw Error("Invalid array text - must end with }");let C=0;if(B[C]==="[")C=B.indexOf("=")+1;if(B[C++]!=="{")throw Error("Invalid array text - must start with {");let E=[],D=E,i=[],G=C,o="",w=!0;for(;C<Q;++C){let N=B[C];if(N==='"'){G=++C;let k=B.indexOf('"',G),F=B.indexOf("\\",G);while(F!==-1&&F<k){C=F;let Y=B.slice(G,C);if(o+=Y,G=++C,k===C++)k=B.indexOf('"',C);F=B.indexOf("\\",C)}C=k;let R=B.slice(G,C);o+=R,D.push(I?A(o):o),o="",w=!1}else if(N==="{"){let k=[];D.push(k),i.push(D),D=k,G=C+1,w=!0}else if(N===",")w=!0;else if(N==="}"){w=!1;let k=i.pop();if(k===void 0)throw Error("Invalid array text - too many '}'");D=k}else if(w){G=C;while((N=B[C])!==","&&N!=="}"&&C<Q)++C;let k=B.slice(G,C--);D.push(k==="NULL"?null:I?A(k):k),w=!1}else throw Error("Was expecting delimeter")}return E}}var iT=KM();var nD=(A,I)=>I!=null?KM(I)(A):iT(A);var JM="@prisma/adapter-pg",aM=16384,{types:GT}=jI,{builtins:m,getTypeParser:HM}=GT,oT={NAME:19},l={BIT_ARRAY:1561,BOOL_ARRAY:1000,BYTEA_ARRAY:1001,BPCHAR_ARRAY:1014,CHAR_ARRAY:1002,CIDR_ARRAY:651,DATE_ARRAY:1182,FLOAT4_ARRAY:1021,FLOAT8_ARRAY:1022,INET_ARRAY:1041,INT2_ARRAY:1005,INT4_ARRAY:1007,INT8_ARRAY:1016,JSONB_ARRAY:3807,JSON_ARRAY:199,MONEY_ARRAY:791,NUMERIC_ARRAY:1231,OID_ARRAY:1028,TEXT_ARRAY:1009,TIMESTAMP_ARRAY:1115,TIMESTAMPTZ_ARRAY:1185,TIME_ARRAY:1183,UUID_ARRAY:2951,VARBIT_ARRAY:1563,VARCHAR_ARRAY:1015,XML_ARRAY:143},cM=class A extends Error{static typeNames={16:"bool",17:"bytea",18:"char",19:"name",20:"int8",21:"int2",22:"int2vector",23:"int4",24:"regproc",25:"text",26:"oid",27:"tid",28:"xid",29:"cid",30:"oidvector",32:"pg_ddl_command",71:"pg_type",75:"pg_attribute",81:"pg_proc",83:"pg_class",114:"json",142:"xml",194:"pg_node_tree",269:"table_am_handler",325:"index_am_handler",600:"point",601:"lseg",602:"path",603:"box",604:"polygon",628:"line",650:"cidr",700:"float4",701:"float8",705:"unknown",718:"circle",774:"macaddr8",790:"money",829:"macaddr",869:"inet",1033:"aclitem",1042:"bpchar",1043:"varchar",1082:"date",1083:"time",1114:"timestamp",1184:"timestamptz",1186:"interval",1266:"timetz",1560:"bit",1562:"varbit",1700:"numeric",1790:"refcursor",2202:"regprocedure",2203:"regoper",2204:"regoperator",2205:"regclass",2206:"regtype",2249:"record",2275:"cstring",2276:"any",2277:"anyarray",2278:"void",2279:"trigger",2280:"language_handler",2281:"internal",2283:"anyelement",2287:"_record",2776:"anynonarray",2950:"uuid",2970:"txid_snapshot",3115:"fdw_handler",3220:"pg_lsn",3310:"tsm_handler",3361:"pg_ndistinct",3402:"pg_dependencies",3500:"anyenum",3614:"tsvector",3615:"tsquery",3642:"gtsvector",3734:"regconfig",3769:"regdictionary",3802:"jsonb",3831:"anyrange",3838:"event_trigger",3904:"int4range",3906:"numrange",3908:"tsrange",3910:"tstzrange",3912:"daterange",3926:"int8range",4072:"jsonpath",4089:"regnamespace",4096:"regrole",4191:"regcollation",4451:"int4multirange",4532:"nummultirange",4533:"tsmultirange",4534:"tstzmultirange",4535:"datemultirange",4536:"int8multirange",4537:"anymultirange",4538:"anycompatiblemultirange",4600:"pg_brin_bloom_summary",4601:"pg_brin_minmax_multi_summary",5017:"pg_mcv_list",5038:"pg_snapshot",5069:"xid8",5077:"anycompatible",5078:"anycompatiblearray",5079:"anycompatiblenonarray",5080:"anycompatiblerange"};type;constructor(I){super();this.type=A.typeNames[I]||"Unknown",this.message=`Unsupported column type ${this.type}`}};function wT(A){switch(A){case m.INT2:case m.INT4:return u.Int32;case m.INT8:return u.Int64;case m.FLOAT4:return u.Float;case m.FLOAT8:return u.Double;case m.BOOL:return u.Boolean;case m.DATE:return u.Date;case m.TIME:case m.TIMETZ:return u.Time;case m.TIMESTAMP:case m.TIMESTAMPTZ:return u.DateTime;case m.NUMERIC:case m.MONEY:return u.Numeric;case m.JSON:case m.JSONB:return u.Json;case m.UUID:return u.Uuid;case m.OID:return u.Int64;case m.BPCHAR:case m.TEXT:case m.VARCHAR:case m.BIT:case m.VARBIT:case m.INET:case m.CIDR:case m.XML:case oT.NAME:return u.Text;case m.BYTEA:return u.Bytes;case l.INT2_ARRAY:case l.INT4_ARRAY:return u.Int32Array;case l.FLOAT4_ARRAY:return u.FloatArray;case l.FLOAT8_ARRAY:return u.DoubleArray;case l.NUMERIC_ARRAY:case l.MONEY_ARRAY:return u.NumericArray;case l.BOOL_ARRAY:return u.BooleanArray;case l.CHAR_ARRAY:return u.CharacterArray;case l.BPCHAR_ARRAY:case l.TEXT_ARRAY:case l.VARCHAR_ARRAY:case l.VARBIT_ARRAY:case l.BIT_ARRAY:case l.INET_ARRAY:case l.CIDR_ARRAY:case l.XML_ARRAY:return u.TextArray;case l.DATE_ARRAY:return u.DateArray;case l.TIME_ARRAY:return u.TimeArray;case l.TIMESTAMP_ARRAY:return u.DateTimeArray;case l.TIMESTAMPTZ_ARRAY:return u.DateTimeArray;case l.JSON_ARRAY:case l.JSONB_ARRAY:return u.JsonArray;case l.BYTEA_ARRAY:return u.BytesArray;case l.UUID_ARRAY:return u.UuidArray;case l.INT8_ARRAY:case l.OID_ARRAY:return u.Int64Array;default:if(A>=aM)return u.Text;throw new cM(A)}}function lA(A){return(I)=>nD(I,A)}function FM(A){return A}function RM(A){return A}function SM(A){return`${A.replace(" ","T")}+00:00`}function MM(A){return A.replace(" ","T").replace(/[+-]\d{2}(:\d{2})?$/,"+00:00")}function yM(A){return A}function NT(A){return A.replace(/[+-]\d{2}(:\d{2})?$/,"")}function hM(A){return A.slice(1)}function kT(A){return A}function DC(A){return A}var KT=HM(m.BYTEA),FT=HM(l.BYTEA_ARRAY);function RT(A){return KT(A)}function UM(A){return A}var $D={[m.NUMERIC]:FM,[l.NUMERIC_ARRAY]:lA(FM),[m.TIME]:yM,[l.TIME_ARRAY]:lA(yM),[m.TIMETZ]:NT,[m.DATE]:RM,[l.DATE_ARRAY]:lA(RM),[m.TIMESTAMP]:SM,[l.TIMESTAMP_ARRAY]:lA(SM),[m.TIMESTAMPTZ]:MM,[l.TIMESTAMPTZ_ARRAY]:lA(MM),[m.MONEY]:hM,[l.MONEY_ARRAY]:lA(hM),[m.JSON]:DC,[l.JSON_ARRAY]:lA(DC),[m.JSONB]:DC,[l.JSONB_ARRAY]:lA(DC),[m.BYTEA]:RT,[l.BYTEA_ARRAY]:FT,[l.BIT_ARRAY]:lA(UM),[l.VARBIT_ARRAY]:lA(UM),[l.XML_ARRAY]:lA(kT)};function LM(A,I){if(A===null)return null;if(Array.isArray(A)&&I.arity==="list")return A.map((g)=>LM(g,I));if(typeof A==="string"&&I.scalarType==="datetime")A=new Date(A);if(A instanceof Date)switch(I.dbType){case"TIME":case"TIMETZ":return yT(A);case"DATE":return MT(A);default:return ST(A)}if(typeof A==="string"&&I.scalarType==="bytes")return Buffer.from(A,"base64");if(ArrayBuffer.isView(A))return new Uint8Array(A.buffer,A.byteOffset,A.byteLength);return A}function ST(A){let I=(B,Q=2)=>String(B).padStart(Q,"0"),g=A.getUTCMilliseconds();return I(A.getUTCFullYear(),4)+"-"+I(A.getUTCMonth()+1)+"-"+I(A.getUTCDate())+" "+I(A.getUTCHours())+":"+I(A.getUTCMinutes())+":"+I(A.getUTCSeconds())+(g?"."+String(g).padStart(3,"0"):"")}function MT(A){let I=(g,B=2)=>String(g).padStart(B,"0");return I(A.getUTCFullYear(),4)+"-"+I(A.getUTCMonth()+1)+"-"+I(A.getUTCDate())}function yT(A){let I=(B,Q=2)=>String(B).padStart(Q,"0"),g=A.getUTCMilliseconds();return I(A.getUTCHours())+":"+I(A.getUTCMinutes())+":"+I(A.getUTCSeconds())+(g?"."+String(g).padStart(3,"0"):"")}var hT=new Set(["UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED","HOSTNAME_MISMATCH","ERR_TLS_CERT_ALTNAME_FORMAT","ERR_TLS_CERT_ALTNAME_INVALID"]),UT=new Set(["ENOTFOUND","ECONNREFUSED","ECONNRESET","ETIMEDOUT"]);function YT(A){if(cT(A))return HT(A);if(LT(A))return{kind:"TlsConnectionError",reason:A.message};if(aT(A))return{originalCode:A.code,originalMessage:A.message,...JT(A)};throw A}function JT(A){switch(A.code){case"22001":return{kind:"LengthMismatch",column:A.column};case"22003":return{kind:"ValueOutOfRange",cause:A.message};case"22P02":return{kind:"InvalidInputValue",message:A.message};case"23505":{let I=A.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"UniqueConstraintViolation",constraint:I!==void 0?{fields:I}:void 0}}case"23502":{let I=A.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"NullConstraintViolation",constraint:I!==void 0?{fields:I}:void 0}}case"23503":{let I;if(A.column)I={fields:[A.column]};else if(A.constraint)I={index:A.constraint};return{kind:"ForeignKeyConstraintViolation",constraint:I}}case"3D000":return{kind:"DatabaseDoesNotExist",db:A.message.split(" ").at(1)?.split('"').at(1)};case"28000":return{kind:"DatabaseAccessDenied",db:A.message.split(",").find((I)=>I.startsWith(" database"))?.split('"').at(1)};case"28P01":return{kind:"AuthenticationFailed",user:A.message.split(" ").pop()?.split('"').at(1)};case"40001":return{kind:"TransactionWriteConflict"};case"42P01":return{kind:"TableDoesNotExist",table:A.message.split(" ").at(1)?.split('"').at(1)};case"42703":return{kind:"ColumnNotFound",column:A.message.match(/^column (.+) does not exist$/)?.at(1)?.replace(/"((?:""|[^"])*)"/g,(g,B)=>B.replaceAll('""','"'))};case"42P04":return{kind:"DatabaseAlreadyExists",db:A.message.split(" ").at(1)?.split('"').at(1)};case"53300":return{kind:"TooManyConnections",cause:A.message};default:return{kind:"postgres",code:A.code??"N/A",severity:A.severity??"N/A",message:A.message,detail:A.detail,column:A.column,hint:A.hint}}}function aT(A){return typeof A.code==="string"&&typeof A.message==="string"&&typeof A.severity==="string"&&(typeof A.detail==="string"||A.detail===void 0)&&(typeof A.column==="string"||A.column===void 0)&&(typeof A.hint==="string"||A.hint===void 0)}function HT(A){switch(A.code){case"ENOTFOUND":case"ECONNREFUSED":return{kind:"DatabaseNotReachable",host:A.address??A.hostname,port:A.port};case"ECONNRESET":return{kind:"ConnectionClosed"};case"ETIMEDOUT":return{kind:"SocketTimeout"}}}function cT(A){return typeof A.code==="string"&&typeof A.syscall==="string"&&typeof A.errno==="number"&&UT.has(A.code)}function LT(A){if(typeof A.code==="string")return hT.has(A.code);switch(A.message){case"The server does not support SSL connections":case"There was an error establishing an SSL connection":return!0}return!1}var sT=jI.types,yI=uQ("prisma:driver-adapter:pg"),sM=class{constructor(A,I){this.client=A,this.pgOptions=I}provider="postgres";adapterName=JM;async queryRaw(A){yI("[js::query_raw] %O",A);let{fields:g,rows:B}=await this.performIO(A),Q=g.map((D)=>D.name),C=[];try{C=g.map((D)=>wT(D.dataTypeID))}catch(D){if(D instanceof cM)throw new FD({kind:"UnsupportedNativeDataType",type:D.type});throw D}let E=this.pgOptions?.userDefinedTypeParser;if(E)for(let D=0;D<g.length;D++){let i=g[D];if(i.dataTypeID>=aM&&!Object.hasOwn($D,i.dataTypeID))for(let G=0;G<B.length;G++)B[G][D]=await E(i.dataTypeID,B[G][D],this)}return{columnNames:Q,columnTypes:C,rows:B}}async executeRaw(A){return yI("[js::execute_raw] %O",A),(await this.performIO(A)).rowCount??0}async performIO(A){let{sql:I,args:g}=A,B=g.map((Q,C)=>LM(Q,A.argTypes[C]));try{return await this.client.query({name:this.pgOptions?.statementNameGenerator?.(A),text:I,values:B,rowMode:"array",types:{getTypeParser:(C,E)=>{if(E==="text"&&$D[C])return $D[C];return sT.getTypeParser(C,E)}}},B)}catch(Q){this.onError(Q)}}onError(A){throw yI("Error in performIO: %O",A),new FD(YT(A))}},qT=class extends sM{constructor(A,I,g,B){super(A,g);this.options=I,this.pgOptions=g,this.cleanup=B}async commit(){yI("[js::commit]"),this.cleanup?.(),this.client.release()}async rollback(){yI("[js::rollback]"),this.cleanup?.(),this.client.release()}async createSavepoint(A){await this.executeRaw({sql:`SAVEPOINT ${A}`,args:[],argTypes:[]})}async rollbackToSavepoint(A){await this.executeRaw({sql:`ROLLBACK TO SAVEPOINT ${A}`,args:[],argTypes:[]})}async releaseSavepoint(A){await this.executeRaw({sql:`RELEASE SAVEPOINT ${A}`,args:[],argTypes:[]})}},YM=class extends sM{constructor(A,I,g){super(A);this.pgOptions=I,this.release=g}async startTransaction(A){let I={usePhantomQuery:!1},g="[js::startTransaction]";yI("%s options: %O","[js::startTransaction]",I);let B=await this.client.connect().catch((E)=>this.onError(E)),Q=(E)=>{yI(`Error from pool connection: ${E.message} %O`,E),this.pgOptions?.onConnectionError?.(E)};B.on("error",Q);let C=()=>{B.removeListener("error",Q)};try{let E=new qT(B,I,this.pgOptions,C);if(await E.executeRaw({sql:"BEGIN",args:[],argTypes:[]}),A)await E.executeRaw({sql:`SET TRANSACTION ISOLATION LEVEL ${A}`,args:[],argTypes:[]});return E}catch(E){C(),B.release(E),this.onError(E)}}async executeScript(A){let I=A.split(";").map((g)=>g.trim()).filter((g)=>g.length>0);for(let g of I)try{await this.client.query(g)}catch(B){this.onError(B)}}getConnectionInfo(){return{schemaName:this.pgOptions?.schema,supportsRelationJoins:!0}}async dispose(){return this.release?.()}underlyingDriver(){return this.client}},qM=class{constructor(A,I){if(this.options=I,A instanceof jI.Pool)this.externalPool=A,this.config=A.options;else if(typeof A==="string")this.externalPool=null,this.config={connectionString:A};else this.externalPool=null,this.config=A}provider="postgres";adapterName=JM;config;externalPool;async connect(){let A=this.externalPool??new jI.Pool(this.config),I=(g)=>{yI(`Error from idle pool client: ${g.message} %O`,g),this.options?.onPoolError?.(g)};return A.on("error",I),new YM(A,this.options,async()=>{if(this.externalPool)if(this.options?.disposeExternalPool)await this.externalPool.end(),this.externalPool=null;else this.externalPool.removeListener("error",I);else await A.end()})}async connectToShadowDb(){let A=await this.connect(),I=`prisma_migrate_shadow_db_${globalThis.crypto.randomUUID()}`;await A.executeScript(`CREATE DATABASE "${I}"`);let g=new jI.Pool({...this.config,database:I});return new YM(g,void 0,async()=>{await A.executeScript(`DROP DATABASE "${I}"`),await g.end()})}};var xM;if(!Bun.env.FLUX_DATABASE_URL)throw Error("FLUX_DATABASE_URL is not set in environment variables");var xT=Bun.env.FLUX_DATABASE_URL,_D=()=>{return xM??=new bF({adapter:new qM({connectionString:xT})}),xM};class iC{_redisConnection;processAddress=II();constructor(A){this._redisConnection=A}async kickClient(A,I){let[g,B,Q]=cA(I),C=`${g}/${B}`;if(await this._redisConnection.publishCustom(`kick-client-${A}`,C,Q)===0)switch(A){case"agent":{await this._redisConnection.networkAgentRedisService.unregisterAgentOrThrow(Q);break}case"authority":{await this._redisConnection.networkAuthoritySet.unregisterAuthority(Q);break}default:throw Error(`Unknown client type: ${A}`)}}onKickClient(A,I){this._redisConnection.subscribeToCustom(`kick-client-${A}`,this.processAddress,(g)=>I(g))}}var ZM,eD=()=>{return ZM??=new Ai(new GE(_D()),wA()),ZM};class Ai{_networkTokenRepository;_redisConnection;constructor(A,I){this._networkTokenRepository=A;this._redisConnection=I}async createToken(A,I){let g=await this._networkTokenRepository.createToken(A,I);return this.publishAndStoreChangedTokens(A),g}async readByNetworkId(A){return this._networkTokenRepository.readByNetworkId(A)}async readTokensByNetworkId(A){let I=await this._redisConnection.getNetworkTokenValues(A);if(I.length>0)return I;let g=await this._networkTokenRepository.readTokensByNetworkId(A);return await this._redisConnection.setNetworkTokenValues(A,g),g}async countByNetworkId(A){return this._networkTokenRepository.countByNetworkId(A)}async findById(A){return this._networkTokenRepository.findById(A)}async rotateOutAllExcept(A,I,g){await this._networkTokenRepository.rotateOutAllExcept(A,I,g),this.publishAndStoreChangedTokens(A)}async deleteNetworkToken(A,I){await this._networkTokenRepository.deleteNetworkToken(A,I),this.publishAndStoreChangedTokens(A)}async publishAndStoreChangedTokens(A){let g=(await this.readByNetworkId(A)).map((B)=>B.token);this._redisConnection.publishNetworkTokenEvent(A,g).catch((B)=>console.error("Failed to publish token event to Redis:",B)),this._redisConnection.setNetworkTokenValues(A,g).catch((B)=>console.error("Failed to persist token values to Redis Set:",B))}}var WM,pT=()=>{return WM??=new CQ(wA(),eD()),WM},OM=async(A,I)=>{let g=TM.parse(A.url,!0),B=g.query.networkId;try{Mg(B??"")}catch(i){return new Response(i instanceof Error?i.message:"Unknown error validating network ID",{status:500})}let Q=B,C=await A.text();if(t.log(`Received authority token for network: ${Q}`,"authorize"),I?.has(Q)&&I.get(Q)===C)t.log(`Successfully authorized authority for network ${Q} using hardcoded credentials`,"authorize");else if(!await pT().isValidToken(Q,C))return new Response("Invalid network access token",{status:401,headers:{"Access-Control-Allow-Origin":"*"}});let E=g.query.machineUID,D;if(E&&yg(E))D=E;return new Response(gQ({networkId:Q,isAuthority:!0,machineUID:D}),{headers:{"Content-Type":"text/plain","Access-Control-Allow-Origin":"*"}})};import*as VM from"url";var jM=async(A,I,g)=>{let B=VM.parse(A.url,!0),Q=B.query.networkId;try{Mg(Q??"")}catch(i){return new Response(i instanceof Error?i.message:"Unknown error validating network ID",{status:500})}let C=Q;if(!C)return new Response("Missing networkId",{status:500,headers:{"Access-Control-Allow-Origin":"*"}});let E=await A.text(),D=A.headers.get("x-flux-content-type")?.toLowerCase();try{let i,G=await KC(async()=>{i=await I.resolveAuthorityAddressOrThrow(C);let o=await g.call(i,"authorizeAgentConnection",`${D==="application/json"?"json":"text"}:${E}`);return KN(o)},(o)=>{if(o instanceof dI||o instanceof AI)return I.removeUnresponsiveClient(C,i).catch((w)=>{if(w)t.log("Successfully removed unresponsive client from network authority cache","authorizeAgentConnection");else t.log("Failed to remove unresponsive client from network authority cache","authorizeAgentConnection")}),!0;return!1},{retries:10,delayMs:50,onRetry:(o,w)=>{console.log(`[authorizeAgentConnection] Retrying... (attempt: ${o} of ${w})`)}});if(G){let o=B.query.requestedAgentUid;if(o)try{NC(o)}catch(F){return new Response(F instanceof Error?F.message:"The requested agent ID is not valid",{status:500})}A.cookies.set("claim",G,{maxAge:604800,httpOnly:!0,secure:!0,path:"/"});let N=B.query.machineUID,k;if(N&&yg(N))k=N;return new Response(gQ({networkId:C,claim:G,agentUID:o,machineUID:k}),{headers:{"Content-Type":"text/plain","Access-Control-Allow-Origin":"*"}})}}catch(i){if(console.error("Error authorizing:",i instanceof Error?i.message:i),i instanceof UI)return new Response(i.message,{status:401,headers:{"Access-Control-Allow-Origin":"*"}})}return new Response("Unauthorized",{status:500,headers:{"Access-Control-Allow-Origin":"*"}})};import*as uM from"url";class Ii{redisConnection;bunServer;processAddress;constructor(A,I,g){this.redisConnection=A;this.bunServer=I;this.processAddress=g;this.subscribeWebsocketChannelEvent()}subscribeWebsocketChannelEvent(){this.redisConnection.subscribeWebsocketChannelEvent((A,I,g)=>{if(this.processAddress===I)return;this.bunServer.publish(g,A)})}async publish(A,I,g){(g??this.bunServer).publish(A,I),await this.redisConnection.publishWebsocketChannelEvent(this.processAddress,A,I)}}var dM=(A)=>{if(A.length<2)return"same-process";let I=new Set(A.map(Sg));if(I.size===1)return"same-process";if(new Set([...I].map(([B])=>B)).size===1)return"same-machine";return"distributed"};class GC{_redisConnection;constructor(A){this._redisConnection=A}async createNetworkChannelIfNotExist(A,I){let g=await this._redisConnection.hash.sadd(`networks/${A}/channels`,I);if(g===1)await this._redisConnection.hash.hset(`networks/${A}/channels/${I}`,{createdAt:new Date().toISOString(),memberDistribution:"same-process",usage:"0"});return g===1}async readNetworkChannels(A){let I=await this.readNetworkChannelNames(A),g=[];for(let B of I){let[Q,C,E,D]=await this._redisConnection.hash.hmget(`networks/${A}/channels/${B}`,["createdAt","memberDistribution","members","usage"]);if(Q&&C&&D)g.push({channelName:B,memberDistribution:C,members:Number.parseInt(E??"0",10),bytes:Number.parseInt(D||"0",10),createdAt:new Date(Q)})}return g}async readNetworkChannelNames(A){let I=await this._redisConnection.hash.smembers(`networks/${A}/channels`);try{if(!I.every(YI))throw Error("This will never happen")}catch(g){throw Error(`Caught error while reading networks (${A}) from Redis: ${g instanceof Error?g.message:"unknown error"}`)}return I}async readNetworkChannelCount(A){return{count:await this._redisConnection.hash.scard(`networks/${A}/channels`),date:new Date}}async readNetworkMemberCount(A,I){let[g]=await this._redisConnection.hash.hmget(`networks/${A}/channels/${I}`,["members"]);if(!g)return 0;return Number.parseInt(g,10)}async readNetworkChannelMemberAddresses(A,I){return await this._redisConnection.hash.smembers(`networks/${A}/channels/${I}/members`)}async deleteNetworkChannel(A,I){await this._redisConnection.hash.srem(`networks/${A}/channels`,I),await this._redisConnection.hash.del(`networks/${A}/channels/${I}`),await this._redisConnection.hash.del(`networks/${A}/channels/${I}/members`)}async joinNetworkChannel(A,I,g){let B=await this._redisConnection.hash.sadd(`networks/${A}/channels/${I}/members`,g);if(await this.checkAndUpdateChannelMemberDistribution(A,I),B===0)return t.warn(`Unexpected existing member on network / channel "${A}"/"${I}". The member appears to already be part of the channel and cannot be added again.`,"network-channel"),Promise.reject(Error(`Client ${g} is already a member of channel "${I}" on network "${A}".`));return await this._redisConnection.hash.hincrby(`networks/${A}/channels/${I}`,"members",1)}async leaveNetworkChannel(A,I,g){if(await this._redisConnection.hash.srem(`networks/${A}/channels/${I}/members`,g)===0)return t.warn(`Unexpected non-existing member on network / channel "${A}"/"${I}". The client does not appear to be a member of the channel and can not be removed.`,"network-channel"),Promise.reject(Error(`Client ${g} is not a member of channel "${I}" on network "${A}".`));let Q=await this._redisConnection.hash.hincrby(`networks/${A}/channels/${I}`,"members",-1);if(Q===0)t.log(`Network channel "${I}" has no more members. Deleting...`,"network-channel"),await this.deleteNetworkChannel(A,I);else await this.checkAndUpdateChannelMemberDistribution(A,I);return Q}async leaveAllNetworkChannels(A,I,g){return Promise.all([...g].map(async(B)=>{await this.leaveNetworkChannel(A,B,I)})).then(()=>{return})}async incrementUsage(A,I,g){return await this._redisConnection.hash.hincrby(`networks/${A}/channels/${I}`,"usage",g)}async checkAndUpdateChannelMemberDistribution(A,I){let g=await this.readNetworkChannelMemberAddresses(A,I),B=dM(g);await this._redisConnection.hash.hset(`networks/${A}/channels/${I}`,{memberDistribution:B})}}var bM={free:25,medium:500,high:1e5},OX=bM.high,gi=(A)=>{if(typeof A!=="string")return;let I=A.toLowerCase();if(I==="lowest"||I==="free")return"free";if(I==="medium"||I==="high")return I;return},ZT=(A)=>{return gi(A)??"free"},WT=(A)=>bM[ZT(A)],zM=(A)=>{if(typeof A!=="string"||A==="")return;let I=gi(A);if(I)return I;let g=(Q)=>{if(!Q||typeof Q!=="object")return;let C=Q,E=C.user,D=E&&typeof E==="object"?E:void 0,i=[C.subscriptionType,C.subscription,C.tier,C.plan,D?.subscriptionType,D?.subscription,D?.tier,D?.plan];for(let G of i){if(typeof G!=="string")continue;let o=gi(G);if(o)return o}return};try{let Q=JSON.parse(A),C=g(Q);if(C)return C}catch{}let B=A.split(".");if(B.length<2)return;try{let C=Buffer.from(B[1],"base64url").toString("utf8"),E=JSON.parse(C);return g(E)}catch{return}},TT=(A,I)=>A<WT(I);class Bi{_globalChannelPubsub;channelUsageCount=new Map;redisConnection=wA();networkChannelHash=new GC(this.redisConnection);constructor(A){this._globalChannelPubsub=A;setInterval(()=>{for(let[I,g]of this.channelUsageCount){if(g.usage>0)this.networkChannelHash.incrementUsage(g.networkId,I,g.usage);this.channelUsageCount.delete(I)}},5000)}async canHaveMembers(A,I,g){let B=await this.networkChannelHash.readNetworkMemberCount(A,I);return Promise.resolve(TT(B,g))}async joinNetworkChannel(A,I,g){return await this.createNetworkChannelIfNotExist(A,I),this.networkChannelHash.joinNetworkChannel(A,I,g)}async leaveNetworkChannel(A,I,g){if(await this.networkChannelHash.leaveNetworkChannel(A,I,g)===0)this._globalChannelPubsub.publish(`~/networks/${A}/channel-empty`,`${ai}:${I}`)}async leaveAllNetworkChannels(A,I,g){return await this.networkChannelHash.leaveAllNetworkChannels(A,I,g)}async createNetworkChannelIfNotExist(A,I){if(await this.networkChannelHash.createNetworkChannelIfNotExist(A,I))this._globalChannelPubsub.publish(`~/networks/${A}/channel-created`,`${Ji}:${I}`)}increaseUsageCount(A,I,g){let B=this.channelUsageCount.get(I);this.channelUsageCount.set(I,B?{...B,usage:B.usage+g}:{networkId:A,usage:g})}}class Qi{_clientMap;_networkAgentRedisCache;constructor(A,I){this._clientMap=A;this._networkAgentRedisCache=I}async kickAgent(A){let I=this._clientMap.get(A);if(I)I.close(1002,"Kicked by process"),this._clientMap.delete(A);else t.error("We expected to find a client, but didn't. Ignoring.","agent-manager");await this._networkAgentRedisCache.unregister(A,I?.data.networkId)}}class Ci{_redisConnection;_clientMap;_networkAgentRedisCache;machineAddress=jA();processAddress=VA();_globalClientManager;_localAgentManager;constructor(A,I,g){this._redisConnection=A;this._clientMap=I;this._networkAgentRedisCache=g;this._globalClientManager=new iC(this._redisConnection),this._localAgentManager=new Qi(this._clientMap,this._networkAgentRedisCache),this._globalClientManager.onKickClient("agent",this._localAgentManager.kickAgent.bind(this._localAgentManager))}kick(A){let[I,g,B]=cA(A);if(I!==this.machineAddress){this._globalClientManager.kickClient("agent",A);return}if(g!==this.processAddress){this._globalClientManager.kickClient("agent",A);return}this._localAgentManager.kickAgent(B)}}import*as fM from"url";var XM=["Steel yourself, traveler. Strange currents stir beyond these gates.","Every signal leaves a trail. Mind which ones you choose to follow.","I have watched green recruits chase glory into the dark and never return.","The mesh is restless today. Even the quiet channels feel like a warning.","Keep your wits sharp and your blade sharper. This road favors neither fools nor dreamers."];class Ei{randomNumberGenerator;constructor(A=Math.random){this.randomNumberGenerator=A}resolveInteraction(A){let I=A>5;return{interactionCount:A,isFinalResponse:I,message:this.resolveMessage(I),remainingRandomResponses:Math.max(5-A,0)}}resolveMessage(A){if(A)return"I have shared all the wisdom I can spare. The next step is yours alone, hero.";return XM[Math.floor(this.randomNumberGenerator()*XM.length)]}}class Di{interactionCountByUserAndNpc=new Map;incrementInteractionCount(A,I){let g=this.buildInteractionKey(A,I),B=(this.interactionCountByUserAndNpc.get(g)??0)+1;return this.interactionCountByUserAndNpc.set(g,B),B}buildInteractionKey(A,I){return`${A}:${I}`}}class ii{interactionTracker;dialogueScript;constructor(A=Math.random){this.interactionTracker=new Di,this.dialogueScript=new Ei(A)}interact(A,I){let g=this.interactionTracker.incrementInteractionCount(A,I);return this.dialogueScript.resolveInteraction(g)}}var OT="mesh-guide",PM=(A)=>{let I=A?.split(",")[0]?.trim();return I&&I.length>0?I:void 0},lM=(A)=>{if(typeof A!=="string")return;let I=A.trim();return I.length>0?I:void 0},VT=new ii(Math.random),jT=(A,I)=>lM(I.query.playerId)??PM(A.headers.get("x-forwarded-for"))??PM(A.headers.get("x-real-ip"))??"anonymous",mM=(A)=>{let I=fM.parse(A.url,!0),g=lM(I.query.npcId)??OT,B=jT(A,I),Q=VT.interact(B,g);return new Response(Q.message,{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};t.configure({allowScopes:"*"});var FB=new Map,Gi=VA(),oi=jA(),wi=II(),Ni=new Map;class pM{optionsOrPort;redisConnection=wA();onReadyListeners=new Set;bunServer;globalChannelPubsub;channelManager;agentManager;constructor(A){this.optionsOrPort=A;let I=typeof this.optionsOrPort==="number"?this.optionsOrPort:this.optionsOrPort?.port??5100,g=new MC,B=new yC,Q=new SC((D,i)=>{let G=FB.get(D);if(!G)throw new dI(D,wi);G.send(i)}),C=new EE,E=new QE(Q,C);this.agentManager=new Ci(this.redisConnection,FB,B),this.bunServer=tM.serve({port:I,idleTimeout:0,routes:{"/auth/network-authority":{OPTIONS:QQ,POST:(D)=>OM(D,A instanceof Object?A.hardcodedNetworkCredentials:void 0)},"/auth/network-client":{OPTIONS:QQ,POST:(D)=>jM(D,g,E)},"/*":{OPTIONS:QQ,GET:mM}},async fetch(D,i){let G=uM.parse(D.url,!0).query.token;try{let o=FN(G),w=XI();if(!i.upgrade(D,{data:{ip:i.requestIP(D),id:w,networkId:o.networkId,isAuthority:o.isAuthority,address:`${oi}/${Gi}/${w}`,claim:o.claim,uid:o.agentUID,machineUID:o.machineUID,channelNames:new Set,throughput:{bytes:0,packets:0}}}))return new Response("Request upgrade failed",{status:500,headers:{"Access-Control-Allow-Origin":"*"}})}catch{return console.error("Token verification failed"),new Response("Token verification failed",{status:500})}return new Response("Upgrade failed",{status:500})},websocket:{data:{},perMessageDeflate:!0,maxPayloadLength:1048576,async open(D){if(FB.set(D.data.id,D),D.data.isAuthority)t.log(`\uD83D\uDC6E Authority connected to network '${FC(D.data.networkId)}' at address: '${D.data.address}'`,"ws-connection"),await g.register(D.data.networkId,D.data.id,D.data.machineUID);else t.log(`\uD83E\uDD35 Agent connected: ${D.data.id}`,"ws-connection"),await B.registerAgent(D.data.networkId,D.data.id,D.data.ip,D.data.address,D.data.throughput,D.data.uid,D.data.machineUID),D.data.rtcClient=new DE(wi,D.send.bind(D),(i)=>{let G=Ni.get(D.data.id);Ni.set(D.data.id,G===void 0?new Set([i]):G.add(i))});D.send("isReady")},message:async(D,i)=>{if(typeof i!=="string")throw Error("Message is not a string");let G=new TextEncoder().encode(i).length;switch(D.data.throughput.bytes=D.data.throughput.bytes+G,D.data.throughput.packets++,i.split(":")[0]){case ci:{if(!D.data.isAuthority){D.close(4000,"Bad behavior");return}let w=i.substring(i.indexOf(":")+1);if(!kC(w)){D.send(`${MA}:Invalid agent ID`);return}this.agentManager.kick(w);return}case Hi:{if(!D.data.isAuthority){D.close(4000,"Bad behavior");return}D.subscribe(`~/networks/${D.data.networkId}/channel-created`),D.subscribe(`~/networks/${D.data.networkId}/channel-empty`);return}case Si:{let w=i.indexOf(":"),N=i.indexOf(":",w+1),k=i.slice(w+1,N),F=i.slice(N+1);if(YI(k)){if(D.data.channelNames.has(k))this.globalChannelPubsub.publish(`networks/${D.data.networkId}/channels/${k}`,`${Mi}:${D.data.id}:${k}:${F}`,D),this.channelManager.increaseUsageCount(D.data.networkId,k,G)}return}case yi:{let w=i.substring(i.indexOf(":")+1);try{YI(w)}catch{D.send(`${MA}:Not authorized`);return}let N=w;if(D.data.channelNames.has(N)){D.send(`${MA}:Agent is already subscribed to channnel`);return}let k;try{k=await g.resolveAuthorityAddressOrThrow(D.data.networkId)}catch(F){t.error(`Failed to resolve network authority address for networkId '${D.data.networkId}': ${F instanceof Error?F.message:"Unknown error"}`,"not-authorized"),D.send(`${MA}:${wC}`);return}try{if(!await this.channelManager.canHaveMembers(D.data.networkId,N,zM(D.data.claim))){D.send(`${MA}:Channel limit is reached`);return}try{if(await E.call(k,"authorizeChannelAccess",N,D.data.claim))D.subscribe(`networks/${D.data.networkId}/channels/${N}`),D.send(`${hi}:${N}`),D.data.channelNames.add(N),t.log(`\uD83C\uDF89 Client was authorized on channel name '${N}'`,"authorized"),await this.channelManager.joinNetworkChannel(D.data.networkId,N,D.data.address);else console.error(`Client was not authorized to connect to channel name '${N}'`),D.send(`${MA}:Not authorized`)}catch(R){if(R instanceof Error){D.send(`${MA}:${R.message}`);break}console.error("Unknown error",R),D.send(`${MA}:Unknown error`)}}catch(F){let R=F instanceof Error?F.message:"Unknown error";t.error(`Failed to authorize channel access for networkId '${D.data.networkId}' and channel '${N}': ${R}`,"not-authorized"),D.send(`${MA}:${R}`);return}return}case Ui:{let w=i.substring(i.indexOf(":")+1);try{YI(w)}catch{D.send(`${MA}:Not authorized`);return}let N=w;if(!D.data.channelNames.has(N)){D.send(`${MA}:Cannot unsubscribe. Agent is not connected to the channnel`);return}try{D.unsubscribe(`networks/${D.data.networkId}/channels/${N}`),D.send(`${Yi}:${N}`),D.data.channelNames.delete(N),console.log(`\uD83D\uDEAA Client left channel name '${N}'`),await this.channelManager.leaveNetworkChannel(D.data.networkId,N,D.data.address)}catch(k){if(k instanceof Error){D.send(`${MA}:${k.message}`);break}console.error("Unknown error",k),D.send(`${MA}:Unknown error`)}return}case Fi:{let w=JSON.parse(i.substring(i.indexOf(":")+1));t.log("\uD83D\uDCE1 Received RPC response.","rpc"),C.message(w.rpcProcessAddress,i);let N=Ni.get(D.data.id);for(let k of N??[])k(w);return}case Ri:{let w=D.data.rtcClient;if(!w)console.warn("Initiating client could not be resolved");let N=i.substring(i.indexOf(":")+1),k=await B.resolveClientAddressByUid(D.data.networkId,N),F=new iE(k,Q,C);if(w)RN(w,F);else D.send(`${MA}:RPC clients could not be resolved`);return}}},close:async(D,i)=>{if(FB.delete(D.data.id),D.data.isAuthority)t.log(`\uD83D\uDED1 Authority socket disconnecting ${i} ${D.data.id}`,"ws-disconnect"),g.unregister(D.data.id,D.data.networkId).catch();else{t.log(`\uD83D\uDED1\uD83E\uDD35 Agent socket disconnecting ${i} ${D.data.id}`,"ws-disconnect");for(let G of D.data.channelNames)D.unsubscribe(`networks/${D.data.networkId}/channels/${G}`);if(D.data.channelNames.size>0)await this.channelManager.leaveAllNetworkChannels(D.data.networkId,D.data.address,D.data.channelNames).catch(()=>{t.error("Caught error while leaving network channels.","ws-disconnect")});await B.unregister(D.data.id,D.data.networkId,D.data.uid?{clientOwnUId:D.data.uid,networkId:D.data.networkId}:void 0).catch(()=>{t.error("Caught error while unregistering agent.","ws-disconnect")})}},drain(D){console.log("drain")}}}),this.globalChannelPubsub=new Ii(this.redisConnection,this.bunServer,wi),this.channelManager=new Bi(this.globalChannelPubsub),setTimeout(()=>{console.log(`\uD83D\uDE80 Flux mesh server running on localhost:${I}`),setInterval(()=>{this.redisConnection.setConnected(`${oi}/${Gi}`)},3000);for(let D of this.onReadyListeners)D()},50)}onReady(A){this.onReadyListeners.add(A)}async stop(){FB.clear(),await this.bunServer.stop(!0),await this.redisConnection.setDisconnected(`${oi}/${Gi}`),await this.redisConnection.disconnect()}}export{pM as FluxMeshServer};
273
+ `,runtimeDataModel:{models:{},enums:{},types:{}},parameterizationSchema:{strings:[],graph:""}};tQ.runtimeDataModel=JSON.parse('{"models":{"User":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"userNetworks","kind":"object","type":"UserNetwork","relationName":"UserToUserNetwork"},{"name":"name","kind":"scalar","type":"String"},{"name":"emailVerified","kind":"scalar","type":"Boolean"},{"name":"image","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"sessions","kind":"object","type":"Session","relationName":"SessionToUser"},{"name":"accounts","kind":"object","type":"Account","relationName":"AccountToUser"},{"name":"createdNetworkTokens","kind":"object","type":"NetworkToken","relationName":"NetworkTokenToUser"},{"name":"isFluxAdmin","kind":"scalar","type":"Boolean"}],"dbName":"user"},"Network":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"alias","kind":"scalar","type":"String"},{"name":"subscriptionType","kind":"enum","type":"ESubscriptionType"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"userNetworks","kind":"object","type":"UserNetwork","relationName":"NetworkToUserNetwork"},{"name":"tokens","kind":"object","type":"NetworkToken","relationName":"NetworkToNetworkToken"}],"dbName":null},"NetworkToken":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"network","kind":"object","type":"Network","relationName":"NetworkToNetworkToken"},{"name":"token","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"createdByUserId","kind":"scalar","type":"String"},{"name":"createdByUser","kind":"object","type":"User","relationName":"NetworkTokenToUser"},{"name":"rotatedOutAt","kind":"scalar","type":"DateTime"}],"dbName":null},"UserNetwork":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"userId","kind":"scalar","type":"String"},{"name":"user","kind":"object","type":"User","relationName":"UserToUserNetwork"},{"name":"role","kind":"enum","type":"EUserNetworkRole"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"network","kind":"object","type":"Network","relationName":"NetworkToUserNetwork"}],"dbName":null},"UsageHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"usageKb","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ConnectedAuthoritiesHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"count","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ConnectedAgentsHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"count","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ChannelsHistory":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"networkId","kind":"scalar","type":"String"},{"name":"count","kind":"scalar","type":"Int"},{"name":"timeslotAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Session":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"token","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"ipAddress","kind":"scalar","type":"String"},{"name":"userAgent","kind":"scalar","type":"String"},{"name":"userId","kind":"scalar","type":"String"},{"name":"user","kind":"object","type":"User","relationName":"SessionToUser"}],"dbName":"session"},"Account":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"accountId","kind":"scalar","type":"String"},{"name":"providerId","kind":"scalar","type":"String"},{"name":"userId","kind":"scalar","type":"String"},{"name":"user","kind":"object","type":"User","relationName":"AccountToUser"},{"name":"accessToken","kind":"scalar","type":"String"},{"name":"refreshToken","kind":"scalar","type":"String"},{"name":"idToken","kind":"scalar","type":"String"},{"name":"accessTokenExpiresAt","kind":"scalar","type":"DateTime"},{"name":"refreshTokenExpiresAt","kind":"scalar","type":"DateTime"},{"name":"scope","kind":"scalar","type":"String"},{"name":"password","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":"account"},"Verification":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"identifier","kind":"scalar","type":"String"},{"name":"value","kind":"scalar","type":"String"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":"verification"}},"enums":{},"types":{}}');tQ.parameterizationSchema={strings:JSON.parse('["where","orderBy","cursor","user","userNetworks","network","createdByUser","tokens","_count","sessions","accounts","createdNetworkTokens","User.findUnique","User.findUniqueOrThrow","User.findFirst","User.findFirstOrThrow","User.findMany","data","User.createOne","User.createMany","User.createManyAndReturn","User.updateOne","User.updateMany","User.updateManyAndReturn","create","update","User.upsertOne","User.deleteOne","User.deleteMany","having","_min","_max","User.groupBy","User.aggregate","Network.findUnique","Network.findUniqueOrThrow","Network.findFirst","Network.findFirstOrThrow","Network.findMany","Network.createOne","Network.createMany","Network.createManyAndReturn","Network.updateOne","Network.updateMany","Network.updateManyAndReturn","Network.upsertOne","Network.deleteOne","Network.deleteMany","Network.groupBy","Network.aggregate","NetworkToken.findUnique","NetworkToken.findUniqueOrThrow","NetworkToken.findFirst","NetworkToken.findFirstOrThrow","NetworkToken.findMany","NetworkToken.createOne","NetworkToken.createMany","NetworkToken.createManyAndReturn","NetworkToken.updateOne","NetworkToken.updateMany","NetworkToken.updateManyAndReturn","NetworkToken.upsertOne","NetworkToken.deleteOne","NetworkToken.deleteMany","NetworkToken.groupBy","NetworkToken.aggregate","UserNetwork.findUnique","UserNetwork.findUniqueOrThrow","UserNetwork.findFirst","UserNetwork.findFirstOrThrow","UserNetwork.findMany","UserNetwork.createOne","UserNetwork.createMany","UserNetwork.createManyAndReturn","UserNetwork.updateOne","UserNetwork.updateMany","UserNetwork.updateManyAndReturn","UserNetwork.upsertOne","UserNetwork.deleteOne","UserNetwork.deleteMany","UserNetwork.groupBy","UserNetwork.aggregate","UsageHistory.findUnique","UsageHistory.findUniqueOrThrow","UsageHistory.findFirst","UsageHistory.findFirstOrThrow","UsageHistory.findMany","UsageHistory.createOne","UsageHistory.createMany","UsageHistory.createManyAndReturn","UsageHistory.updateOne","UsageHistory.updateMany","UsageHistory.updateManyAndReturn","UsageHistory.upsertOne","UsageHistory.deleteOne","UsageHistory.deleteMany","_avg","_sum","UsageHistory.groupBy","UsageHistory.aggregate","ConnectedAuthoritiesHistory.findUnique","ConnectedAuthoritiesHistory.findUniqueOrThrow","ConnectedAuthoritiesHistory.findFirst","ConnectedAuthoritiesHistory.findFirstOrThrow","ConnectedAuthoritiesHistory.findMany","ConnectedAuthoritiesHistory.createOne","ConnectedAuthoritiesHistory.createMany","ConnectedAuthoritiesHistory.createManyAndReturn","ConnectedAuthoritiesHistory.updateOne","ConnectedAuthoritiesHistory.updateMany","ConnectedAuthoritiesHistory.updateManyAndReturn","ConnectedAuthoritiesHistory.upsertOne","ConnectedAuthoritiesHistory.deleteOne","ConnectedAuthoritiesHistory.deleteMany","ConnectedAuthoritiesHistory.groupBy","ConnectedAuthoritiesHistory.aggregate","ConnectedAgentsHistory.findUnique","ConnectedAgentsHistory.findUniqueOrThrow","ConnectedAgentsHistory.findFirst","ConnectedAgentsHistory.findFirstOrThrow","ConnectedAgentsHistory.findMany","ConnectedAgentsHistory.createOne","ConnectedAgentsHistory.createMany","ConnectedAgentsHistory.createManyAndReturn","ConnectedAgentsHistory.updateOne","ConnectedAgentsHistory.updateMany","ConnectedAgentsHistory.updateManyAndReturn","ConnectedAgentsHistory.upsertOne","ConnectedAgentsHistory.deleteOne","ConnectedAgentsHistory.deleteMany","ConnectedAgentsHistory.groupBy","ConnectedAgentsHistory.aggregate","ChannelsHistory.findUnique","ChannelsHistory.findUniqueOrThrow","ChannelsHistory.findFirst","ChannelsHistory.findFirstOrThrow","ChannelsHistory.findMany","ChannelsHistory.createOne","ChannelsHistory.createMany","ChannelsHistory.createManyAndReturn","ChannelsHistory.updateOne","ChannelsHistory.updateMany","ChannelsHistory.updateManyAndReturn","ChannelsHistory.upsertOne","ChannelsHistory.deleteOne","ChannelsHistory.deleteMany","ChannelsHistory.groupBy","ChannelsHistory.aggregate","Session.findUnique","Session.findUniqueOrThrow","Session.findFirst","Session.findFirstOrThrow","Session.findMany","Session.createOne","Session.createMany","Session.createManyAndReturn","Session.updateOne","Session.updateMany","Session.updateManyAndReturn","Session.upsertOne","Session.deleteOne","Session.deleteMany","Session.groupBy","Session.aggregate","Account.findUnique","Account.findUniqueOrThrow","Account.findFirst","Account.findFirstOrThrow","Account.findMany","Account.createOne","Account.createMany","Account.createManyAndReturn","Account.updateOne","Account.updateMany","Account.updateManyAndReturn","Account.upsertOne","Account.deleteOne","Account.deleteMany","Account.groupBy","Account.aggregate","Verification.findUnique","Verification.findUniqueOrThrow","Verification.findFirst","Verification.findFirstOrThrow","Verification.findMany","Verification.createOne","Verification.createMany","Verification.createManyAndReturn","Verification.updateOne","Verification.updateMany","Verification.updateManyAndReturn","Verification.upsertOne","Verification.deleteOne","Verification.deleteMany","Verification.groupBy","Verification.aggregate","AND","OR","NOT","id","identifier","value","expiresAt","createdAt","updatedAt","equals","in","notIn","lt","lte","gt","gte","not","contains","startsWith","endsWith","accountId","providerId","userId","accessToken","refreshToken","idToken","accessTokenExpiresAt","refreshTokenExpiresAt","scope","password","token","ipAddress","userAgent","networkId","count","timeslotAt","usageKb","EUserNetworkRole","role","createdByUserId","rotatedOutAt","alias","ESubscriptionType","subscriptionType","every","some","none","email","name","emailVerified","image","isFluxAdmin","is","isNot","connectOrCreate","upsert","createMany","set","disconnect","delete","connect","updateMany","deleteMany","increment","decrement","multiply","divide"]'),graph:"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-8BIgIAAAAyACARAAA_ACAFxwEBAOECACHLAUAA4gIAIcwBQADiAgAh7QEBAOECACHvAQAAlwPvASICAAAANQAgEQAAQQAgAgAAADUAIBEAAEEAIAMAAAAyACAYAAA6ACAZAAA_ACABAAAAMgAgAQAAADUAIAMIAACUAwAgHgAAlgMAIB8AAJUDACAIxAEAAMUCADDFAQAASAAQxgEAAMUCADDHAQEAoQIAIcsBQACiAgAhzAFAAKICACHtAQEAoQIAIe8BAADGAu8BIgMAAAA1ACABAABHADAdAABIACADAAAANQAgAQAANgAwAgAAMgAgAQAAAAoAIAEAAAAKACADAAAACAAgAQAACQAwAgAACgAgAwAAAAgAIAEAAAkAMAIAAAoAIAMAAAAIACABAAAJADACAAAKACAIBQAAkgMAIAYAAJMDACDHAQEAAAABywFAAAAAAeIBAQAAAAHlAQEAAAAB6wEBAAAAAewBQAAAAAEBEQAAUAAgBscBAQAAAAHLAUAAAAAB4gEBAAAAAeUBAQAAAAHrAQEAAAAB7AFAAAAAAQERAABSADABEQAAUgAwCAUAAJADACAGAACRAwAgxwEBAOECACHLAUAA4gIAIeIBAQDhAgAh5QEBAOECACHrAQEA4QIAIewBQADoAgAhAgAAAAoAIBEAAFUAIAbHAQEA4QIAIcsBQADiAgAh4gEBAOECACHlAQEA4QIAIesBAQDhAgAh7AFAAOgCACECAAAACAAgEQAAVwAgAgAAAAgAIBEAAFcAIAMAAAAKACAYAABQACAZAABVACABAAAACgAgAQAAAAgAIAQIAACNAwAgHgAAjwMAIB8AAI4DACDsAQAA4wIAIAnEAQAAxAIAMMUBAABeABDGAQAAxAIAMMcBAQChAgAhywFAAKICACHiAQEAoQIAIeUBAQChAgAh6wEBAKECACHsAUAArQIAIQMAAAAIACABAABdADAdAABeACADAAAACAAgAQAACQAwAgAACgAgAQAAAAUAIAEAAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACAGAwAAiwMAIAUAAIwDACDHAQEAAAAB2gEBAAAAAeUBAQAAAAHqAQAAAOoBAgERAABmACAExwEBAAAAAdoBAQAAAAHlAQEAAAAB6gEAAADqAQIBEQAAaAAwAREAAGgAMAYDAACJAwAgBQAAigMAIMcBAQDhAgAh2gEBAOECACHlAQEA4QIAIeoBAACIA-oBIgIAAAAFACARAABrACAExwEBAOECACHaAQEA4QIAIeUBAQDhAgAh6gEAAIgD6gEiAgAAAAMAIBEAAG0AIAIAAAADACARAABtACADAAAABQAgGAAAZgAgGQAAawAgAQAAAAUAIAEAAAADACADCAAAhQMAIB4AAIcDACAfAACGAwAgB8QBAADAAgAwxQEAAHQAEMYBAADAAgAwxwEBAKECACHaAQEAoQIAIeUBAQChAgAh6gEAAMEC6gEiAwAAAAMAIAEAAHMAMB0AAHQAIAMAAAADACABAAAEADACAAAFACAHxAEAAL8CADDFAQAAegAQxgEAAL8CADDHAQEAAAAB5QEBAKkCACHnAUAAqgIAIegBAgC5AgAhAQAAAHcAIAEAAAB3ACAHxAEAAL8CADDFAQAAegAQxgEAAL8CADDHAQEAqQIAIeUBAQCpAgAh5wFAAKoCACHoAQIAuQIAIQADAAAAegAgAQAAewAwAgAAdwAgAwAAAHoAIAEAAHsAMAIAAHcAIAMAAAB6ACABAAB7ADACAAB3ACAExwEBAAAAAeUBAQAAAAHnAUAAAAAB6AECAAAAAQERAAB_ACAExwEBAAAAAeUBAQAAAAHnAUAAAAAB6AECAAAAAQERAACBAQAwAREAAIEBADAExwEBAOECACHlAQEA4QIAIecBQADiAgAh6AECAPUCACECAAAAdwAgEQAAhAEAIATHAQEA4QIAIeUBAQDhAgAh5wFAAOICACHoAQIA9QIAIQIAAAB6ACARAACGAQAgAgAAAHoAIBEAAIYBACADAAAAdwAgGAAAfwAgGQAAhAEAIAEAAAB3ACABAAAAegAgBQgAAIADACAeAACDAwAgHwAAggMAIGAAAIEDACBhAACEAwAgB8QBAAC-AgAwxQEAAI0BABDGAQAAvgIAMMcBAQChAgAh5QEBAKECACHnAUAAogIAIegBAgC1AgAhAwAAAHoAIAEAAIwBADAdAACNAQAgAwAAAHoAIAEAAHsAMAIAAHcAIAfEAQAAvQIAMMUBAACTAQAQxgEAAL0CADDHAQEAAAAB5QEBAKkCACHmAQIAuQIAIecBQACqAgAhAQAAAJABACABAAAAkAEAIAfEAQAAvQIAMMUBAACTAQAQxgEAAL0CADDHAQEAqQIAIeUBAQCpAgAh5gECALkCACHnAUAAqgIAIQADAAAAkwEAIAEAAJQBADACAACQAQAgAwAAAJMBACABAACUAQAwAgAAkAEAIAMAAACTAQAgAQAAlAEAMAIAAJABACAExwEBAAAAAeUBAQAAAAHmAQIAAAAB5wFAAAAAAQERAACYAQAgBMcBAQAAAAHlAQEAAAAB5gECAAAAAecBQAAAAAEBEQAAmgEAMAERAACaAQAwBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAJABACARAACdAQAgBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAJMBACARAACfAQAgAgAAAJMBACARAACfAQAgAwAAAJABACAYAACYAQAgGQAAnQEAIAEAAACQAQAgAQAAAJMBACAFCAAA-wIAIB4AAP4CACAfAAD9AgAgYAAA_AIAIGEAAP8CACAHxAEAALwCADDFAQAApgEAEMYBAAC8AgAwxwEBAKECACHlAQEAoQIAIeYBAgC1AgAh5wFAAKICACEDAAAAkwEAIAEAAKUBADAdAACmAQAgAwAAAJMBACABAACUAQAwAgAAkAEAIAfEAQAAuwIAMMUBAACsAQAQxgEAALsCADDHAQEAAAAB5QEBAKkCACHmAQIAuQIAIecBQACqAgAhAQAAAKkBACABAAAAqQEAIAfEAQAAuwIAMMUBAACsAQAQxgEAALsCADDHAQEAqQIAIeUBAQCpAgAh5gECALkCACHnAUAAqgIAIQADAAAArAEAIAEAAK0BADACAACpAQAgAwAAAKwBACABAACtAQAwAgAAqQEAIAMAAACsAQAgAQAArQEAMAIAAKkBACAExwEBAAAAAeUBAQAAAAHmAQIAAAAB5wFAAAAAAQERAACxAQAgBMcBAQAAAAHlAQEAAAAB5gECAAAAAecBQAAAAAEBEQAAswEAMAERAACzAQAwBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAKkBACARAAC2AQAgBMcBAQDhAgAh5QEBAOECACHmAQIA9QIAIecBQADiAgAhAgAAAKwBACARAAC4AQAgAgAAAKwBACARAAC4AQAgAwAAAKkBACAYAACxAQAgGQAAtgEAIAEAAACpAQAgAQAAAKwBACAFCAAA9gIAIB4AAPkCACAfAAD4AgAgYAAA9wIAIGEAAPoCACAHxAEAALoCADDFAQAAvwEAEMYBAAC6AgAwxwEBAKECACHlAQEAoQIAIeYBAgC1AgAh5wFAAKICACEDAAAArAEAIAEAAL4BADAdAAC_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_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_ABAAAIACDxAQAACAAg8gEAAAgAIAvEAQAAzQIAMMUBAAAvABDGAQAAzQIAMMcBAQChAgAhywFAAKICACHMAUAAogIAIfMBAQChAgAh9AEBAKECACH1ASAAzgIAIfYBAQCsAgAh9wEgAM4CACEFCAAApAIAIB4AANACACAfAADQAgAgzQEgAAAAAdQBIADPAgAhBQgAAKQCACAeAADQAgAgHwAA0AIAIM0BIAAAAAHUASAAzwIAIQLNASAAAAAB1AEgANACACEPBAAAywIAIAkAANQCACAKAADVAgAgCwAAzAIAIMQBAADRAgAwxQEAABwAEMYBAADRAgAwxwEBAKkCACHLAUAAqgIAIcwBQACqAgAh8wEBAKkCACH0AQEAqQIAIfUBIADSAgAh9gEBANMCACH3ASAA0gIAIQLNASAAAAAB1AEgANACACELzQEBAAAAAc4BAQAAAAXPAQEAAAAF0AEBAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQCyAgAh1QEBAAAAAdYBAQAAAAHXAQEAAAABA_ABAAAOACDxAQAADgAg8gEAAA4AIAPwAQAAEgAg8QEAABIAIPIBAAASACARAwAA2AIAIMQBAADWAgAwxQEAABIAEMYBAADWAgAwxwEBAKkCACHLAUAAqgIAIcwBQACqAgAh2AEBAKkCACHZAQEAqQIAIdoBAQCpAgAh2wEBANMCACHcAQEA0wIAId0BAQDTAgAh3gFAANcCACHfAUAA1wIAIeABAQDTAgAh4QEBANMCACEIzQFAAAAAAc4BQAAAAAXPAUAAAAAF0AFAAAAAAdEBQAAAAAHSAUAAAAAB0wFAAAAAAdQBQACwAgAhEQQAAMsCACAJAADUAgAgCgAA1QIAIAsAAMwCACDEAQAA0QIAMMUBAAAcABDGAQAA0QIAMMcBAQCpAgAhywFAAKoCACHMAUAAqgIAIfMBAQCpAgAh9AEBAKkCACH1ASAA0gIAIfYBAQDTAgAh9wEgANICACH4AQAAHAAg-QEAABwAIAwDAADYAgAgxAEAANkCADDFAQAADgAQxgEAANkCADDHAQEAqQIAIcoBQACqAgAhywFAAKoCACHMAUAAqgIAIdoBAQCpAgAh4gEBAKkCACHjAQEA0wIAIeQBAQDTAgAhCwUAANsCACAGAADYAgAgxAEAANoCADDFAQAACAAQxgEAANoCADDHAQEAqQIAIcsBQACqAgAh4gEBAKkCACHlAQEAqQIAIesBAQCpAgAh7AFAANcCACEMBAAAywIAIAcAAMwCACDEAQAAyQIAMMUBAAA1ABDGAQAAyQIAMMcBAQCpAgAhywFAAKoCACHMAUAAqgIAIe0BAQCpAgAh7wEAAMoC7wEi-AEAADUAIPkBAAA1ACAJAwAA2AIAIAUAANsCACDEAQAA3AIAMMUBAAADABDGAQAA3AIAMMcBAQCpAgAh2gEBAKkCACHlAQEAqQIAIeoBAADdAuoBIgTNAQAAAOoBAs4BAAAA6gEIzwEAAADqAQjUAQAAwwLqASIAAAAB_QEBAAAAAQH9AUAAAAABAAAAAAH9AQEAAAABAf0BQAAAAAEFGAAAjwQAIBkAAJIEACD6AQAAkAQAIPsBAACRBAAggAIAAAEAIAMYAACPBAAg-gEAAJAEACCAAgAAAQAgAAAABRgAAIoEACAZAACNBAAg-gEAAIsEACD7AQAAjAQAIIACAAABACADGAAAigQAIPoBAACLBAAggAIAAAEAIAAAAAAABf0BAgAAAAGDAgIAAAABhAICAAAAAYUCAgAAAAGGAgIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAf0BAAAA6gECBRgAAIIEACAZAACIBAAg-gEAAIMEACD7AQAAhwQAIIACAAABACAFGAAAgAQAIBkAAIUEACD6AQAAgQQAIPsBAACEBAAggAIAADIAIAMYAACCBAAg-gEAAIMEACCAAgAAAQAgAxgAAIAEACD6AQAAgQQAIIACAAAyACAAAAAFGAAA-AMAIBkAAP4DACD6AQAA-QMAIPsBAAD9AwAggAIAADIAIAUYAAD2AwAgGQAA-wMAIPoBAAD3AwAg-wEAAPoDACCAAgAAAQAgAxgAAPgDACD6AQAA-QMAIIACAAAyACADGAAA9gMAIPoBAAD3AwAggAIAAAEAIAAAAAH9AQAAAO8BAgsYAACmAwAwGQAAqwMAMPoBAACnAwAw-wEAAKgDADD8AQAAqQMAIP0BAACqAwAw_gEAAKoDADD_AQAAqgMAMIACAACqAwAwgQIAAKwDADCCAgAArQMAMAsYAACaAwAwGQAAnwMAMPoBAACbAwAw-wEAAJwDADD8AQAAnQMAIP0BAACeAwAw_gEAAJ4DADD_AQAAngMAMIACAACeAwAwgQIAAKADADCCAgAAoQMAMAYGAACTAwAgxwEBAAAAAcsBQAAAAAHiAQEAAAAB6wEBAAAAAewBQAAAAAECAAAACgAgGAAApQMAIAMAAAAKACAYAAClAwAgGQAApAMAIAERAAD1AwAwCwUAANsCACAGAADYAgAgxAEAANoCADDFAQAACAAQxgEAANoCADDHAQEAAAABywFAAKoCACHiAQEAAAAB5QEBAKkCACHrAQEAqQIAIewBQADXAgAhAgAAAAoAIBEAAKQDACACAAAAogMAIBEAAKMDACAJxAEAAKEDADDFAQAAogMAEMYBAAChAwAwxwEBAKkCACHLAUAAqgIAIeIBAQCpAgAh5QEBAKkCACHrAQEAqQIAIewBQADXAgAhCcQBAAChAwAwxQEAAKIDABDGAQAAoQMAMMcBAQCpAgAhywFAAKoCACHiAQEAqQIAIeUBAQCpAgAh6wEBAKkCACHsAUAA1wIAIQXHAQEA4QIAIcsBQADiAgAh4gEBAOECACHrAQEA4QIAIewBQADoAgAhBgYAAJEDACDHAQEA4QIAIcsBQADiAgAh4gEBAOECACHrAQEA4QIAIewBQADoAgAhBgYAAJMDACDHAQEAAAABywFAAAAAAeIBAQAAAAHrAQEAAAAB7AFAAAAAAQQDAACLAwAgxwEBAAAAAdoBAQAAAAHqAQAAAOoBAgIAAAAFACAYAACxAwAgAwAAAAUAIBgAALEDACAZAACwAwAgAREAAPQDADAJAwAA2AIAIAUAANsCACDEAQAA3AIAMMUBAAADABDGAQAA3AIAMMcBAQAAAAHaAQEAqQIAIeUBAQCpAgAh6gEAAN0C6gEiAgAAAAUAIBEAALADACACAAAArgMAIBEAAK8DACAHxAEAAK0DADDFAQAArgMAEMYBAACtAwAwxwEBAKkCACHaAQEAqQIAIeUBAQCpAgAh6gEAAN0C6gEiB8QBAACtAwAwxQEAAK4DABDGAQAArQMAMMcBAQCpAgAh2gEBAKkCACHlAQEAqQIAIeoBAADdAuoBIgPHAQEA4QIAIdoBAQDhAgAh6gEAAIgD6gEiBAMAAIkDACDHAQEA4QIAIdoBAQDhAgAh6gEAAIgD6gEiBAMAAIsDACDHAQEAAAAB2gEBAAAAAeoBAAAA6gECBBgAAKYDADD6AQAApwMAMPwBAACpAwAggAIAAKoDADAEGAAAmgMAMPoBAACbAwAw_AEAAJ0DACCAAgAAngMAMAAAAAAAAf0BIAAAAAELGAAA3wMAMBkAAOMDADD6AQAA4AMAMPsBAADhAwAw_AEAAOIDACD9AQAAqgMAMP4BAACqAwAw_wEAAKoDADCAAgAAqgMAMIECAADkAwAwggIAAK0DADALGAAA0wMAMBkAANgDADD6AQAA1AMAMPsBAADVAwAw_AEAANYDACD9AQAA1wMAMP4BAADXAwAw_wEAANcDADCAAgAA1wMAMIECAADZAwAwggIAANoDADALGAAAxwMAMBkAAMwDADD6AQAAyAMAMPsBAADJAwAw_AEAAMoDACD9AQAAywMAMP4BAADLAwAw_wEAAMsDADCAAgAAywMAMIECAADNAwAwggIAAM4DADALGAAAvgMAMBkAAMIDADD6AQAAvwMAMPsBAADAAwAw_AEAAMEDACD9AQAAngMAMP4BAACeAwAw_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_AEAAMoDACCAAgAAywMAMAQYAAC-AwAw-gEAAL8DADD8AQAAwQMAIIACAACeAwAwAAAFBAAAtAMAIAkAAOwDACAKAADtAwAgCwAAtQMAIPYBAADjAgAgAgQAALQDACAHAAC1AwAgA8cBAQAAAAHlAQEAAAAB6gEAAADqAQIHxwEBAAAAAcoBQAAAAAHLAUAAAAABzAFAAAAAAeIBAQAAAAHjAQEAAAAB5AEBAAAAAQzHAQEAAAABywFAAAAAAcwBQAAAAAHYAQEAAAAB2QEBAAAAAdsBAQAAAAHcAQEAAAAB3QEBAAAAAd4BQAAAAAHfAUAAAAAB4AEBAAAAAeEBAQAAAAEFxwEBAAAAAcsBQAAAAAHiAQEAAAAB5QEBAAAAAewBQAAAAAEDxwEBAAAAAdoBAQAAAAHqAQAAAOoBAgXHAQEAAAABywFAAAAAAeIBAQAAAAHrAQEAAAAB7AFAAAAAAQsEAADoAwAgCQAA6QMAIAoAAOoDACDHAQEAAAABywFAAAAAAcwBQAAAAAHzAQEAAAAB9AEBAAAAAfUBIAAAAAH2AQEAAAAB9wEgAAAAAQIAAAABACAYAAD2AwAgBgQAALIDACDHAQEAAAABywFAAAAAAcwBQAAAAAHtAQEAAAAB7wEAAADvAQICAAAAMgAgGAAA-AMAIAMAAAAcACAYAAD2AwAgGQAA_AMAIA0AAAAcACAEAAC6AwAgCQAAuwMAIAoAALwDACARAAD8AwAgxwEBAOECACHLAUAA4gIAIcwBQADiAgAh8wEBAOECACH0AQEA4QIAIfUBIAC5AwAh9gEBAOcCACH3ASAAuQMAIQsEAAC6AwAgCQAAuwMAIAoAALwDACDHAQEA4QIAIcsBQADiAgAhzAFAAOICACHzAQEA4QIAIfQBAQDhAgAh9QEgALkDACH2AQEA5wIAIfcBIAC5AwAhAwAAADUAIBgAAPgDACAZAAD_AwAgCAAAADUAIAQAAJgDACARAAD_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-QEJqwH6AVWsAfwBB60B_gEJrgH_AVavAYACB7ABgQIHsQGCAgmyAYUCV7MBhgJbtAGIAly1AYkCXLYBjAJctwGNAly4AY4CXLkBkAJcugGSAgm7AZMCXbwBlQJcvQGXAgm-AZgCXr8BmQJcwAGaAlzBAZsCCcIBngJfwwGfAmM"};async function Y4(A){let{Buffer:I}=await import("buffer"),g=I.from(A,"base64");return new WebAssembly.Module(g)}tQ.compilerWasm={getRuntime:async()=>await Promise.resolve().then(() => (WF(),ZF)),getQueryCompilerWasmModule:async()=>{let{wasm:A}=await Promise.resolve().then(() => (OF(),TF));return await Y4(A)},importName:"./query_compiler_fast_bg.js"};function jF(){return VF.getPrismaClient(tQ)}var gA=SB(iD(),1);var hb=gA.Extensions.getExtensionContext;var Ub={DbNull:gA.NullTypes.DbNull,JsonNull:gA.NullTypes.JsonNull,AnyNull:gA.NullTypes.AnyNull};var Yb=gA.makeStrictEnum({ReadUncommitted:"ReadUncommitted",ReadCommitted:"ReadCommitted",RepeatableRead:"RepeatableRead",Serializable:"Serializable"});var Jb=gA.Extensions.defineExtension;globalThis.__dirname=dF.dirname(c4(import.meta.url));var bF=jF();var L4=Object.defineProperty,s4=(A,I)=>{for(var g in I)L4(A,g,{get:I[g],enumerable:!0})},ND={};s4(ND,{$:()=>tF,bgBlack:()=>t4,bgBlue:()=>n4,bgCyan:()=>_4,bgGreen:()=>r4,bgMagenta:()=>$4,bgRed:()=>u4,bgWhite:()=>e4,bgYellow:()=>v4,black:()=>V4,blue:()=>z4,bold:()=>uF,cyan:()=>P4,dim:()=>x4,gray:()=>l4,green:()=>d4,grey:()=>m4,hidden:()=>T4,inverse:()=>W4,italic:()=>p4,magenta:()=>X4,red:()=>j4,reset:()=>q4,strikethrough:()=>O4,underline:()=>Z4,white:()=>f4,yellow:()=>b4});var kD,PF,fF,lF,mF=!0;if(typeof process<"u")({FORCE_COLOR:kD,NODE_DISABLE_COLORS:PF,NO_COLOR:fF,TERM:lF}=process.env||{}),mF=process.stdout&&process.stdout.isTTY;var tF={enabled:!PF&&fF==null&&lF!=="dumb"&&(kD!=null&&kD!=="0"||mF)};function $(A,I){let g=new RegExp(`\\x1b\\[${I}m`,"g"),B=`\x1B[${A}m`,Q=`\x1B[${I}m`;return function(C){if(!tF.enabled||C==null)return C;return B+(~(""+C).indexOf(Q)?C.replace(g,Q+B):C)+Q}}var q4=$(0,0),uF=$(1,22),x4=$(2,22),p4=$(3,23),Z4=$(4,24),W4=$(7,27),T4=$(8,28),O4=$(9,29),V4=$(30,39),j4=$(31,39),d4=$(32,39),b4=$(33,39),z4=$(34,39),X4=$(35,39),P4=$(36,39),f4=$(37,39),l4=$(90,39),m4=$(90,39),t4=$(40,49),u4=$(41,49),r4=$(42,49),v4=$(43,49),n4=$(44,49),$4=$(45,49),_4=$(46,49),e4=$(47,49),Ap=100,zF=["green","yellow","blue","magenta","cyan","red"],wD=[],XF=Date.now(),Ip=0,KD=typeof process<"u"?process.env:{};globalThis.DEBUG??=KD.DEBUG??"";globalThis.DEBUG_COLORS??=KD.DEBUG_COLORS?KD.DEBUG_COLORS==="true":!0;var QB={enable(A){if(typeof A==="string")globalThis.DEBUG=A},disable(){let A=globalThis.DEBUG;return globalThis.DEBUG="",A},enabled(A){let I=globalThis.DEBUG.split(",").map((Q)=>{return Q.replace(/[.+?^${}()|[\]\\]/g,"\\$&")}),g=I.some((Q)=>{if(Q===""||Q[0]==="-")return!1;return A.match(RegExp(Q.split("*").join(".*")+"$"))}),B=I.some((Q)=>{if(Q===""||Q[0]!=="-")return!1;return A.match(RegExp(Q.slice(1).split("*").join(".*")+"$"))});return g&&!B},log:(...A)=>{let[I,g,...B]=A;(console.warn??console.log)(`${I} ${g}`,...B)},formatters:{}};function gp(A){let I={color:zF[Ip++%zF.length],enabled:QB.enabled(A),namespace:A,log:QB.log,extend:()=>{}};return new Proxy((...B)=>{let{enabled:Q,namespace:C,color:E,log:D}=I;if(B.length!==0)wD.push([C,...B]);if(wD.length>Ap)wD.shift();if(QB.enabled(C)||Q){let i=B.map((o)=>{if(typeof o==="string")return o;return Bp(o)}),G=`+${Date.now()-XF}ms`;if(XF=Date.now(),globalThis.DEBUG_COLORS)D(ND[E](uF(C)),...i,ND[E](G));else D(C,...i,G)}},{get:(B,Q)=>I[Q],set:(B,Q,C)=>I[Q]=C})}var uQ=new Proxy(gp,{get:(A,I)=>QB[I],set:(A,I,g)=>QB[I]=g});function Bp(A,I=2){let g=new Set;return JSON.stringify(A,(B,Q)=>{if(typeof Q==="object"&&Q!==null){if(g.has(Q))return"[Circular *]";g.add(Q)}else if(typeof Q==="bigint")return Q.toString();return Q},I)}var FD=class extends Error{name="DriverAdapterError";cause;constructor(A){super(typeof A.message==="string"?A.message:A.kind);this.cause=A}};var qb=uQ("driver-adapter-utils");var u={Int32:0,Int64:1,Float:2,Double:3,Numeric:4,Boolean:5,Character:6,Text:7,Date:8,Time:9,DateTime:10,Json:11,Enum:12,Bytes:13,Set:14,Uuid:15,Int32Array:64,Int64Array:65,FloatArray:66,DoubleArray:67,NumericArray:68,BooleanArray:69,CharacterArray:70,TextArray:71,DateArray:72,TimeArray:73,DateTimeArray:74,JsonArray:75,EnumArray:76,BytesArray:77,UuidArray:78,UnknownNumber:128},xb={queryRaw:Error("Not implemented: queryRaw"),executeRaw:Error("Not implemented: executeRaw"),startTransaction:Error("Not implemented: startTransaction"),executeScript:Error("Not implemented: executeScript"),dispose:Error("Not implemented: dispose")};var xA=SB(uD(),1),Uz=xA.default.Client,Yz=xA.default.Pool,Jz=xA.default.Connection,az=xA.default.types,Hz=xA.default.Query,cz=xA.default.DatabaseError,Lz=xA.default.escapeIdentifier,sz=xA.default.escapeLiteral,qz=xA.default.Result,xz=xA.default.TypeOverrides,pz=xA.default.defaults,jI=xA.default;function KM(A){let I=A!=null;return function(B){let Q=B.length-1;if(Q===1)return[];if(B[Q]!=="}")throw Error("Invalid array text - must end with }");let C=0;if(B[C]==="[")C=B.indexOf("=")+1;if(B[C++]!=="{")throw Error("Invalid array text - must start with {");let E=[],D=E,i=[],G=C,o="",w=!0;for(;C<Q;++C){let N=B[C];if(N==='"'){G=++C;let k=B.indexOf('"',G),F=B.indexOf("\\",G);while(F!==-1&&F<k){C=F;let Y=B.slice(G,C);if(o+=Y,G=++C,k===C++)k=B.indexOf('"',C);F=B.indexOf("\\",C)}C=k;let R=B.slice(G,C);o+=R,D.push(I?A(o):o),o="",w=!1}else if(N==="{"){let k=[];D.push(k),i.push(D),D=k,G=C+1,w=!0}else if(N===",")w=!0;else if(N==="}"){w=!1;let k=i.pop();if(k===void 0)throw Error("Invalid array text - too many '}'");D=k}else if(w){G=C;while((N=B[C])!==","&&N!=="}"&&C<Q)++C;let k=B.slice(G,C--);D.push(k==="NULL"?null:I?A(k):k),w=!1}else throw Error("Was expecting delimeter")}return E}}var iT=KM();var nD=(A,I)=>I!=null?KM(I)(A):iT(A);var JM="@prisma/adapter-pg",aM=16384,{types:GT}=jI,{builtins:m,getTypeParser:HM}=GT,oT={NAME:19},l={BIT_ARRAY:1561,BOOL_ARRAY:1000,BYTEA_ARRAY:1001,BPCHAR_ARRAY:1014,CHAR_ARRAY:1002,CIDR_ARRAY:651,DATE_ARRAY:1182,FLOAT4_ARRAY:1021,FLOAT8_ARRAY:1022,INET_ARRAY:1041,INT2_ARRAY:1005,INT4_ARRAY:1007,INT8_ARRAY:1016,JSONB_ARRAY:3807,JSON_ARRAY:199,MONEY_ARRAY:791,NUMERIC_ARRAY:1231,OID_ARRAY:1028,TEXT_ARRAY:1009,TIMESTAMP_ARRAY:1115,TIMESTAMPTZ_ARRAY:1185,TIME_ARRAY:1183,UUID_ARRAY:2951,VARBIT_ARRAY:1563,VARCHAR_ARRAY:1015,XML_ARRAY:143},cM=class A extends Error{static typeNames={16:"bool",17:"bytea",18:"char",19:"name",20:"int8",21:"int2",22:"int2vector",23:"int4",24:"regproc",25:"text",26:"oid",27:"tid",28:"xid",29:"cid",30:"oidvector",32:"pg_ddl_command",71:"pg_type",75:"pg_attribute",81:"pg_proc",83:"pg_class",114:"json",142:"xml",194:"pg_node_tree",269:"table_am_handler",325:"index_am_handler",600:"point",601:"lseg",602:"path",603:"box",604:"polygon",628:"line",650:"cidr",700:"float4",701:"float8",705:"unknown",718:"circle",774:"macaddr8",790:"money",829:"macaddr",869:"inet",1033:"aclitem",1042:"bpchar",1043:"varchar",1082:"date",1083:"time",1114:"timestamp",1184:"timestamptz",1186:"interval",1266:"timetz",1560:"bit",1562:"varbit",1700:"numeric",1790:"refcursor",2202:"regprocedure",2203:"regoper",2204:"regoperator",2205:"regclass",2206:"regtype",2249:"record",2275:"cstring",2276:"any",2277:"anyarray",2278:"void",2279:"trigger",2280:"language_handler",2281:"internal",2283:"anyelement",2287:"_record",2776:"anynonarray",2950:"uuid",2970:"txid_snapshot",3115:"fdw_handler",3220:"pg_lsn",3310:"tsm_handler",3361:"pg_ndistinct",3402:"pg_dependencies",3500:"anyenum",3614:"tsvector",3615:"tsquery",3642:"gtsvector",3734:"regconfig",3769:"regdictionary",3802:"jsonb",3831:"anyrange",3838:"event_trigger",3904:"int4range",3906:"numrange",3908:"tsrange",3910:"tstzrange",3912:"daterange",3926:"int8range",4072:"jsonpath",4089:"regnamespace",4096:"regrole",4191:"regcollation",4451:"int4multirange",4532:"nummultirange",4533:"tsmultirange",4534:"tstzmultirange",4535:"datemultirange",4536:"int8multirange",4537:"anymultirange",4538:"anycompatiblemultirange",4600:"pg_brin_bloom_summary",4601:"pg_brin_minmax_multi_summary",5017:"pg_mcv_list",5038:"pg_snapshot",5069:"xid8",5077:"anycompatible",5078:"anycompatiblearray",5079:"anycompatiblenonarray",5080:"anycompatiblerange"};type;constructor(I){super();this.type=A.typeNames[I]||"Unknown",this.message=`Unsupported column type ${this.type}`}};function wT(A){switch(A){case m.INT2:case m.INT4:return u.Int32;case m.INT8:return u.Int64;case m.FLOAT4:return u.Float;case m.FLOAT8:return u.Double;case m.BOOL:return u.Boolean;case m.DATE:return u.Date;case m.TIME:case m.TIMETZ:return u.Time;case m.TIMESTAMP:case m.TIMESTAMPTZ:return u.DateTime;case m.NUMERIC:case m.MONEY:return u.Numeric;case m.JSON:case m.JSONB:return u.Json;case m.UUID:return u.Uuid;case m.OID:return u.Int64;case m.BPCHAR:case m.TEXT:case m.VARCHAR:case m.BIT:case m.VARBIT:case m.INET:case m.CIDR:case m.XML:case oT.NAME:return u.Text;case m.BYTEA:return u.Bytes;case l.INT2_ARRAY:case l.INT4_ARRAY:return u.Int32Array;case l.FLOAT4_ARRAY:return u.FloatArray;case l.FLOAT8_ARRAY:return u.DoubleArray;case l.NUMERIC_ARRAY:case l.MONEY_ARRAY:return u.NumericArray;case l.BOOL_ARRAY:return u.BooleanArray;case l.CHAR_ARRAY:return u.CharacterArray;case l.BPCHAR_ARRAY:case l.TEXT_ARRAY:case l.VARCHAR_ARRAY:case l.VARBIT_ARRAY:case l.BIT_ARRAY:case l.INET_ARRAY:case l.CIDR_ARRAY:case l.XML_ARRAY:return u.TextArray;case l.DATE_ARRAY:return u.DateArray;case l.TIME_ARRAY:return u.TimeArray;case l.TIMESTAMP_ARRAY:return u.DateTimeArray;case l.TIMESTAMPTZ_ARRAY:return u.DateTimeArray;case l.JSON_ARRAY:case l.JSONB_ARRAY:return u.JsonArray;case l.BYTEA_ARRAY:return u.BytesArray;case l.UUID_ARRAY:return u.UuidArray;case l.INT8_ARRAY:case l.OID_ARRAY:return u.Int64Array;default:if(A>=aM)return u.Text;throw new cM(A)}}function lA(A){return(I)=>nD(I,A)}function FM(A){return A}function RM(A){return A}function SM(A){return`${A.replace(" ","T")}+00:00`}function MM(A){return A.replace(" ","T").replace(/[+-]\d{2}(:\d{2})?$/,"+00:00")}function yM(A){return A}function NT(A){return A.replace(/[+-]\d{2}(:\d{2})?$/,"")}function hM(A){return A.slice(1)}function kT(A){return A}function DC(A){return A}var KT=HM(m.BYTEA),FT=HM(l.BYTEA_ARRAY);function RT(A){return KT(A)}function UM(A){return A}var $D={[m.NUMERIC]:FM,[l.NUMERIC_ARRAY]:lA(FM),[m.TIME]:yM,[l.TIME_ARRAY]:lA(yM),[m.TIMETZ]:NT,[m.DATE]:RM,[l.DATE_ARRAY]:lA(RM),[m.TIMESTAMP]:SM,[l.TIMESTAMP_ARRAY]:lA(SM),[m.TIMESTAMPTZ]:MM,[l.TIMESTAMPTZ_ARRAY]:lA(MM),[m.MONEY]:hM,[l.MONEY_ARRAY]:lA(hM),[m.JSON]:DC,[l.JSON_ARRAY]:lA(DC),[m.JSONB]:DC,[l.JSONB_ARRAY]:lA(DC),[m.BYTEA]:RT,[l.BYTEA_ARRAY]:FT,[l.BIT_ARRAY]:lA(UM),[l.VARBIT_ARRAY]:lA(UM),[l.XML_ARRAY]:lA(kT)};function LM(A,I){if(A===null)return null;if(Array.isArray(A)&&I.arity==="list")return A.map((g)=>LM(g,I));if(typeof A==="string"&&I.scalarType==="datetime")A=new Date(A);if(A instanceof Date)switch(I.dbType){case"TIME":case"TIMETZ":return yT(A);case"DATE":return MT(A);default:return ST(A)}if(typeof A==="string"&&I.scalarType==="bytes")return Buffer.from(A,"base64");if(ArrayBuffer.isView(A))return new Uint8Array(A.buffer,A.byteOffset,A.byteLength);return A}function ST(A){let I=(B,Q=2)=>String(B).padStart(Q,"0"),g=A.getUTCMilliseconds();return I(A.getUTCFullYear(),4)+"-"+I(A.getUTCMonth()+1)+"-"+I(A.getUTCDate())+" "+I(A.getUTCHours())+":"+I(A.getUTCMinutes())+":"+I(A.getUTCSeconds())+(g?"."+String(g).padStart(3,"0"):"")}function MT(A){let I=(g,B=2)=>String(g).padStart(B,"0");return I(A.getUTCFullYear(),4)+"-"+I(A.getUTCMonth()+1)+"-"+I(A.getUTCDate())}function yT(A){let I=(B,Q=2)=>String(B).padStart(Q,"0"),g=A.getUTCMilliseconds();return I(A.getUTCHours())+":"+I(A.getUTCMinutes())+":"+I(A.getUTCSeconds())+(g?"."+String(g).padStart(3,"0"):"")}var hT=new Set(["UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED","HOSTNAME_MISMATCH","ERR_TLS_CERT_ALTNAME_FORMAT","ERR_TLS_CERT_ALTNAME_INVALID"]),UT=new Set(["ENOTFOUND","ECONNREFUSED","ECONNRESET","ETIMEDOUT"]);function YT(A){if(cT(A))return HT(A);if(LT(A))return{kind:"TlsConnectionError",reason:A.message};if(aT(A))return{originalCode:A.code,originalMessage:A.message,...JT(A)};throw A}function JT(A){switch(A.code){case"22001":return{kind:"LengthMismatch",column:A.column};case"22003":return{kind:"ValueOutOfRange",cause:A.message};case"22P02":return{kind:"InvalidInputValue",message:A.message};case"23505":{let I=A.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"UniqueConstraintViolation",constraint:I!==void 0?{fields:I}:void 0}}case"23502":{let I=A.detail?.match(/Key \(([^)]+)\)/)?.at(1)?.split(", ");return{kind:"NullConstraintViolation",constraint:I!==void 0?{fields:I}:void 0}}case"23503":{let I;if(A.column)I={fields:[A.column]};else if(A.constraint)I={index:A.constraint};return{kind:"ForeignKeyConstraintViolation",constraint:I}}case"3D000":return{kind:"DatabaseDoesNotExist",db:A.message.split(" ").at(1)?.split('"').at(1)};case"28000":return{kind:"DatabaseAccessDenied",db:A.message.split(",").find((I)=>I.startsWith(" database"))?.split('"').at(1)};case"28P01":return{kind:"AuthenticationFailed",user:A.message.split(" ").pop()?.split('"').at(1)};case"40001":return{kind:"TransactionWriteConflict"};case"42P01":return{kind:"TableDoesNotExist",table:A.message.split(" ").at(1)?.split('"').at(1)};case"42703":return{kind:"ColumnNotFound",column:A.message.match(/^column (.+) does not exist$/)?.at(1)?.replace(/"((?:""|[^"])*)"/g,(g,B)=>B.replaceAll('""','"'))};case"42P04":return{kind:"DatabaseAlreadyExists",db:A.message.split(" ").at(1)?.split('"').at(1)};case"53300":return{kind:"TooManyConnections",cause:A.message};default:return{kind:"postgres",code:A.code??"N/A",severity:A.severity??"N/A",message:A.message,detail:A.detail,column:A.column,hint:A.hint}}}function aT(A){return typeof A.code==="string"&&typeof A.message==="string"&&typeof A.severity==="string"&&(typeof A.detail==="string"||A.detail===void 0)&&(typeof A.column==="string"||A.column===void 0)&&(typeof A.hint==="string"||A.hint===void 0)}function HT(A){switch(A.code){case"ENOTFOUND":case"ECONNREFUSED":return{kind:"DatabaseNotReachable",host:A.address??A.hostname,port:A.port};case"ECONNRESET":return{kind:"ConnectionClosed"};case"ETIMEDOUT":return{kind:"SocketTimeout"}}}function cT(A){return typeof A.code==="string"&&typeof A.syscall==="string"&&typeof A.errno==="number"&&UT.has(A.code)}function LT(A){if(typeof A.code==="string")return hT.has(A.code);switch(A.message){case"The server does not support SSL connections":case"There was an error establishing an SSL connection":return!0}return!1}var sT=jI.types,yI=uQ("prisma:driver-adapter:pg"),sM=class{constructor(A,I){this.client=A,this.pgOptions=I}provider="postgres";adapterName=JM;async queryRaw(A){yI("[js::query_raw] %O",A);let{fields:g,rows:B}=await this.performIO(A),Q=g.map((D)=>D.name),C=[];try{C=g.map((D)=>wT(D.dataTypeID))}catch(D){if(D instanceof cM)throw new FD({kind:"UnsupportedNativeDataType",type:D.type});throw D}let E=this.pgOptions?.userDefinedTypeParser;if(E)for(let D=0;D<g.length;D++){let i=g[D];if(i.dataTypeID>=aM&&!Object.hasOwn($D,i.dataTypeID))for(let G=0;G<B.length;G++)B[G][D]=await E(i.dataTypeID,B[G][D],this)}return{columnNames:Q,columnTypes:C,rows:B}}async executeRaw(A){return yI("[js::execute_raw] %O",A),(await this.performIO(A)).rowCount??0}async performIO(A){let{sql:I,args:g}=A,B=g.map((Q,C)=>LM(Q,A.argTypes[C]));try{return await this.client.query({name:this.pgOptions?.statementNameGenerator?.(A),text:I,values:B,rowMode:"array",types:{getTypeParser:(C,E)=>{if(E==="text"&&$D[C])return $D[C];return sT.getTypeParser(C,E)}}},B)}catch(Q){this.onError(Q)}}onError(A){throw yI("Error in performIO: %O",A),new FD(YT(A))}},qT=class extends sM{constructor(A,I,g,B){super(A,g);this.options=I,this.pgOptions=g,this.cleanup=B}async commit(){yI("[js::commit]"),this.cleanup?.(),this.client.release()}async rollback(){yI("[js::rollback]"),this.cleanup?.(),this.client.release()}async createSavepoint(A){await this.executeRaw({sql:`SAVEPOINT ${A}`,args:[],argTypes:[]})}async rollbackToSavepoint(A){await this.executeRaw({sql:`ROLLBACK TO SAVEPOINT ${A}`,args:[],argTypes:[]})}async releaseSavepoint(A){await this.executeRaw({sql:`RELEASE SAVEPOINT ${A}`,args:[],argTypes:[]})}},YM=class extends sM{constructor(A,I,g){super(A);this.pgOptions=I,this.release=g}async startTransaction(A){let I={usePhantomQuery:!1},g="[js::startTransaction]";yI("%s options: %O","[js::startTransaction]",I);let B=await this.client.connect().catch((E)=>this.onError(E)),Q=(E)=>{yI(`Error from pool connection: ${E.message} %O`,E),this.pgOptions?.onConnectionError?.(E)};B.on("error",Q);let C=()=>{B.removeListener("error",Q)};try{let E=new qT(B,I,this.pgOptions,C);if(await E.executeRaw({sql:"BEGIN",args:[],argTypes:[]}),A)await E.executeRaw({sql:`SET TRANSACTION ISOLATION LEVEL ${A}`,args:[],argTypes:[]});return E}catch(E){C(),B.release(E),this.onError(E)}}async executeScript(A){let I=A.split(";").map((g)=>g.trim()).filter((g)=>g.length>0);for(let g of I)try{await this.client.query(g)}catch(B){this.onError(B)}}getConnectionInfo(){return{schemaName:this.pgOptions?.schema,supportsRelationJoins:!0}}async dispose(){return this.release?.()}underlyingDriver(){return this.client}},qM=class{constructor(A,I){if(this.options=I,A instanceof jI.Pool)this.externalPool=A,this.config=A.options;else if(typeof A==="string")this.externalPool=null,this.config={connectionString:A};else this.externalPool=null,this.config=A}provider="postgres";adapterName=JM;config;externalPool;async connect(){let A=this.externalPool??new jI.Pool(this.config),I=(g)=>{yI(`Error from idle pool client: ${g.message} %O`,g),this.options?.onPoolError?.(g)};return A.on("error",I),new YM(A,this.options,async()=>{if(this.externalPool)if(this.options?.disposeExternalPool)await this.externalPool.end(),this.externalPool=null;else this.externalPool.removeListener("error",I);else await A.end()})}async connectToShadowDb(){let A=await this.connect(),I=`prisma_migrate_shadow_db_${globalThis.crypto.randomUUID()}`;await A.executeScript(`CREATE DATABASE "${I}"`);let g=new jI.Pool({...this.config,database:I});return new YM(g,void 0,async()=>{await A.executeScript(`DROP DATABASE "${I}"`),await g.end()})}};var xM;if(!Bun.env.FLUX_DATABASE_URL)throw Error("FLUX_DATABASE_URL is not set in environment variables");var xT=Bun.env.FLUX_DATABASE_URL,_D=()=>{return xM??=new bF({adapter:new qM({connectionString:xT})}),xM};class iC{_redisConnection;processAddress=II();constructor(A){this._redisConnection=A}async kickClient(A,I){let[g,B,Q]=cA(I),C=`${g}/${B}`;if(await this._redisConnection.publishCustom(`kick-client-${A}`,C,Q)===0)switch(A){case"agent":{await this._redisConnection.networkAgentRedisService.unregisterAgentOrThrow(Q);break}case"authority":{await this._redisConnection.networkAuthoritySet.unregisterAuthority(Q);break}default:throw Error(`Unknown client type: ${A}`)}}onKickClient(A,I){this._redisConnection.subscribeToCustom(`kick-client-${A}`,this.processAddress,(g)=>I(g))}}var ZM,eD=()=>{return ZM??=new Ai(new GE(_D()),wA()),ZM};class Ai{_networkTokenRepository;_redisConnection;constructor(A,I){this._networkTokenRepository=A;this._redisConnection=I}async createToken(A,I){let g=await this._networkTokenRepository.createToken(A,I);return this.publishAndStoreChangedTokens(A),g}async readByNetworkId(A){return this._networkTokenRepository.readByNetworkId(A)}async readTokensByNetworkId(A){let I=await this._redisConnection.getNetworkTokenValues(A);if(I.length>0)return I;let g=await this._networkTokenRepository.readTokensByNetworkId(A);return await this._redisConnection.setNetworkTokenValues(A,g),g}async countByNetworkId(A){return this._networkTokenRepository.countByNetworkId(A)}async findById(A){return this._networkTokenRepository.findById(A)}async rotateOutAllExcept(A,I,g){await this._networkTokenRepository.rotateOutAllExcept(A,I,g),this.publishAndStoreChangedTokens(A)}async deleteNetworkToken(A,I){await this._networkTokenRepository.deleteNetworkToken(A,I),this.publishAndStoreChangedTokens(A)}async publishAndStoreChangedTokens(A){let g=(await this.readByNetworkId(A)).map((B)=>B.token);this._redisConnection.publishNetworkTokenEvent(A,g).catch((B)=>console.error("Failed to publish token event to Redis:",B)),this._redisConnection.setNetworkTokenValues(A,g).catch((B)=>console.error("Failed to persist token values to Redis Set:",B))}}var WM,pT=()=>{return WM??=new CQ(wA(),eD()),WM},OM=async(A,I)=>{let g=TM.parse(A.url,!0),B=g.query.networkId;try{Mg(B??"")}catch(i){return new Response(i instanceof Error?i.message:"Unknown error validating network ID",{status:500})}let Q=B,C=await A.text();if(t.log(`Received authority token for network: ${Q}`,"authorize"),I?.has(Q)&&I.get(Q)===C)t.log(`Successfully authorized authority for network ${Q} using hardcoded credentials`,"authorize");else if(!await pT().isValidToken(Q,C))return new Response("Invalid network access token",{status:401,headers:{"Access-Control-Allow-Origin":"*"}});let E=g.query.machineUID,D;if(E&&yg(E))D=E;return new Response(gQ({networkId:Q,isAuthority:!0,machineUID:D}),{headers:{"Content-Type":"text/plain","Access-Control-Allow-Origin":"*"}})};import*as VM from"url";var jM=async(A,I,g)=>{let B=VM.parse(A.url,!0),Q=B.query.networkId;try{Mg(Q??"")}catch(i){return new Response(i instanceof Error?i.message:"Unknown error validating network ID",{status:500})}let C=Q;if(!C)return new Response("Missing networkId",{status:500,headers:{"Access-Control-Allow-Origin":"*"}});let E=await A.text(),D=A.headers.get("x-flux-content-type")?.toLowerCase();try{let i,G=await KC(async()=>{i=await I.resolveAuthorityAddressOrThrow(C);let o=await g.call(i,"authorizeAgentConnection",`${D==="application/json"?"json":"text"}:${E}`);return KN(o)},(o)=>{if(o instanceof dI||o instanceof AI)return I.removeUnresponsiveClient(C,i).catch((w)=>{if(w)t.log("Successfully removed unresponsive client from network authority cache","authorizeAgentConnection");else t.log("Failed to remove unresponsive client from network authority cache","authorizeAgentConnection")}),!0;return!1},{retries:10,delayMs:50,onRetry:(o,w)=>{console.log(`[authorizeAgentConnection] Retrying... (attempt: ${o} of ${w})`)}});if(G){let o=B.query.requestedAgentUid;if(o)try{NC(o)}catch(F){return new Response(F instanceof Error?F.message:"The requested agent ID is not valid",{status:500})}A.cookies.set("claim",G,{maxAge:604800,httpOnly:!0,secure:!0,path:"/"});let N=B.query.machineUID,k;if(N&&yg(N))k=N;return new Response(gQ({networkId:C,claim:G,agentUID:o,machineUID:k}),{headers:{"Content-Type":"text/plain","Access-Control-Allow-Origin":"*"}})}}catch(i){if(console.error("Error authorizing:",i instanceof Error?i.message:i),i instanceof UI)return new Response(i.message,{status:401,headers:{"Access-Control-Allow-Origin":"*"}})}return new Response("Unauthorized",{status:500,headers:{"Access-Control-Allow-Origin":"*"}})};import*as uM from"url";class Ii{redisConnection;bunServer;processAddress;constructor(A,I,g){this.redisConnection=A;this.bunServer=I;this.processAddress=g;this.subscribeWebsocketChannelEvent()}subscribeWebsocketChannelEvent(){this.redisConnection.subscribeWebsocketChannelEvent((A,I,g)=>{if(this.processAddress===I)return;this.bunServer.publish(g,A)})}async publish(A,I,g){(g??this.bunServer).publish(A,I),await this.redisConnection.publishWebsocketChannelEvent(this.processAddress,A,I)}}var dM=(A)=>{if(A.length<2)return"same-process";let I=new Set(A.map(Sg));if(I.size===1)return"same-process";if(new Set([...I].map(([B])=>B)).size===1)return"same-machine";return"distributed"};class GC{_redisConnection;constructor(A){this._redisConnection=A}async createNetworkChannelIfNotExist(A,I){let g=await this._redisConnection.hash.sadd(`networks/${A}/channels`,I);if(g===1)await this._redisConnection.hash.hset(`networks/${A}/channels/${I}`,{createdAt:new Date().toISOString(),memberDistribution:"same-process",usage:"0"});return g===1}async readNetworkChannels(A){let I=await this.readNetworkChannelNames(A),g=[];for(let B of I){let[Q,C,E,D]=await this._redisConnection.hash.hmget(`networks/${A}/channels/${B}`,["createdAt","memberDistribution","members","usage"]);if(Q&&C&&D)g.push({channelName:B,memberDistribution:C,members:Number.parseInt(E??"0",10),bytes:Number.parseInt(D||"0",10),createdAt:new Date(Q)})}return g}async readNetworkChannelNames(A){let I=await this._redisConnection.hash.smembers(`networks/${A}/channels`);try{if(!I.every(YI))throw Error("This will never happen")}catch(g){throw Error(`Caught error while reading networks (${A}) from Redis: ${g instanceof Error?g.message:"unknown error"}`)}return I}async readNetworkChannelCount(A){return{count:await this._redisConnection.hash.scard(`networks/${A}/channels`),date:new Date}}async readNetworkMemberCount(A,I){let[g]=await this._redisConnection.hash.hmget(`networks/${A}/channels/${I}`,["members"]);if(!g)return 0;return Number.parseInt(g,10)}async readNetworkChannelMemberAddresses(A,I){return await this._redisConnection.hash.smembers(`networks/${A}/channels/${I}/members`)}async deleteNetworkChannel(A,I){await this._redisConnection.hash.srem(`networks/${A}/channels`,I),await this._redisConnection.hash.del(`networks/${A}/channels/${I}`),await this._redisConnection.hash.del(`networks/${A}/channels/${I}/members`)}async joinNetworkChannel(A,I,g){let B=await this._redisConnection.hash.sadd(`networks/${A}/channels/${I}/members`,g);if(await this.checkAndUpdateChannelMemberDistribution(A,I),B===0)return t.warn(`Unexpected existing member on network / channel "${A}"/"${I}". The member appears to already be part of the channel and cannot be added again.`,"network-channel"),Promise.reject(Error(`Client ${g} is already a member of channel "${I}" on network "${A}".`));return await this._redisConnection.hash.hincrby(`networks/${A}/channels/${I}`,"members",1)}async leaveNetworkChannel(A,I,g){if(await this._redisConnection.hash.srem(`networks/${A}/channels/${I}/members`,g)===0)return t.warn(`Unexpected non-existing member on network / channel "${A}"/"${I}". The client does not appear to be a member of the channel and can not be removed.`,"network-channel"),Promise.reject(Error(`Client ${g} is not a member of channel "${I}" on network "${A}".`));let Q=await this._redisConnection.hash.hincrby(`networks/${A}/channels/${I}`,"members",-1);if(Q===0)t.log(`Network channel "${I}" has no more members. Deleting...`,"network-channel"),await this.deleteNetworkChannel(A,I);else await this.checkAndUpdateChannelMemberDistribution(A,I);return Q}async leaveAllNetworkChannels(A,I,g){return Promise.all([...g].map(async(B)=>{await this.leaveNetworkChannel(A,B,I)})).then(()=>{return})}async incrementUsage(A,I,g){return await this._redisConnection.hash.hincrby(`networks/${A}/channels/${I}`,"usage",g)}async checkAndUpdateChannelMemberDistribution(A,I){let g=await this.readNetworkChannelMemberAddresses(A,I),B=dM(g);await this._redisConnection.hash.hset(`networks/${A}/channels/${I}`,{memberDistribution:B})}}var bM={free:25,medium:500,high:1e5},OX=bM.high,gi=(A)=>{if(typeof A!=="string")return;let I=A.toLowerCase();if(I==="lowest"||I==="free")return"free";if(I==="medium"||I==="high")return I;return},ZT=(A)=>{return gi(A)??"free"},WT=(A)=>bM[ZT(A)],zM=(A)=>{if(typeof A!=="string"||A==="")return;let I=gi(A);if(I)return I;let g=(Q)=>{if(!Q||typeof Q!=="object")return;let C=Q,E=C.user,D=E&&typeof E==="object"?E:void 0,i=[C.subscriptionType,C.subscription,C.tier,C.plan,D?.subscriptionType,D?.subscription,D?.tier,D?.plan];for(let G of i){if(typeof G!=="string")continue;let o=gi(G);if(o)return o}return};try{let Q=JSON.parse(A),C=g(Q);if(C)return C}catch{}let B=A.split(".");if(B.length<2)return;try{let C=Buffer.from(B[1],"base64url").toString("utf8"),E=JSON.parse(C);return g(E)}catch{return}},TT=(A,I)=>A<WT(I);class Bi{_globalChannelPubsub;channelUsageCount=new Map;redisConnection=wA();networkChannelHash=new GC(this.redisConnection);constructor(A){this._globalChannelPubsub=A;setInterval(()=>{for(let[I,g]of this.channelUsageCount){if(g.usage>0)this.networkChannelHash.incrementUsage(g.networkId,I,g.usage);this.channelUsageCount.delete(I)}},5000)}async canHaveMembers(A,I,g){let B=await this.networkChannelHash.readNetworkMemberCount(A,I);return Promise.resolve(TT(B,g))}async joinNetworkChannel(A,I,g){return await this.createNetworkChannelIfNotExist(A,I),this.networkChannelHash.joinNetworkChannel(A,I,g)}async leaveNetworkChannel(A,I,g){if(await this.networkChannelHash.leaveNetworkChannel(A,I,g)===0)this._globalChannelPubsub.publish(`~/networks/${A}/channel-empty`,`${ai}:${I}`)}async leaveAllNetworkChannels(A,I,g){return await this.networkChannelHash.leaveAllNetworkChannels(A,I,g)}async createNetworkChannelIfNotExist(A,I){if(await this.networkChannelHash.createNetworkChannelIfNotExist(A,I))this._globalChannelPubsub.publish(`~/networks/${A}/channel-created`,`${Ji}:${I}`)}increaseUsageCount(A,I,g){let B=this.channelUsageCount.get(I);this.channelUsageCount.set(I,B?{...B,usage:B.usage+g}:{networkId:A,usage:g})}}class Qi{_clientMap;_networkAgentRedisCache;constructor(A,I){this._clientMap=A;this._networkAgentRedisCache=I}async kickAgent(A){let I=this._clientMap.get(A);if(I)I.close(1002,"Kicked by process"),this._clientMap.delete(A);else t.error("We expected to find a client, but didn't. Ignoring.","agent-manager");await this._networkAgentRedisCache.unregister(A,I?.data.networkId)}}class Ci{_redisConnection;_clientMap;_networkAgentRedisCache;machineAddress=jA();processAddress=VA();_globalClientManager;_localAgentManager;constructor(A,I,g){this._redisConnection=A;this._clientMap=I;this._networkAgentRedisCache=g;this._globalClientManager=new iC(this._redisConnection),this._localAgentManager=new Qi(this._clientMap,this._networkAgentRedisCache),this._globalClientManager.onKickClient("agent",this._localAgentManager.kickAgent.bind(this._localAgentManager))}kick(A){let[I,g,B]=cA(A);if(I!==this.machineAddress){this._globalClientManager.kickClient("agent",A);return}if(g!==this.processAddress){this._globalClientManager.kickClient("agent",A);return}this._localAgentManager.kickAgent(B)}}import*as fM from"url";var XM=["Steel yourself, traveler. Strange currents stir beyond these gates.","Every signal leaves a trail. Mind which ones you choose to follow.","I have watched green recruits chase glory into the dark and never return.","The mesh is restless today. Even the quiet channels feel like a warning.","Keep your wits sharp and your blade sharper. This road favors neither fools nor dreamers."];class Ei{randomNumberGenerator;constructor(A=Math.random){this.randomNumberGenerator=A}resolveInteraction(A){let I=A>5;return{interactionCount:A,isFinalResponse:I,message:this.resolveMessage(I),remainingRandomResponses:Math.max(5-A,0)}}resolveMessage(A){if(A)return"I have shared all the wisdom I can spare. The next step is yours alone, hero.";return XM[Math.floor(this.randomNumberGenerator()*XM.length)]}}class Di{interactionCountByUserAndNpc=new Map;incrementInteractionCount(A,I){let g=this.buildInteractionKey(A,I),B=(this.interactionCountByUserAndNpc.get(g)??0)+1;return this.interactionCountByUserAndNpc.set(g,B),B}buildInteractionKey(A,I){return`${A}:${I}`}}class ii{interactionTracker;dialogueScript;constructor(A=Math.random){this.interactionTracker=new Di,this.dialogueScript=new Ei(A)}interact(A,I){let g=this.interactionTracker.incrementInteractionCount(A,I);return this.dialogueScript.resolveInteraction(g)}}var OT="mesh-guide",PM=(A)=>{let I=A?.split(",")[0]?.trim();return I&&I.length>0?I:void 0},lM=(A)=>{if(typeof A!=="string")return;let I=A.trim();return I.length>0?I:void 0},VT=new ii(Math.random),jT=(A,I)=>lM(I.query.playerId)??PM(A.headers.get("x-forwarded-for"))??PM(A.headers.get("x-real-ip"))??"anonymous",mM=(A)=>{let I=fM.parse(A.url,!0),g=lM(I.query.npcId)??OT,B=jT(A,I),Q=VT.interact(B,g);return new Response(Q.message,{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};t.configure({allowScopes:"*"});var FB=new Map,Gi=VA(),oi=jA(),wi=II(),Ni=new Map;class pM{optionsOrPort;redisConnection=wA();onReadyListeners=new Set;bunServer;globalChannelPubsub;channelManager;agentManager;constructor(A){this.optionsOrPort=A;let I=typeof this.optionsOrPort==="number"?this.optionsOrPort:this.optionsOrPort?.port??5100,g=new MC,B=new yC,Q=new SC((D,i)=>{let G=FB.get(D);if(!G)throw new dI(D,wi);G.send(i)}),C=new EE,E=new QE(Q,C);this.agentManager=new Ci(this.redisConnection,FB,B),this.bunServer=tM.serve({port:I,idleTimeout:0,routes:{"/auth/network-authority":{OPTIONS:QQ,POST:(D)=>OM(D,A instanceof Object?A.hardcodedNetworkCredentials:void 0)},"/auth/network-client":{OPTIONS:QQ,POST:(D)=>jM(D,g,E)},"/*":{OPTIONS:QQ,GET:mM}},async fetch(D,i){let G=uM.parse(D.url,!0).query.token;try{let o=FN(G),w=XI();if(!i.upgrade(D,{data:{ip:i.requestIP(D),id:w,networkId:o.networkId,isAuthority:o.isAuthority,address:`${oi}/${Gi}/${w}`,claim:o.claim,uid:o.agentUID,machineUID:o.machineUID,channelNames:new Set,throughput:{bytes:0,packets:0}}}))return new Response("Request upgrade failed",{status:500,headers:{"Access-Control-Allow-Origin":"*"}})}catch{return console.error("Token verification failed"),new Response("Token verification failed",{status:500})}return new Response("Upgrade failed",{status:500})},websocket:{data:{},perMessageDeflate:!0,maxPayloadLength:1048576,async open(D){if(FB.set(D.data.id,D),D.data.isAuthority)t.log(`\uD83D\uDC6E Authority connected to network '${FC(D.data.networkId)}' at address: '${D.data.address}'`,"ws-connection"),await g.register(D.data.networkId,D.data.id,D.data.machineUID);else t.log(`\uD83E\uDD35 Agent connected: ${D.data.id}`,"ws-connection"),await B.registerAgent(D.data.networkId,D.data.id,D.data.ip,D.data.address,D.data.throughput,D.data.uid,D.data.machineUID),D.data.rtcClient=new DE(wi,D.send.bind(D),(i)=>{let G=Ni.get(D.data.id);Ni.set(D.data.id,G===void 0?new Set([i]):G.add(i))});D.send("isReady")},message:async(D,i)=>{if(typeof i!=="string")throw Error("Message is not a string");let G=new TextEncoder().encode(i).length;switch(D.data.throughput.bytes=D.data.throughput.bytes+G,D.data.throughput.packets++,i.split(":")[0]){case ci:{if(!D.data.isAuthority){D.close(4000,"Bad behavior");return}let w=i.substring(i.indexOf(":")+1);if(!kC(w)){D.send(`${MA}:Invalid agent ID`);return}this.agentManager.kick(w);return}case Hi:{if(!D.data.isAuthority){D.close(4000,"Bad behavior");return}D.subscribe(`~/networks/${D.data.networkId}/channel-created`),D.subscribe(`~/networks/${D.data.networkId}/channel-empty`);return}case Si:{let w=i.indexOf(":"),N=i.indexOf(":",w+1),k=i.slice(w+1,N),F=i.slice(N+1);if(YI(k)){if(D.data.channelNames.has(k))this.globalChannelPubsub.publish(`networks/${D.data.networkId}/channels/${k}`,`${Mi}:${D.data.id}:${k}:${F}`,D),this.channelManager.increaseUsageCount(D.data.networkId,k,G)}return}case yi:{let w=i.substring(i.indexOf(":")+1);try{YI(w)}catch{D.send(`${MA}:Not authorized`);return}let N=w;if(D.data.channelNames.has(N)){D.send(`${MA}:Agent is already subscribed to channnel`);return}let k;try{k=await g.resolveAuthorityAddressOrThrow(D.data.networkId)}catch(F){t.error(`Failed to resolve network authority address for networkId '${D.data.networkId}': ${F instanceof Error?F.message:"Unknown error"}`,"not-authorized"),D.send(`${MA}:${wC}`);return}try{if(!await this.channelManager.canHaveMembers(D.data.networkId,N,zM(D.data.claim))){D.send(`${MA}:Channel limit is reached`);return}try{if(await E.call(k,"authorizeChannelAccess",N,D.data.claim))D.subscribe(`networks/${D.data.networkId}/channels/${N}`),await this.channelManager.joinNetworkChannel(D.data.networkId,N,D.data.address),D.data.channelNames.add(N),D.send(`${hi}:${N}`),t.log(`\uD83C\uDF89 Client was authorized on channel name '${N}'`,"authorized");else console.error(`Client was not authorized to connect to channel name '${N}'`),D.send(`${MA}:Not authorized`)}catch(R){if(R instanceof Error){D.send(`${MA}:${R.message}`);break}console.error("Unknown error",R),D.send(`${MA}:Unknown error`)}}catch(F){let R=F instanceof Error?F.message:"Unknown error";t.error(`Failed to authorize channel access for networkId '${D.data.networkId}' and channel '${N}': ${R}`,"not-authorized"),D.send(`${MA}:${R}`);return}return}case Ui:{let w=i.substring(i.indexOf(":")+1);try{YI(w)}catch{D.send(`${MA}:Not authorized`);return}let N=w;if(!D.data.channelNames.has(N)){D.send(`${MA}:Cannot unsubscribe. Agent is not connected to the channnel`);return}try{D.unsubscribe(`networks/${D.data.networkId}/channels/${N}`),await this.channelManager.leaveNetworkChannel(D.data.networkId,N,D.data.address),D.data.channelNames.delete(N),D.send(`${Yi}:${N}`),console.log(`\uD83D\uDEAA Client left channel name '${N}'`)}catch(k){if(k instanceof Error){D.send(`${MA}:${k.message}`);break}console.error("Unknown error",k),D.send(`${MA}:Unknown error`)}return}case Fi:{let w=JSON.parse(i.substring(i.indexOf(":")+1));t.log("\uD83D\uDCE1 Received RPC response.","rpc"),C.message(w.rpcProcessAddress,i);let N=Ni.get(D.data.id);for(let k of N??[])k(w);return}case Ri:{let w=D.data.rtcClient;if(!w)console.warn("Initiating client could not be resolved");let N=i.substring(i.indexOf(":")+1),k=await B.resolveClientAddressByUid(D.data.networkId,N),F=new iE(k,Q,C);if(w)RN(w,F);else D.send(`${MA}:RPC clients could not be resolved`);return}}},close:async(D,i)=>{if(FB.delete(D.data.id),D.data.isAuthority)t.log(`\uD83D\uDED1 Authority socket disconnecting ${i} ${D.data.id}`,"ws-disconnect"),g.unregister(D.data.id,D.data.networkId).catch();else{t.log(`\uD83D\uDED1\uD83E\uDD35 Agent socket disconnecting ${i} ${D.data.id}`,"ws-disconnect");for(let G of D.data.channelNames)D.unsubscribe(`networks/${D.data.networkId}/channels/${G}`);if(D.data.channelNames.size>0)await this.channelManager.leaveAllNetworkChannels(D.data.networkId,D.data.address,D.data.channelNames).catch(()=>{t.error("Caught error while leaving network channels.","ws-disconnect")});await B.unregister(D.data.id,D.data.networkId,D.data.uid?{clientOwnUId:D.data.uid,networkId:D.data.networkId}:void 0).catch(()=>{t.error("Caught error while unregistering agent.","ws-disconnect")})}},drain(D){console.log("drain")}}}),this.globalChannelPubsub=new Ii(this.redisConnection,this.bunServer,wi),this.channelManager=new Bi(this.globalChannelPubsub),setTimeout(()=>{console.log(`\uD83D\uDE80 Flux mesh server running on localhost:${I}`),setInterval(()=>{this.redisConnection.setConnected(`${oi}/${Gi}`)},3000);for(let D of this.onReadyListeners)D()},50)}onReady(A){this.onReadyListeners.add(A)}async stop(){FB.clear(),await this.bunServer.stop(!0),await this.redisConnection.setDisconnected(`${oi}/${Gi}`),await this.redisConnection.disconnect()}}export{pM as FluxMeshServer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persistica/flux-mesh",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "Persistica Flux Mesh",
5
5
  "type": "module",
6
6
  "keywords": [],