@naisys/supervisor-database 3.0.0-beta.5 → 3.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dbConfig.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { join } from "path";
2
2
  export function supervisorDbPath() {
3
- return join(process.env.NAISYS_FOLDER || "", "database", "supervisor.db");
3
+ return join(process.env.NAISYS_FOLDER || "", "database", "supervisor.db");
4
4
  }
5
5
  export function supervisorDbUrl() {
6
- return "file:" + supervisorDbPath();
6
+ return "file:" + supervisorDbPath();
7
7
  }
8
8
  /** We run migration scripts if this is greater than what's in the schema_version table */
9
9
  export const SUPERVISOR_DB_VERSION = 8;
@@ -1,7 +1,7 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
6
  * This file should be your main import to use Prisma-related types and utilities in a browser.
7
7
  * Use it to get access to models, enums, and input types.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * 🟢 You can import this file directly.
13
13
  */
14
- import * as Prisma from "./internal/prismaNamespaceBrowser.js";
14
+ import * as Prisma from './internal/prismaNamespaceBrowser.js';
15
15
  export { Prisma };
16
- export * as $Enums from "./enums.js";
17
- export * from "./enums.js";
16
+ export * as $Enums from './enums.js';
17
+ export * from './enums.js';
@@ -1,19 +1,19 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
6
  * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
7
7
  * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
8
8
  *
9
9
  * 🟢 You can import this file directly.
10
10
  */
11
- import * as path from "node:path";
12
- import { fileURLToPath } from "node:url";
13
- globalThis["__dirname"] = path.dirname(fileURLToPath(import.meta.url));
11
+ import * as path from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url));
14
14
  import * as $Class from "./internal/class.js";
15
15
  import * as Prisma from "./internal/prismaNamespace.js";
16
- export * as $Enums from "./enums.js";
16
+ export * as $Enums from './enums.js';
17
17
  export * from "./enums.js";
18
18
  /**
19
19
  * ## Prisma Client
@@ -1,7 +1,7 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
6
  * This file exports various common sort, input & filter types that are not directly linked to a particular model.
7
7
  *
@@ -1,18 +1,18 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
- * This file exports all enum related types from the schema.
7
- *
8
- * 🟢 You can import this file directly.
9
- */
6
+ * This file exports all enum related types from the schema.
7
+ *
8
+ * 🟢 You can import this file directly.
9
+ */
10
10
  export const Permission = {
11
- supervisor_admin: "supervisor_admin",
12
- manage_agents: "manage_agents",
13
- manage_hosts: "manage_hosts",
14
- agent_communication: "agent_communication",
15
- manage_models: "manage_models",
16
- manage_variables: "manage_variables",
17
- view_run_logs: "view_run_logs",
11
+ supervisor_admin: 'supervisor_admin',
12
+ manage_agents: 'manage_agents',
13
+ manage_hosts: 'manage_hosts',
14
+ agent_communication: 'agent_communication',
15
+ manage_models: 'manage_models',
16
+ manage_variables: 'manage_variables',
17
+ view_run_logs: 'view_run_logs'
18
18
  };
@@ -1,7 +1,7 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
6
  * WARNING: This is an internal file that is subject to change!
7
7
  *
@@ -11,47 +11,39 @@
11
11
  */
12
12
  import * as runtime from "@prisma/client/runtime/client";
13
13
  const config = {
14
- previewFeatures: [],
15
- clientVersion: "7.6.0",
16
- engineVersion: "75cbdc1eb7150937890ad5465d861175c6624711",
17
- activeProvider: "sqlite",
18
- inlineSchema:
19
- 'datasource db {\n provider = "sqlite"\n}\n\ngenerator client {\n provider = "prisma-client"\n output = "../src/generated/prisma"\n}\n\nenum Permission {\n supervisor_admin\n manage_agents\n manage_hosts\n agent_communication\n manage_models\n manage_variables\n view_run_logs\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n username String @unique\n uuid String @default("")\n isAgent Boolean @default(false) @map("is_agent")\n passwordHash String @default("") @map("password_hash")\n createdAt DateTime @default(now()) @map("created_at")\n apiKey String? @unique @map("api_key")\n updatedAt DateTime @updatedAt @map("updated_at")\n permissions UserPermission[] @relation("UserPermissions")\n grantedPermissions UserPermission[] @relation("GrantedByPermissions")\n sessions Session[]\n\n @@map("users")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map("user_id")\n tokenHash String @unique @map("token_hash")\n expiresAt DateTime @map("expires_at")\n createdAt DateTime @default(now()) @map("created_at")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map("sessions")\n}\n\nmodel UserPermission {\n id Int @id @default(autoincrement())\n userId Int @map("user_id")\n permission Permission\n grantedAt DateTime @default(now()) @map("granted_at")\n grantedBy Int? @map("granted_by")\n user User @relation("UserPermissions", fields: [userId], references: [id], onDelete: Cascade)\n grantedByUser User? @relation("GrantedByPermissions", fields: [grantedBy], references: [id])\n\n @@unique([userId, permission])\n @@map("user_permissions")\n}\n\nmodel SchemaVersion {\n id Int @id @default(1)\n version Int\n updated String\n\n @@map("schema_version")\n}\n',
20
- runtimeDataModel: {
21
- models: {},
22
- enums: {},
23
- types: {},
24
- },
25
- parameterizationSchema: {
26
- strings: [],
27
- graph: "",
28
- },
14
+ "previewFeatures": [],
15
+ "clientVersion": "7.6.0",
16
+ "engineVersion": "75cbdc1eb7150937890ad5465d861175c6624711",
17
+ "activeProvider": "sqlite",
18
+ "inlineSchema": "datasource db {\n provider = \"sqlite\"\n}\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\nenum Permission {\n supervisor_admin\n manage_agents\n manage_hosts\n agent_communication\n manage_models\n manage_variables\n view_run_logs\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n username String @unique\n uuid String @default(\"\")\n isAgent Boolean @default(false) @map(\"is_agent\")\n passwordHash String @default(\"\") @map(\"password_hash\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n apiKey String? @unique @map(\"api_key\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n permissions UserPermission[] @relation(\"UserPermissions\")\n grantedPermissions UserPermission[] @relation(\"GrantedByPermissions\")\n sessions Session[]\n\n @@map(\"users\")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"sessions\")\n}\n\nmodel UserPermission {\n id Int @id @default(autoincrement())\n userId Int @map(\"user_id\")\n permission Permission\n grantedAt DateTime @default(now()) @map(\"granted_at\")\n grantedBy Int? @map(\"granted_by\")\n user User @relation(\"UserPermissions\", fields: [userId], references: [id], onDelete: Cascade)\n grantedByUser User? @relation(\"GrantedByPermissions\", fields: [grantedBy], references: [id])\n\n @@unique([userId, permission])\n @@map(\"user_permissions\")\n}\n\nmodel SchemaVersion {\n id Int @id @default(1)\n version Int\n updated String\n\n @@map(\"schema_version\")\n}\n",
19
+ "runtimeDataModel": {
20
+ "models": {},
21
+ "enums": {},
22
+ "types": {}
23
+ },
24
+ "parameterizationSchema": {
25
+ "strings": [],
26
+ "graph": ""
27
+ }
29
28
  };
30
- config.runtimeDataModel = JSON.parse(
31
- '{"models":{"User":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"username","kind":"scalar","type":"String"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"isAgent","kind":"scalar","type":"Boolean","dbName":"is_agent"},{"name":"passwordHash","kind":"scalar","type":"String","dbName":"password_hash"},{"name":"createdAt","kind":"scalar","type":"DateTime","dbName":"created_at"},{"name":"apiKey","kind":"scalar","type":"String","dbName":"api_key"},{"name":"updatedAt","kind":"scalar","type":"DateTime","dbName":"updated_at"},{"name":"permissions","kind":"object","type":"UserPermission","relationName":"UserPermissions"},{"name":"grantedPermissions","kind":"object","type":"UserPermission","relationName":"GrantedByPermissions"},{"name":"sessions","kind":"object","type":"Session","relationName":"SessionToUser"}],"dbName":"users"},"Session":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"userId","kind":"scalar","type":"Int","dbName":"user_id"},{"name":"tokenHash","kind":"scalar","type":"String","dbName":"token_hash"},{"name":"expiresAt","kind":"scalar","type":"DateTime","dbName":"expires_at"},{"name":"createdAt","kind":"scalar","type":"DateTime","dbName":"created_at"},{"name":"user","kind":"object","type":"User","relationName":"SessionToUser"}],"dbName":"sessions"},"UserPermission":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"userId","kind":"scalar","type":"Int","dbName":"user_id"},{"name":"permission","kind":"enum","type":"Permission"},{"name":"grantedAt","kind":"scalar","type":"DateTime","dbName":"granted_at"},{"name":"grantedBy","kind":"scalar","type":"Int","dbName":"granted_by"},{"name":"user","kind":"object","type":"User","relationName":"UserPermissions"},{"name":"grantedByUser","kind":"object","type":"User","relationName":"GrantedByPermissions"}],"dbName":"user_permissions"},"SchemaVersion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"version","kind":"scalar","type":"Int"},{"name":"updated","kind":"scalar","type":"String"}],"dbName":"schema_version"}},"enums":{},"types":{}}',
32
- );
29
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isAgent\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_agent\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"apiKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"api_key\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"UserPermission\",\"relationName\":\"UserPermissions\"},{\"name\":\"grantedPermissions\",\"kind\":\"object\",\"type\":\"UserPermission\",\"relationName\":\"GrantedByPermissions\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"users\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"sessions\"},\"UserPermission\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"user_id\"},{\"name\":\"permission\",\"kind\":\"enum\",\"type\":\"Permission\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"granted_at\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"granted_by\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserPermissions\"},{\"name\":\"grantedByUser\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"GrantedByPermissions\"}],\"dbName\":\"user_permissions\"},\"SchemaVersion\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"schema_version\"}},\"enums\":{},\"types\":{}}");
33
30
  config.parameterizationSchema = {
34
- strings: JSON.parse(
35
- '["where","orderBy","cursor","user","grantedByUser","permissions","grantedPermissions","sessions","_count","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","_avg","_sum","_min","_max","User.groupBy","User.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","UserPermission.findUnique","UserPermission.findUniqueOrThrow","UserPermission.findFirst","UserPermission.findFirstOrThrow","UserPermission.findMany","UserPermission.createOne","UserPermission.createMany","UserPermission.createManyAndReturn","UserPermission.updateOne","UserPermission.updateMany","UserPermission.updateManyAndReturn","UserPermission.upsertOne","UserPermission.deleteOne","UserPermission.deleteMany","UserPermission.groupBy","UserPermission.aggregate","SchemaVersion.findUnique","SchemaVersion.findUniqueOrThrow","SchemaVersion.findFirst","SchemaVersion.findFirstOrThrow","SchemaVersion.findMany","SchemaVersion.createOne","SchemaVersion.createMany","SchemaVersion.createManyAndReturn","SchemaVersion.updateOne","SchemaVersion.updateMany","SchemaVersion.updateManyAndReturn","SchemaVersion.upsertOne","SchemaVersion.deleteOne","SchemaVersion.deleteMany","SchemaVersion.groupBy","SchemaVersion.aggregate","AND","OR","NOT","id","version","updated","equals","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","not","userId","Permission","permission","grantedAt","grantedBy","tokenHash","expiresAt","createdAt","username","uuid","isAgent","passwordHash","apiKey","updatedAt","every","some","none","userId_permission","is","isNot","connectOrCreate","upsert","createMany","set","disconnect","delete","connect","updateMany","deleteMany","increment","decrement","multiply","divide"]',
36
- ),
37
- graph:
38
- "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-ACAbAAB_ACAcAAB-ACAdAAB-ACAeAAB-ACBXAgAAAAFYAgAAAAVZAgAAAAVaAgAAAAFbAgAAAAFcAgAAAAFdAgAAAAFhAgB9ACENCAAAfgAgGwAAfwAgHAAAfgAgHQAAfgAgHgAAfgAgVwIAAAABWAIAAAAFWQIAAAAFWgIAAAABWwIAAAABXAIAAAABXQIAAAABYQIAfQAhCFcCAAAAAVgCAAAABVkCAAAABVoCAAAAAVsCAAAAAVwCAAAAAV0CAAAAAWECAH4AIQhXCAAAAAFYCAAAAAVZCAAAAAVaCAAAAAFbCAAAAAFcCAAAAAFdCAAAAAFhCAB_ACELCAAAcgAgHQAAgQEAIB4AAIEBACBXQAAAAAFYQAAAAARZQAAAAARaQAAAAAFbQAAAAAFcQAAAAAFdQAAAAAFhQACAAQAhCFdAAAAAAVhAAAAABFlAAAAABFpAAAAAAVtAAAAAAVxAAAAAAV1AAAAAAWFAAIEBACEHCAAAcgAgHQAAgwEAIB4AAIMBACBXAAAAZAJYAAAAZAhZAAAAZAhhAACCAWQiBFcAAABkAlgAAABkCFkAAABkCGEAAIMBZCIIUQAAhAEAMFIAADoAEFMAAIQBADBUAgBvACFiAgBvACFnAQBwACFoQAB7ACFpQAB7ACELUQAAhQEAMFIAACQAEFMAAIUBADBUAgBvACFpQAB7ACFqAQBwACFrAQBwACFsIACGAQAhbQEAcAAhbgEAhwEAIW9AAHsAIQUIAAByACAdAACLAQAgHgAAiwEAIFcgAAAAAWEgAIoBACEOCAAAfgAgHQAAiQEAIB4AAIkBACBXAQAAAAFYAQAAAAVZAQAAAAVaAQAAAAFbAQAAAAFcAQAAAAFdAQAAAAFeAQAAAAFfAQAAAAFgAQAAAAFhAQCIAQAhDggAAH4AIB0AAIkBACAeAACJAQAgVwEAAAABWAEAAAAFWQEAAAAFWgEAAAABWwEAAAABXAEAAAABXQEAAAABXgEAAAABXwEAAAABYAEAAAABYQEAiAEAIQtXAQAAAAFYAQAAAAVZAQAAAAVaAQAAAAFbAQAAAAFcAQAAAAFdAQAAAAFeAQAAAAFfAQAAAAFgAQAAAAFhAQCJAQAhBQgAAHIAIB0AAIsBACAeAACLAQAgVyAAAAABYSAAigEAIQJXIAAAAAFhIACLAQAhCQMAAI4BACBRAACMAQAwUgAACgAQUwAAjAEAMFQCAHcAIWICAHcAIWcBAHgAIWhAAI0BACFpQACNAQAhCFdAAAAAAVhAAAAABFlAAAAABFpAAAAAAVtAAAAAAVxAAAAAAV1AAAAAAWFAAIEBACEQBQAAkgEAIAYAAJIBACAHAACTAQAgUQAAjwEAMFIAAAcAEFMAAI8BADBUAgB3ACFpQACNAQAhagEAeAAhawEAeAAhbCAAkAEAIW0BAHgAIW4BAJEBACFvQACNAQAhdAAABwAgdQAABwAgDgUAAJIBACAGAACSAQAgBwAAkwEAIFEAAI8BADBSAAAHABBTAACPAQAwVAIAdwAhaUAAjQEAIWoBAHgAIWsBAHgAIWwgAJABACFtAQB4ACFuAQCRAQAhb0AAjQEAIQJXIAAAAAFhIACLAQAhC1cBAAAAAVgBAAAABVkBAAAABVoBAAAAAVsBAAAAAVwBAAAAAV0BAAAAAV4BAAAAAV8BAAAAAWABAAAAAWEBAIkBACEDcAAAAwAgcQAAAwAgcgAAAwAgA3AAAAoAIHEAAAoAIHIAAAoAIAJiAgAAAAFkAAAAZAIKAwAAjgEAIAQAAJgBACBRAACVAQAwUgAAAwAQUwAAlQEAMFQCAHcAIWICAHcAIWQAAJYBZCJlQACNAQAhZgIAlwEAIQRXAAAAZAJYAAAAZAhZAAAAZAhhAACDAWQiCFcCAAAAAVgCAAAABVkCAAAABVoCAAAAAVsCAAAAAVwCAAAAAV0CAAAAAWECAH4AIRAFAACSAQAgBgAAkgEAIAcAAJMBACBRAACPAQAwUgAABwAQUwAAjwEAMFQCAHcAIWlAAI0BACFqAQB4ACFrAQB4ACFsIACQAQAhbQEAeAAhbgEAkQEAIW9AAI0BACF0AAAHACB1AAAHACAAAAAAAAV5AgAAAAF_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_AQAweAAAwQEAIHwAAMIBADAAAAQFAADiAQAgBgAA4gEAIAcAAOMBACBuAACgAQAgBFQCAAAAAWQAAABkAmVAAAAAAWYCAAAAAQRUAgAAAAFiAgAAAAFkAAAAZAJlQAAAAAEEVAIAAAABZwEAAAABaEAAAAABaUAAAAABCgUAAN8BACAGAADgAQAgVAIAAAABaUAAAAABagEAAAABawEAAAABbCAAAAABbQEAAAABbgEAAAABb0AAAAABAgAAAAEAIBUAAOgBACADAAAABwAgFQAA6AEAIBYAAOwBACAMAAAABwAgBQAAuwEAIAYAALwBACAOAADsAQAgVAIAngEAIWlAAKcBACFqAQCfAQAhawEAnwEAIWwgALkBACFtAQCfAQAhbgEAugEAIW9AAKcBACEKBQAAuwEAIAYAALwBACBUAgCeAQAhaUAApwEAIWoBAJ8BACFrAQCfAQAhbCAAuQEAIW0BAJ8BACFuAQC6AQAhb0AApwEAIQoFAADfAQAgBwAA4QEAIFQCAAAAAWlAAAAAAWoBAAAAAWsBAAAAAWwgAAAAAW0BAAAAAW4BAAAAAW9AAAAAAQIAAAABACAVAADtAQAgCgYAAOABACAHAADhAQAgVAIAAAABaUAAAAABagEAAAABawEAAAABbCAAAAABbQEAAAABbgEAAAABb0AAAAABAgAAAAEAIBUAAO8BACADAAAABwAgFQAA7QEAIBYAAPMBACAMAAAABwAgBQAAuwEAIAcAAL0BACAOAADzAQAgVAIAngEAIWlAAKcBACFqAQCfAQAhawEAnwEAIWwgALkBACFtAQCfAQAhbgEAugEAIW9AAKcBACEKBQAAuwEAIAcAAL0BACBUAgCeAQAhaUAApwEAIWoBAJ8BACFrAQCfAQAhbCAAuQEAIW0BAJ8BACFuAQC6AQAhb0AApwEAIQMAAAAHACAVAADvAQAgFgAA9gEAIAwAAAAHACAGAAC8AQAgBwAAvQEAIA4AAPYBACBUAgCeAQAhaUAApwEAIWoBAJ8BACFrAQCfAQAhbCAAuQEAIW0BAJ8BACFuAQC6AQAhb0AApwEAIQoGAAC8AQAgBwAAvQEAIFQCAJ4BACFpQACnAQAhagEAnwEAIWsBAJ8BACFsIAC5AQAhbQEAnwEAIW4BALoBACFvQACnAQAhBAUGAgYJAgcNAwgABAIDAAEECAEBAwABAwUOAAYPAAcQAAAAAAUIAAkbAAocAAsdAAweAA0AAAAAAAUIAAkbAAocAAsdAAweAA0BAwABAQMAAQUIABIbABMcABQdABUeABYAAAAAAAUIABIbABMcABQdABUeABYCAwABBEcBAgMAAQRNAQUIABsbABwcAB0dAB4eAB8AAAAAAAUIABsbABwcAB0dAB4eAB8AAAAFCAAlGwAmHAAnHQAoHgApAAAAAAAFCAAlGwAmHAAnHQAoHgApCQIBChEBCxMBDBQBDRUBDxcBEBkFERoGEhwBEx4FFB8HFyABGCEBGSIFHyUIICYOIScDIigDIykDJCoDJSsDJi0DJy8FKDAPKTIDKjQFKzUQLDYDLTcDLjgFLzsRMDwXMT0CMj4CMz8CNEACNUECNkMCN0UFOEYYOUkCOksFO0wZPE4CPU8CPlAFP1MaQFQgQVYhQlchQ1ohRFshRVwhRl4hR2AFSGEiSWMhSmUFS2YjTGchTWghTmkFT2wkUG0q",
31
+ strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"grantedByUser\",\"permissions\",\"grantedPermissions\",\"sessions\",\"_count\",\"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\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"User.groupBy\",\"User.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\",\"UserPermission.findUnique\",\"UserPermission.findUniqueOrThrow\",\"UserPermission.findFirst\",\"UserPermission.findFirstOrThrow\",\"UserPermission.findMany\",\"UserPermission.createOne\",\"UserPermission.createMany\",\"UserPermission.createManyAndReturn\",\"UserPermission.updateOne\",\"UserPermission.updateMany\",\"UserPermission.updateManyAndReturn\",\"UserPermission.upsertOne\",\"UserPermission.deleteOne\",\"UserPermission.deleteMany\",\"UserPermission.groupBy\",\"UserPermission.aggregate\",\"SchemaVersion.findUnique\",\"SchemaVersion.findUniqueOrThrow\",\"SchemaVersion.findFirst\",\"SchemaVersion.findFirstOrThrow\",\"SchemaVersion.findMany\",\"SchemaVersion.createOne\",\"SchemaVersion.createMany\",\"SchemaVersion.createManyAndReturn\",\"SchemaVersion.updateOne\",\"SchemaVersion.updateMany\",\"SchemaVersion.updateManyAndReturn\",\"SchemaVersion.upsertOne\",\"SchemaVersion.deleteOne\",\"SchemaVersion.deleteMany\",\"SchemaVersion.groupBy\",\"SchemaVersion.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"version\",\"updated\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"contains\",\"startsWith\",\"endsWith\",\"not\",\"userId\",\"Permission\",\"permission\",\"grantedAt\",\"grantedBy\",\"tokenHash\",\"expiresAt\",\"createdAt\",\"username\",\"uuid\",\"isAgent\",\"passwordHash\",\"apiKey\",\"updatedAt\",\"every\",\"some\",\"none\",\"userId_permission\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
32
+ graph: "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-ACAbAAB_ACAcAAB-ACAdAAB-ACAeAAB-ACBXAgAAAAFYAgAAAAVZAgAAAAVaAgAAAAFbAgAAAAFcAgAAAAFdAgAAAAFhAgB9ACENCAAAfgAgGwAAfwAgHAAAfgAgHQAAfgAgHgAAfgAgVwIAAAABWAIAAAAFWQIAAAAFWgIAAAABWwIAAAABXAIAAAABXQIAAAABYQIAfQAhCFcCAAAAAVgCAAAABVkCAAAABVoCAAAAAVsCAAAAAVwCAAAAAV0CAAAAAWECAH4AIQhXCAAAAAFYCAAAAAVZCAAAAAVaCAAAAAFbCAAAAAFcCAAAAAFdCAAAAAFhCAB_ACELCAAAcgAgHQAAgQEAIB4AAIEBACBXQAAAAAFYQAAAAARZQAAAAARaQAAAAAFbQAAAAAFcQAAAAAFdQAAAAAFhQACAAQAhCFdAAAAAAVhAAAAABFlAAAAABFpAAAAAAVtAAAAAAVxAAAAAAV1AAAAAAWFAAIEBACEHCAAAcgAgHQAAgwEAIB4AAIMBACBXAAAAZAJYAAAAZAhZAAAAZAhhAACCAWQiBFcAAABkAlgAAABkCFkAAABkCGEAAIMBZCIIUQAAhAEAMFIAADoAEFMAAIQBADBUAgBvACFiAgBvACFnAQBwACFoQAB7ACFpQAB7ACELUQAAhQEAMFIAACQAEFMAAIUBADBUAgBvACFpQAB7ACFqAQBwACFrAQBwACFsIACGAQAhbQEAcAAhbgEAhwEAIW9AAHsAIQUIAAByACAdAACLAQAgHgAAiwEAIFcgAAAAAWEgAIoBACEOCAAAfgAgHQAAiQEAIB4AAIkBACBXAQAAAAFYAQAAAAVZAQAAAAVaAQAAAAFbAQAAAAFcAQAAAAFdAQAAAAFeAQAAAAFfAQAAAAFgAQAAAAFhAQCIAQAhDggAAH4AIB0AAIkBACAeAACJAQAgVwEAAAABWAEAAAAFWQEAAAAFWgEAAAABWwEAAAABXAEAAAABXQEAAAABXgEAAAABXwEAAAABYAEAAAABYQEAiAEAIQtXAQAAAAFYAQAAAAVZAQAAAAVaAQAAAAFbAQAAAAFcAQAAAAFdAQAAAAFeAQAAAAFfAQAAAAFgAQAAAAFhAQCJAQAhBQgAAHIAIB0AAIsBACAeAACLAQAgVyAAAAABYSAAigEAIQJXIAAAAAFhIACLAQAhCQMAAI4BACBRAACMAQAwUgAACgAQUwAAjAEAMFQCAHcAIWICAHcAIWcBAHgAIWhAAI0BACFpQACNAQAhCFdAAAAAAVhAAAAABFlAAAAABFpAAAAAAVtAAAAAAVxAAAAAAV1AAAAAAWFAAIEBACEQBQAAkgEAIAYAAJIBACAHAACTAQAgUQAAjwEAMFIAAAcAEFMAAI8BADBUAgB3ACFpQACNAQAhagEAeAAhawEAeAAhbCAAkAEAIW0BAHgAIW4BAJEBACFvQACNAQAhdAAABwAgdQAABwAgDgUAAJIBACAGAACSAQAgBwAAkwEAIFEAAI8BADBSAAAHABBTAACPAQAwVAIAdwAhaUAAjQEAIWoBAHgAIWsBAHgAIWwgAJABACFtAQB4ACFuAQCRAQAhb0AAjQEAIQJXIAAAAAFhIACLAQAhC1cBAAAAAVgBAAAABVkBAAAABVoBAAAAAVsBAAAAAVwBAAAAAV0BAAAAAV4BAAAAAV8BAAAAAWABAAAAAWEBAIkBACEDcAAAAwAgcQAAAwAgcgAAAwAgA3AAAAoAIHEAAAoAIHIAAAoAIAJiAgAAAAFkAAAAZAIKAwAAjgEAIAQAAJgBACBRAACVAQAwUgAAAwAQUwAAlQEAMFQCAHcAIWICAHcAIWQAAJYBZCJlQACNAQAhZgIAlwEAIQRXAAAAZAJYAAAAZAhZAAAAZAhhAACDAWQiCFcCAAAAAVgCAAAABVkCAAAABVoCAAAAAVsCAAAAAVwCAAAAAV0CAAAAAWECAH4AIRAFAACSAQAgBgAAkgEAIAcAAJMBACBRAACPAQAwUgAABwAQUwAAjwEAMFQCAHcAIWlAAI0BACFqAQB4ACFrAQB4ACFsIACQAQAhbQEAeAAhbgEAkQEAIW9AAI0BACF0AAAHACB1AAAHACAAAAAAAAV5AgAAAAF_AgAAAAGAAQIAAAABgQECAAAAAYIBAgAAAAEBeQEAAAABAAAAAAAAAXkAAABkAgF5QAAAAAEFeQIAAAABfwIAAAABgAECAAAAAYEBAgAAAAGCAQIAAAABBRUAAO8BACAWAAD1AQAgdgAA8AEAIHcAAPQBACB8AAABACAHFQAA7QEAIBYAAPIBACB2AADuAQAgdwAA8QEAIHoAAAcAIHsAAAcAIHwAAAEAIAMVAADvAQAgdgAA8AEAIHwAAAEAIAMVAADtAQAgdgAA7gEAIHwAAAEAIAAAAAAABRUAAOgBACAWAADrAQAgdgAA6QEAIHcAAOoBACB8AAABACADFQAA6AEAIHYAAOkBACB8AAABACAAAAAAAAF5IAAAAAEBeQEAAAABCxUAANYBADAWAADaAQAwdgAA1wEAMHcAANgBADB4AADZAQAgeQAAzgEAMHoAAM4BADB7AADOAQAwfAAAzgEAMH0AANsBADB-AADRAQAwCxUAAMoBADAWAADPAQAwdgAAywEAMHcAAMwBADB4AADNAQAgeQAAzgEAMHoAAM4BADB7AADOAQAwfAAAzgEAMH0AANABADB-AADRAQAwCxUAAL4BADAWAADDAQAwdgAAvwEAMHcAAMABADB4AADBAQAgeQAAwgEAMHoAAMIBADB7AADCAQAwfAAAwgEAMH0AAMQBADB-AADFAQAwBFQCAAAAAWcBAAAAAWhAAAAAAWlAAAAAAQIAAAAMACAVAADJAQAgAwAAAAwAIBUAAMkBACAWAADIAQAgAQ4AAOcBADAJAwAAjgEAIFEAAIwBADBSAAAKABBTAACMAQAwVAIAAAABYgIAdwAhZwEAAAABaEAAjQEAIWlAAI0BACECAAAADAAgDgAAyAEAIAIAAADGAQAgDgAAxwEAIAhRAADFAQAwUgAAxgEAEFMAAMUBADBUAgB3ACFiAgB3ACFnAQB4ACFoQACNAQAhaUAAjQEAIQhRAADFAQAwUgAAxgEAEFMAAMUBADBUAgB3ACFiAgB3ACFnAQB4ACFoQACNAQAhaUAAjQEAIQRUAgCeAQAhZwEAnwEAIWhAAKcBACFpQACnAQAhBFQCAJ4BACFnAQCfAQAhaEAApwEAIWlAAKcBACEEVAIAAAABZwEAAAABaEAAAAABaUAAAAABBQMAAKsBACBUAgAAAAFiAgAAAAFkAAAAZAJlQAAAAAECAAAABQAgFQAA1QEAIAMAAAAFACAVAADVAQAgFgAA1AEAIAEOAADmAQAwCwMAAI4BACAEAACYAQAgUQAAlQEAMFIAAAMAEFMAAJUBADBUAgAAAAFiAgB3ACFkAACWAWQiZUAAjQEAIWYCAJcBACFzAACUAQAgAgAAAAUAIA4AANQBACACAAAA0gEAIA4AANMBACAIUQAA0QEAMFIAANIBABBTAADRAQAwVAIAdwAhYgIAdwAhZAAAlgFkImVAAI0BACFmAgCXAQAhCFEAANEBADBSAADSAQAQUwAA0QEAMFQCAHcAIWICAHcAIWQAAJYBZCJlQACNAQAhZgIAlwEAIQRUAgCeAQAhYgIAngEAIWQAAKYBZCJlQACnAQAhBQMAAKkBACBUAgCeAQAhYgIAngEAIWQAAKYBZCJlQACnAQAhBQMAAKsBACBUAgAAAAFiAgAAAAFkAAAAZAJlQAAAAAEFBAAArAEAIFQCAAAAAWQAAABkAmVAAAAAAWYCAAAAAQIAAAAFACAVAADeAQAgAwAAAAUAIBUAAN4BACAWAADdAQAgAQ4AAOUBADACAAAABQAgDgAA3QEAIAIAAADSAQAgDgAA3AEAIARUAgCeAQAhZAAApgFkImVAAKcBACFmAgCoAQAhBQQAAKoBACBUAgCeAQAhZAAApgFkImVAAKcBACFmAgCoAQAhBQQAAKwBACBUAgAAAAFkAAAAZAJlQAAAAAFmAgAAAAEEFQAA1gEAMHYAANcBADB4AADZAQAgfAAAzgEAMAQVAADKAQAwdgAAywEAMHgAAM0BACB8AADOAQAwBBUAAL4BADB2AAC_AQAweAAAwQEAIHwAAMIBADAAAAQFAADiAQAgBgAA4gEAIAcAAOMBACBuAACgAQAgBFQCAAAAAWQAAABkAmVAAAAAAWYCAAAAAQRUAgAAAAFiAgAAAAFkAAAAZAJlQAAAAAEEVAIAAAABZwEAAAABaEAAAAABaUAAAAABCgUAAN8BACAGAADgAQAgVAIAAAABaUAAAAABagEAAAABawEAAAABbCAAAAABbQEAAAABbgEAAAABb0AAAAABAgAAAAEAIBUAAOgBACADAAAABwAgFQAA6AEAIBYAAOwBACAMAAAABwAgBQAAuwEAIAYAALwBACAOAADsAQAgVAIAngEAIWlAAKcBACFqAQCfAQAhawEAnwEAIWwgALkBACFtAQCfAQAhbgEAugEAIW9AAKcBACEKBQAAuwEAIAYAALwBACBUAgCeAQAhaUAApwEAIWoBAJ8BACFrAQCfAQAhbCAAuQEAIW0BAJ8BACFuAQC6AQAhb0AApwEAIQoFAADfAQAgBwAA4QEAIFQCAAAAAWlAAAAAAWoBAAAAAWsBAAAAAWwgAAAAAW0BAAAAAW4BAAAAAW9AAAAAAQIAAAABACAVAADtAQAgCgYAAOABACAHAADhAQAgVAIAAAABaUAAAAABagEAAAABawEAAAABbCAAAAABbQEAAAABbgEAAAABb0AAAAABAgAAAAEAIBUAAO8BACADAAAABwAgFQAA7QEAIBYAAPMBACAMAAAABwAgBQAAuwEAIAcAAL0BACAOAADzAQAgVAIAngEAIWlAAKcBACFqAQCfAQAhawEAnwEAIWwgALkBACFtAQCfAQAhbgEAugEAIW9AAKcBACEKBQAAuwEAIAcAAL0BACBUAgCeAQAhaUAApwEAIWoBAJ8BACFrAQCfAQAhbCAAuQEAIW0BAJ8BACFuAQC6AQAhb0AApwEAIQMAAAAHACAVAADvAQAgFgAA9gEAIAwAAAAHACAGAAC8AQAgBwAAvQEAIA4AAPYBACBUAgCeAQAhaUAApwEAIWoBAJ8BACFrAQCfAQAhbCAAuQEAIW0BAJ8BACFuAQC6AQAhb0AApwEAIQoGAAC8AQAgBwAAvQEAIFQCAJ4BACFpQACnAQAhagEAnwEAIWsBAJ8BACFsIAC5AQAhbQEAnwEAIW4BALoBACFvQACnAQAhBAUGAgYJAgcNAwgABAIDAAEECAEBAwABAwUOAAYPAAcQAAAAAAUIAAkbAAocAAsdAAweAA0AAAAAAAUIAAkbAAocAAsdAAweAA0BAwABAQMAAQUIABIbABMcABQdABUeABYAAAAAAAUIABIbABMcABQdABUeABYCAwABBEcBAgMAAQRNAQUIABsbABwcAB0dAB4eAB8AAAAAAAUIABsbABwcAB0dAB4eAB8AAAAFCAAlGwAmHAAnHQAoHgApAAAAAAAFCAAlGwAmHAAnHQAoHgApCQIBChEBCxMBDBQBDRUBDxcBEBkFERoGEhwBEx4FFB8HFyABGCEBGSIFHyUIICYOIScDIigDIykDJCoDJSsDJi0DJy8FKDAPKTIDKjQFKzUQLDYDLTcDLjgFLzsRMDwXMT0CMj4CMz8CNEACNUECNkMCN0UFOEYYOUkCOksFO0wZPE4CPU8CPlAFP1MaQFQgQVYhQlchQ1ohRFshRVwhRl4hR2AFSGEiSWMhSmUFS2YjTGchTWghTmkFT2wkUG0q"
39
33
  };
40
34
  async function decodeBase64AsWasm(wasmBase64) {
41
- const { Buffer } = await import("node:buffer");
42
- const wasmArray = Buffer.from(wasmBase64, "base64");
43
- return new WebAssembly.Module(wasmArray);
35
+ const { Buffer } = await import('node:buffer');
36
+ const wasmArray = Buffer.from(wasmBase64, 'base64');
37
+ return new WebAssembly.Module(wasmArray);
44
38
  }
45
39
  config.compilerWasm = {
46
- getRuntime: async () =>
47
- await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.mjs"),
48
- getQueryCompilerWasmModule: async () => {
49
- const { wasm } =
50
- await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.wasm-base64.mjs");
51
- return await decodeBase64AsWasm(wasm);
52
- },
53
- importName: "./query_compiler_fast_bg.js",
40
+ getRuntime: async () => await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.mjs"),
41
+ getQueryCompilerWasmModule: async () => {
42
+ const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.wasm-base64.mjs");
43
+ return await decodeBase64AsWasm(wasm);
44
+ },
45
+ importName: "./query_compiler_fast_bg.js"
54
46
  };
55
47
  export function getPrismaClientClass() {
56
- return runtime.getPrismaClient(config);
48
+ return runtime.getPrismaClient(config);
57
49
  }
@@ -1,7 +1,7 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
6
  * WARNING: This is an internal file that is subject to change!
7
7
  *
@@ -17,13 +17,10 @@ import * as runtime from "@prisma/client/runtime/client";
17
17
  /**
18
18
  * Prisma Errors
19
19
  */
20
- export const PrismaClientKnownRequestError =
21
- runtime.PrismaClientKnownRequestError;
22
- export const PrismaClientUnknownRequestError =
23
- runtime.PrismaClientUnknownRequestError;
20
+ export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError;
21
+ export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError;
24
22
  export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError;
25
- export const PrismaClientInitializationError =
26
- runtime.PrismaClientInitializationError;
23
+ export const PrismaClientInitializationError = runtime.PrismaClientInitializationError;
27
24
  export const PrismaClientValidationError = runtime.PrismaClientValidationError;
28
25
  /**
29
26
  * Re-export of sql-template-tag
@@ -43,13 +40,13 @@ export const getExtensionContext = runtime.Extensions.getExtensionContext;
43
40
  * Query Engine version: 75cbdc1eb7150937890ad5465d861175c6624711
44
41
  */
45
42
  export const prismaVersion = {
46
- client: "7.6.0",
47
- engine: "75cbdc1eb7150937890ad5465d861175c6624711",
43
+ client: "7.6.0",
44
+ engine: "75cbdc1eb7150937890ad5465d861175c6624711"
48
45
  };
49
46
  export const NullTypes = {
50
- DbNull: runtime.NullTypes.DbNull,
51
- JsonNull: runtime.NullTypes.JsonNull,
52
- AnyNull: runtime.NullTypes.AnyNull,
47
+ DbNull: runtime.NullTypes.DbNull,
48
+ JsonNull: runtime.NullTypes.JsonNull,
49
+ AnyNull: runtime.NullTypes.AnyNull,
53
50
  };
54
51
  /**
55
52
  * Helper for filtering JSON entries that have `null` on the database (empty on the db)
@@ -70,52 +67,52 @@ export const JsonNull = runtime.JsonNull;
70
67
  */
71
68
  export const AnyNull = runtime.AnyNull;
72
69
  export const ModelName = {
73
- User: "User",
74
- Session: "Session",
75
- UserPermission: "UserPermission",
76
- SchemaVersion: "SchemaVersion",
70
+ User: 'User',
71
+ Session: 'Session',
72
+ UserPermission: 'UserPermission',
73
+ SchemaVersion: 'SchemaVersion'
77
74
  };
78
75
  /**
79
76
  * Enums
80
77
  */
81
78
  export const TransactionIsolationLevel = runtime.makeStrictEnum({
82
- Serializable: "Serializable",
79
+ Serializable: 'Serializable'
83
80
  });
84
81
  export const UserScalarFieldEnum = {
85
- id: "id",
86
- username: "username",
87
- uuid: "uuid",
88
- isAgent: "isAgent",
89
- passwordHash: "passwordHash",
90
- createdAt: "createdAt",
91
- apiKey: "apiKey",
92
- updatedAt: "updatedAt",
82
+ id: 'id',
83
+ username: 'username',
84
+ uuid: 'uuid',
85
+ isAgent: 'isAgent',
86
+ passwordHash: 'passwordHash',
87
+ createdAt: 'createdAt',
88
+ apiKey: 'apiKey',
89
+ updatedAt: 'updatedAt'
93
90
  };
94
91
  export const SessionScalarFieldEnum = {
95
- id: "id",
96
- userId: "userId",
97
- tokenHash: "tokenHash",
98
- expiresAt: "expiresAt",
99
- createdAt: "createdAt",
92
+ id: 'id',
93
+ userId: 'userId',
94
+ tokenHash: 'tokenHash',
95
+ expiresAt: 'expiresAt',
96
+ createdAt: 'createdAt'
100
97
  };
101
98
  export const UserPermissionScalarFieldEnum = {
102
- id: "id",
103
- userId: "userId",
104
- permission: "permission",
105
- grantedAt: "grantedAt",
106
- grantedBy: "grantedBy",
99
+ id: 'id',
100
+ userId: 'userId',
101
+ permission: 'permission',
102
+ grantedAt: 'grantedAt',
103
+ grantedBy: 'grantedBy'
107
104
  };
108
105
  export const SchemaVersionScalarFieldEnum = {
109
- id: "id",
110
- version: "version",
111
- updated: "updated",
106
+ id: 'id',
107
+ version: 'version',
108
+ updated: 'updated'
112
109
  };
113
110
  export const SortOrder = {
114
- asc: "asc",
115
- desc: "desc",
111
+ asc: 'asc',
112
+ desc: 'desc'
116
113
  };
117
114
  export const NullsOrder = {
118
- first: "first",
119
- last: "last",
115
+ first: 'first',
116
+ last: 'last'
120
117
  };
121
118
  export const defineExtension = runtime.Extensions.defineExtension;
@@ -1,7 +1,7 @@
1
1
  /* !!! This is code generated by Prisma. Do not edit directly. !!! */
2
2
  /* eslint-disable */
3
3
  // biome-ignore-all lint: generated file
4
- // @ts-nocheck
4
+ // @ts-nocheck
5
5
  /*
6
6
  * WARNING: This is an internal file that is subject to change!
7
7
  *
@@ -16,9 +16,9 @@
16
16
  import * as runtime from "@prisma/client/runtime/index-browser";
17
17
  export const Decimal = runtime.Decimal;
18
18
  export const NullTypes = {
19
- DbNull: runtime.NullTypes.DbNull,
20
- JsonNull: runtime.NullTypes.JsonNull,
21
- AnyNull: runtime.NullTypes.AnyNull,
19
+ DbNull: runtime.NullTypes.DbNull,
20
+ JsonNull: runtime.NullTypes.JsonNull,
21
+ AnyNull: runtime.NullTypes.AnyNull,
22
22
  };
23
23
  /**
24
24
  * Helper for filtering JSON entries that have `null` on the database (empty on the db)
@@ -39,51 +39,51 @@ export const JsonNull = runtime.JsonNull;
39
39
  */
40
40
  export const AnyNull = runtime.AnyNull;
41
41
  export const ModelName = {
42
- User: "User",
43
- Session: "Session",
44
- UserPermission: "UserPermission",
45
- SchemaVersion: "SchemaVersion",
42
+ User: 'User',
43
+ Session: 'Session',
44
+ UserPermission: 'UserPermission',
45
+ SchemaVersion: 'SchemaVersion'
46
46
  };
47
47
  /*
48
48
  * Enums
49
49
  */
50
50
  export const TransactionIsolationLevel = runtime.makeStrictEnum({
51
- Serializable: "Serializable",
51
+ Serializable: 'Serializable'
52
52
  });
53
53
  export const UserScalarFieldEnum = {
54
- id: "id",
55
- username: "username",
56
- uuid: "uuid",
57
- isAgent: "isAgent",
58
- passwordHash: "passwordHash",
59
- createdAt: "createdAt",
60
- apiKey: "apiKey",
61
- updatedAt: "updatedAt",
54
+ id: 'id',
55
+ username: 'username',
56
+ uuid: 'uuid',
57
+ isAgent: 'isAgent',
58
+ passwordHash: 'passwordHash',
59
+ createdAt: 'createdAt',
60
+ apiKey: 'apiKey',
61
+ updatedAt: 'updatedAt'
62
62
  };
63
63
  export const SessionScalarFieldEnum = {
64
- id: "id",
65
- userId: "userId",
66
- tokenHash: "tokenHash",
67
- expiresAt: "expiresAt",
68
- createdAt: "createdAt",
64
+ id: 'id',
65
+ userId: 'userId',
66
+ tokenHash: 'tokenHash',
67
+ expiresAt: 'expiresAt',
68
+ createdAt: 'createdAt'
69
69
  };
70
70
  export const UserPermissionScalarFieldEnum = {
71
- id: "id",
72
- userId: "userId",
73
- permission: "permission",
74
- grantedAt: "grantedAt",
75
- grantedBy: "grantedBy",
71
+ id: 'id',
72
+ userId: 'userId',
73
+ permission: 'permission',
74
+ grantedAt: 'grantedAt',
75
+ grantedBy: 'grantedBy'
76
76
  };
77
77
  export const SchemaVersionScalarFieldEnum = {
78
- id: "id",
79
- version: "version",
80
- updated: "updated",
78
+ id: 'id',
79
+ version: 'version',
80
+ updated: 'updated'
81
81
  };
82
82
  export const SortOrder = {
83
- asc: "asc",
84
- desc: "desc",
83
+ asc: 'asc',
84
+ desc: 'desc'
85
85
  };
86
86
  export const NullsOrder = {
87
- first: "first",
88
- last: "last",
87
+ first: 'first',
88
+ last: 'last'
89
89
  };
package/dist/index.js CHANGED
@@ -1,25 +1,10 @@
1
1
  // Re-export Database Config
2
- export {
3
- SUPERVISOR_DB_VERSION,
4
- supervisorDbPath,
5
- supervisorDbUrl,
6
- } from "./dbConfig.js";
2
+ export { SUPERVISOR_DB_VERSION, supervisorDbPath, supervisorDbUrl, } from "./dbConfig.js";
7
3
  // Re-export Prisma client factory
8
4
  export { createPrismaClient } from "./prismaClient.js";
9
5
  // Re-export Migration Helper
10
6
  export { deploySupervisorMigrations } from "./migrationHelper.js";
11
- export {
12
- authenticateAndCreateSession,
13
- createSupervisorDatabaseClient,
14
- deleteSession,
15
- ensureSuperAdmin,
16
- findSession,
17
- findUserByApiKey,
18
- handleResetPassword,
19
- lookupUsername,
20
- resetPassword,
21
- updateUserPassword,
22
- } from "./sessionService.js";
7
+ export { authenticateAndCreateSession, createSupervisorDatabaseClient, deleteSession, ensureSuperAdmin, findSession, findUserByApiKey, handleResetPassword, lookupUsername, resetPassword, updateUserPassword, } from "./sessionService.js";
23
8
  // Re-export Prisma Client and all generated types
24
9
  export * from "./generated/prisma/client.js";
25
10
  export { PrismaClient } from "./generated/prisma/client.js";
@@ -5,9 +5,9 @@ import { SUPERVISOR_DB_VERSION, supervisorDbPath } from "./dbConfig.js";
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const packageDir = join(dirname(__filename), "..");
7
7
  export async function deploySupervisorMigrations() {
8
- await deployPrismaMigrations({
9
- packageDir,
10
- databasePath: supervisorDbPath(),
11
- expectedVersion: SUPERVISOR_DB_VERSION,
12
- });
8
+ await deployPrismaMigrations({
9
+ packageDir,
10
+ databasePath: supervisorDbPath(),
11
+ expectedVersion: SUPERVISOR_DB_VERSION,
12
+ });
13
13
  }
@@ -6,16 +6,16 @@ import { PrismaClient } from "./generated/prisma/client.js";
6
6
  * @returns Configured PrismaClient instance
7
7
  */
8
8
  export async function createPrismaClient(databasePath) {
9
- const adapter = new PrismaBetterSqlite3({
10
- url: `file:${databasePath}`,
11
- timeout: 10_000, // Wait up to 10s for SQLite lock to be released
12
- });
13
- const prisma = new PrismaClient({ adapter });
14
- // Enable WAL mode for better concurrent read/write performance
15
- await prisma.$executeRawUnsafe("PRAGMA journal_mode=WAL");
16
- // NORMAL is safe with WAL and avoids an extra fsync per commit
17
- await prisma.$executeRawUnsafe("PRAGMA synchronous=NORMAL");
18
- // SQLite doesn't enforce foreign keys by default — must be enabled per connection
19
- await prisma.$executeRawUnsafe("PRAGMA foreign_keys=ON");
20
- return prisma;
9
+ const adapter = new PrismaBetterSqlite3({
10
+ url: `file:${databasePath}`,
11
+ timeout: 10_000, // Wait up to 10s for SQLite lock to be released
12
+ });
13
+ const prisma = new PrismaClient({ adapter });
14
+ // Enable WAL mode for better concurrent read/write performance
15
+ await prisma.$executeRawUnsafe("PRAGMA journal_mode=WAL");
16
+ // NORMAL is safe with WAL and avoids an extra fsync per commit
17
+ await prisma.$executeRawUnsafe("PRAGMA synchronous=NORMAL");
18
+ // SQLite doesn't enforce foreign keys by default — must be enabled per connection
19
+ await prisma.$executeRawUnsafe("PRAGMA foreign_keys=ON");
20
+ return prisma;
21
21
  }
@@ -14,191 +14,195 @@ let supervisorDb = null;
14
14
  * No-ops gracefully if NAISYS_FOLDER is unset or the database doesn't exist.
15
15
  */
16
16
  export async function createSupervisorDatabaseClient() {
17
- if (supervisorDb) return true;
18
- const dbPath = supervisorDbPath();
19
- if (!existsSync(dbPath)) return false;
20
- supervisorDb = await createPrismaClient(dbPath);
21
- return true;
17
+ if (supervisorDb)
18
+ return true;
19
+ const dbPath = supervisorDbPath();
20
+ if (!existsSync(dbPath))
21
+ return false;
22
+ supervisorDb = await createPrismaClient(dbPath);
23
+ return true;
22
24
  }
23
25
  /**
24
26
  * Find a session user by session token hash. Returns null if not found or expired.
25
27
  */
26
28
  export async function findSession(tokenHash) {
27
- if (!supervisorDb) return null;
28
- const session = await supervisorDb.session.findUnique({
29
- where: {
30
- tokenHash,
31
- expiresAt: { gt: new Date() },
32
- },
33
- include: { user: true },
34
- });
35
- if (!session) return null;
36
- return {
37
- userId: session.user.id,
38
- username: session.user.username,
39
- passwordHash: session.user.passwordHash,
40
- uuid: session.user.uuid,
41
- };
29
+ if (!supervisorDb)
30
+ return null;
31
+ const session = await supervisorDb.session.findUnique({
32
+ where: {
33
+ tokenHash,
34
+ expiresAt: { gt: new Date() },
35
+ },
36
+ include: { user: true },
37
+ });
38
+ if (!session)
39
+ return null;
40
+ return {
41
+ userId: session.user.id,
42
+ username: session.user.username,
43
+ passwordHash: session.user.passwordHash,
44
+ uuid: session.user.uuid,
45
+ };
42
46
  }
43
47
  /**
44
48
  * Look up a session user by username.
45
49
  */
46
50
  export async function lookupUsername(username) {
47
- if (!supervisorDb) return null;
48
- const user = await supervisorDb.user.findUnique({
49
- where: { username },
50
- });
51
- if (!user) return null;
52
- return {
53
- userId: user.id,
54
- username: user.username,
55
- passwordHash: user.passwordHash,
56
- uuid: user.uuid,
57
- };
51
+ if (!supervisorDb)
52
+ return null;
53
+ const user = await supervisorDb.user.findUnique({
54
+ where: { username },
55
+ });
56
+ if (!user)
57
+ return null;
58
+ return {
59
+ userId: user.id,
60
+ username: user.username,
61
+ passwordHash: user.passwordHash,
62
+ uuid: user.uuid,
63
+ };
58
64
  }
59
65
  /**
60
66
  * Find a supervisor user by API key. Returns null if not found or DB not initialized.
61
67
  */
62
68
  export async function findUserByApiKey(apiKey) {
63
- if (!supervisorDb) return null;
64
- const user = await supervisorDb.user.findUnique({
65
- where: { apiKey },
66
- select: { uuid: true, username: true },
67
- });
68
- return user;
69
+ if (!supervisorDb)
70
+ return null;
71
+ const user = await supervisorDb.user.findUnique({
72
+ where: { apiKey },
73
+ select: { uuid: true, username: true },
74
+ });
75
+ return user;
69
76
  }
70
77
  /**
71
78
  * Authenticate a user by username/password and create a session.
72
79
  * Returns null if credentials are invalid or DB is not initialized.
73
80
  */
74
81
  export async function authenticateAndCreateSession(username, password) {
75
- const user = await lookupUsername(username);
76
- if (!user) return null;
77
- const valid = await bcrypt.compare(password, user.passwordHash);
78
- if (!valid) return null;
79
- const token = randomUUID();
80
- const tokenHash = hashToken(token);
81
- const expiresAt = new Date(Date.now() + SESSION_DURATION_MS);
82
- const dbUser = await supervisorDb.user.findUnique({
83
- where: { username },
84
- });
85
- await supervisorDb.session.create({
86
- data: {
87
- userId: dbUser.id,
88
- tokenHash,
89
- expiresAt,
90
- },
91
- });
92
- return { token, user, expiresAt };
82
+ const user = await lookupUsername(username);
83
+ if (!user)
84
+ return null;
85
+ const valid = await bcrypt.compare(password, user.passwordHash);
86
+ if (!valid)
87
+ return null;
88
+ const token = randomUUID();
89
+ const tokenHash = hashToken(token);
90
+ const expiresAt = new Date(Date.now() + SESSION_DURATION_MS);
91
+ const dbUser = await supervisorDb.user.findUnique({
92
+ where: { username },
93
+ });
94
+ await supervisorDb.session.create({
95
+ data: {
96
+ userId: dbUser.id,
97
+ tokenHash,
98
+ expiresAt,
99
+ },
100
+ });
101
+ return { token, user, expiresAt };
93
102
  }
94
103
  /**
95
104
  * Update a user's password hash. No-op if not initialized.
96
105
  */
97
106
  export async function updateUserPassword(username, passwordHash) {
98
- if (!supervisorDb) return;
99
- await supervisorDb.user.update({
100
- where: { username },
101
- data: { passwordHash },
102
- });
107
+ if (!supervisorDb)
108
+ return;
109
+ await supervisorDb.user.update({
110
+ where: { username },
111
+ data: { passwordHash },
112
+ });
103
113
  }
104
114
  /**
105
115
  * Delete a session by token hash.
106
116
  */
107
117
  export async function deleteSession(tokenHash) {
108
- if (!supervisorDb) return;
109
- await supervisorDb.session.deleteMany({
110
- where: { tokenHash },
111
- });
118
+ if (!supervisorDb)
119
+ return;
120
+ await supervisorDb.session.deleteMany({
121
+ where: { tokenHash },
122
+ });
112
123
  }
113
124
  /**
114
125
  * Ensure a "superadmin" user exists in the supervisor database.
115
126
  * If already exists, returns it as-is. Otherwise creates with generated credentials.
116
127
  */
117
128
  export async function ensureSuperAdmin() {
118
- if (!supervisorDb) throw new Error("Supervisor DB not initialized");
119
- const existing = await supervisorDb.user.findUnique({
120
- where: { username: SUPER_ADMIN_USERNAME },
121
- });
122
- if (existing) {
129
+ if (!supervisorDb)
130
+ throw new Error("Supervisor DB not initialized");
131
+ const existing = await supervisorDb.user.findUnique({
132
+ where: { username: SUPER_ADMIN_USERNAME },
133
+ });
134
+ if (existing) {
135
+ return {
136
+ created: false,
137
+ user: {
138
+ uuid: existing.uuid,
139
+ username: existing.username,
140
+ passwordHash: existing.passwordHash,
141
+ apiKey: existing.apiKey,
142
+ },
143
+ };
144
+ }
145
+ const uuid = randomUUID();
146
+ const password = randomUUID().slice(0, 8);
147
+ const passwordHash = await bcrypt.hash(password, 10);
148
+ const apiKey = randomBytes(32).toString("hex");
149
+ const user = await supervisorDb.user.create({
150
+ data: { uuid, username: SUPER_ADMIN_USERNAME, passwordHash, apiKey },
151
+ });
152
+ await supervisorDb.userPermission.create({
153
+ data: { userId: user.id, permission: "supervisor_admin" },
154
+ });
123
155
  return {
124
- created: false,
125
- user: {
126
- uuid: existing.uuid,
127
- username: existing.username,
128
- passwordHash: existing.passwordHash,
129
- apiKey: existing.apiKey,
130
- },
156
+ created: true,
157
+ generatedPassword: password,
158
+ user: { uuid, username: SUPER_ADMIN_USERNAME, passwordHash, apiKey },
131
159
  };
132
- }
133
- const uuid = randomUUID();
134
- const password = randomUUID().slice(0, 8);
135
- const passwordHash = await bcrypt.hash(password, 10);
136
- const apiKey = randomBytes(32).toString("hex");
137
- const user = await supervisorDb.user.create({
138
- data: { uuid, username: SUPER_ADMIN_USERNAME, passwordHash, apiKey },
139
- });
140
- await supervisorDb.userPermission.create({
141
- data: { userId: user.id, permission: "supervisor_admin" },
142
- });
143
- return {
144
- created: true,
145
- generatedPassword: password,
146
- user: { uuid, username: SUPER_ADMIN_USERNAME, passwordHash, apiKey },
147
- };
148
160
  }
149
161
  /**
150
162
  * CLI entry point for --reset-password. Initializes supervisor sessions,
151
163
  * then runs the interactive password reset.
152
164
  */
153
165
  export async function handleResetPassword(options) {
154
- console.log(`NAISYS_FOLDER: ${process.env.NAISYS_FOLDER}`);
155
- await createSupervisorDatabaseClient();
156
- await resetPassword(
157
- options.findLocalUser,
158
- options.updateLocalPassword,
159
- options.username,
160
- options.password,
161
- );
166
+ console.log(`NAISYS_FOLDER: ${process.env.NAISYS_FOLDER}`);
167
+ await createSupervisorDatabaseClient();
168
+ await resetPassword(options.findLocalUser, options.updateLocalPassword, options.username, options.password);
162
169
  }
163
170
  /**
164
171
  * CLI to reset a user's password. Updates both local DB (via callbacks) and
165
172
  * the supervisor DB. If username/password are provided, skips interactive
166
173
  * prompts.
167
174
  */
168
- export async function resetPassword(
169
- findLocalUser,
170
- updateLocalPassword,
171
- usernameArg,
172
- passwordArg,
173
- ) {
174
- let username;
175
- let password;
176
- if (usernameArg && passwordArg) {
177
- username = usernameArg;
178
- password = passwordArg;
179
- } else {
180
- const rl = readline.createInterface({
181
- input: process.stdin,
182
- output: process.stdout,
183
- });
184
- try {
185
- username = usernameArg || (await rl.question("Username: "));
186
- password = passwordArg || (await rl.question("New password: "));
187
- } finally {
188
- rl.close();
175
+ export async function resetPassword(findLocalUser, updateLocalPassword, usernameArg, passwordArg) {
176
+ let username;
177
+ let password;
178
+ if (usernameArg && passwordArg) {
179
+ username = usernameArg;
180
+ password = passwordArg;
181
+ }
182
+ else {
183
+ const rl = readline.createInterface({
184
+ input: process.stdin,
185
+ output: process.stdout,
186
+ });
187
+ try {
188
+ username = usernameArg || (await rl.question("Username: "));
189
+ password = passwordArg || (await rl.question("New password: "));
190
+ }
191
+ finally {
192
+ rl.close();
193
+ }
194
+ }
195
+ const user = await findLocalUser(username);
196
+ if (!user) {
197
+ console.error(`User '${username}' not found.`);
198
+ process.exit(1);
199
+ }
200
+ if (password.length < 6) {
201
+ console.error("Password must be at least 6 characters.");
202
+ process.exit(1);
189
203
  }
190
- }
191
- const user = await findLocalUser(username);
192
- if (!user) {
193
- console.error(`User '${username}' not found.`);
194
- process.exit(1);
195
- }
196
- if (password.length < 6) {
197
- console.error("Password must be at least 6 characters.");
198
- process.exit(1);
199
- }
200
- const hash = await bcrypt.hash(password, 10);
201
- await updateLocalPassword(user.id, hash);
202
- await updateUserPassword(username, hash);
203
- console.log(`Password reset for '${username}'.`);
204
+ const hash = await bcrypt.hash(password, 10);
205
+ await updateLocalPassword(user.id, hash);
206
+ await updateUserPassword(username, hash);
207
+ console.log(`Password reset for '${username}'.`);
204
208
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naisys/supervisor-database",
3
- "version": "3.0.0-beta.5",
3
+ "version": "3.0.0-beta.6",
4
4
  "type": "module",
5
5
  "description": "[internal] Supervisor database schema and Prisma client for NAISYS",
6
6
  "files": [
@@ -26,8 +26,8 @@
26
26
  "typescript": "^5.9.3"
27
27
  },
28
28
  "dependencies": {
29
- "@naisys/common": "3.0.0-beta.5",
30
- "@naisys/common-node": "3.0.0-beta.5",
29
+ "@naisys/common": "3.0.0-beta.6",
30
+ "@naisys/common-node": "3.0.0-beta.6",
31
31
  "bcryptjs": "^3.0.2",
32
32
  "@prisma/adapter-better-sqlite3": "^7.5.0",
33
33
  "@prisma/client": "^7.5.0",