From 05ecfc872bc00429f04c1663bc36085ddeec29e8 Mon Sep 17 00:00:00 2001 From: sahilkhude117 Date: Tue, 17 Feb 2026 17:20:20 +0530 Subject: [PATCH 1/5] refactor: updated prisma client with pg-adapter Signed-off-by: sahilkhude117 --- .gitignore | 1 + README.md | 2 - libs/prisma-service/prisma/schema.prisma | 540 +++++++++--------- package.json | 8 +- pnpm-lock.yaml | 680 +++++++++++++++++++++-- prisma.config.ts | 14 + 6 files changed, 911 insertions(+), 334 deletions(-) create mode 100644 prisma.config.ts diff --git a/.gitignore b/.gitignore index 4b82df9a53..1bbd3fb6a2 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ sonar-project.properties .scannerwork/* coverage libs/prisma-service/prisma/data/credebl-master-table/credebl-master-table.json +libs/prisma-service/generated/prisma uploadedFles/exports uploadedFles/import uploadedFles/export diff --git a/README.md b/README.md index 20f15ecffd..817307c1a6 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,6 @@ docker run --name credebl-postgres \ ### • Run Prisma to Generate Database Schema ```bash -cd ./libs/prisma-service/prisma npx prisma generate npx prisma db push ``` @@ -42,7 +41,6 @@ npx prisma db push ### • Seed Initial Data ```bash -cd ./libs/prisma-service npx prisma db seed ``` diff --git a/libs/prisma-service/prisma/schema.prisma b/libs/prisma-service/prisma/schema.prisma index 072f87a027..b8a577fd21 100755 --- a/libs/prisma-service/prisma/schema.prisma +++ b/libs/prisma-service/prisma/schema.prisma @@ -1,15 +1,13 @@ generator client { - provider = "prisma-client-js" + provider = "prisma-client" + output = "../generated/prisma" } datasource db { - provider = "postgresql" - url = env("POOL_DATABASE_URL") - directUrl = env("DATABASE_URL") + provider = "postgresql" } model user { - id String @id(map: "PK_cace4a159ff9f2512dd42373760") @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) firstName String? @db.VarChar(500) @@ -19,7 +17,6 @@ model user { verificationCode String? @db.VarChar(500) isEmailVerified Boolean @default(false) supabaseUserId String? @db.VarChar(500) - keycloakUserId String? @db.VarChar(500) clientId String? @db.VarChar(500) clientSecret String? @db.VarChar(500) profileImg String? @@ -27,17 +24,19 @@ model user { isFidoVerified Boolean @default(false) publicProfile Boolean @default(false) password String? @db.VarChar + id String @id(map: "PK_cace4a159ff9f2512dd42373760") @default(uuid()) @db.Uuid + keycloakUserId String? @db.VarChar(500) + accounts account? + cloud_wallet_user_info cloud_wallet_user_info[] + ecosystemInvitations ecosystem_invitations[] + ecosystemOrgs ecosystem_orgs[] orgInvitations org_invitations[] + sessions session[] + token token[] user_activities user_activity[] userDevices user_devices[] userOrgRoles user_org_roles[] - token token[] user_role_mapping user_role_mapping[] - cloud_wallet_user_info cloud_wallet_user_info[] - accounts account[] - sessions session[] - ecosystemInvitations ecosystem_invitations[] - ecosystemOrgs ecosystem_orgs[] } model account { @@ -46,12 +45,12 @@ model account { type String? provider String providerAccountId String - tokenType String? scope String? - idToken String? - sessionState String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + idToken String? + sessionState String? + tokenType String? user user @relation(fields: [userId], references: [id]) sessions session[] } @@ -61,43 +60,42 @@ model session { sessionToken String userId String @db.Uuid expires Int - refreshToken String? - user user @relation(fields: [userId], references: [id]) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt accountId String? @db.Uuid + refreshToken String? sessionType String? - account account? @relation(fields: [accountId], references: [id]) expiresAt DateTime? @db.Timestamp(6) clientInfo Json? + account account? @relation(fields: [accountId], references: [id]) + user user @relation(fields: [userId], references: [id]) } model token { id String @id @default(uuid()) @db.Uuid token String @unique userId String @db.Uuid - user user @relation(fields: [userId], references: [id]) createdAt DateTime @default(now()) expiresAt DateTime + user user @relation(fields: [userId], references: [id]) } model user_activity { - id String @id @default(uuid()) @db.Uuid - userId String @db.Uuid - orgId String @db.Uuid action String details String createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid deletedAt DateTime? @db.Timestamp(6) + id String @id @default(uuid()) @db.Uuid + userId String @db.Uuid + orgId String @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid organisation organisation @relation(fields: [orgId], references: [id]) user user @relation(fields: [userId], references: [id]) } model org_roles { - id String @id @default(uuid()) @db.Uuid name String @unique description String createDateTime DateTime @default(now()) @db.Timestamptz(6) @@ -105,6 +103,7 @@ model org_roles { lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy String @default("1") deletedAt DateTime? @db.Timestamp(6) + id String @id @default(uuid()) @db.Uuid userOrgRoles user_org_roles[] } @@ -120,86 +119,83 @@ model user_org_roles { } model organisation { - id String @id @default(uuid()) @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid - name String? @db.VarChar(500) - description String? @db.VarChar(500) - orgSlug String? @unique - logoUrl String? - website String? @db.VarChar - publicProfile Boolean @default(false) - idpId String? @db.VarChar(500) - clientId String? @db.VarChar(500) - clientSecret String? @db.VarChar(500) - registrationNumber String? @db.VarChar(100) - appLaunchDetails Json? - countryId Int? - countries countries? @relation(fields: [countryId], references: [id]) - stateId Int? - states states? @relation(fields: [stateId], references: [id]) - cityId Int? - cities cities? @relation(fields: [cityId], references: [id]) + createDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + name String? @db.VarChar(500) + description String? @db.VarChar(500) + orgSlug String? @unique + logoUrl String? + website String? @db.VarChar + publicProfile Boolean @default(false) + id String @id @default(uuid()) @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid + clientId String? @db.VarChar(500) + clientSecret String? @db.VarChar(500) + idpId String? @db.VarChar(500) + registrationNumber String? @db.VarChar(100) + cityId Int? + countryId Int? + stateId Int? + appLaunchDetails Json? + agent_invitations agent_invitations[] connections connections[] + credential_definition credential_definition[] credentials credentials[] - org_agents org_agents[] + ecosystem_invitations ecosystem_invitations[] + ecosystemOrgs ecosystem_orgs[] + file_upload file_upload[] + intent_templates intent_templates[] + oid4vc_credentials oid4vc_credentials[] + oid4vp_presentations oid4vp_presentations[] + org_agents org_agents? orgInvitations org_invitations[] + cities cities? @relation(fields: [cityId], references: [id]) + countries countries? @relation(fields: [countryId], references: [id]) + states states? @relation(fields: [stateId], references: [id]) presentations presentations[] schema schema[] user_activities user_activity[] userOrgRoles user_org_roles[] - agent_invitations agent_invitations[] - credential_definition credential_definition[] - file_upload file_upload[] - oid4vc_credentials oid4vc_credentials[] - oid4vp_presentations oid4vp_presentations[] verification_templates verification_templates[] - intent_templates intent_templates[] - ecosystemOrgs ecosystem_orgs[] - ecosystem_invitations ecosystem_invitations[] } model org_invitations { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid deletedAt DateTime? @db.Timestamp(6) - userId String @db.Uuid - orgId String @db.Uuid status String orgRoles String[] email String? + id String @id @default(uuid()) @db.Uuid + userId String @db.Uuid + orgId String @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid organisation organisation @relation(fields: [orgId], references: [id]) user user @relation(fields: [userId], references: [id]) } model user_devices { - id String @id(map: "PK_c9e7e648903a9e537347aba4371") @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid devices Json? @default("[]") credentialId String? @unique(map: "UQ_7c903f5e362fe8fd3d3edba17b5") @db.VarChar deviceFriendlyName String? @db.VarChar - userId String? @db.Uuid deletedAt DateTime? @db.Timestamp(6) authCounter Int @default(0) + id String @id(map: "PK_c9e7e648903a9e537347aba4371") @default(uuid()) @db.Uuid + userId String? @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid user user? @relation(fields: [userId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_e12ac4f8016243ac71fd2e415af") } model platform_config { - id String @id @default(uuid()) @db.Uuid externalIp String @db.VarChar - inboundEndpoint String? @db.VarChar username String @db.VarChar sgApiKey String @db.VarChar emailFrom String @db.VarChar - isEcosystemEnabled Boolean @default(false) apiEndpoint String @db.VarChar tailsFileServer String @db.VarChar createDateTime DateTime @default(now()) @db.Timestamptz(6) @@ -207,40 +203,43 @@ model platform_config { lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy String @default("1") deletedAt DateTime? @db.Timestamp(6) + id String @id @default(uuid()) @db.Uuid + inboundEndpoint String? @db.VarChar + isEcosystemEnabled Boolean @default(false) } model org_agents { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid orgDid String? @db.VarChar verkey String? @db.VarChar agentEndPoint String? @db.VarChar - agentId String? @db.Uuid isDidPublic Boolean? agentSpinUpStatus Int? agentOptions Bytes? walletName String? @db.VarChar tenantId String? apiKey String? + id String @id @default(uuid()) @db.Uuid + agentId String? @db.Uuid agentsTypeId String? @db.Uuid orgId String? @unique @db.Uuid orgAgentTypeId String? @db.Uuid ledgerId String? @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid + webhookUrl String? @db.VarChar didDocument Json? agent_invitations agent_invitations[] + oid4vp_verifiers oid4vp_verifier[] + oidc_issuer oidc_issuer[] agents agents? @relation(fields: [agentId], references: [id]) agents_type agents_type? @relation(fields: [agentsTypeId], references: [id]) ledgers ledgers? @relation(fields: [ledgerId], references: [id]) org_agent_type org_agents_type? @relation(fields: [orgAgentTypeId], references: [id]) organisation organisation? @relation(fields: [orgId], references: [id]) - webhookUrl String? @db.VarChar org_dids org_dids[] - oidc_issuer oidc_issuer[] x509_certificates x509_certificates[] - oid4vp_verifiers oid4vp_verifier[] } model org_dids { @@ -250,31 +249,30 @@ model org_dids { lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy String @db.Uuid orgId String @db.Uuid - isPrimaryDid Boolean did String @db.VarChar(500) didDocument Json orgAgentId String @db.Uuid + isPrimaryDid Boolean org_agents org_agents @relation(fields: [orgAgentId], references: [id]) } model org_agents_type { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) agent String @db.VarChar(500) + id String @id @default(uuid()) @db.Uuid org_agents org_agents[] } model agents_type { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) agent String @db.VarChar(500) + id String @id @default(uuid()) @db.Uuid org_agents org_agents[] } model ledgers { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) name String @db.VarChar @@ -284,169 +282,170 @@ model ledgers { networkString String @db.VarChar nymTxnEndpoint String @db.VarChar indyNamespace String? @db.VarChar + id String @id @default(uuid()) @db.Uuid networkUrl String? @db.VarChar org_agents org_agents[] schema schema[] } model agents { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) name String + id String @id @default(uuid()) @db.Uuid org_agents org_agents[] } model schema { - id String @id(map: "PK_c9e7e648903a9e537347aba4372") @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid name String @db.VarChar version String @db.VarChar attributes String schemaLedgerId String @db.VarChar publisherDid String @db.VarChar issuerId String @db.VarChar + id String @id(map: "PK_c9e7e648903a9e537347aba4372") @default(uuid()) @db.Uuid orgId String? @db.Uuid - organisation organisation? @relation(fields: [orgId], references: [id], onDelete: SetNull) - ledgers ledgers? @relation(fields: [ledgerId], references: [id]) + createdBy String @db.Uuid + lastChangedBy String @db.Uuid ledgerId String? @db.Uuid type String? @db.VarChar isSchemaArchived Boolean @default(false) - credential_definition credential_definition[] alias String? + credential_definition credential_definition[] + ledgers ledgers? @relation(fields: [ledgerId], references: [id]) + organisation organisation? @relation(fields: [orgId], references: [id]) } model credential_definition { - id String @id(map: "PK_c9e7e648903a9e537347aba4373") @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid credentialDefinitionId String @db.VarChar tag String @db.VarChar schemaLedgerId String @db.VarChar - schemaId String @db.Uuid revocable Boolean @default(false) - organisation organisation? @relation(fields: [orgId], references: [id], onDelete: SetNull) + id String @id(map: "PK_c9e7e648903a9e537347aba4373") @default(uuid()) @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid + schemaId String @db.Uuid orgId String? @db.Uuid + organisation organisation? @relation(fields: [orgId], references: [id]) schema schema @relation(fields: [schemaId], references: [id]) } model shortening_url { - id String @id @default(uuid()) @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) referenceId String? @unique @db.VarChar(50) - invitationPayload Json? type String? @db.VarChar + id String @id @default(uuid()) @db.Uuid + createDateTime DateTime @default(now()) @db.Timestamptz(6) deletedAt DateTime? @db.Timestamp(6) + invitationPayload Json? + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) } model agent_invitations { - id String @id @default(uuid()) @db.Uuid - orgId String @db.Uuid - agentId String @db.Uuid connectionInvitation String multiUse Boolean createDateTime DateTime @default(now()) @db.Timestamptz(6) createdBy Int @default(1) lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy Int @default(1) - org_agents org_agents @relation(fields: [agentId], references: [id]) - organisation organisation @relation(fields: [orgId], references: [id]) + id String @id @default(uuid()) @db.Uuid + agentId String @db.Uuid + orgId String @db.Uuid recipientKey String? invitationDid String? + org_agents org_agents @relation(fields: [agentId], references: [id]) + organisation organisation @relation(fields: [orgId], references: [id]) } model connections { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid connectionId String @unique - theirLabel String @default("") state String + id String @id @default(uuid()) @db.Uuid orgId String? @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid + theirLabel String @default("") organisation organisation? @relation(fields: [orgId], references: [id]) - presentations presentations[] credentials credentials[] + presentations presentations[] } model credentials { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid connectionId String? threadId String @unique + id String @id @default(uuid()) @db.Uuid + orgId String? @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid credentialExchangeId String @default("") state String @default("") schemaId String @default("") credDefId String @default("") - orgId String? @db.Uuid - organisation organisation? @relation(fields: [orgId], references: [id]) connections connections? @relation(fields: [connectionId], references: [connectionId]) + organisation organisation? @relation(fields: [orgId], references: [id]) } model presentations { - id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid connectionId String? state String? threadId String @unique isVerified Boolean? + id String @id @default(uuid()) @db.Uuid + orgId String? @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid presentationId String? schemaId String? @db.VarChar - errorMessage String? @db.VarChar emailId String? - orgId String? @db.Uuid - organisation organisation? @relation(fields: [orgId], references: [id]) + errorMessage String? @db.VarChar connections connections? @relation(fields: [connectionId], references: [connectionId]) + organisation organisation? @relation(fields: [orgId], references: [id]) } model file_upload { - id String @id @default(uuid()) @db.Uuid name String? status String? upload_type String? createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid deletedAt DateTime? @db.Timestamp(6) - file_data file_data[] - organisation organisation? @relation(fields: [orgId], references: [id]) + id String @id @default(uuid()) @db.Uuid orgId String? @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid credential_type String? templateId String? @db.VarChar + file_data file_data[] + organisation organisation? @relation(fields: [orgId], references: [id]) } model file_data { - id String @id @default(uuid()) @db.Uuid referenceId String? - isError Boolean? error String? detailError String? createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid deletedAt DateTime? @db.Timestamp(6) - fileUploadId String @db.Uuid - fileUpload file_upload @relation(fields: [fileUploadId], references: [id]) - schemaId String? + isError Boolean? credDefId String? + schemaId String? status Boolean @default(false) credential_data Json? + id String @id @default(uuid()) @db.Uuid + fileUploadId String @db.Uuid + createdBy String @db.Uuid + lastChangedBy String @db.Uuid credential_type String? + fileUpload file_upload @relation(fields: [fileUploadId], references: [id]) } model notification { @@ -473,31 +472,21 @@ model ledgerConfig { model user_org_delete_activity { id String @id @default(uuid()) @db.Uuid - userEmail String @default("") userId String @db.Uuid orgId String @db.Uuid recordType RecordType txnMetadata Json deletedBy String @db.Uuid deleteDateTime DateTime @default(now()) @db.Timestamptz(6) -} - -enum RecordType { - VERIFICATION_RECORD - ISSUANCE_RECORD - CONNECTION - ECOSYSTEM_MEMBER - ORGANIZATION - WALLET - INVITATION + userEmail String @default("") } model countries { id Int @id @default(autoincrement()) @map("id") name String @map("name") - states states[] cities cities[] organisation organisation[] + states states[] @@map("countries") } @@ -507,9 +496,9 @@ model states { name String @map("name") countryId Int @map("country_id") countryCode String @map("country_code") - countries countries @relation(fields: [countryId], references: [id], onDelete: Cascade) cities cities[] organisation organisation[] + countries countries @relation(fields: [countryId], references: [id], onDelete: Cascade) @@map("states") } @@ -521,12 +510,12 @@ model cities { stateCode String @map("state_code") countryId Int @map("country_id") countryCode String @map("country_code") - state states @relation(fields: [stateId], references: [id], onDelete: Cascade) country countries @relation(fields: [countryId], references: [id], onDelete: Cascade) + state states @relation(fields: [stateId], references: [id], onDelete: Cascade) organisation organisation[] - @@index([stateId], name: "cities_stateId_idx") - @@index([countryId], name: "cities_countryId_idx") + @@index([stateId], map: "cities_stateId_idx") + @@index([countryId], map: "cities_countryId_idx") @@map("cities") } @@ -536,16 +525,11 @@ model user_role { user_role_mapping user_role_mapping[] } -enum UserRole { - DEFAULT_USER - HOLDER -} - model user_role_mapping { id String @id @default(uuid()) @db.Uuid userId String @db.Uuid - user user @relation(fields: [userId], references: [id]) userRoleId String @db.Uuid + user user @relation(fields: [userId], references: [id]) user_role user_role @relation(fields: [userRoleId], references: [id]) } @@ -553,25 +537,20 @@ model cloud_wallet_user_info { id String @id @default(uuid()) @db.Uuid label String? tenantId String? - email String? @unique() @db.VarChar(500) + email String? @unique @db.VarChar(500) type CloudWalletType createDateTime DateTime @default(now()) @db.Timestamptz(6) createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy String @db.Uuid userId String? @db.Uuid - agentEndpoint String? agentApiKey String? + agentEndpoint String? key String? connectionImageUrl String? user user? @relation(fields: [userId], references: [id]) } -enum CloudWalletType { - CLOUD_BASE_WALLET - CLOUD_SUB_WALLET -} - model client_aliases { id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) @@ -584,95 +563,81 @@ model oidc_issuer { id String @id @default(uuid()) @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) createdBy String @db.Uuid - publicIssuerId String metadata Json - authorizationServerUrl String orgAgentId String @db.Uuid - orgAgent org_agents @relation(fields: [orgAgentId], references: [id]) - templates credential_templates[] + publicIssuerId String batchCredentialIssuanceSize Int @default(0) + authorizationServerUrl String + templates credential_templates[] + orgAgent org_agents @relation(fields: [orgAgentId], references: [id]) @@index([orgAgentId]) } model oid4vc_credentials { - id String @id @default(uuid()) @db.Uuid - orgId String @db.Uuid - issuanceSessionId String @unique + id String @id @default(uuid()) @db.Uuid + orgId String @db.Uuid credentialOfferId String state String contextCorrelationId String - createdBy String @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid + createdBy String @db.Uuid + createDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedBy String @db.Uuid credentialConfigurationIds String[] + issuanceSessionId String @unique issuedCredentials String[] - publicIssuerId String - - organisation organisation @relation(fields: [orgId], references: [id]) + publicIssuerId String + organisation organisation @relation(fields: [orgId], references: [id]) @@index([credentialConfigurationIds], type: Gin) } model oid4vp_presentations { - id String @id @default(uuid()) @db.Uuid - orgId String @db.Uuid - verificationSessionId String @unique + id String @id @default(uuid()) @db.Uuid + orgId String @db.Uuid + verificationSessionId String @unique presentationId String state String contextCorrelationId String - createdBy String @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid - publicVerifierId String - organisation organisation @relation(fields: [orgId], references: [id]) -} - -enum SignerOption { - DID - X509_P256 - X509_ED25519 + createdBy String @db.Uuid + createDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedBy String @db.Uuid + publicVerifierId String + organisation organisation @relation(fields: [orgId], references: [id]) } model credential_templates { - id String @id @default(uuid()) + id String @id @default(uuid()) name String description String? - format String // e.g. "sd_jwt", "mso_mdoc" - canBeRevoked Boolean @default(false) - - attributes Json - appearance Json - - issuerId String @db.Uuid - issuer oidc_issuer @relation(fields: [issuerId], references: [id]) - + format String + canBeRevoked Boolean @default(false) + attributes Json + appearance Json createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + issuerId String @db.Uuid signerOption SignerOption + issuer oidc_issuer @relation(fields: [issuerId], references: [id]) } model x509_certificates { - id String @id @default(uuid()) - - orgAgentId String @db.Uuid - org_agents org_agents @relation(fields: [orgAgentId], references: [id]) - - keyType String // "p256", "ed25519" - status String //e.g "Active", "Pending activation", "InActive" - validFrom DateTime - - expiry DateTime - certificateBase64 String - isImported Boolean @default(false) - keyId String? - - createdAt DateTime @default(now()) - createdBy String @db.Uuid - lastChangedDateTime DateTime @updatedAt - lastChangedBy String @db.Uuid + id String @id @default(uuid()) + orgAgentId String @db.Uuid + keyType String + status String + validFrom DateTime + expiry DateTime + certificateBase64 String + isImported Boolean @default(false) + createdAt DateTime @default(now()) + createdBy String @db.Uuid + lastChangedDateTime DateTime @updatedAt + lastChangedBy String @db.Uuid + keyId String? + org_agents org_agents @relation(fields: [orgAgentId], references: [id]) } model oid4vp_verifier { @@ -691,45 +656,45 @@ model oid4vp_verifier { } model verification_templates { - id String @id @default(uuid()) @db.Uuid - name String @db.VarChar(500) + id String @id @default(uuid()) @db.Uuid + name String @db.VarChar(500) templateJson Json - orgId String @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid - organisation organisation @relation(fields: [orgId], references: [id]) + orgId String @db.Uuid + createDateTime DateTime @default(now()) @db.Timestamptz(6) + createdBy String @db.Uuid + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedBy String @db.Uuid signerOption SignerOption intentTemplates intent_templates[] + organisation organisation @relation(fields: [orgId], references: [id]) @@index([orgId]) } model intents { id String @id @default(uuid()) @db.Uuid - ecosystemId String @db.Uuid name String @db.VarChar(500) description String? createDateTime DateTime @default(now()) @db.Timestamptz(6) createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy String @db.Uuid - ecosystem ecosystem @relation(fields: [ecosystemId], references: [id]) + ecosystemId String @db.Uuid intentTemplates intent_templates[] + ecosystem ecosystem @relation(fields: [ecosystemId], references: [id]) } model intent_templates { id String @id @default(uuid()) @db.Uuid - orgId String? @db.Uuid + orgId String? @db.Uuid intentId String @db.Uuid templateId String @db.Uuid createDateTime DateTime @default(now()) @db.Timestamptz(6) createdBy String @db.Uuid lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) lastChangedBy String @db.Uuid - organisation organisation? @relation(fields: [orgId], references: [id]) intent intents @relation(fields: [intentId], references: [id]) + organisation organisation? @relation(fields: [orgId], references: [id]) template verification_templates @relation(fields: [templateId], references: [id]) @@index([orgId]) @@ -738,77 +703,74 @@ model intent_templates { } model ecosystem { - id String @id @default(uuid()) @db.Uuid - name String - description String - tags String? - createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid - deletedAt DateTime? @db.Timestamp(6) - logoUrl String? - autoEndorsement Boolean @default(false) - - ecosystemOrgs ecosystem_orgs[] - ecosystemInvitations ecosystem_invitations[] - intent intents[] + id String @id @default(uuid()) @db.Uuid + name String + description String + tags String? + createDateTime DateTime @default(now()) @db.Timestamptz(6) + createdBy String @db.Uuid + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedBy String @db.Uuid + deletedAt DateTime? @db.Timestamp(6) + logoUrl String? + autoEndorsement Boolean @default(false) ledgers Json? + ecosystemInvitations ecosystem_invitations[] + ecosystemOrgs ecosystem_orgs[] + intent intents[] } model ecosystem_roles { - id String @id @default(uuid()) @db.Uuid - name String @unique + id String @id @default(uuid()) @db.Uuid + name String @unique description String - createDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - deletedAt DateTime? @db.Timestamp(6) - - ecosystemOrgs ecosystem_orgs[] + createDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + deletedAt DateTime? @db.Timestamp(6) + ecosystemOrgs ecosystem_orgs[] } model ecosystem_orgs { - id String @id @default(uuid()) @db.Uuid - orgId String @db.Uuid + id String @id @default(uuid()) @db.Uuid + orgId String @db.Uuid status String deploymentMode String? - ecosystemId String @db.Uuid - ecosystemRoleId String @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid - deletedAt DateTime? @db.Timestamp(6) - userId String @db.Uuid - ecosystem ecosystem @relation(fields: [ecosystemId], references: [id]) - ecosystemRole ecosystem_roles @relation(fields: [ecosystemRoleId], references: [id]) - organisation organisation @relation(fields: [orgId], references: [id]) - user user @relation(fields:[userId], references: [id]) + ecosystemId String @db.Uuid + ecosystemRoleId String @db.Uuid + createDateTime DateTime @default(now()) @db.Timestamptz(6) + createdBy String @db.Uuid + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedBy String @db.Uuid + deletedAt DateTime? @db.Timestamp(6) + userId String @db.Uuid + ecosystem ecosystem @relation(fields: [ecosystemId], references: [id]) + ecosystemRole ecosystem_roles @relation(fields: [ecosystemRoleId], references: [id]) + organisation organisation @relation(fields: [orgId], references: [id]) + user user @relation(fields: [userId], references: [id]) @@unique([orgId, ecosystemId]) } model ecosystem_invitations { - id String @id @default(uuid()) @db.Uuid - email String + id String @id @default(uuid()) @db.Uuid + email String status String - userId String? @db.Uuid + userId String? @db.Uuid type String - ecosystemId String? @db.Uuid - invitedOrg String? @db.Uuid - createDateTime DateTime @default(now()) @db.Timestamptz(6) - createdBy String @db.Uuid - lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) - lastChangedBy String @db.Uuid - deletedAt DateTime? @db.Timestamp(6) - + ecosystemId String? @db.Uuid + invitedOrg String? @db.Uuid + createDateTime DateTime @default(now()) @db.Timestamptz(6) + createdBy String @db.Uuid + lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) + lastChangedBy String @db.Uuid + deletedAt DateTime? @db.Timestamp(6) + ecosystem ecosystem? @relation(fields: [ecosystemId], references: [id]) organisation organisation? @relation(fields: [invitedOrg], references: [id]) - ecosystem ecosystem? @relation(fields: [ecosystemId], references: [id]) - user user? @relation(fields: [userId], references: [id]) + user user? @relation(fields: [userId], references: [id]) + @@unique([email, ecosystemId, invitedOrg]) } - model holder_notification { id String @id @default(uuid()) @db.Uuid sessionId String @unique @@ -819,3 +781,29 @@ model holder_notification { lastChangedDateTime DateTime @default(now()) @db.Timestamptz(6) deletedAt DateTime? @db.Timestamp(6) } + +enum RecordType { + VERIFICATION_RECORD + ISSUANCE_RECORD + CONNECTION + ECOSYSTEM_MEMBER + ORGANIZATION + WALLET + INVITATION +} + +enum UserRole { + DEFAULT_USER + HOLDER +} + +enum CloudWalletType { + CLOUD_BASE_WALLET + CLOUD_SUB_WALLET +} + +enum SignerOption { + DID + X509_P256 + X509_ED25519 +} diff --git a/package.json b/package.json index 5d16bf99c2..00cad186b3 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,8 @@ "@opentelemetry/sdk-logs": "^0.202.0", "@opentelemetry/sdk-node": "^0.202.0", "@opentelemetry/semantic-conventions": "^1.34.0", - "@prisma/client": "^5.1.1", + "@prisma/adapter-pg": "^7.4.0", + "@prisma/client": "^7.4.0", "@sendgrid/mail": "^7.7.0", "@supabase/supabase-js": "^2.32.0", "@types/async-retry": "^1.4.5", @@ -138,6 +139,7 @@ "@types/node": "^20.4.6", "@types/passport-jwt": "3.0.9", "@types/passport-local": "^1.0.35", + "@types/pg": "^8.16.0", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^6.2.1", "@typescript-eslint/parser": "^6.2.1", @@ -152,7 +154,7 @@ "jest": "^29.6.2", "lint-staged": "^13.2.3", "prettier": "^3.0.1", - "prisma": "^5.1.1", + "prisma": "^7.4.0", "supertest": "^6.3.3", "ts-jest": "^29.1.1", "ts-loader": "^9.4.4", @@ -190,7 +192,7 @@ "@credebl/keycloak-url": "/libs/keycloak-url/src", "@credebl/client-registration/(.*)": "/libs/client-registration/src/$1", "@credebl/client-registration": "/libs/client-registration/src", - "^@credebl/prisma(|/.*)$": "/libs/prisma/src/$1", + "^@credebl/prisma(|/.*)$": "/libs/prisma-service/generated/prisma/$1", "^@credebl/repositories(|/.*)$": "/libs/repositories/src/$1", "^@credebl/user-request(|/.*)$": "/libs/user-request/src/$1", "^@credebl/enum(|/.*)$": "/libs/enum/src/$1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a0bbec1ab..bea28a348b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ catalogs: specifier: ^3.0.1 version: 3.0.1 '@nestjs/cli': - specifier: ^11.0.10 + specifier: 11.0.10 version: 11.0.10 '@nestjs/common': specifier: ^11.1.6 @@ -124,7 +124,7 @@ importers: version: 11.2.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14) '@nestjs/typeorm': specifier: 'catalog:' - version: 11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))) + version: 11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))) '@nestjs/websockets': specifier: 'catalog:' version: 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/platform-socket.io@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2) @@ -158,9 +158,12 @@ importers: '@opentelemetry/semantic-conventions': specifier: ^1.34.0 version: 1.37.0 + '@prisma/adapter-pg': + specifier: ^7.4.0 + version: 7.4.0 '@prisma/client': - specifier: ^5.1.1 - version: 5.22.0(prisma@5.22.0) + specifier: ^7.4.0 + version: 7.4.0(prisma@7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2))(typescript@5.9.2) '@sendgrid/mail': specifier: ^7.7.0 version: 7.7.0 @@ -289,7 +292,7 @@ importers: version: 1.0.9 nestjs-typeorm-paginate: specifier: 'catalog:' - version: 4.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(typeorm@0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))) + version: 4.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(typeorm@0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))) node-html-to-image: specifier: ^4.0.0 version: 4.0.0 @@ -355,7 +358,7 @@ importers: version: 5.0.1(express@4.21.2) typeorm: specifier: ^0.3.10 - version: 0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)) + version: 0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)) unzipper: specifier: ^0.10.14 version: 0.10.14 @@ -399,15 +402,15 @@ importers: '@types/multer': specifier: ^1.4.9 version: 1.4.13 - '@types/node': - specifier: ^20.4.6 - version: 20.19.17 '@types/passport-jwt': specifier: 3.0.9 version: 3.0.9 '@types/passport-local': specifier: ^1.0.35 version: 1.0.38 + '@types/pg': + specifier: ^8.16.0 + version: 8.16.0 '@types/supertest': specifier: ^2.0.12 version: 2.0.16 @@ -451,8 +454,8 @@ importers: specifier: ^3.0.1 version: 3.6.2 prisma: - specifier: ^5.1.1 - version: 5.22.0 + specifier: ^7.4.0 + version: 7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2) supertest: specifier: ^6.3.3 version: 6.3.4 @@ -528,7 +531,7 @@ importers: version: 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/microservices@11.1.6)(@nestjs/platform-express@11.1.6) '@prisma/client': specifier: ^5.1.1 - version: 5.22.0(prisma@5.22.0) + version: 5.22.0(prisma@7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2)) '@sendgrid/mail': specifier: ^7.7.0 version: 7.7.0 @@ -868,6 +871,18 @@ packages: '@borewit/text-codec@0.1.1': resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} + '@chevrotain/cst-dts-gen@10.5.0': + resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==} + + '@chevrotain/gast@10.5.0': + resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==} + + '@chevrotain/types@10.5.0': + resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==} + + '@chevrotain/utils@10.5.0': + resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -899,6 +914,20 @@ packages: resolution: {integrity: sha512-6uQ1pVXutwz1Krwooo67W+3K8BwH1ASMh1WoHTpomUzw8EXecXN5lHIJ9EPqTHuv1WqR2LKkSJyagcq0HYUJpg==} engines: {node: '>=12'} + '@electric-sql/pglite-socket@0.0.20': + resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==} + hasBin: true + peerDependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite-tools@0.2.20': + resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==} + peerDependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite@0.3.15': + resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -986,6 +1015,12 @@ packages: engines: {node: '>=6'} hasBin: true + '@hono/node-server@1.19.9': + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -1267,6 +1302,10 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} + '@mrleebo/prisma-ast@0.13.1': + resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==} + engines: {node: '>=16'} + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} cpu: [arm64] @@ -1753,6 +1792,12 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@prisma/adapter-pg@7.4.0': + resolution: {integrity: sha512-LWwTHaio0bMxvzahmpwpWqsZM0vTfMqwF8zo06YvILL/o47voaSfKzCVxZw/o9awf4fRgS5Vgthobikj9Dusaw==} + + '@prisma/client-runtime-utils@7.4.0': + resolution: {integrity: sha512-jTmWAOBGBSCT8n7SMbpjCpHjELgcDW9GNP/CeK6CeqjUFlEL6dn8Cl81t/NBDjJdXDm85XDJmc+PEQqqQee3xw==} + '@prisma/client@5.22.0': resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} engines: {node: '>=16.13'} @@ -1762,20 +1807,57 @@ packages: prisma: optional: true - '@prisma/debug@5.22.0': - resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} + '@prisma/client@7.4.0': + resolution: {integrity: sha512-Sc+ncr7+ph1hMf1LQfn6UyEXDEamCd5pXMsx8Q3SBH0NGX+zjqs3eaABt9hXwbcK9l7f8UyK8ldxOWA2LyPynQ==} + engines: {node: ^20.19 || ^22.12 || >=24.0} + peerDependencies: + prisma: '*' + typescript: '>=5.4.0' + peerDependenciesMeta: + prisma: + optional: true + typescript: + optional: true + + '@prisma/config@7.4.0': + resolution: {integrity: sha512-EnNrZMwZ9+O6UlG+YO9SP3VhVw4zwMahDRzQm3r0DQn9KeU5NwzmaDAY+BzACrgmaU71Id1/0FtWIDdl7xQp9g==} + + '@prisma/debug@7.2.0': + resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} + + '@prisma/debug@7.4.0': + resolution: {integrity: sha512-fZicwzgFHvvPMrRLCUinrsBTdadJsi/1oirzShjmFvNLwtu2DYlkxwRVy5zEGhp85mrEGnLeS/PdNRCdE027+Q==} + + '@prisma/dev@0.20.0': + resolution: {integrity: sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ==} + + '@prisma/driver-adapter-utils@7.4.0': + resolution: {integrity: sha512-jEyE5LkqZ27Ba/DIOfCGOQl6nKMLxuwJNRceCfh7/LRs46UkIKn3bmkI97MEH2t7zkYV3PGBrUr+6sMJaHvc0A==} + + '@prisma/engines-version@7.4.0-20.ab56fe763f921d033a6c195e7ddeb3e255bdbb57': + resolution: {integrity: sha512-5o3/bubIYdUeg38cyNf+VDq+LVtxvvi2393Fd1Uru52LPfkGJnmVbCaX1wBOAncgKR3BCloMJFD+Koog9LtYqQ==} - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} + '@prisma/engines@7.4.0': + resolution: {integrity: sha512-H+dgpbbY3VN/j5hOSVP1LXsv/rU0w/4C2zh5PZUwo/Q3NqZjOvBlVvkhtziioRmeEZ3SBAqPCsf1sQ74sI3O/w==} - '@prisma/engines@5.22.0': - resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} + '@prisma/fetch-engine@7.4.0': + resolution: {integrity: sha512-IXPOYskT89UTVsntuSnMTiKRWCuTg5JMWflgEDV1OSKFpuhwP5vqbfF01/iwo9y6rCjR0sDIO+jdV5kq38/hgA==} - '@prisma/fetch-engine@5.22.0': - resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} + '@prisma/get-platform@7.2.0': + resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==} - '@prisma/get-platform@5.22.0': - resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} + '@prisma/get-platform@7.4.0': + resolution: {integrity: sha512-fOUIoGzAPgtjHVs4DsVSnEDPBEauAmFeZr4Ej3tMwxywam7hHdRtCzgKagQBKcYIJuya8gzYrTqUoukzXtWJaA==} + + '@prisma/query-plan-executor@7.2.0': + resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==} + + '@prisma/studio-core@0.13.1': + resolution: {integrity: sha512-agdqaPEePRHcQ7CexEfkX1RvSH9uWDb6pXrZnhCRykhDFAV0/0P3d07WtfiY8hZWb7oRU4v+NkT4cGFHkQJIPg==} + peerDependencies: + '@types/react': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -2030,6 +2112,9 @@ packages: '@stablelib/base64@1.0.1': resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@supabase/auth-js@2.71.1': resolution: {integrity: sha512-mMIQHBRc+SKpZFRB2qtupuzulaUhFYupNyxqDj5Jp/LyPvcWvjaJzZzObv6URtL/O6lPxkanASnotGtNpS3H2Q==} @@ -2201,6 +2286,9 @@ packages: '@types/pdfkit@0.12.12': resolution: {integrity: sha512-plkfKdaPSVIndcsg2qFmQ/qazRivTyHALEiKufsTI6qn4hbXbFVm0n9RuY0RQpoBxM2NNK5SudCfpisDzIdXoA==} + '@types/pg@8.16.0': + resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==} + '@types/phoenix@1.6.6': resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} @@ -2210,6 +2298,9 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/request@2.48.13': resolution: {integrity: sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==} @@ -2655,6 +2746,10 @@ packages: aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} + aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} @@ -2838,6 +2933,14 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + c12@3.1.0: + resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + cache-manager-ioredis-yet@2.1.2: resolution: {integrity: sha512-p/5D+ADvJaZjAs12fR5l0ZJ+rK2EqbCryFdrzsMj3K+lGwNoCjB33N6V397otgreB+iwK+lssBshpkJDodiyMQ==} engines: {node: '>= 18'} @@ -2895,6 +2998,9 @@ packages: chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + chevrotain@10.5.0: + resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -2921,6 +3027,12 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + citty@0.2.1: + resolution: {integrity: sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==} + cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} @@ -3046,6 +3158,9 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -3159,6 +3274,9 @@ packages: resolution: {integrity: sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==} engines: {node: '>=14.16'} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} @@ -3244,6 +3362,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge-ts@7.1.5: + resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} + engines: {node: '>=16.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -3259,6 +3381,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -3282,6 +3407,9 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -3363,6 +3491,9 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + effect@3.18.4: + resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==} + elastic-apm-node@3.52.2: resolution: {integrity: sha512-NVFthDcoBOpTwtppF7b+BIeIu4Xon3RBNpddIaJv+DtjL6Q61x4j7ClYdiXjv3XKgyp7yUlOnLjU6PY/EYXwLQ==} engines: {node: '>=8.6.0'} @@ -3380,6 +3511,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} + enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} @@ -3684,6 +3819,9 @@ packages: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -3704,6 +3842,10 @@ packages: resolution: {integrity: sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==} engines: {node: '>=18.0.0'} + fast-check@3.23.2: + resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} + engines: {node: '>=8.0.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3930,6 +4072,9 @@ packages: resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} engines: {node: '>=14'} + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + generate-password@1.7.1: resolution: {integrity: sha512-9bVYY+16m7W7GczRBDqXE+VVuCX+bWNrfYKC/2p2JkZukFb2sKxT6E3zZ3mJGz7GMe5iRK0A/WawSL3jQfJuNQ==} @@ -3949,6 +4094,9 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} @@ -3976,6 +4124,10 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + giget@2.0.0: + resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} + hasBin: true + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3989,20 +4141,23 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.0.3: resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} @@ -4035,9 +4190,15 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + grammex@3.1.12: + resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==} + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphmatch@1.1.1: + resolution: {integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==} + gtoken@7.1.0: resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} @@ -4098,6 +4259,10 @@ packages: resolution: {integrity: sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==} engines: {node: '>=16.0.0'} + hono@4.11.4: + resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==} + engines: {node: '>=16.9.0'} + hpagent@0.1.2: resolution: {integrity: sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==} @@ -4138,6 +4303,9 @@ packages: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} + http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + http_ece@1.2.0: resolution: {integrity: sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==} engines: {node: '>=16'} @@ -4178,6 +4346,10 @@ packages: resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + idtoken-verifier@2.2.4: resolution: {integrity: sha512-5t7O8cNHpJBB8FnwLD0qFZqy/+qGICObQKUl0njD6vXKHhpZPLEe8LU7qv/GBWB3Qv5e/wAIFHYVi4SoQwdOxQ==} @@ -4346,6 +4518,9 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -4581,6 +4756,10 @@ packages: node-notifier: optional: true + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + jmespath@0.16.0: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} @@ -4857,6 +5036,10 @@ packages: lru-memoizer@2.3.0: resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} + lru.min@1.1.4: + resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + luxon@3.7.2: resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} engines: {node: '>=12'} @@ -5078,6 +5261,14 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + mysql2@3.15.3: + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} + engines: {node: '>= 8.0'} + + named-placeholders@1.1.6: + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} + engines: {node: '>=8.0.0'} + nanoid@4.0.2: resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} @@ -5142,6 +5333,9 @@ packages: node-emoji@1.11.0: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -5197,6 +5391,11 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. + nypm@0.6.5: + resolution: {integrity: sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==} + engines: {node: '>=18'} + hasBin: true + oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -5246,6 +5445,9 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -5395,6 +5597,9 @@ packages: path@0.12.7: resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pause@0.0.1: resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} @@ -5404,6 +5609,9 @@ packages: pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -5485,6 +5693,9 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -5504,6 +5715,10 @@ packages: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} + postgres-array@3.0.4: + resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==} + engines: {node: '>=12'} + postgres-bytea@1.0.0: resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} engines: {node: '>=0.10.0'} @@ -5516,6 +5731,10 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + postgres@3.4.7: + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} + engines: {node: '>=12'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -5533,10 +5752,18 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prisma@5.22.0: - resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} - engines: {node: '>=16.13'} + prisma@7.4.0: + resolution: {integrity: sha512-n2xU9vSaH4uxZF/l2aKoGYtKtC7BL936jM9Q94Syk1zOD39t/5hjDUxMgaPkVRDX5wWEMsIqvzQxoebNIesOKw==} + engines: {node: ^20.19 || ^22.12 || >=24.0} hasBin: true + peerDependencies: + better-sqlite3: '>=9.0.0' + typescript: '>=5.4.0' + peerDependenciesMeta: + better-sqlite3: + optional: true + typescript: + optional: true process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -5567,6 +5794,9 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} @@ -5622,12 +5852,12 @@ packages: puppeteer@21.0.1: resolution: {integrity: sha512-KTjmSdPZ6bMkq3EbAzAUhcB3gMDXvdwd6912rxG9hNtjwRJzHSA568vh6vIbO2WQeNmozRdt1LtiUMLSWfeMrg==} engines: {node: '>=16.3.0'} - deprecated: < 24.15.0 is no longer supported + deprecated: < 22.8.2 is no longer supported puppeteer@21.11.0: resolution: {integrity: sha512-9jTHuYe22TD3sNxy0nEIzC7ZrlRnDgeX3xPkbS7PnbdwYjl2o/z/YuCrRBwezdKpbTDTJ4VqIggzNyeRcKq3cg==} engines: {node: '>=16.13.2'} - deprecated: < 24.15.0 is no longer supported + deprecated: < 22.8.2 is no longer supported hasBin: true pure-rand@6.1.0: @@ -5682,9 +5912,21 @@ packages: resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} engines: {node: '>= 0.10'} + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + peerDependencies: + react: ^19.2.4 + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + engines: {node: '>=0.10.0'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -5718,6 +5960,9 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} + regexp-to-ast@0.5.0: + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -5729,6 +5974,9 @@ packages: relative-microtime@2.0.0: resolution: {integrity: sha512-l18ha6HEZc+No/uK4GyAnNxgKW7nvEe35IaeN54sShMojtqik2a6GbTyuiezkjpPaqP874Z3lW5ysBo5irz4NA==} + remeda@2.33.4: + resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==} + repeat-string@1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} @@ -5804,6 +6052,10 @@ packages: resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} engines: {node: '>=14'} + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -5877,6 +6129,9 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -5905,6 +6160,9 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} + seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -6057,6 +6315,10 @@ packages: sql-summary@1.0.1: resolution: {integrity: sha512-IpCr2tpnNkP3Jera4ncexsZUp0enJBLr+pHCyTweMUBrbJsTgQeLWx1FXLhoBj/MvcnUQpkgOn2EY8FKOkUzww==} + sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + sshpk@1.18.0: resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} @@ -6083,6 +6345,9 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -6237,7 +6502,7 @@ packages: tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me teeny-request@9.0.0: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} @@ -6289,6 +6554,10 @@ packages: tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -6654,6 +6923,14 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validator@13.15.15: resolution: {integrity: sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==} engines: {node: '>= 0.10'} @@ -6920,6 +7197,9 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} + zeptomatch@2.1.0: + resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==} + snapshots: '@angular-devkit/core@19.2.15(chokidar@4.0.3)': @@ -7500,6 +7780,21 @@ snapshots: '@borewit/text-codec@0.1.1': {} + '@chevrotain/cst-dts-gen@10.5.0': + dependencies: + '@chevrotain/gast': 10.5.0 + '@chevrotain/types': 10.5.0 + lodash: 4.17.21 + + '@chevrotain/gast@10.5.0': + dependencies: + '@chevrotain/types': 10.5.0 + lodash: 4.17.21 + + '@chevrotain/types@10.5.0': {} + + '@chevrotain/utils@10.5.0': {} + '@colors/colors@1.5.0': optional: true @@ -7537,6 +7832,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)': + dependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)': + dependencies: + '@electric-sql/pglite': 0.3.15 + + '@electric-sql/pglite@0.3.15': {} + '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -7671,6 +7976,10 @@ snapshots: protobufjs: 7.5.4 yargs: 17.7.2 + '@hono/node-server@1.19.9(hono@4.11.4)': + dependencies: + hono: 4.11.4 + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -7734,7 +8043,7 @@ snapshots: '@inquirer/external-editor@1.0.2(@types/node@20.19.17)': dependencies: chardet: 2.1.0 - iconv-lite: 0.7.0 + iconv-lite: 0.7.2 optionalDependencies: '@types/node': 20.19.17 @@ -8062,6 +8371,11 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} + '@mrleebo/prisma-ast@0.13.1': + dependencies: + chevrotain: 10.5.0 + lilconfig: 2.1.0 + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': optional: true @@ -8284,13 +8598,13 @@ snapshots: '@nestjs/microservices': 11.1.6(@grpc/grpc-js@1.14.0)(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/websockets@11.1.6)(cache-manager@5.7.6)(ioredis@5.8.0)(nats@2.29.3)(reflect-metadata@0.1.14)(rxjs@7.8.2) '@nestjs/platform-express': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6) - '@nestjs/typeorm@11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)))': + '@nestjs/typeorm@11.0.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)))': dependencies: '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2) '@nestjs/core': 11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/microservices@11.1.6)(@nestjs/platform-express@11.1.6)(@nestjs/websockets@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2) reflect-metadata: 0.1.14 rxjs: 7.8.2 - typeorm: 0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)) + typeorm: 0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)) '@nestjs/websockets@11.1.6(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.6)(@nestjs/platform-socket.io@11.1.6)(reflect-metadata@0.1.14)(rxjs@7.8.2)': dependencies: @@ -8617,30 +8931,96 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@prisma/client@5.22.0(prisma@5.22.0)': + '@prisma/adapter-pg@7.4.0': + dependencies: + '@prisma/driver-adapter-utils': 7.4.0 + pg: 8.16.3 + postgres-array: 3.0.4 + transitivePeerDependencies: + - pg-native + + '@prisma/client-runtime-utils@7.4.0': {} + + '@prisma/client@5.22.0(prisma@7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2))': optionalDependencies: - prisma: 5.22.0 + prisma: 7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2) - '@prisma/debug@5.22.0': {} + '@prisma/client@7.4.0(prisma@7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2))(typescript@5.9.2)': + dependencies: + '@prisma/client-runtime-utils': 7.4.0 + optionalDependencies: + prisma: 7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2) + typescript: 5.9.2 + + '@prisma/config@7.4.0': + dependencies: + c12: 3.1.0 + deepmerge-ts: 7.1.5 + effect: 3.18.4 + empathic: 2.0.0 + transitivePeerDependencies: + - magicast + + '@prisma/debug@7.2.0': {} + + '@prisma/debug@7.4.0': {} - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + '@prisma/dev@0.20.0(typescript@5.9.2)': + dependencies: + '@electric-sql/pglite': 0.3.15 + '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15) + '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) + '@hono/node-server': 1.19.9(hono@4.11.4) + '@mrleebo/prisma-ast': 0.13.1 + '@prisma/get-platform': 7.2.0 + '@prisma/query-plan-executor': 7.2.0 + foreground-child: 3.3.1 + get-port-please: 3.2.0 + hono: 4.11.4 + http-status-codes: 2.3.0 + pathe: 2.0.3 + proper-lockfile: 4.1.2 + remeda: 2.33.4 + std-env: 3.10.0 + valibot: 1.2.0(typescript@5.9.2) + zeptomatch: 2.1.0 + transitivePeerDependencies: + - typescript - '@prisma/engines@5.22.0': + '@prisma/driver-adapter-utils@7.4.0': dependencies: - '@prisma/debug': 5.22.0 - '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - '@prisma/fetch-engine': 5.22.0 - '@prisma/get-platform': 5.22.0 + '@prisma/debug': 7.4.0 - '@prisma/fetch-engine@5.22.0': + '@prisma/engines-version@7.4.0-20.ab56fe763f921d033a6c195e7ddeb3e255bdbb57': {} + + '@prisma/engines@7.4.0': + dependencies: + '@prisma/debug': 7.4.0 + '@prisma/engines-version': 7.4.0-20.ab56fe763f921d033a6c195e7ddeb3e255bdbb57 + '@prisma/fetch-engine': 7.4.0 + '@prisma/get-platform': 7.4.0 + + '@prisma/fetch-engine@7.4.0': dependencies: - '@prisma/debug': 5.22.0 - '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - '@prisma/get-platform': 5.22.0 + '@prisma/debug': 7.4.0 + '@prisma/engines-version': 7.4.0-20.ab56fe763f921d033a6c195e7ddeb3e255bdbb57 + '@prisma/get-platform': 7.4.0 - '@prisma/get-platform@5.22.0': + '@prisma/get-platform@7.2.0': dependencies: - '@prisma/debug': 5.22.0 + '@prisma/debug': 7.2.0 + + '@prisma/get-platform@7.4.0': + dependencies: + '@prisma/debug': 7.4.0 + + '@prisma/query-plan-executor@7.2.0': {} + + '@prisma/studio-core@0.13.1(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@types/react': 19.2.14 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@protobufjs/aspromise@1.1.2': {} @@ -9009,6 +9389,8 @@ snapshots: '@stablelib/base64@1.0.1': {} + '@standard-schema/spec@1.1.0': {} + '@supabase/auth-js@2.71.1': dependencies: '@supabase/node-fetch': 2.6.15 @@ -9235,12 +9617,22 @@ snapshots: dependencies: '@types/node': 20.19.17 + '@types/pg@8.16.0': + dependencies: + '@types/node': 20.19.17 + pg-protocol: 1.10.3 + pg-types: 2.2.0 + '@types/phoenix@1.6.6': {} '@types/qs@6.14.0': {} '@types/range-parser@1.2.7': {} + '@types/react@19.2.14': + dependencies: + csstype: 3.2.3 + '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 @@ -9781,6 +10173,8 @@ snapshots: aws-sign2@0.7.0: optional: true + aws-ssl-profiles@1.1.2: {} + aws4@1.13.2: optional: true @@ -10025,6 +10419,21 @@ snapshots: bytes@3.1.2: {} + c12@3.1.0: + dependencies: + chokidar: 4.0.3 + confbox: 0.2.4 + defu: 6.1.4 + dotenv: 16.6.1 + exsolve: 1.0.8 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + cache-manager-ioredis-yet@2.1.2: dependencies: cache-manager: 5.7.6 @@ -10083,6 +10492,15 @@ snapshots: chardet@2.1.0: {} + chevrotain@10.5.0: + dependencies: + '@chevrotain/cst-dts-gen': 10.5.0 + '@chevrotain/gast': 10.5.0 + '@chevrotain/types': 10.5.0 + '@chevrotain/utils': 10.5.0 + lodash: 4.17.21 + regexp-to-ast: 0.5.0 + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -10104,6 +10522,12 @@ snapshots: ci-info@3.9.0: {} + citty@0.1.6: + dependencies: + consola: 3.4.2 + + citty@0.2.1: {} + cjs-module-lexer@1.4.3: {} class-transformer@0.5.1: {} @@ -10228,6 +10652,8 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 + confbox@0.2.4: {} + consola@3.4.2: {} console-control-strings@1.1.0: {} @@ -10344,6 +10770,8 @@ snapshots: dependencies: type-fest: 2.19.0 + csstype@3.2.3: {} + dashdash@1.14.1: dependencies: assert-plus: 1.0.0 @@ -10418,6 +10846,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge-ts@7.1.5: {} + deepmerge@4.3.1: {} defaults@1.0.4: @@ -10436,6 +10866,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -10453,6 +10885,8 @@ snapshots: depd@2.0.0: {} + destr@2.0.5: {} + destroy@1.2.0: {} detect-libc@2.1.0: {} @@ -10528,6 +10962,11 @@ snapshots: ee-first@1.1.1: {} + effect@3.18.4: + dependencies: + '@standard-schema/spec': 1.1.0 + fast-check: 3.23.2 + elastic-apm-node@3.52.2: dependencies: '@elastic/ecs-pino-format': 1.5.0 @@ -10580,6 +11019,8 @@ snapshots: emoji-regex@9.2.2: {} + empathic@2.0.0: {} + enabled@2.0.0: {} encodeurl@1.0.2: {} @@ -11063,6 +11504,8 @@ snapshots: transitivePeerDependencies: - supports-color + exsolve@1.0.8: {} + extend@3.0.2: {} extract-zip@1.7.0: @@ -11090,6 +11533,10 @@ snapshots: farmhash-modern@1.1.0: {} + fast-check@3.23.2: + dependencies: + pure-rand: 6.1.0 + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -11402,6 +11849,10 @@ snapshots: - encoding - supports-color + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + generate-password@1.7.1: {} gensync@1.0.0-beta.2: {} @@ -11423,6 +11874,8 @@ snapshots: get-package-type@0.1.0: {} + get-port-please@3.2.0: {} + get-port@5.1.1: {} get-proto@1.0.1: @@ -11455,6 +11908,15 @@ snapshots: assert-plus: 1.0.0 optional: true + giget@2.0.0: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + defu: 6.1.4 + node-fetch-native: 1.6.7 + nypm: 0.6.5 + pathe: 2.0.3 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -11554,8 +12016,12 @@ snapshots: graceful-fs@4.2.11: {} + grammex@3.1.12: {} + graphemer@1.4.0: {} + graphmatch@1.1.1: {} + gtoken@7.1.0: dependencies: gaxios: 6.7.1 @@ -11616,6 +12082,8 @@ snapshots: helmet@7.2.0: {} + hono@4.11.4: {} + hpagent@0.1.2: {} html-entities@2.6.0: @@ -11669,6 +12137,8 @@ snapshots: sshpk: 1.18.0 optional: true + http-status-codes@2.3.0: {} + http_ece@1.2.0: {} https-proxy-agent@5.0.1: @@ -11708,6 +12178,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + idtoken-verifier@2.2.4: dependencies: base64-js: 1.5.1 @@ -11889,6 +12363,8 @@ snapshots: is-promise@4.0.0: {} + is-property@1.0.2: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -12317,6 +12793,8 @@ snapshots: - supports-color - ts-node + jiti@2.6.1: {} + jmespath@0.16.0: {} jose@4.15.9: {} @@ -12603,6 +13081,8 @@ snapshots: lodash.clonedeep: 4.5.0 lru-cache: 6.0.0 + lru.min@1.1.4: {} + luxon@3.7.2: {} magic-string@0.30.17: @@ -12809,6 +13289,22 @@ snapshots: mute-stream@2.0.0: {} + mysql2@3.15.3: + dependencies: + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.7.2 + long: 5.3.2 + lru.min: 1.1.4 + named-placeholders: 1.1.6 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + + named-placeholders@1.1.6: + dependencies: + lru.min: 1.1.4 + nanoid@4.0.2: {} nats@2.29.3: @@ -12836,10 +13332,10 @@ snapshots: nestjs-supabase-auth@1.0.9: {} - nestjs-typeorm-paginate@4.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(typeorm@0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))): + nestjs-typeorm-paginate@4.1.0(@nestjs/common@11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(typeorm@0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))): dependencies: '@nestjs/common': 11.1.6(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2) - typeorm: 0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)) + typeorm: 0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)) netmask@2.0.2: {} @@ -12858,6 +13354,8 @@ snapshots: dependencies: lodash: 4.17.21 + node-fetch-native@1.6.7: {} + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -12910,6 +13408,12 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 + nypm@0.6.5: + dependencies: + citty: 0.2.1 + pathe: 2.0.3 + tinyexec: 1.0.2 + oauth-sign@0.9.0: optional: true @@ -12971,6 +13475,8 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + ohash@2.0.11: {} + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -13135,6 +13641,8 @@ snapshots: process: 0.11.10 util: 0.10.4 + pathe@2.0.3: {} + pause@0.0.1: {} pdfkit@0.13.0: @@ -13146,6 +13654,8 @@ snapshots: pend@1.2.0: {} + perfect-debounce@1.0.0: {} + performance-now@2.1.0: optional: true @@ -13235,6 +13745,12 @@ snapshots: dependencies: find-up: 4.1.0 + pkg-types@2.3.0: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + pluralize@8.0.0: {} png-js@1.0.0: {} @@ -13245,6 +13761,8 @@ snapshots: postgres-array@2.0.0: {} + postgres-array@3.0.4: {} + postgres-bytea@1.0.0: {} postgres-date@1.0.7: {} @@ -13253,6 +13771,8 @@ snapshots: dependencies: xtend: 4.0.2 + postgres@3.4.7: {} + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: @@ -13267,11 +13787,21 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - prisma@5.22.0: + prisma@7.4.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.2): dependencies: - '@prisma/engines': 5.22.0 + '@prisma/config': 7.4.0 + '@prisma/dev': 0.20.0(typescript@5.9.2) + '@prisma/engines': 7.4.0 + '@prisma/studio-core': 0.13.1(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + mysql2: 3.15.3 + postgres: 3.4.7 optionalDependencies: - fsevents: 2.3.3 + typescript: 5.9.2 + transitivePeerDependencies: + - '@types/react' + - magicast + - react + - react-dom process-nextick-args@2.0.1: {} @@ -13296,6 +13826,12 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + proto3-json-serializer@2.0.2: dependencies: protobufjs: 7.5.4 @@ -13478,8 +14014,20 @@ snapshots: iconv-lite: 0.7.0 unpipe: 1.0.0 + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.5 + + react-dom@19.2.4(react@19.2.4): + dependencies: + react: 19.2.4 + scheduler: 0.27.0 + react-is@18.3.1: {} + react@19.2.4: {} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -13528,6 +14076,8 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 + regexp-to-ast@0.5.0: {} + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -13542,6 +14092,8 @@ snapshots: relative-microtime@2.0.0: optional: true + remeda@2.33.4: {} + repeat-string@1.6.1: {} request-progress@2.0.1: @@ -13631,6 +14183,8 @@ snapshots: - supports-color optional: true + retry@0.12.0: {} + retry@0.13.1: {} reusify@1.1.0: {} @@ -13704,6 +14258,8 @@ snapshots: sax@1.4.1: {} + scheduler@0.27.0: {} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -13757,6 +14313,8 @@ snapshots: transitivePeerDependencies: - supports-color + seq-queue@0.0.5: {} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -13959,6 +14517,8 @@ snapshots: sql-summary@1.0.1: optional: true + sqlstring@2.3.3: {} + sshpk@1.18.0: dependencies: asn1: 0.2.6 @@ -13987,6 +14547,8 @@ snapshots: statuses@2.0.2: {} + std-env@3.10.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -14249,6 +14811,8 @@ snapshots: tiny-inflate@1.0.3: {} + tinyexec@1.0.2: {} + tmpl@1.0.5: {} to-buffer@1.2.1: @@ -14446,7 +15010,7 @@ snapshots: typedarray@0.0.6: {} - typeorm@0.3.27(ioredis@5.8.0)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)): + typeorm@0.3.27(ioredis@5.8.0)(mysql2@3.15.3)(pg@8.16.3)(redis@3.1.2)(reflect-metadata@0.1.14)(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)): dependencies: '@sqltools/formatter': 1.2.5 ansis: 3.17.0 @@ -14465,6 +15029,7 @@ snapshots: yargs: 17.7.2 optionalDependencies: ioredis: 5.8.0 + mysql2: 3.15.3 pg: 8.16.3 redis: 3.1.2 ts-node: 10.9.2(@types/node@20.19.17)(typescript@5.9.2) @@ -14598,6 +15163,10 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + valibot@1.2.0(typescript@5.9.2): + optionalDependencies: + typescript: 5.9.2 + validator@13.15.15: {} vary@1.1.2: {} @@ -14909,3 +15478,8 @@ snapshots: yocto-queue@0.1.0: {} yoctocolors-cjs@2.1.3: {} + + zeptomatch@2.1.0: + dependencies: + grammex: 3.1.12 + graphmatch: 1.1.1 diff --git a/prisma.config.ts b/prisma.config.ts new file mode 100644 index 0000000000..0cd28fd554 --- /dev/null +++ b/prisma.config.ts @@ -0,0 +1,14 @@ +import 'dotenv/config'; +import { defineConfig } from 'prisma/config'; + +export default defineConfig({ + schema: 'libs/prisma-service/prisma/schema.prisma', + migrations: { + path: 'libs/prisma-service/prisma/migrations', + seed: 'ts-node libs/prisma-service/prisma/seed.ts' + }, + datasource: { + // direct DB string here (directUrl from old primsa.schema file) + url: process.env.DATABASE_URL + } +}); From dab3922cf6a111a1bffdf9cb9ace718d01bc5304 Mon Sep 17 00:00:00 2001 From: sahilkhude117 Date: Tue, 17 Feb 2026 17:29:38 +0530 Subject: [PATCH 2/5] refactor: added pg-adapter & updated scripts paths Signed-off-by: sahilkhude117 --- .env.demo | 4 ++-- .env.sample | 4 ++-- .../prisma/scripts/geo_location_data_import.sh | 6 +++--- libs/prisma-service/prisma/seed.ts | 9 +++++++-- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.env.demo b/.env.demo index 18d5d2bd12..daec12a827 100644 --- a/.env.demo +++ b/.env.demo @@ -119,8 +119,8 @@ KEYCLOAK_REALM=credebl-platform SCHEMA_FILE_SERVER_URL= SCHEMA_FILE_SERVER_TOKEN= -GEO_LOCATION_MASTER_DATA_IMPORT_SCRIPT=/prisma/scripts/geo_location_data_import.sh -UPDATE_CLIENT_CREDENTIAL_SCRIPT=/prisma/scripts/update_client_credential_data.sh +GEO_LOCATION_MASTER_DATA_IMPORT_SCRIPT=/libs/prisma-service/prisma/scripts/geo_location_data_import.sh +UPDATE_CLIENT_CREDENTIAL_SCRIPT=/libs/prisma-service/prisma/scripts/update_client_credential_data.sh # Note: the below 3 variables are only in case of starting services using docker AFJ_AGENT_SPIN_UP=/agent-provisioning/AFJ/scripts/docker_start_agent.sh AFJ_AGENT_ENDPOINT_PATH=/agent-provisioning/AFJ/endpoints/ diff --git a/.env.sample b/.env.sample index 823432c7d1..cdc832b55a 100644 --- a/.env.sample +++ b/.env.sample @@ -110,8 +110,8 @@ POOL_DATABASE_URL="" #Provide pooler supabase postgres URL CLUSTER_NAME="" # ecs cluster TESKDEFINITION_FAMILY="" # ecs task-definition AGENT_PROTOCOL=http -GEO_LOCATION_MASTER_DATA_IMPORT_SCRIPT=/prisma/scripts/geo_location_data_import.sh -UPDATE_CLIENT_CREDENTIAL_SCRIPT=/prisma/scripts/update_client_credential_data.sh +GEO_LOCATION_MASTER_DATA_IMPORT_SCRIPT=/libs/prisma-service/prisma/scripts/geo_location_data_import.sh +UPDATE_CLIENT_CREDENTIAL_SCRIPT=/libs/prisma-service/prisma/scripts/update_client_credential_data.sh USER_NKEY_SEED=xxxxxxxxxxxxx // Please provide Nkeys secret for user service API_GATEWAY_NKEY_SEED=xxxxxxxxxxxxx // Please provide Nkeys secret for api-gateway diff --git a/libs/prisma-service/prisma/scripts/geo_location_data_import.sh b/libs/prisma-service/prisma/scripts/geo_location_data_import.sh index 2aa6cace66..db51f9107f 100755 --- a/libs/prisma-service/prisma/scripts/geo_location_data_import.sh +++ b/libs/prisma-service/prisma/scripts/geo_location_data_import.sh @@ -4,9 +4,9 @@ DB_URL=$1 echo "$PWD" # file paths -COUNTRIES_CSV="${PWD}/prisma/data/geo-location-master-data/countries.csv" -STATES_CSV="${PWD}/prisma/data/geo-location-master-data/states.csv" -CITIES_CSV="${PWD}/prisma/data/geo-location-master-data/cities.csv" +COUNTRIES_CSV="${PWD}/libs/prisma-service/prisma/data/geo-location-master-data/countries.csv" +STATES_CSV="${PWD}/libs/prisma-service/prisma/data/geo-location-master-data/states.csv" +CITIES_CSV="${PWD}/libs/prisma-service/prisma/data/geo-location-master-data/cities.csv" # table names COUNTRIES_TABLE="countries" diff --git a/libs/prisma-service/prisma/seed.ts b/libs/prisma-service/prisma/seed.ts index 4204389fa0..fac3e111cb 100644 --- a/libs/prisma-service/prisma/seed.ts +++ b/libs/prisma-service/prisma/seed.ts @@ -6,12 +6,17 @@ import * as util from 'util'; import { HttpStatus, Logger } from '@nestjs/common'; import { CommonConstants } from '../../common/src/common.constant'; -import { PrismaClient } from '@prisma/client'; +import { PrismaClient } from '../generated/prisma/client'; +import { PrismaPg } from '@prisma/adapter-pg'; import { exec } from 'child_process'; const execPromise = util.promisify(exec); +const connectionString = process.env.POOL_DATABASE_URL as string; +const adapter = new PrismaPg({ connectionString }); + const prisma = new PrismaClient({ + adapter, // Added prisma logging for better debugging log: [ { @@ -33,7 +38,7 @@ let platformUserId = ''; let cachedConfig: PlatformConfig; const configData = fs.readFileSync( - `${process.cwd()}/prisma/data/credebl-master-table/credebl-master-table.json`, + `${process.cwd()}/libs/prisma-service/prisma/data/credebl-master-table/credebl-master-table.json`, 'utf8' ); const createPlatformConfig = async (): Promise => { From 903b1720c23ff0a60bc956ff7ed1a97ad8ed6d2e Mon Sep 17 00:00:00 2001 From: sahilkhude117 Date: Tue, 17 Feb 2026 19:16:21 +0530 Subject: [PATCH 3/5] refactor: updated prisma client with pg-adapter Signed-off-by: sahilkhude117 --- libs/prisma-service/cli.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/prisma-service/cli.ts b/libs/prisma-service/cli.ts index a885430859..4d21eaf63f 100644 --- a/libs/prisma-service/cli.ts +++ b/libs/prisma-service/cli.ts @@ -5,10 +5,16 @@ // eslint-disable-next-line camelcase const { createInterface } = require('readline'); -const { PrismaClient } = require('@prisma/client'); +const { PrismaPg } = require('@prisma/adapter-pg'); +const { PrismaClient } = require('generated/prisma/client'); const { createClient } = require('@supabase/supabase-js'); +const adapter = new PrismaPg({ + connectionString: process.env.POOL_DATABASE_URL || process.env.DATABASE_URL +}); + const prisma = new PrismaClient({ + adapter, // Added prisma logging for better debugging log: [ { From 6d97bfad7ef4252719cf56c6c73f38cd9e581f30 Mon Sep 17 00:00:00 2001 From: sahilkhude117 Date: Tue, 17 Feb 2026 19:19:10 +0530 Subject: [PATCH 4/5] fix: updated export name to Oidc4vcVerificationModule Signed-off-by: sahilkhude117 --- apps/oid4vc-verification/src/oid4vc-verification.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/oid4vc-verification/src/oid4vc-verification.module.ts b/apps/oid4vc-verification/src/oid4vc-verification.module.ts index 398b3482e2..528f1523d1 100644 --- a/apps/oid4vc-verification/src/oid4vc-verification.module.ts +++ b/apps/oid4vc-verification/src/oid4vc-verification.module.ts @@ -49,4 +49,4 @@ import { ConfigModule } from '@nestjs/config'; } ] }) -export class Oid4vpModule {} +export class Oid4vcVerificationModule {} From dac2c889cab98416bc470920c0188a3b8cade27d Mon Sep 17 00:00:00 2001 From: sahilkhude117 Date: Tue, 17 Feb 2026 19:25:41 +0530 Subject: [PATCH 5/5] refactor: updated import prisma client from generated client Signed-off-by: sahilkhude117 --- .../src/agent-service.controller.ts | 2 +- .../src/agent-service.service.ts | 2 +- .../src/interface/agent-service.interface.ts | 2 +- .../repositories/agent-service.repository.ts | 2 +- apps/api-gateway/common/interface.ts | 2 +- .../agent-service/agent-service.controller.ts | 2 +- .../agent-service/agent-service.service.ts | 2 +- .../api-gateway/src/authz/authz.controller.ts | 2 +- apps/api-gateway/src/authz/authz.service.ts | 4 +- .../cloud-wallet/cloud-wallet.controller.ts | 2 +- .../src/connection/connection.controller.ts | 2 +- .../src/connection/connection.service.ts | 3 +- .../src/ecosystem/ecosystem.controller.ts | 4 +- .../src/ecosystem/ecosystem.service.ts | 8 +- .../src/issuance/issuance.controller.ts | 2 +- .../src/issuance/issuance.service.ts | 3 +- .../dtos/oid4vc-issuer-template.dto.ts | 2 +- .../oid4vc-issuance.controller.ts | 2 +- .../oid4vc-issuance.service.ts | 2 +- .../dtos/oid4vc-verifier-presentation.dto.ts | 2 +- .../dtos/verification-template.dto.ts | 2 +- .../oid4vc-verification.controller.ts | 2 +- .../oid4vc-verification.service.ts | 2 +- .../organization/organization.controller.ts | 2 +- .../src/organization/organization.service.ts | 2 +- .../src/platform/platform.controller.ts | 2 +- apps/api-gateway/src/user/user.controller.ts | 2 +- apps/api-gateway/src/user/user.service.ts | 2 +- .../verification/verification.controller.ts | 2 +- .../src/verification/verification.service.ts | 2 +- apps/api-gateway/src/x509/x509.controller.ts | 2 +- apps/api-gateway/src/x509/x509.service.ts | 2 +- .../src/cloud-wallet.repository.ts | 27 +- apps/connection/src/connection.controller.ts | 2 +- apps/connection/src/connection.repository.ts | 53 +- apps/connection/src/connection.service.ts | 4 +- .../src/interfaces/connection.interfaces.ts | 2 +- .../interfaces/ecosystem.interfaces.ts | 4 +- .../repositories/ecosystem.repository.ts | 2 +- apps/ecosystem/src/ecosystem.controller.ts | 2 +- apps/ecosystem/src/ecosystem.service.ts | 2 +- .../interfaces/issuance.interfaces.ts | 2 +- apps/issuance/src/issuance.controller.ts | 2 +- apps/issuance/src/issuance.repository.ts | 2 +- apps/issuance/src/issuance.service.ts | 2 +- .../credential-definition.controller.ts | 89 +-- .../credential-definition.service.ts | 2 +- .../credential-definition.repository.ts | 611 +++++++++--------- apps/ledger/src/ledger.controller.ts | 15 +- apps/ledger/src/ledger.service.ts | 121 ++-- .../src/repositories/ledger.repository.ts | 179 +++-- .../schema/repositories/schema.repository.ts | 2 +- apps/ledger/src/schema/schema.controller.ts | 51 +- apps/ledger/src/schema/schema.service.ts | 2 +- .../interfaces/oid4vc-issuance.interfaces.ts | 2 +- .../interfaces/oid4vc-template.interfaces.ts | 2 +- .../helpers/credential-sessions.builder.ts | 2 +- .../libs/helpers/issuer.metadata.ts | 2 +- .../src/oid4vc-issuance.controller.ts | 2 +- .../src/oid4vc-issuance.repository.ts | 2 +- .../src/oid4vc-issuance.service.ts | 2 +- .../interfaces/oid4vp-verifier.interfaces.ts | 2 +- .../verification-template.interfaces.ts | 2 +- .../src/oid4vc-verification.controller.ts | 2 +- .../src/oid4vc-verification.repository.ts | 2 +- .../src/oid4vc-verification.service.ts | 3 +- apps/oid4vc-verification/test/app.e2e-spec.ts | 2 +- .../interfaces/organization.interface.ts | 4 +- .../repositories/organization.repository.ts | 22 +- .../src/organization.controller.ts | 2 +- apps/organization/src/organization.service.ts | 2 +- apps/user/dtos/login-user.dto.ts | 2 +- apps/user/interfaces/user.interface.ts | 2 +- .../user/repositories/fido-user.repository.ts | 43 +- .../repositories/user-device.repository.ts | 125 ++-- apps/user/repositories/user.repository.ts | 2 +- apps/user/src/user.controller.ts | 2 +- apps/user/src/user.service.ts | 2 +- apps/utility/src/utilities.repository.ts | 2 +- .../repositories/verification.repository.ts | 12 +- .../src/verification.controller.ts | 2 +- apps/verification/src/verification.service.ts | 2 +- apps/webhook/src/webhook.repository.ts | 7 +- apps/x509/src/repositories/x509.repository.ts | 2 +- apps/x509/src/x509.controller.ts | 2 +- apps/x509/src/x509.service.ts | 2 +- .../src/interfaces/cloud-wallet.interface.ts | 2 +- .../src/interfaces/oid4vp-verification.ts | 2 +- .../src/interfaces/verification.interface.ts | 2 +- libs/http-exception.filter.ts | 6 +- libs/org-roles/repositories/index.ts | 66 +- libs/org-roles/src/org-roles.service.ts | 30 +- .../src/prisma-service.service.ts | 7 +- libs/user-activity/repositories/index.ts | 2 +- .../src/user-activity.service.ts | 20 +- libs/user-org-roles/repositories/index.ts | 16 +- .../src/user-org-roles.service.ts | 33 +- tsconfig.json | 2 +- 98 files changed, 866 insertions(+), 842 deletions(-) diff --git a/apps/agent-service/src/agent-service.controller.ts b/apps/agent-service/src/agent-service.controller.ts index 31d375603e..cc124e00ac 100644 --- a/apps/agent-service/src/agent-service.controller.ts +++ b/apps/agent-service/src/agent-service.controller.ts @@ -27,7 +27,7 @@ import { Controller, Logger } from '@nestjs/common'; import { InvitationMessage } from '@credebl/common/interfaces/agent-service.interface'; import { MessagePattern } from '@nestjs/microservices'; import { SignDataDto } from '../../api-gateway/src/agent-service/dto/agent-service.dto'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { IX509ImportCertificateOptionsDto, x509CertificateDecodeDto, diff --git a/apps/agent-service/src/agent-service.service.ts b/apps/agent-service/src/agent-service.service.ts index f5e28d9314..27cb103b63 100644 --- a/apps/agent-service/src/agent-service.service.ts +++ b/apps/agent-service/src/agent-service.service.ts @@ -58,7 +58,7 @@ import { } from './interface/agent-service.interface'; import { AgentSpinUpStatus, AgentType, DidMethod, Ledgers, OrgAgentType, PromiseResult } from '@credebl/enum/enum'; import { AgentServiceRepository } from './repositories/agent-service.repository'; -import { Prisma, RecordType, ledgers, org_agents, organisation, platform_config, user } from '@prisma/client'; +import { Prisma, RecordType, ledgers, org_agents, organisation, platform_config, user } from '@credebl/prisma/client'; import { CommonConstants } from '@credebl/common/common.constant'; import { CommonService } from '@credebl/common'; import { GetSchemaAgentRedirection } from 'apps/ledger/src/schema/schema.interface'; diff --git a/apps/agent-service/src/interface/agent-service.interface.ts b/apps/agent-service/src/interface/agent-service.interface.ts index 8c4a601978..989bd7d712 100644 --- a/apps/agent-service/src/interface/agent-service.interface.ts +++ b/apps/agent-service/src/interface/agent-service.interface.ts @@ -1,5 +1,5 @@ import { AgentSpinUpStatus } from '@credebl/enum/enum'; -import { Prisma } from '@prisma/client'; +import { Prisma } from '@credebl/prisma/client'; import { UserRoleOrgPermsDto } from 'apps/api-gateway/src/dtos/user-role-org-perms.dto'; export interface IAgentSpinupDto { diff --git a/apps/agent-service/src/repositories/agent-service.repository.ts b/apps/agent-service/src/repositories/agent-service.repository.ts index bdf32a8f23..673ca4de62 100644 --- a/apps/agent-service/src/repositories/agent-service.repository.ts +++ b/apps/agent-service/src/repositories/agent-service.repository.ts @@ -22,7 +22,7 @@ import { organisation, platform_config, user -} from '@prisma/client'; +} from '@credebl/prisma/client'; import { PrismaService } from '@credebl/prisma-service'; diff --git a/apps/api-gateway/common/interface.ts b/apps/api-gateway/common/interface.ts index c1791888bb..911b565999 100755 --- a/apps/api-gateway/common/interface.ts +++ b/apps/api-gateway/common/interface.ts @@ -1,4 +1,4 @@ -import { Prisma } from '@prisma/client'; +import { Prisma } from '@credebl/prisma/client'; export interface ResponseType { statusCode: number; diff --git a/apps/api-gateway/src/agent-service/agent-service.controller.ts b/apps/api-gateway/src/agent-service/agent-service.controller.ts index f90bbb90ab..f1d21550a6 100644 --- a/apps/api-gateway/src/agent-service/agent-service.controller.ts +++ b/apps/api-gateway/src/agent-service/agent-service.controller.ts @@ -34,7 +34,7 @@ import IResponseType, { IResponse } from '@credebl/common/interfaces/response.in import { AgentSpinupDto, SignDataDto, VerifySignatureDto } from './dto/agent-service.dto'; import { Response } from 'express'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { CreateTenantDto } from './dto/create-tenant.dto'; import { User } from '../authz/decorators/user.decorator'; import { CustomExceptionFilter } from 'apps/api-gateway/common/exception-handler'; diff --git a/apps/api-gateway/src/agent-service/agent-service.service.ts b/apps/api-gateway/src/agent-service/agent-service.service.ts index ee646dd93e..3b88f9c320 100644 --- a/apps/api-gateway/src/agent-service/agent-service.service.ts +++ b/apps/api-gateway/src/agent-service/agent-service.service.ts @@ -1,5 +1,5 @@ import { Injectable, Inject } from '@nestjs/common'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { BaseService } from 'libs/service/base.service'; import { AgentSpinupDto } from './dto/agent-service.dto'; import { CreateTenantDto } from './dto/create-tenant.dto'; diff --git a/apps/api-gateway/src/authz/authz.controller.ts b/apps/api-gateway/src/authz/authz.controller.ts index 9fde40303b..65abdc897e 100644 --- a/apps/api-gateway/src/authz/authz.controller.ts +++ b/apps/api-gateway/src/authz/authz.controller.ts @@ -52,7 +52,7 @@ import { ISessionData } from 'apps/user/interfaces/user.interface'; import { ForbiddenErrorDto } from '../dtos/forbidden-error.dto'; import { UnauthorizedErrorDto } from '../dtos/unauthorized-error.dto'; import { User } from './decorators/user.decorator'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import * as useragent from 'express-useragent'; import { EmptyStringParamPipe, TrimStringParamPipe } from '@credebl/common/cast.helper'; diff --git a/apps/api-gateway/src/authz/authz.service.ts b/apps/api-gateway/src/authz/authz.service.ts index a060788a44..ea31307d96 100644 --- a/apps/api-gateway/src/authz/authz.service.ts +++ b/apps/api-gateway/src/authz/authz.service.ts @@ -15,10 +15,10 @@ import { ResetPasswordDto } from './dtos/reset-password.dto'; import { ForgotPasswordDto } from './dtos/forgot-password.dto'; import { ResetTokenPasswordDto } from './dtos/reset-token-password'; import { NATSClient } from '@credebl/common/NATSClient'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { IRestrictedUserSession, ISessionDetails } from 'apps/user/interfaces/user.interface'; import { UserLogoutDto } from './dtos/user-logout.dto'; -import type { Prisma } from '@prisma/client'; +import type { Prisma } from '@credebl/prisma/client'; import { ClientProxy } from '@nestjs/microservices'; @Injectable() @WebSocketGateway() diff --git a/apps/api-gateway/src/cloud-wallet/cloud-wallet.controller.ts b/apps/api-gateway/src/cloud-wallet/cloud-wallet.controller.ts index f581c11f41..71f677967e 100644 --- a/apps/api-gateway/src/cloud-wallet/cloud-wallet.controller.ts +++ b/apps/api-gateway/src/cloud-wallet/cloud-wallet.controller.ts @@ -42,7 +42,7 @@ import { CloudBaseWalletConfigureDto } from './dtos/configure-base-wallet.dto'; import { AuthGuard } from '@nestjs/passport'; import { User } from '../authz/decorators/user.decorator'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { Validator } from '@credebl/common/validator'; import { CommonConstants } from '@credebl/common/common.constant'; import { UserRoleGuard } from '../authz/guards/user-role.guard'; diff --git a/apps/api-gateway/src/connection/connection.controller.ts b/apps/api-gateway/src/connection/connection.controller.ts index 6d3ba32d78..14c0ff9598 100644 --- a/apps/api-gateway/src/connection/connection.controller.ts +++ b/apps/api-gateway/src/connection/connection.controller.ts @@ -51,7 +51,7 @@ import { IConnectionSearchCriteria } from '../interfaces/IConnectionSearch.inter import { SortFields } from 'apps/connection/src/enum/connection.enum'; import { BasicMessageDto, QuestionAnswerWebhookDto, QuestionDto } from './dtos/question-answer.dto'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { TrimStringParamPipe } from '@credebl/common/cast.helper'; import { ClientProxy } from '@nestjs/microservices'; @UseFilters(CustomExceptionFilter) diff --git a/apps/api-gateway/src/connection/connection.service.ts b/apps/api-gateway/src/connection/connection.service.ts index 9f0f42c923..735c570468 100644 --- a/apps/api-gateway/src/connection/connection.service.ts +++ b/apps/api-gateway/src/connection/connection.service.ts @@ -16,9 +16,10 @@ import { IConnectionSearchCriteria } from '../interfaces/IConnectionSearch.interface'; import { BasicMessageDto, QuestionDto } from './dtos/question-answer.dto'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { NATSClient } from '@credebl/common/NATSClient'; import { firstValueFrom } from 'rxjs'; + @Injectable() export class ConnectionService extends BaseService { constructor( diff --git a/apps/api-gateway/src/ecosystem/ecosystem.controller.ts b/apps/api-gateway/src/ecosystem/ecosystem.controller.ts index f182e362b1..bb49737634 100755 --- a/apps/api-gateway/src/ecosystem/ecosystem.controller.ts +++ b/apps/api-gateway/src/ecosystem/ecosystem.controller.ts @@ -38,7 +38,7 @@ import { Roles } from '../authz/decorators/roles.decorator'; import { UnauthorizedErrorDto } from '../dtos/unauthorized-error.dto'; import { InviteMemberToEcosystemDto, UpdateEcosystemInvitationDto } from './dtos/send-ecosystem-invitation'; import { EcosystemRolesGuard } from '../authz/guards/ecosystem-roles.guard'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { User } from '../authz/decorators/user.decorator'; import { CreateEcosystemDto, PaginationGetAllEcosystem } from 'apps/ecosystem/dtos/create-ecosystem-dto'; import { DeleteEcosystemOrgDto } from './dtos/delete-ecosystem-users'; @@ -813,7 +813,7 @@ export class EcosystemController { description: 'Template details fetched successfully' }) async getTemplateByIntentId( - @Param( + @Param( 'orgId', TrimStringParamPipe, new ParseUUIDPipe({ diff --git a/apps/api-gateway/src/ecosystem/ecosystem.service.ts b/apps/api-gateway/src/ecosystem/ecosystem.service.ts index 57d7e5d0f3..ee3d4232b8 100755 --- a/apps/api-gateway/src/ecosystem/ecosystem.service.ts +++ b/apps/api-gateway/src/ecosystem/ecosystem.service.ts @@ -11,7 +11,7 @@ import { } from 'apps/ecosystem/interfaces/ecosystem.interfaces'; import { CreateEcosystemDto } from 'apps/ecosystem/dtos/create-ecosystem-dto'; // eslint-disable-next-line camelcase -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { CreateIntentDto } from 'apps/ecosystem/dtos/create-intent.dto'; import { UpdateIntentDto } from 'apps/ecosystem/dtos/update-intent.dto'; import { CreateIntentTemplateDto, UpdateIntentTemplateDto } from '../utilities/dtos/intent-template.dto'; @@ -40,7 +40,11 @@ export class EcosystemService { * @param userId * @returns All ecosystems from platform */ - async getEcosystems(userId: string, pageDetail: IPaginationSortingDto, orgId:string): Promise> { + async getEcosystems( + userId: string, + pageDetail: IPaginationSortingDto, + orgId: string + ): Promise> { return this.natsClient.sendNatsMessage(this.serviceProxy, 'get-ecosystems', { userId, pageDetail, orgId }); } diff --git a/apps/api-gateway/src/issuance/issuance.controller.ts b/apps/api-gateway/src/issuance/issuance.controller.ts index c6bb03b89f..713730f460 100644 --- a/apps/api-gateway/src/issuance/issuance.controller.ts +++ b/apps/api-gateway/src/issuance/issuance.controller.ts @@ -74,7 +74,7 @@ import { FileInterceptor } from '@nestjs/platform-express'; import { v4 as uuidv4 } from 'uuid'; import { RpcException } from '@nestjs/microservices'; /* eslint-disable @typescript-eslint/no-unused-vars */ -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { IGetAllIssuedCredentialsDto } from './dtos/get-all-issued-credentials.dto'; import { IssueCredentialDto } from './dtos/multi-connection.dto'; import { SchemaType } from '@credebl/enum/enum'; diff --git a/apps/api-gateway/src/issuance/issuance.service.ts b/apps/api-gateway/src/issuance/issuance.service.ts index 5fd03a93c2..fd3b0f15bd 100644 --- a/apps/api-gateway/src/issuance/issuance.service.ts +++ b/apps/api-gateway/src/issuance/issuance.service.ts @@ -26,7 +26,8 @@ import { import { IssueCredentialDto } from './dtos/multi-connection.dto'; import { NATSClient } from '@credebl/common/NATSClient'; import { ClientProxy } from '@nestjs/microservices'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; + @Injectable() export class IssuanceService extends BaseService { constructor( diff --git a/apps/api-gateway/src/oid4vc-issuance/dtos/oid4vc-issuer-template.dto.ts b/apps/api-gateway/src/oid4vc-issuance/dtos/oid4vc-issuer-template.dto.ts index 1bbb6de320..cdabea2ac9 100644 --- a/apps/api-gateway/src/oid4vc-issuance/dtos/oid4vc-issuer-template.dto.ts +++ b/apps/api-gateway/src/oid4vc-issuance/dtos/oid4vc-issuer-template.dto.ts @@ -16,7 +16,7 @@ import { } from 'class-validator'; import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath, PartialType } from '@nestjs/swagger'; import { Type } from 'class-transformer'; -import { SignerOption } from '@prisma/client'; +import { SignerOption } from '@credebl/prisma/client'; import { AttributeType, CredentialFormat } from '@credebl/enum/enum'; class CredentialAttributeDisplayDto { diff --git a/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.controller.ts b/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.controller.ts index 7979093446..8d5763bea5 100644 --- a/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.controller.ts +++ b/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.controller.ts @@ -43,7 +43,7 @@ import { OrgRoles } from 'libs/org-roles/enums'; import { OrgRolesGuard } from '../authz/guards/org-roles.guard'; import { CustomExceptionFilter } from 'apps/api-gateway/common/exception-handler'; /* eslint-disable @typescript-eslint/no-unused-vars */ -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { IssuerCreationDto, IssuerUpdationDto } from './dtos/oid4vc-issuer.dto'; import { CreateCredentialTemplateDto, UpdateCredentialTemplateDto } from './dtos/oid4vc-issuer-template.dto'; import { OidcIssueCredentialDto } from './dtos/oid4vc-credential-wh.dto'; diff --git a/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.service.ts b/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.service.ts index 98a5d3e6fe..f31a979e7b 100644 --- a/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.service.ts +++ b/apps/api-gateway/src/oid4vc-issuance/oid4vc-issuance.service.ts @@ -4,7 +4,7 @@ import { ClientProxy } from '@nestjs/microservices'; import { IssuerCreationDto, IssuerUpdationDto } from './dtos/oid4vc-issuer.dto'; import { BaseService } from 'libs/service/base.service'; // eslint-disable-next-line camelcase -import { oidc_issuer, user } from '@prisma/client'; +import { oidc_issuer, user } from '@credebl/prisma/client'; import { CreateCredentialTemplateDto, UpdateCredentialTemplateDto } from './dtos/oid4vc-issuer-template.dto'; import { CreateCredentialOfferD2ADto, diff --git a/apps/api-gateway/src/oid4vc-verification/dtos/oid4vc-verifier-presentation.dto.ts b/apps/api-gateway/src/oid4vc-verification/dtos/oid4vc-verifier-presentation.dto.ts index cf502af685..35ffd904ea 100644 --- a/apps/api-gateway/src/oid4vc-verification/dtos/oid4vc-verifier-presentation.dto.ts +++ b/apps/api-gateway/src/oid4vc-verification/dtos/oid4vc-verifier-presentation.dto.ts @@ -16,7 +16,7 @@ import { } from 'class-validator'; import { Type } from 'class-transformer'; import { ClientIdPrefix, ResponseMode } from '@credebl/enum/enum'; -import { SignerOption } from '@prisma/client'; +import { SignerOption } from '@credebl/prisma/client'; /** * DTO for verification-presentation query parameters. diff --git a/apps/api-gateway/src/oid4vc-verification/dtos/verification-template.dto.ts b/apps/api-gateway/src/oid4vc-verification/dtos/verification-template.dto.ts index 6537c17b2c..047e3dd788 100644 --- a/apps/api-gateway/src/oid4vc-verification/dtos/verification-template.dto.ts +++ b/apps/api-gateway/src/oid4vc-verification/dtos/verification-template.dto.ts @@ -1,6 +1,6 @@ import { IsEnum, IsNotEmpty, IsObject, IsString } from 'class-validator'; import { ApiProperty, PartialType } from '@nestjs/swagger'; -import { SignerOption } from '@prisma/client'; +import { SignerOption } from '@credebl/prisma/client'; export class CreateVerificationTemplateDto { @ApiProperty({ diff --git a/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.controller.ts b/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.controller.ts index 126d337be9..e07859bbb3 100644 --- a/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.controller.ts +++ b/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.controller.ts @@ -43,7 +43,7 @@ import { OrgRoles } from 'libs/org-roles/enums'; import { OrgRolesGuard } from '../authz/guards/org-roles.guard'; import { CustomExceptionFilter } from 'apps/api-gateway/common/exception-handler'; /* eslint-disable @typescript-eslint/no-unused-vars */ -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { Oid4vcVerificationService } from './oid4vc-verification.service'; import { CreateVerifierDto, UpdateVerifierDto } from './dtos/oid4vc-verifier.dto'; import { PresentationRequestDto, VerificationPresentationQueryDto } from './dtos/oid4vc-verifier-presentation.dto'; diff --git a/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.service.ts b/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.service.ts index 90c44d14b2..fc90110228 100644 --- a/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.service.ts +++ b/apps/api-gateway/src/oid4vc-verification/oid4vc-verification.service.ts @@ -2,7 +2,7 @@ import { NATSClient } from '@credebl/common/NATSClient'; import { Inject, Injectable, Logger } from '@nestjs/common'; import { ClientProxy } from '@nestjs/microservices'; // eslint-disable-next-line camelcase -import { oid4vp_verifier, user } from '@prisma/client'; +import { oid4vp_verifier, user } from '@credebl/prisma/client'; import { CreateVerifierDto, UpdateVerifierDto } from './dtos/oid4vc-verifier.dto'; import { VerificationPresentationQueryDto } from './dtos/oid4vc-verifier-presentation.dto'; import { IPresentationRequest } from '@credebl/common/interfaces/oid4vp-verification'; diff --git a/apps/api-gateway/src/organization/organization.controller.ts b/apps/api-gateway/src/organization/organization.controller.ts index 7028b3b8cf..a38c15eef4 100755 --- a/apps/api-gateway/src/organization/organization.controller.ts +++ b/apps/api-gateway/src/organization/organization.controller.ts @@ -37,7 +37,7 @@ import { UnauthorizedErrorDto } from '../dtos/unauthorized-error.dto'; import { ForbiddenErrorDto } from '../dtos/forbidden-error.dto'; import { AuthGuard } from '@nestjs/passport'; import { User } from '../authz/decorators/user.decorator'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { ResponseMessages } from '@credebl/common/response-messages'; import { BulkSendInvitationDto } from './dtos/send-invitation.dto'; import { OrgRolesGuard } from '../authz/guards/org-roles.guard'; diff --git a/apps/api-gateway/src/organization/organization.service.ts b/apps/api-gateway/src/organization/organization.service.ts index d32a985e95..7025a4a2f4 100755 --- a/apps/api-gateway/src/organization/organization.service.ts +++ b/apps/api-gateway/src/organization/organization.service.ts @@ -5,7 +5,7 @@ import { CreateOrganizationDto } from './dtos/create-organization-dto'; import { BulkSendInvitationDto } from './dtos/send-invitation.dto'; import { UpdateUserRolesDto } from './dtos/update-user-roles.dto'; import { UpdateOrganizationDto } from './dtos/update-organization-dto'; -import { organisation, user } from '@prisma/client'; +import { organisation, user } from '@credebl/prisma/client'; import { IDidList, IGetOrgById, IGetOrganization } from 'apps/organization/interfaces/organization.interface'; import { IOrgUsers } from 'apps/user/interfaces/user.interface'; import { diff --git a/apps/api-gateway/src/platform/platform.controller.ts b/apps/api-gateway/src/platform/platform.controller.ts index a1b860b688..75ca860f85 100644 --- a/apps/api-gateway/src/platform/platform.controller.ts +++ b/apps/api-gateway/src/platform/platform.controller.ts @@ -29,7 +29,7 @@ import * as QRCode from 'qrcode'; import { CredDefSortFields, SchemaType, SortFields } from '@credebl/enum/enum'; import { GetAllPlatformCredDefsDto } from '../credential-definition/dto/get-all-platform-cred-defs.dto'; import { TrimStringParamPipe } from '@credebl/common/cast.helper'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { OrgRoles } from 'libs/org-roles/enums'; import { Roles } from '../authz/decorators/roles.decorator'; import { OrgRolesGuard } from '../authz/guards/org-roles.guard'; diff --git a/apps/api-gateway/src/user/user.controller.ts b/apps/api-gateway/src/user/user.controller.ts index 24d4918d4c..a45d8698a6 100644 --- a/apps/api-gateway/src/user/user.controller.ts +++ b/apps/api-gateway/src/user/user.controller.ts @@ -32,7 +32,7 @@ import { Response } from 'express'; import { CommonService } from '@credebl/common'; import IResponse from '@credebl/common/interfaces/response.interface'; import { ResponseMessages } from '@credebl/common/response-messages'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { AuthGuard } from '@nestjs/passport'; import { User } from '../authz/decorators/user.decorator'; import { AcceptRejectInvitationDto } from './dto/accept-reject-invitation.dto'; diff --git a/apps/api-gateway/src/user/user.service.ts b/apps/api-gateway/src/user/user.service.ts index 03029dd27d..4216a3f810 100644 --- a/apps/api-gateway/src/user/user.service.ts +++ b/apps/api-gateway/src/user/user.service.ts @@ -8,7 +8,7 @@ import { UpdatePlatformSettingsDto } from './dto/update-platform-settings.dto'; import { IUsersProfile, ICheckUserDetails } from 'apps/user/interfaces/user.interface'; import { IUsersActivity } from 'libs/user-activity/interface'; import { IUserInvitations } from '@credebl/common/interfaces/user.interface'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { PaginationDto } from '@credebl/common/dtos/pagination.dto'; import { NATSClient } from '@credebl/common/NATSClient'; import { ClientProxy } from '@nestjs/microservices'; diff --git a/apps/api-gateway/src/verification/verification.controller.ts b/apps/api-gateway/src/verification/verification.controller.ts index cbd9524425..2763edcc78 100644 --- a/apps/api-gateway/src/verification/verification.controller.ts +++ b/apps/api-gateway/src/verification/verification.controller.ts @@ -49,7 +49,7 @@ import { GetAllProofRequestsDto } from './dto/get-all-proof-requests.dto'; import { IProofRequestSearchCriteria } from './interfaces/verification.interface'; import { API_Version, ProofRequestType, SortFields } from './enum/verification.enum'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { TrimStringParamPipe } from '@credebl/common/cast.helper'; import { Validator } from '@credebl/common/validator'; diff --git a/apps/api-gateway/src/verification/verification.service.ts b/apps/api-gateway/src/verification/verification.service.ts index 68eb70a232..51b040f175 100644 --- a/apps/api-gateway/src/verification/verification.service.ts +++ b/apps/api-gateway/src/verification/verification.service.ts @@ -11,7 +11,7 @@ import { import { IPresentation, IProofRequest, IProofRequestSearchCriteria } from './interfaces/verification.interface'; import { IProofPresentation } from './interfaces/verification.interface'; // To do make a similar interface in API-gateway -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { NATSClient } from '@credebl/common/NATSClient'; import { ClientProxy } from '@nestjs/microservices'; diff --git a/apps/api-gateway/src/x509/x509.controller.ts b/apps/api-gateway/src/x509/x509.controller.ts index a572cdedd8..782bec5ec8 100644 --- a/apps/api-gateway/src/x509/x509.controller.ts +++ b/apps/api-gateway/src/x509/x509.controller.ts @@ -30,7 +30,7 @@ import { UnauthorizedErrorDto } from '../dtos/unauthorized-error.dto'; import { ForbiddenErrorDto } from '../dtos/forbidden-error.dto'; import { AuthGuard } from '@nestjs/passport'; import { User } from '../authz/decorators/user.decorator'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { ResponseMessages } from '@credebl/common/response-messages'; import { OrgRolesGuard } from '../authz/guards/org-roles.guard'; import { Roles } from '../authz/decorators/roles.decorator'; diff --git a/apps/api-gateway/src/x509/x509.service.ts b/apps/api-gateway/src/x509/x509.service.ts index e4ce195970..91db537947 100644 --- a/apps/api-gateway/src/x509/x509.service.ts +++ b/apps/api-gateway/src/x509/x509.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@nestjs/common'; import { ClientProxy } from '@nestjs/microservices'; import { BaseService } from 'libs/service/base.service'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { NATSClient } from '@credebl/common/NATSClient'; import { diff --git a/apps/cloud-wallet/src/cloud-wallet.repository.ts b/apps/cloud-wallet/src/cloud-wallet.repository.ts index cbf63f7880..5d9f89fd67 100644 --- a/apps/cloud-wallet/src/cloud-wallet.repository.ts +++ b/apps/cloud-wallet/src/cloud-wallet.repository.ts @@ -2,9 +2,13 @@ import { Injectable, Logger } from '@nestjs/common'; import { PrismaService } from '@credebl/prisma-service'; import { CloudWalletType } from '@credebl/enum/enum'; // eslint-disable-next-line camelcase -import { cloud_wallet_user_info, user } from '@prisma/client'; -import { ICloudWalletDetails, IGetStoredWalletInfo, IStoredWalletDetails, IStoreWalletInfo } from '@credebl/common/interfaces/cloud-wallet.interface'; - +import { cloud_wallet_user_info, user } from '@credebl/prisma/client'; +import { + ICloudWalletDetails, + IGetStoredWalletInfo, + IStoredWalletDetails, + IStoreWalletInfo +} from '@credebl/common/interfaces/cloud-wallet.interface'; @Injectable() export class CloudWalletRepository { @@ -13,7 +17,6 @@ export class CloudWalletRepository { private readonly logger: Logger ) {} - // eslint-disable-next-line camelcase async getCloudWalletDetails(type: CloudWalletType): Promise { try { @@ -46,7 +49,18 @@ export class CloudWalletRepository { // eslint-disable-next-line camelcase async storeCloudWalletDetails(cloudWalletDetails: ICloudWalletDetails): Promise { try { - const {label, lastChangedBy, tenantId, type, userId, agentApiKey, agentEndpoint, email, key, connectionImageUrl} = cloudWalletDetails; + const { + label, + lastChangedBy, + tenantId, + type, + userId, + agentApiKey, + agentEndpoint, + email, + key, + connectionImageUrl + } = cloudWalletDetails; return await this.prisma.cloud_wallet_user_info.create({ data: { @@ -70,7 +84,6 @@ export class CloudWalletRepository { tenantId: true, label: true, lastChangedDateTime: true - } }); } catch (error) { @@ -110,7 +123,7 @@ export class CloudWalletRepository { }, select: { id: true, - email: true, + email: true, type: true, userId: true, agentEndpoint: true diff --git a/apps/connection/src/connection.controller.ts b/apps/connection/src/connection.controller.ts index cb5c92fbd6..19f5eec6da 100644 --- a/apps/connection/src/connection.controller.ts +++ b/apps/connection/src/connection.controller.ts @@ -14,7 +14,7 @@ import { import { IConnectionList, IDeletedConnectionsRecord } from '@credebl/common/interfaces/connection.interface'; import { IConnectionDetailsById } from 'apps/api-gateway/src/interfaces/IConnectionSearch.interface'; import { IQuestionPayload } from './interfaces/messaging.interfaces'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; @Controller() export class ConnectionController { constructor(private readonly connectionService: ConnectionService) {} diff --git a/apps/connection/src/connection.repository.ts b/apps/connection/src/connection.repository.ts index ec43c83858..4f6c489a20 100644 --- a/apps/connection/src/connection.repository.ts +++ b/apps/connection/src/connection.repository.ts @@ -1,7 +1,7 @@ import { Injectable, Logger, ConflictException } from '@nestjs/common'; import { PrismaService } from '@credebl/prisma-service'; // eslint-disable-next-line camelcase -import { agent_invitations, org_agents, platform_config, shortening_url } from '@prisma/client'; +import { agent_invitations, org_agents, platform_config, shortening_url } from '@credebl/prisma/client'; import { IConnectionSearchCriteria, ICreateConnection, OrgAgent } from './interfaces/connection.interfaces'; import { IUserRequest } from '@credebl/user-request/user-request.interface'; import { IConnectionsListCount, IDeletedConnectionsRecord } from '@credebl/common/interfaces/connection.interface'; @@ -90,7 +90,6 @@ export class ConnectionRepository { } } - async getConnectionRecordsCount(orgId: string): Promise { try { const connectionRecordsCount = await this.prisma.connections.count({ @@ -105,7 +104,6 @@ export class ConnectionRepository { } } - /** * Description: Save connection details * @param connectionInvitation @@ -333,7 +331,7 @@ export class ConnectionRepository { if (0 < referencedTables.length) { let errorMessage = `Organization ID ${orgId} is referenced in the following table(s): ${referencedTables.join(', ')}`; - + if (1 === referencedTables.length) { if (referencedTables.includes(`${PrismaTables.PRESENTATIONS}`)) { errorMessage += `, ${ResponseMessages.verification.error.removeVerificationData}`; @@ -343,34 +341,31 @@ export class ConnectionRepository { } else if (2 === referencedTables.length) { errorMessage += `, ${ResponseMessages.connection.error.removeConnectionReferences}`; } - + throw new ConflictException(errorMessage); } - - const getConnectionRecords = await prisma.connections.findMany( - { - where: { - orgId - }, - select: { - createDateTime: true, - createdBy: true, - connectionId: true, - theirLabel: true, - state: true, - orgId: true - } - }); + const getConnectionRecords = await prisma.connections.findMany({ + where: { + orgId + }, + select: { + createDateTime: true, + createdBy: true, + connectionId: true, + theirLabel: true, + state: true, + orgId: true + } + }); - const deleteConnectionRecords = await prisma.connections.deleteMany( - { - where: { - orgId - } - }); + const deleteConnectionRecords = await prisma.connections.deleteMany({ + where: { + orgId + } + }); - return {getConnectionRecords, deleteConnectionRecords }; + return { getConnectionRecords, deleteConnectionRecords }; }); } catch (error) { this.logger.error(`Error in deleting connection records: ${error.message}`); @@ -378,8 +373,8 @@ export class ConnectionRepository { } } - // eslint-disable-next-line camelcase - async getInvitationDidByOrgId(orgId: string): Promise { + // eslint-disable-next-line camelcase + async getInvitationDidByOrgId(orgId: string): Promise { try { return this.prisma.agent_invitations.findMany({ where: { diff --git a/apps/connection/src/connection.service.ts b/apps/connection/src/connection.service.ts index e05218e924..9a1c710478 100644 --- a/apps/connection/src/connection.service.ts +++ b/apps/connection/src/connection.service.ts @@ -25,9 +25,9 @@ import { } from '@credebl/common/interfaces/connection.interface'; import { IConnectionDetailsById } from 'apps/api-gateway/src/interfaces/IConnectionSearch.interface'; import { IBasicMessage, IQuestionPayload } from './interfaces/messaging.interfaces'; -import { RecordType, user } from '@prisma/client'; +import { RecordType, user } from '@credebl/prisma/client'; import { UserActivityRepository } from 'libs/user-activity/repositories'; -import { agent_invitations } from '@prisma/client'; +import { agent_invitations } from '@credebl/prisma/client'; import { NATSClient } from '@credebl/common/NATSClient'; import { getAgentUrl } from '@credebl/common/common.utils'; @Injectable() diff --git a/apps/connection/src/interfaces/connection.interfaces.ts b/apps/connection/src/interfaces/connection.interfaces.ts index dad9de3171..1c1832490c 100644 --- a/apps/connection/src/interfaces/connection.interfaces.ts +++ b/apps/connection/src/interfaces/connection.interfaces.ts @@ -1,6 +1,6 @@ // eslint-disable-next-line camelcase import { IUserRequest } from '@credebl/user-request/user-request.interface'; -import { organisation } from '@prisma/client'; +import { organisation } from '@credebl/prisma/client'; import { UserRoleOrgPermsDto } from 'apps/api-gateway/src/dtos/user-role-org-perms.dto'; export interface IConnection { diff --git a/apps/ecosystem/interfaces/ecosystem.interfaces.ts b/apps/ecosystem/interfaces/ecosystem.interfaces.ts index 4b795575dc..4f6cc4adde 100755 --- a/apps/ecosystem/interfaces/ecosystem.interfaces.ts +++ b/apps/ecosystem/interfaces/ecosystem.interfaces.ts @@ -1,8 +1,8 @@ import { EcosystemOrgStatus, InvitationViewRole } from '@credebl/enum/enum'; -import { Prisma, PrismaClient } from '@prisma/client'; +import { Prisma, PrismaClient } from '@credebl/prisma/client'; import { CommonTableColumns } from '@credebl/common/interfaces/interface'; -import { JsonValue } from '@prisma/client/runtime/library'; +import { JsonValue } from '@credebl/prisma/internal/prismaNamespace'; import { OrgRoles } from 'libs/org-roles/enums'; export interface ICreateEcosystem { diff --git a/apps/ecosystem/repositories/ecosystem.repository.ts b/apps/ecosystem/repositories/ecosystem.repository.ts index a2a8170234..2cd08ec4b2 100755 --- a/apps/ecosystem/repositories/ecosystem.repository.ts +++ b/apps/ecosystem/repositories/ecosystem.repository.ts @@ -34,7 +34,7 @@ import { platform_config, user, verification_templates -} from '@prisma/client'; +} from '@credebl/prisma/client'; import { OrgRoles } from 'libs/org-roles/enums'; import { PrismaService } from '@credebl/prisma-service'; diff --git a/apps/ecosystem/src/ecosystem.controller.ts b/apps/ecosystem/src/ecosystem.controller.ts index 8a69104211..f2f3507145 100755 --- a/apps/ecosystem/src/ecosystem.controller.ts +++ b/apps/ecosystem/src/ecosystem.controller.ts @@ -14,7 +14,7 @@ import { IIntentTemplateSearchCriteria } from '@credebl/common/interfaces/intents-template.interface'; import { IPaginationSortingDto, PaginatedResponse } from 'libs/common/src/interfaces/interface'; -import { ecosystem, user } from '@prisma/client'; +import { ecosystem, user } from '@credebl/prisma/client'; import { CreateIntentDto } from '../dtos/create-intent.dto'; import { EcosystemService } from './ecosystem.service'; diff --git a/apps/ecosystem/src/ecosystem.service.ts b/apps/ecosystem/src/ecosystem.service.ts index 4648351805..e6bca4865a 100755 --- a/apps/ecosystem/src/ecosystem.service.ts +++ b/apps/ecosystem/src/ecosystem.service.ts @@ -20,7 +20,7 @@ import { EmailDto } from '@credebl/common/dtos/email.dto'; import { InviteMemberToEcosystem } from '../templates/invite-member-template'; import { EmailService } from '@credebl/common/email.service'; // eslint-disable-next-line camelcase -import { ecosystem, Prisma, user } from '@prisma/client'; +import { ecosystem, Prisma, user } from '@credebl/prisma/client'; import { ResponseMessages } from '@credebl/common/response-messages'; import { OrganizationRepository } from 'apps/organization/repositories/organization.repository'; import { UserRepository } from 'apps/user/repositories/user.repository'; diff --git a/apps/issuance/interfaces/issuance.interfaces.ts b/apps/issuance/interfaces/issuance.interfaces.ts index 6fb847924a..a2055593b8 100644 --- a/apps/issuance/interfaces/issuance.interfaces.ts +++ b/apps/issuance/interfaces/issuance.interfaces.ts @@ -1,6 +1,6 @@ // eslint-disable-next-line camelcase import { AutoAccept, SchemaType } from '@credebl/enum/enum'; -import { Prisma, organisation } from '@prisma/client'; +import { Prisma, organisation } from '@credebl/prisma/client'; import { IPrettyVc } from '@credebl/common/interfaces/issuance.interface'; import { IUserRequest } from '@credebl/user-request/user-request.interface'; diff --git a/apps/issuance/src/issuance.controller.ts b/apps/issuance/src/issuance.controller.ts index abc653b19d..f4e3cf6970 100644 --- a/apps/issuance/src/issuance.controller.ts +++ b/apps/issuance/src/issuance.controller.ts @@ -21,7 +21,7 @@ import { Controller, Logger } from '@nestjs/common'; import { IssuanceService } from './issuance.service'; import { MessagePattern } from '@nestjs/microservices'; import { OOBIssueCredentialDto } from 'apps/api-gateway/src/issuance/dtos/issuance.dto'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; @Controller() export class IssuanceController { diff --git a/apps/issuance/src/issuance.repository.ts b/apps/issuance/src/issuance.repository.ts index 8fa95635a8..8bda845c39 100644 --- a/apps/issuance/src/issuance.repository.ts +++ b/apps/issuance/src/issuance.repository.ts @@ -21,7 +21,7 @@ import { organisation, platform_config, schema -} from '@prisma/client'; +} from '@credebl/prisma/client'; import { PrismaTables, SortValue } from '@credebl/enum/enum'; import { FileUploadStatus } from 'apps/api-gateway/src/enum'; diff --git a/apps/issuance/src/issuance.service.ts b/apps/issuance/src/issuance.service.ts index 04dce88afa..defdfee9af 100644 --- a/apps/issuance/src/issuance.service.ts +++ b/apps/issuance/src/issuance.service.ts @@ -78,7 +78,7 @@ import { ISchemaObject } from '@credebl/common/interfaces/issuance.interface'; import { OOBIssueCredentialDto } from 'apps/api-gateway/src/issuance/dtos/issuance.dto'; -import { RecordType, agent_invitations, organisation, user } from '@prisma/client'; +import { RecordType, agent_invitations, organisation, user } from '@credebl/prisma/client'; import { createOobJsonldIssuancePayload, validateAndUpdateIssuanceDates, diff --git a/apps/ledger/src/credential-definition/credential-definition.controller.ts b/apps/ledger/src/credential-definition/credential-definition.controller.ts index 138929978a..69997776d0 100644 --- a/apps/ledger/src/credential-definition/credential-definition.controller.ts +++ b/apps/ledger/src/credential-definition/credential-definition.controller.ts @@ -4,50 +4,55 @@ import { Controller, Logger } from '@nestjs/common'; import { CredentialDefinitionService } from './credential-definition.service'; import { MessagePattern } from '@nestjs/microservices'; -import { GetAllCredDefsPayload, GetCredDefBySchemaId, IPlatformCredDefs, SaveCredDefPayload } from './interfaces/create-credential-definition.interface'; +import { + GetAllCredDefsPayload, + GetCredDefBySchemaId, + IPlatformCredDefs, + SaveCredDefPayload +} from './interfaces/create-credential-definition.interface'; import { CreateCredDefPayload, GetCredDefPayload } from './interfaces/create-credential-definition.interface'; -import { credential_definition } from '@prisma/client'; +import { credential_definition } from '@credebl/prisma/client'; import { CredDefSchema } from './interfaces/credential-definition.interface'; import { ICredDefDetails, IPlatformCredDefsData } from '@credebl/common/interfaces/cred-def.interface'; @Controller('credential-definitions') export class CredentialDefinitionController { - private logger = new Logger(); - - constructor(private readonly credDefService: CredentialDefinitionService) { } - - @MessagePattern({ cmd: 'create-credential-definition' }) - async createCredentialDefinition(payload: CreateCredDefPayload): Promise { - return this.credDefService.createCredentialDefinition(payload); - } - - @MessagePattern({ cmd: 'get-credential-definition-by-id' }) - async getCredentialDefinitionById(payload: GetCredDefPayload): Promise { - return this.credDefService.getCredentialDefinitionById(payload); - } - - @MessagePattern({ cmd: 'get-all-platform-cred-defs' }) - async getAllSchema(credDefPayload: IPlatformCredDefs): Promise { - return this.credDefService.getAllPlatformCredDefs(credDefPayload); - } - - @MessagePattern({ cmd: 'get-all-credential-definitions' }) - async getAllCredDefs(payload: GetAllCredDefsPayload): Promise { - return this.credDefService.getAllCredDefs(payload); - } - - @MessagePattern({ cmd: 'get-all-credential-definitions-by-schema-id' }) - async getCredentialDefinitionBySchemaId(payload: GetCredDefBySchemaId): Promise { - return this.credDefService.getCredentialDefinitionBySchemaId(payload); - } - - @MessagePattern({ cmd: 'get-all-credential-template-for-bulk-operation' }) - async getAllCredentialTemplates (payload: {orgId : string, schemaType: string }): Promise { - const {orgId, schemaType} = payload; - return this.credDefService.getAllCredentialTemplates(orgId, schemaType); - } - - @MessagePattern({ cmd: 'store-cred-def-record' }) - async getSchemaRecordBySchemaId(payload: SaveCredDefPayload): Promise { - return this.credDefService.storeCredDefRecord(payload.credDefDetails); - } -} \ No newline at end of file + private logger = new Logger(); + + constructor(private readonly credDefService: CredentialDefinitionService) {} + + @MessagePattern({ cmd: 'create-credential-definition' }) + async createCredentialDefinition(payload: CreateCredDefPayload): Promise { + return this.credDefService.createCredentialDefinition(payload); + } + + @MessagePattern({ cmd: 'get-credential-definition-by-id' }) + async getCredentialDefinitionById(payload: GetCredDefPayload): Promise { + return this.credDefService.getCredentialDefinitionById(payload); + } + + @MessagePattern({ cmd: 'get-all-platform-cred-defs' }) + async getAllSchema(credDefPayload: IPlatformCredDefs): Promise { + return this.credDefService.getAllPlatformCredDefs(credDefPayload); + } + + @MessagePattern({ cmd: 'get-all-credential-definitions' }) + async getAllCredDefs(payload: GetAllCredDefsPayload): Promise { + return this.credDefService.getAllCredDefs(payload); + } + + @MessagePattern({ cmd: 'get-all-credential-definitions-by-schema-id' }) + async getCredentialDefinitionBySchemaId(payload: GetCredDefBySchemaId): Promise { + return this.credDefService.getCredentialDefinitionBySchemaId(payload); + } + + @MessagePattern({ cmd: 'get-all-credential-template-for-bulk-operation' }) + async getAllCredentialTemplates(payload: { orgId: string; schemaType: string }): Promise { + const { orgId, schemaType } = payload; + return this.credDefService.getAllCredentialTemplates(orgId, schemaType); + } + + @MessagePattern({ cmd: 'store-cred-def-record' }) + async getSchemaRecordBySchemaId(payload: SaveCredDefPayload): Promise { + return this.credDefService.storeCredDefRecord(payload.credDefDetails); + } +} diff --git a/apps/ledger/src/credential-definition/credential-definition.service.ts b/apps/ledger/src/credential-definition/credential-definition.service.ts index 05d9ffcb89..eca522e2df 100644 --- a/apps/ledger/src/credential-definition/credential-definition.service.ts +++ b/apps/ledger/src/credential-definition/credential-definition.service.ts @@ -12,7 +12,7 @@ import { IPlatformCredDefs, ISaveCredDef } from './interfaces/create-credential-definition.interface'; -import { credential_definition } from '@prisma/client'; +import { credential_definition } from '@credebl/prisma/client'; import { ResponseMessages } from '@credebl/common/response-messages'; import { CreateCredDefAgentRedirection, diff --git a/apps/ledger/src/credential-definition/repositories/credential-definition.repository.ts b/apps/ledger/src/credential-definition/repositories/credential-definition.repository.ts index 6923b49ea4..05cc9c9b6e 100644 --- a/apps/ledger/src/credential-definition/repositories/credential-definition.repository.ts +++ b/apps/ledger/src/credential-definition/repositories/credential-definition.repository.ts @@ -1,7 +1,12 @@ /* eslint-disable camelcase */ -import { CredDefPayload, GetAllCredDefsDto, IPlatformCredDefs, ISaveCredDef } from '../interfaces/create-credential-definition.interface'; +import { + CredDefPayload, + GetAllCredDefsDto, + IPlatformCredDefs, + ISaveCredDef +} from '../interfaces/create-credential-definition.interface'; import { PrismaService } from '@credebl/prisma-service'; -import { credential_definition, org_agents, org_agents_type, organisation, schema } from '@prisma/client'; +import { credential_definition, org_agents, org_agents_type, organisation, schema } from '@credebl/prisma/client'; import { Injectable, Logger } from '@nestjs/common'; import { ResponseMessages } from '@credebl/common/response-messages'; import { BulkCredDefSchema, CredDefSchema } from '../interfaces/credential-definition.interface'; @@ -11,346 +16,334 @@ import { ISchemaResponse } from '../interfaces'; @Injectable() export class CredentialDefinitionRepository { - private readonly logger = new Logger('CredentialDefinitionRepository'); + private readonly logger = new Logger('CredentialDefinitionRepository'); - constructor( - private prisma: PrismaService - ) { } + constructor(private prisma: PrismaService) {} - async saveCredentialDefinition(credDef: CredDefPayload): Promise { - try { - const dbResult: credential_definition = await this.getByAttribute( - credDef.schemaLedgerId, - credDef.tag - ); - if (!dbResult) { - const saveResult = await this.prisma.credential_definition.create({ - data: { - schemaLedgerId: credDef.schemaLedgerId, - tag: credDef.tag, - credentialDefinitionId: credDef.credentialDefinitionId, - revocable: credDef.revocable, - createdBy: credDef.createdBy, - lastChangedBy: credDef.lastChangedBy, - orgId: credDef.orgId, - schemaId: credDef.schemaId - } - }); - return saveResult; - } - } catch (error) { - this.logger.error( - `${ResponseMessages.credentialDefinition.error.NotSaved}: ${error.message} ` - ); - throw error; - } + async saveCredentialDefinition(credDef: CredDefPayload): Promise { + try { + const dbResult: credential_definition = await this.getByAttribute(credDef.schemaLedgerId, credDef.tag); + if (!dbResult) { + const saveResult = await this.prisma.credential_definition.create({ + data: { + schemaLedgerId: credDef.schemaLedgerId, + tag: credDef.tag, + credentialDefinitionId: credDef.credentialDefinitionId, + revocable: credDef.revocable, + createdBy: credDef.createdBy, + lastChangedBy: credDef.lastChangedBy, + orgId: credDef.orgId, + schemaId: credDef.schemaId + } + }); + return saveResult; + } + } catch (error) { + this.logger.error(`${ResponseMessages.credentialDefinition.error.NotSaved}: ${error.message} `); + throw error; } + } - async getSchemaById(schemaLedgerId: string): Promise { - try { - const response = await this.prisma.schema.findFirst({ where: { schemaLedgerId } }); - return response; - } catch (error) { - this.logger.error( - `${ResponseMessages.credentialDefinition.error.NotSaved}: ${error.message} ` - ); - throw error; - } + async getSchemaById(schemaLedgerId: string): Promise { + try { + const response = await this.prisma.schema.findFirst({ where: { schemaLedgerId } }); + return response; + } catch (error) { + this.logger.error(`${ResponseMessages.credentialDefinition.error.NotSaved}: ${error.message} `); + throw error; } + } - async getAllPlatformCredDefsDetails(credDefsPayload: IPlatformCredDefs): Promise { - try { - const { ledgerId, search, sortBy, sortField, pageNumber, pageSize } = credDefsPayload || {}; - const credDefResult = await this.prisma.credential_definition.findMany({ - where: { - schema: { - ledgerId - }, - OR: [ - { tag: { contains: search, mode: 'insensitive' } }, - { credentialDefinitionId: { contains: search, mode: 'insensitive' } }, - { schemaLedgerId: { contains: search, mode: 'insensitive' } } - ] - }, - select: { - createDateTime: true, - tag: true, - schemaId: true, - orgId: true, - schemaLedgerId: true, - createdBy: true, - credentialDefinitionId: true, - revocable: true + async getAllPlatformCredDefsDetails(credDefsPayload: IPlatformCredDefs): Promise { + try { + const { ledgerId, search, sortBy, sortField, pageNumber, pageSize } = credDefsPayload || {}; + const credDefResult = await this.prisma.credential_definition.findMany({ + where: { + schema: { + ledgerId + }, + OR: [ + { tag: { contains: search, mode: 'insensitive' } }, + { credentialDefinitionId: { contains: search, mode: 'insensitive' } }, + { schemaLedgerId: { contains: search, mode: 'insensitive' } } + ] }, - orderBy: { - [sortField]: SortValue.DESC === sortBy ? SortValue.DESC : SortValue.ASC - }, - take: Number(pageSize), - skip: (pageNumber - 1) * pageSize - }); - - const credDefCount = await this.prisma.credential_definition.count({ - where: { - schema: { - ledgerId - } - } - }); - return { credDefCount, credDefResult }; - } catch (error) { - this.logger.error(`Error in getting credential definitions: ${error}`); - throw error; - } - } - - async getByAttribute(schema: string, tag: string): Promise { - try { - const response = await this.prisma.credential_definition.findFirst({ where: { schemaLedgerId: schema, tag: { contains: tag, mode: 'insensitive' } } }); - return response; - } catch (error) { - this.logger.error(`${ResponseMessages.credentialDefinition.error.NotFound}: ${error}`); + select: { + createDateTime: true, + tag: true, + schemaId: true, + orgId: true, + schemaLedgerId: true, + createdBy: true, + credentialDefinitionId: true, + revocable: true + }, + orderBy: { + [sortField]: SortValue.DESC === sortBy ? SortValue.DESC : SortValue.ASC + }, + take: Number(pageSize), + skip: (pageNumber - 1) * pageSize + }); + + const credDefCount = await this.prisma.credential_definition.count({ + where: { + schema: { + ledgerId + } } + }); + return { credDefCount, credDefResult }; + } catch (error) { + this.logger.error(`Error in getting credential definitions: ${error}`); + throw error; } + } - async getAllCredDefs(credDefSearchCriteria: GetAllCredDefsDto, orgId: string): Promise { - try { - const credDefResult = await this.prisma.credential_definition.findMany({ - where: { - orgId, - OR: [ - { tag: { contains: credDefSearchCriteria.searchByText, mode: 'insensitive' } }, - { credentialDefinitionId: { contains: credDefSearchCriteria.searchByText, mode: 'insensitive' } }, - { schemaLedgerId: { contains: credDefSearchCriteria.searchByText, mode: 'insensitive' } } - ] - }, - select: { - createDateTime: true, - tag: true, - schemaId: true, - orgId: true, - schemaLedgerId: true, - createdBy: true, - credentialDefinitionId: true, - revocable: true - }, - orderBy: { - [credDefSearchCriteria.sorting]: SortValue.DESC === credDefSearchCriteria.sortByValue ? SortValue.DESC : SortValue.ASC - }, - take: credDefSearchCriteria.pageSize, - skip: (credDefSearchCriteria.pageNumber - 1) * credDefSearchCriteria.pageSize - }); - return credDefResult; - } catch (error) { - this.logger.error(`Error in getting credential definitions: ${error}`); - throw error; - } + async getByAttribute(schema: string, tag: string): Promise { + try { + const response = await this.prisma.credential_definition.findFirst({ + where: { schemaLedgerId: schema, tag: { contains: tag, mode: 'insensitive' } } + }); + return response; + } catch (error) { + this.logger.error(`${ResponseMessages.credentialDefinition.error.NotFound}: ${error}`); } + } - async getAgentDetailsByOrgId(orgId: string): Promise<{ - orgDid: string; - agentEndPoint: string; - tenantId: string - }> { - try { - const schemasResult = await this.prisma.org_agents.findFirst({ - where: { - orgId - }, - select: { - orgDid: true, - agentEndPoint: true, - tenantId: true - } - }); - return schemasResult; - } catch (error) { - this.logger.error(`Error in getting agent DID: ${error}`); - throw error; - } + async getAllCredDefs(credDefSearchCriteria: GetAllCredDefsDto, orgId: string): Promise { + try { + const credDefResult = await this.prisma.credential_definition.findMany({ + where: { + orgId, + OR: [ + { tag: { contains: credDefSearchCriteria.searchByText, mode: 'insensitive' } }, + { credentialDefinitionId: { contains: credDefSearchCriteria.searchByText, mode: 'insensitive' } }, + { schemaLedgerId: { contains: credDefSearchCriteria.searchByText, mode: 'insensitive' } } + ] + }, + select: { + createDateTime: true, + tag: true, + schemaId: true, + orgId: true, + schemaLedgerId: true, + createdBy: true, + credentialDefinitionId: true, + revocable: true + }, + orderBy: { + [credDefSearchCriteria.sorting]: + SortValue.DESC === credDefSearchCriteria.sortByValue ? SortValue.DESC : SortValue.ASC + }, + take: credDefSearchCriteria.pageSize, + skip: (credDefSearchCriteria.pageNumber - 1) * credDefSearchCriteria.pageSize + }); + return credDefResult; + } catch (error) { + this.logger.error(`Error in getting credential definitions: ${error}`); + throw error; } + } - async getAgentType(orgId: string): Promise { - try { - const agentDetails = await this.prisma.organisation.findUnique({ - where: { - id: orgId - }, - include: { - org_agents: { - include: { - org_agent_type: true - } - } - } - }); - return agentDetails; - } catch (error) { - this.logger.error(`Error in getting agent type: ${error}`); - throw error; + async getAgentDetailsByOrgId(orgId: string): Promise<{ + orgDid: string; + agentEndPoint: string; + tenantId: string; + }> { + try { + const schemasResult = await this.prisma.org_agents.findFirst({ + where: { + orgId + }, + select: { + orgDid: true, + agentEndPoint: true, + tenantId: true } + }); + return schemasResult; + } catch (error) { + this.logger.error(`Error in getting agent DID: ${error}`); + throw error; } + } - async getCredentialDefinitionBySchemaId(schemaId: string): Promise { - try { - return this.prisma.credential_definition.findMany({ - where: { - schemaLedgerId: schemaId - } - - }); - } catch (error) { - this.logger.error(`Error in getting credential definitions: ${error}`); - throw error; + async getAgentType(orgId: string): Promise< + organisation & { + org_agents: (org_agents & { + org_agent_type: org_agents_type; + })[]; + } + > { + try { + const agentDetails = await this.prisma.organisation.findUnique({ + where: { + id: orgId + }, + include: { + org_agents: { + include: { + org_agent_type: true + } + } } + }); + return agentDetails; + } catch (error) { + this.logger.error(`Error in getting agent type: ${error}`); + throw error; } + } + async getCredentialDefinitionBySchemaId(schemaId: string): Promise { + try { + return this.prisma.credential_definition.findMany({ + where: { + schemaLedgerId: schemaId + } + }); + } catch (error) { + this.logger.error(`Error in getting credential definitions: ${error}`); + throw error; + } + } - async getAllCredDefsByOrgIdForBulk(payload: BulkCredDefSchema): Promise { - try { - const { credDefSortBy, sortValue, orgId } = payload; - - const credentialDefinitions = await this.prisma.credential_definition.findMany({ - where: { - orgId - }, - select: { - id: true, - credentialDefinitionId: true, - tag: true, - createDateTime: true, - schemaLedgerId: true - }, - orderBy: { - [credDefSortBy]: SortValue.DESC === sortValue ? SortValue.DESC : SortValue.ASC - } - }); - - const schemaLedgerIdArray = credentialDefinitions.map((credDef) => credDef.schemaLedgerId); + async getAllCredDefsByOrgIdForBulk(payload: BulkCredDefSchema): Promise { + try { + const { credDefSortBy, sortValue, orgId } = payload; - const schemas = await this.prisma.schema.findMany({ - where: { - schemaLedgerId: { - in: schemaLedgerIdArray - }, - type: SchemaType.INDY - }, - select: { - name: true, - version: true, - schemaLedgerId: true, - orgId: true, - attributes: true, - isSchemaArchived: true - } - }); + const credentialDefinitions = await this.prisma.credential_definition.findMany({ + where: { + orgId + }, + select: { + id: true, + credentialDefinitionId: true, + tag: true, + createDateTime: true, + schemaLedgerId: true + }, + orderBy: { + [credDefSortBy]: SortValue.DESC === sortValue ? SortValue.DESC : SortValue.ASC + } + }); - // Match Credential Definitions with Schemas and map to CredDefSchema - const matchingSchemas = credentialDefinitions.map((credDef) => { + const schemaLedgerIdArray = credentialDefinitions.map((credDef) => credDef.schemaLedgerId); - const matchingSchema = schemas.find((schema) => schema.schemaLedgerId === credDef.schemaLedgerId); - if (matchingSchema) { - return { - credentialDefinitionId: credDef.credentialDefinitionId, - credentialDefinition: credDef.tag, - schemaCredDefName: `${matchingSchema.name}:${matchingSchema.version}-${credDef.tag}`, - schemaName: matchingSchema.name, - schemaVersion: matchingSchema.version, - schemaAttributes: matchingSchema.attributes, - schemaLedgerId: matchingSchema.schemaLedgerId, - isSchemaArchived: matchingSchema.isSchemaArchived - }; - } - return null; - }); + const schemas = await this.prisma.schema.findMany({ + where: { + schemaLedgerId: { + in: schemaLedgerIdArray + }, + type: SchemaType.INDY + }, + select: { + name: true, + version: true, + schemaLedgerId: true, + orgId: true, + attributes: true, + isSchemaArchived: true + } + }); - // Filter out null values (missing schemas) and return the result - return matchingSchemas.filter((schema) => null !== schema) as CredDefSchema[]; - } catch (error) { - this.logger.error(`Error in listing all credential definitions with schema details: ${error}`); - throw error; + // Match Credential Definitions with Schemas and map to CredDefSchema + const matchingSchemas = credentialDefinitions.map((credDef) => { + const matchingSchema = schemas.find((schema) => schema.schemaLedgerId === credDef.schemaLedgerId); + if (matchingSchema) { + return { + credentialDefinitionId: credDef.credentialDefinitionId, + credentialDefinition: credDef.tag, + schemaCredDefName: `${matchingSchema.name}:${matchingSchema.version}-${credDef.tag}`, + schemaName: matchingSchema.name, + schemaVersion: matchingSchema.version, + schemaAttributes: matchingSchema.attributes, + schemaLedgerId: matchingSchema.schemaLedgerId, + isSchemaArchived: matchingSchema.isSchemaArchived + }; } + return null; + }); + + // Filter out null values (missing schemas) and return the result + return matchingSchemas.filter((schema) => null !== schema) as CredDefSchema[]; + } catch (error) { + this.logger.error(`Error in listing all credential definitions with schema details: ${error}`); + throw error; } + } - async getAllSchemaByOrgIdAndType(orgId: string, schemaType: string): Promise { - try { - return await this.prisma.schema.findMany({ - where: { - orgId, - isSchemaArchived: false, - type: schemaType - }, + async getAllSchemaByOrgIdAndType(orgId: string, schemaType: string): Promise { + try { + return await this.prisma.schema.findMany({ + where: { + orgId, + isSchemaArchived: false, + type: schemaType + }, + select: { + name: true, + version: true, + schemaLedgerId: true, + orgId: true, + attributes: true, + createDateTime: true, + createdBy: true, + organisation: { + select: { + name: true, + userOrgRoles: { select: { - name: true, - version: true, - schemaLedgerId: true, - orgId: true, - attributes: true, - createDateTime: true, - createdBy: true, - organisation: { - select:{ - name: true, - userOrgRoles: { - select: { - user: { - select: { - firstName: true - } - } - } - } - } - } + user: { + select: { + firstName: true + } + } } - }); - } catch (error) { - this.logger.error(`[getAllSchemaByOrgIdAndType] - error: ${JSON.stringify(error)}`); - throw error; - } - } - - - async getOrgAgentType(orgAgentId: string): Promise { - try { - - const { agent } = await this.prisma.org_agents_type.findFirst({ - where: { - id: orgAgentId + } } - }); - - return agent; - } catch (error) { - this.logger.error(`[getOrgAgentType] - error: ${JSON.stringify(error)}`); - throw error; + } } - } + }); + } catch (error) { + this.logger.error(`[getAllSchemaByOrgIdAndType] - error: ${JSON.stringify(error)}`); + throw error; + } + } - async storeCredDefRecord(credDefDetails: ISaveCredDef): Promise { - try { - const saveResult = await this.prisma.credential_definition.create({ - data: { - schemaLedgerId: credDefDetails.schemaLedgerId, - tag: credDefDetails.tag, - credentialDefinitionId: credDefDetails.credentialDefinitionId, - revocable: credDefDetails.revocable, - createdBy: credDefDetails.createdBy, - lastChangedBy: credDefDetails.lastChangedBy, - orgId: credDefDetails.orgId, - schemaId: credDefDetails.schemaId - } - }); - return saveResult; - } catch (error) { - this.logger.error( - `Error in saving credential-definition: ${error.message} ` - ); - throw error; + async getOrgAgentType(orgAgentId: string): Promise { + try { + const { agent } = await this.prisma.org_agents_type.findFirst({ + where: { + id: orgAgentId } + }); + + return agent; + } catch (error) { + this.logger.error(`[getOrgAgentType] - error: ${JSON.stringify(error)}`); + throw error; } + } -} \ No newline at end of file + async storeCredDefRecord(credDefDetails: ISaveCredDef): Promise { + try { + const saveResult = await this.prisma.credential_definition.create({ + data: { + schemaLedgerId: credDefDetails.schemaLedgerId, + tag: credDefDetails.tag, + credentialDefinitionId: credDefDetails.credentialDefinitionId, + revocable: credDefDetails.revocable, + createdBy: credDefDetails.createdBy, + lastChangedBy: credDefDetails.lastChangedBy, + orgId: credDefDetails.orgId, + schemaId: credDefDetails.schemaId + } + }); + return saveResult; + } catch (error) { + this.logger.error(`Error in saving credential-definition: ${error.message} `); + throw error; + } + } +} diff --git a/apps/ledger/src/ledger.controller.ts b/apps/ledger/src/ledger.controller.ts index 250203dfb9..d7dd51cc1b 100644 --- a/apps/ledger/src/ledger.controller.ts +++ b/apps/ledger/src/ledger.controller.ts @@ -1,14 +1,14 @@ import { Controller } from '@nestjs/common'; import { LedgerService } from './ledger.service'; import { MessagePattern } from '@nestjs/microservices'; -import { ledgers } from '@prisma/client'; +import { ledgers } from '@credebl/prisma/client'; import { LedgerDetails } from './interfaces/ledgers.interface'; import { INetworkUrl } from '@credebl/common/interfaces/schema.interface'; import { ISchemasList } from './schema/interfaces/schema.interface'; @Controller() export class LedgerController { - constructor(private readonly ledgerService: LedgerService) { } + constructor(private readonly ledgerService: LedgerService) {} @MessagePattern({ cmd: 'get-all-ledgers' }) async getAllLedgers(): Promise { @@ -21,12 +21,17 @@ export class LedgerController { } @MessagePattern({ cmd: 'get-network-details-by-id' }) - async getNetworkDetailsById(payload: {id: string}): Promise { + async getNetworkDetailsById(payload: { id: string }): Promise { return this.ledgerService.getLedgerDetailsById(payload.id); } @MessagePattern({ cmd: 'get-schema-details-for-ecosystem' }) - async schemaDetailsForEcosystem(payload: {schemaArray: string[], search: string, pageSize: number, pageNumber: number}): Promise { + async schemaDetailsForEcosystem(payload: { + schemaArray: string[]; + search: string; + pageSize: number; + pageNumber: number; + }): Promise { return this.ledgerService.schemaDetailsForEcosystem(payload); } -} \ No newline at end of file +} diff --git a/apps/ledger/src/ledger.service.ts b/apps/ledger/src/ledger.service.ts index 170f6c3ac6..421d0df0e8 100644 --- a/apps/ledger/src/ledger.service.ts +++ b/apps/ledger/src/ledger.service.ts @@ -3,7 +3,7 @@ import { BaseService } from 'libs/service/base.service'; import { LedgerRepository } from './repositories/ledger.repository'; import { RpcException } from '@nestjs/microservices'; // eslint-disable-next-line camelcase -import { ledgers } from '@prisma/client'; +import { ledgers } from '@credebl/prisma/client'; import { ResponseMessages } from '@credebl/common/response-messages'; import { LedgerDetails } from './interfaces/ledgers.interface'; import { INetworkUrl } from '@credebl/common/interfaces/schema.interface'; @@ -11,73 +11,72 @@ import { ISchemasList } from './schema/interfaces/schema.interface'; @Injectable() export class LedgerService extends BaseService { - - constructor( - private readonly ledgerRepository: LedgerRepository - ) { - super('LedgerService'); + constructor(private readonly ledgerRepository: LedgerRepository) { + super('LedgerService'); + } + + async getAllLedgers(): Promise { + try { + const getAllLedgerDetails = await this.ledgerRepository.getAllLedgers(); + + if (!getAllLedgerDetails) { + throw new NotFoundException(ResponseMessages.ledger.error.NotFound); + } + + return getAllLedgerDetails; + } catch (error) { + this.logger.error(`Error in retrieving all ledgers: ${error}`); + throw new RpcException(error.response ? error.response : error); } + } - async getAllLedgers(): Promise { - try { - const getAllLedgerDetails = await this.ledgerRepository.getAllLedgers(); + async getNetworkUrl(indyNamespace: string): Promise { + try { + const getNetworkUrl = await this.ledgerRepository.getNetworkUrl(indyNamespace); - if (!getAllLedgerDetails) { - throw new NotFoundException(ResponseMessages.ledger.error.NotFound); - } + if (!getNetworkUrl) { + throw new NotFoundException(ResponseMessages.ledger.error.NotFound); + } - return getAllLedgerDetails; - } catch (error) { - this.logger.error(`Error in retrieving all ledgers: ${error}`); - throw new RpcException(error.response ? error.response : error); - } + return getNetworkUrl; + } catch (error) { + this.logger.error(`Error in retrieving network url: ${error}`); + throw new RpcException(error.response ? error.response : error); } + } - async getNetworkUrl(indyNamespace: string): Promise { - try { - const getNetworkUrl = await this.ledgerRepository.getNetworkUrl(indyNamespace); + async getLedgerDetailsById(id: string): Promise { + try { + const getAllLedgerDetails = await this.ledgerRepository.getNetworkById(id); - if (!getNetworkUrl) { - throw new NotFoundException(ResponseMessages.ledger.error.NotFound); - } + if (!getAllLedgerDetails) { + throw new NotFoundException(ResponseMessages.ledger.error.NotFound); + } - return getNetworkUrl; - } catch (error) { - this.logger.error(`Error in retrieving network url: ${error}`); - throw new RpcException(error.response ? error.response : error); - } + return getAllLedgerDetails; + } catch (error) { + this.logger.error(`Error in getLedgerDetailsById: ${error}`); + throw new RpcException(error.response ? error.response : error); } - - async getLedgerDetailsById(id: string): Promise { - try { - const getAllLedgerDetails = await this.ledgerRepository.getNetworkById(id); - - if (!getAllLedgerDetails) { - throw new NotFoundException(ResponseMessages.ledger.error.NotFound); - } - - return getAllLedgerDetails; - } catch (error) { - this.logger.error(`Error in getLedgerDetailsById: ${error}`); - throw new RpcException(error.response ? error.response : error); - } + } + + async schemaDetailsForEcosystem(data: { + schemaArray: string[]; + search: string; + pageSize: number; + pageNumber: number; + }): Promise { + try { + const getSchemaDetails = await this.ledgerRepository.handleGetSchemas(data); + + if (!getSchemaDetails) { + throw new NotFoundException(ResponseMessages.ledger.error.NotFound); + } + + return getSchemaDetails; + } catch (error) { + this.logger.error(`Error in getLedgerDetailsById: ${error}`); + throw new RpcException(error.response ? error.response : error); } - - - async schemaDetailsForEcosystem(data: {schemaArray: string[], search: string, pageSize: number, pageNumber: number}): Promise { - - try { - const getSchemaDetails = await this.ledgerRepository.handleGetSchemas(data); - - if (!getSchemaDetails) { - throw new NotFoundException(ResponseMessages.ledger.error.NotFound); - } - - return getSchemaDetails; - } catch (error) { - this.logger.error(`Error in getLedgerDetailsById: ${error}`); - throw new RpcException(error.response ? error.response : error); - } - } - -} \ No newline at end of file + } +} diff --git a/apps/ledger/src/repositories/ledger.repository.ts b/apps/ledger/src/repositories/ledger.repository.ts index 176d365f57..a628d3c403 100644 --- a/apps/ledger/src/repositories/ledger.repository.ts +++ b/apps/ledger/src/repositories/ledger.repository.ts @@ -1,113 +1,110 @@ import { PrismaService } from '@credebl/prisma-service'; import { Injectable, Logger } from '@nestjs/common'; // eslint-disable-next-line camelcase -import { ledgers } from '@prisma/client'; +import { ledgers } from '@credebl/prisma/client'; import { LedgerDetails } from '../interfaces/ledgers.interface'; import { INetworkUrl } from '@credebl/common/interfaces/schema.interface'; import { ISchemasList, ISchemasResult } from '../schema/interfaces/schema.interface'; - @Injectable() export class LedgerRepository { - private readonly logger = new Logger('LedgerRepository'); + private readonly logger = new Logger('LedgerRepository'); - constructor( - private prisma: PrismaService - ) { } + constructor(private prisma: PrismaService) {} - async getAllLedgers(): Promise { - try { - return this.prisma.ledgers.findMany(); - } catch (error) { - this.logger.error(`Error in getAllLedgers: ${error}`); - throw error; - } + async getAllLedgers(): Promise { + try { + return this.prisma.ledgers.findMany(); + } catch (error) { + this.logger.error(`Error in getAllLedgers: ${error}`); + throw error; } + } - async getNetworkUrl(indyNamespace: string): Promise { + async getNetworkUrl(indyNamespace: string): Promise { + try { + return this.prisma.ledgers.findFirstOrThrow({ + where: { + indyNamespace + }, + select: { + networkUrl: true + } + }); + } catch (error) { + this.logger.error(`Error in getNetworkUrl: ${error}`); + throw error; + } + } - try { - return this.prisma.ledgers.findFirstOrThrow({ - where: { - indyNamespace - }, - select: { - networkUrl: true - } - }); - } catch (error) { - this.logger.error(`Error in getNetworkUrl: ${error}`); - throw error; + async getNetworkById(ledgerId: string): Promise { + try { + return this.prisma.ledgers.findFirst({ + where: { + id: ledgerId + }, + select: { + id: true, + name: true, + indyNamespace: true, + networkUrl: true } + }); + } catch (error) { + this.logger.error(`Error in getNetworkById: ${error}`); + throw error; } + } - async getNetworkById(ledgerId: string): Promise { + async handleGetSchemas(data: { + schemaArray: string[]; + search: string; + pageSize: number; + pageNumber: number; + }): Promise { + try { + const { schemaArray, search, pageSize, pageNumber } = data; - try { - return this.prisma.ledgers.findFirst({ - where: { - id: ledgerId - }, - select: { - id: true, - name: true, - indyNamespace: true, - networkUrl: true - } - }); - } catch (error) { - this.logger.error(`Error in getNetworkById: ${error}`); - throw error; + const schemasResult: ISchemasResult[] = await this.prisma.schema.findMany({ + where: { + schemaLedgerId: { + in: schemaArray + }, + OR: [ + { version: { contains: search, mode: 'insensitive' } }, + { name: { contains: search, mode: 'insensitive' } }, + { schemaLedgerId: { contains: search, mode: 'insensitive' } } + ] + }, + take: pageSize, + skip: (pageNumber - 1) * pageSize, + orderBy: { + createDateTime: 'desc' } - } + }); - async handleGetSchemas(data: {schemaArray: string[], search: string, pageSize: number, pageNumber: number}): Promise { - try { - const { schemaArray, search, pageSize, pageNumber } = data; - - const schemasResult: ISchemasResult[] = await this.prisma.schema.findMany({ - where: { - schemaLedgerId: { - in: schemaArray - }, - OR: [ - { version: { contains: search, mode: 'insensitive' } }, - { name: { contains: search, mode: 'insensitive' } }, - { schemaLedgerId: { contains: search, mode: 'insensitive' } } - ] - }, - take: pageSize, - skip: (pageNumber - 1) * pageSize, - orderBy: { - createDateTime: 'desc' - } - }); - - // Get the total count of schemas that match the query - const schemasCount = await this.prisma.schema.count({ - where: { - schemaLedgerId: { - in: schemaArray - }, - OR: [ - { version: { contains: search, mode: 'insensitive' } }, - { name: { contains: search, mode: 'insensitive' } }, - { schemaLedgerId: { contains: search, mode: 'insensitive' } } - ] - } - }); - - // Return the schemas and the total count - return { - schemasCount, - schemasResult - }; - - } catch (error) { - this.logger.error(`Error handling 'get-schemas' request: ${JSON.stringify(error)}`); - throw error; + // Get the total count of schemas that match the query + const schemasCount = await this.prisma.schema.count({ + where: { + schemaLedgerId: { + in: schemaArray + }, + OR: [ + { version: { contains: search, mode: 'insensitive' } }, + { name: { contains: search, mode: 'insensitive' } }, + { schemaLedgerId: { contains: search, mode: 'insensitive' } } + ] } - } + }); - -} \ No newline at end of file + // Return the schemas and the total count + return { + schemasCount, + schemasResult + }; + } catch (error) { + this.logger.error(`Error handling 'get-schemas' request: ${JSON.stringify(error)}`); + throw error; + } + } +} diff --git a/apps/ledger/src/schema/repositories/schema.repository.ts b/apps/ledger/src/schema/repositories/schema.repository.ts index f21c0678d8..888d24b931 100644 --- a/apps/ledger/src/schema/repositories/schema.repository.ts +++ b/apps/ledger/src/schema/repositories/schema.repository.ts @@ -3,7 +3,7 @@ import { AgentDetails, ISchemasWithCount, IUpdateSchema, UpdateSchemaResponse } import { ConflictException, Injectable, InternalServerErrorException, Logger } from '@nestjs/common'; import { ICredDefWithCount, IPlatformSchemasWithOrg } from '@credebl/common/interfaces/schema.interface'; import { ISaveSchema, ISchema, ISchemaExist, ISchemaSearchCriteria } from '../interfaces/schema-payload.interface'; -import { Prisma, ledgers, org_agents, org_agents_type, organisation, schema } from '@prisma/client'; +import { Prisma, ledgers, org_agents, org_agents_type, organisation, schema } from '@credebl/prisma/client'; import { SchemaType, SortValue } from '@credebl/enum/enum'; import { ISchemaId } from '../schema.interface'; diff --git a/apps/ledger/src/schema/schema.controller.ts b/apps/ledger/src/schema/schema.controller.ts index 45d36462c5..41065527fd 100644 --- a/apps/ledger/src/schema/schema.controller.ts +++ b/apps/ledger/src/schema/schema.controller.ts @@ -8,7 +8,7 @@ import { ISchemaSearchPayload, SaveSchemaPayload } from './interfaces/schema-payload.interface'; -import { Prisma, schema } from '@prisma/client'; +import { Prisma, schema } from '@credebl/prisma/client'; import { ICredDefWithPagination, ISchemaData, @@ -19,7 +19,6 @@ import { IschemaPayload } from './interfaces/schema.interface'; import { ISchemaId } from './schema.interface'; import { UpdateSchemaDto } from 'apps/api-gateway/src/schema/dtos/update-schema-dto'; - @Controller('schema') export class SchemaController { constructor(private readonly schemaService: SchemaService) {} @@ -31,14 +30,14 @@ export class SchemaController { } @MessagePattern({ cmd: 'get-schemas-details' }) - async getSchemasDetails(payload: {templateIds: string[]}): Promise { + async getSchemasDetails(payload: { templateIds: string[] }): Promise { const { templateIds } = payload; return this.schemaService.getSchemaDetails(templateIds); } @MessagePattern({ cmd: 'get-schemas-details-by-name' }) - async getSchemasDetailsBySchemaName(payload:{schemaName:string, orgId:string}): Promise { - const {orgId, schemaName} = payload; + async getSchemasDetailsBySchemaName(payload: { schemaName: string; orgId: string }): Promise { + const { orgId, schemaName } = payload; return this.schemaService.getSchemaDetailsBySchemaName(schemaName, orgId); } @@ -66,26 +65,28 @@ export class SchemaController { } @MessagePattern({ cmd: 'schema-exist' }) - async schemaExist(payload: ISchemaExist): Promise<{ - id: string; - createDateTime: Date; - createdBy: string; - lastChangedDateTime: Date; - lastChangedBy: string; - name: string; - version: string; - attributes: string; - schemaLedgerId: string; - publisherDid: string; - issuerId: string; - orgId: string; - ledgerId: string; - }[]> { + async schemaExist(payload: ISchemaExist): Promise< + { + id: string; + createDateTime: Date; + createdBy: string; + lastChangedDateTime: Date; + lastChangedBy: string; + name: string; + version: string; + attributes: string; + schemaLedgerId: string; + publisherDid: string; + issuerId: string; + orgId: string; + ledgerId: string; + }[] + > { return this.schemaService.schemaExist(payload); } @MessagePattern({ cmd: 'archive-schemas' }) - async archiveSchemas(payload: {did: string}): Promise { + async archiveSchemas(payload: { did: string }): Promise { return this.schemaService.archiveSchemas(payload.did); } @@ -95,12 +96,12 @@ export class SchemaController { } @MessagePattern({ cmd: 'get-schema-record-by-schema-id' }) - async getSchemaRecordBySchemaId(payload: {schemaId: string}): Promise { + async getSchemaRecordBySchemaId(payload: { schemaId: string }): Promise { return this.schemaService.getSchemaBySchemaId(payload.schemaId); } -@MessagePattern({ cmd: 'update-schema' }) - updateSchema(payload:{schemaDetails:UpdateSchemaDto}): Promise { + @MessagePattern({ cmd: 'update-schema' }) + updateSchema(payload: { schemaDetails: UpdateSchemaDto }): Promise { return this.schemaService.updateSchema(payload.schemaDetails); } -} \ No newline at end of file +} diff --git a/apps/ledger/src/schema/schema.service.ts b/apps/ledger/src/schema/schema.service.ts index d4b4f5f313..f4bfe5e5ef 100644 --- a/apps/ledger/src/schema/schema.service.ts +++ b/apps/ledger/src/schema/schema.service.ts @@ -12,7 +12,7 @@ import { import { ClientProxy, RpcException } from '@nestjs/microservices'; import { BaseService } from 'libs/service/base.service'; import { SchemaRepository } from './repositories/schema.repository'; -import { Prisma, schema } from '@prisma/client'; +import { Prisma, schema } from '@credebl/prisma/client'; import { ISaveSchema, ISchema, diff --git a/apps/oid4vc-issuance/interfaces/oid4vc-issuance.interfaces.ts b/apps/oid4vc-issuance/interfaces/oid4vc-issuance.interfaces.ts index be9613ed65..df50f3951c 100644 --- a/apps/oid4vc-issuance/interfaces/oid4vc-issuance.interfaces.ts +++ b/apps/oid4vc-issuance/interfaces/oid4vc-issuance.interfaces.ts @@ -1,4 +1,4 @@ -import { organisation } from '@prisma/client'; +import { organisation } from '@credebl/prisma/client'; import { Claim } from './oid4vc-template.interfaces'; export interface OrgAgent { diff --git a/apps/oid4vc-issuance/interfaces/oid4vc-template.interfaces.ts b/apps/oid4vc-issuance/interfaces/oid4vc-template.interfaces.ts index 2b33c19e15..30152b28bb 100644 --- a/apps/oid4vc-issuance/interfaces/oid4vc-template.interfaces.ts +++ b/apps/oid4vc-issuance/interfaces/oid4vc-template.interfaces.ts @@ -1,4 +1,4 @@ -import { Prisma, SignerOption } from '@prisma/client'; +import { Prisma, SignerOption } from '@credebl/prisma/client'; import { AttributeType, CredentialFormat } from '@credebl/enum/enum'; export interface SdJwtTemplate { vct: string; diff --git a/apps/oid4vc-issuance/libs/helpers/credential-sessions.builder.ts b/apps/oid4vc-issuance/libs/helpers/credential-sessions.builder.ts index a2b8b208da..3ebf606c25 100644 --- a/apps/oid4vc-issuance/libs/helpers/credential-sessions.builder.ts +++ b/apps/oid4vc-issuance/libs/helpers/credential-sessions.builder.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types, camelcase */ -import { credential_templates, SignerOption } from '@prisma/client'; +import { credential_templates, SignerOption } from '@credebl/prisma/client'; import { GetAllCredentialOffer, ISignerOption } from '../../interfaces/oid4vc-issuer-sessions.interfaces'; import { CredentialFormat } from '@credebl/enum/enum'; import { diff --git a/apps/oid4vc-issuance/libs/helpers/issuer.metadata.ts b/apps/oid4vc-issuance/libs/helpers/issuer.metadata.ts index f5a3426adb..4149d947db 100644 --- a/apps/oid4vc-issuance/libs/helpers/issuer.metadata.ts +++ b/apps/oid4vc-issuance/libs/helpers/issuer.metadata.ts @@ -1,5 +1,5 @@ /* eslint-disable camelcase */ -import { oidc_issuer, Prisma } from '@prisma/client'; +import { oidc_issuer, Prisma } from '@credebl/prisma/client'; import { batchCredentialIssuanceDefault } from '../../constant/issuance'; import { CreateOidcCredentialOffer } from '../../interfaces/oid4vc-issuer-sessions.interfaces'; import { IssuerResponse } from 'apps/oid4vc-issuance/interfaces/oid4vc-issuance.interfaces'; diff --git a/apps/oid4vc-issuance/src/oid4vc-issuance.controller.ts b/apps/oid4vc-issuance/src/oid4vc-issuance.controller.ts index b1e471fc37..8787af392c 100644 --- a/apps/oid4vc-issuance/src/oid4vc-issuance.controller.ts +++ b/apps/oid4vc-issuance/src/oid4vc-issuance.controller.ts @@ -3,7 +3,7 @@ import { Controller } from '@nestjs/common'; import { Oid4vcIssuanceService } from './oid4vc-issuance.service'; import { IssuerCreation, IssuerUpdation } from '../interfaces/oid4vc-issuance.interfaces'; import { MessagePattern } from '@nestjs/microservices'; -import { user, oidc_issuer, credential_templates } from '@prisma/client'; +import { user, oidc_issuer, credential_templates } from '@credebl/prisma/client'; import { CreateOidcCredentialOffer, UpdateCredentialRequest, diff --git a/apps/oid4vc-issuance/src/oid4vc-issuance.repository.ts b/apps/oid4vc-issuance/src/oid4vc-issuance.repository.ts index b90a25abfc..8ecae53f79 100644 --- a/apps/oid4vc-issuance/src/oid4vc-issuance.repository.ts +++ b/apps/oid4vc-issuance/src/oid4vc-issuance.repository.ts @@ -1,7 +1,7 @@ /* eslint-disable camelcase */ import { Injectable, Logger, NotFoundException } from '@nestjs/common'; // eslint-disable-next-line camelcase -import { Prisma, credential_templates, oidc_issuer, org_agents } from '@prisma/client'; +import { Prisma, credential_templates, oidc_issuer, org_agents } from '@credebl/prisma/client'; import { PrismaService } from '@credebl/prisma-service'; import { IssuerMetadata, IssuerUpdation, OrgAgent } from '../interfaces/oid4vc-issuance.interfaces'; import { ResponseMessages } from '@credebl/common/response-messages'; diff --git a/apps/oid4vc-issuance/src/oid4vc-issuance.service.ts b/apps/oid4vc-issuance/src/oid4vc-issuance.service.ts index 1abe9578ec..4710f78fa7 100644 --- a/apps/oid4vc-issuance/src/oid4vc-issuance.service.ts +++ b/apps/oid4vc-issuance/src/oid4vc-issuance.service.ts @@ -23,7 +23,7 @@ import { ResponseMessages } from '@credebl/common/response-messages'; import { ClientProxy, RpcException } from '@nestjs/microservices'; import { map } from 'rxjs'; import { getAgentUrl } from '@credebl/common/common.utils'; -import { credential_templates, oidc_issuer, Prisma, SignerOption, user } from '@prisma/client'; +import { credential_templates, oidc_issuer, Prisma, SignerOption, user } from '@credebl/prisma/client'; import { IAgentOIDCIssuerCreate, IssuerCreation, diff --git a/apps/oid4vc-verification/interfaces/oid4vp-verifier.interfaces.ts b/apps/oid4vc-verification/interfaces/oid4vp-verifier.interfaces.ts index c39d7ae26e..abed92578b 100644 --- a/apps/oid4vc-verification/interfaces/oid4vp-verifier.interfaces.ts +++ b/apps/oid4vc-verification/interfaces/oid4vp-verifier.interfaces.ts @@ -1,5 +1,5 @@ import { OpenId4VcVerificationPresentationState } from '@credebl/common/interfaces/oid4vp-verification'; -import { organisation } from '@prisma/client'; +import { organisation } from '@credebl/prisma/client'; export interface OrgAgent { organisation: organisation; id: string; diff --git a/apps/oid4vc-verification/interfaces/verification-template.interfaces.ts b/apps/oid4vc-verification/interfaces/verification-template.interfaces.ts index 6c57e73a3d..5f68ad7b16 100644 --- a/apps/oid4vc-verification/interfaces/verification-template.interfaces.ts +++ b/apps/oid4vc-verification/interfaces/verification-template.interfaces.ts @@ -1,4 +1,4 @@ -import { SignerOption } from '@prisma/client'; +import { SignerOption } from '@credebl/prisma/client'; export interface CreateVerificationTemplate { name: string; diff --git a/apps/oid4vc-verification/src/oid4vc-verification.controller.ts b/apps/oid4vc-verification/src/oid4vc-verification.controller.ts index 52ae1ee7d9..fa6e49e359 100644 --- a/apps/oid4vc-verification/src/oid4vc-verification.controller.ts +++ b/apps/oid4vc-verification/src/oid4vc-verification.controller.ts @@ -1,6 +1,6 @@ import { Controller, Logger } from '@nestjs/common'; import { Oid4vpVerificationService } from './oid4vc-verification.service'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { CreateVerifier, IPresentationRequest, diff --git a/apps/oid4vc-verification/src/oid4vc-verification.repository.ts b/apps/oid4vc-verification/src/oid4vc-verification.repository.ts index 77b6abcdc9..933fc91a45 100644 --- a/apps/oid4vc-verification/src/oid4vc-verification.repository.ts +++ b/apps/oid4vc-verification/src/oid4vc-verification.repository.ts @@ -1,7 +1,7 @@ /* eslint-disable camelcase */ import { Injectable, Logger, NotFoundException } from '@nestjs/common'; // eslint-disable-next-line camelcase -import { oid4vp_verifier, org_agents } from '@prisma/client'; +import { oid4vp_verifier, org_agents } from '@credebl/prisma/client'; import { PrismaService } from '@credebl/prisma-service'; import { ResponseMessages } from '@credebl/common/response-messages'; import { OrgAgent } from '../interfaces/oid4vp-verifier.interfaces'; diff --git a/apps/oid4vc-verification/src/oid4vc-verification.service.ts b/apps/oid4vc-verification/src/oid4vc-verification.service.ts index 3c8862d199..5490afb556 100644 --- a/apps/oid4vc-verification/src/oid4vc-verification.service.ts +++ b/apps/oid4vc-verification/src/oid4vc-verification.service.ts @@ -19,8 +19,7 @@ import { CommonConstants } from '@credebl/common/common.constant'; import { ResponseMessages } from '@credebl/common/response-messages'; import { ClientProxy, RpcException } from '@nestjs/microservices'; import { getAgentUrl } from '@credebl/common/common.utils'; -import { SignerOption, user } from '@prisma/client'; -import { map } from 'rxjs'; +import { SignerOption, user } from '@credebl/prisma/client'; import { CreateVerifier, IRequestSigner, diff --git a/apps/oid4vc-verification/test/app.e2e-spec.ts b/apps/oid4vc-verification/test/app.e2e-spec.ts index a011c0ceb4..396b38dfda 100644 --- a/apps/oid4vc-verification/test/app.e2e-spec.ts +++ b/apps/oid4vc-verification/test/app.e2e-spec.ts @@ -1,6 +1,6 @@ import { Test, TestingModule } from '@nestjs/testing'; import { INestApplication } from '@nestjs/common'; -import { Oid4vcVerificationModule } from './../src/oid4vc-verification.module'; +import { Oid4vcVerificationModule } from '../src/oid4vc-verification.module'; describe('Oid4vcVerificationController (e2e)', () => { let app: INestApplication; diff --git a/apps/organization/interfaces/organization.interface.ts b/apps/organization/interfaces/organization.interface.ts index 0401e44680..bcee4408c5 100644 --- a/apps/organization/interfaces/organization.interface.ts +++ b/apps/organization/interfaces/organization.interface.ts @@ -1,5 +1,5 @@ -import { Prisma } from '@prisma/client'; -import { JsonValue } from '@prisma/client/runtime/library'; +import { Prisma } from '@credebl/prisma/client'; +import { JsonValue } from 'libs/prisma-service/generated/prisma/internal/prismaNamespace'; export interface IUserOrgRoles { id: string; diff --git a/apps/organization/repositories/organization.repository.ts b/apps/organization/repositories/organization.repository.ts index 14c2d50ad8..1637974987 100755 --- a/apps/organization/repositories/organization.repository.ts +++ b/apps/organization/repositories/organization.repository.ts @@ -34,7 +34,7 @@ import { organisation, user, user_org_roles -} from '@prisma/client'; +} from '@credebl/prisma/client'; import { CreateOrganizationDto } from '../dtos/create-organization.dto'; import { IOrgRoles } from 'libs/org-roles/interfaces/org-roles.interface'; @@ -441,7 +441,7 @@ export class OrganizationRepository { async getOrganization(queryObject: object): Promise { try { - return this.prisma.organisation.findFirst({ + const result = await this.prisma.organisation.findFirst({ where: { ...queryObject }, @@ -505,6 +505,20 @@ export class OrganizationRepository { } } }); + + // Transform org_agents from single object to array to match interface + if (result && result.org_agents) { + return { + ...result, + org_agents: [result.org_agents] + } as IGetOrgById; + } + + // Return with empty array if no org_agents + return { + ...result, + org_agents: [] + } as IGetOrgById; } catch (error) { this.logger.error(`error: ${JSON.stringify(error)}`); throw new InternalServerErrorException(error); @@ -1189,7 +1203,7 @@ export class OrganizationRepository { OR: [ { name: { contains: search, mode: 'insensitive' } }, // eslint-disable-next-line camelcase - { org_agents: { some: { orgDid: { contains: search, mode: 'insensitive' } } } } + { org_agents: { is: { orgDid: { contains: search, mode: 'insensitive' } } } } ] }, select: { @@ -1215,7 +1229,7 @@ export class OrganizationRepository { return { organisations, - orgAgents, + orgAgents: orgAgents as IOrgDetails['orgAgents'], userOrgRoles }; } catch (error) { diff --git a/apps/organization/src/organization.controller.ts b/apps/organization/src/organization.controller.ts index 7ad259b270..06b67b0ccb 100755 --- a/apps/organization/src/organization.controller.ts +++ b/apps/organization/src/organization.controller.ts @@ -22,7 +22,7 @@ import { IGetAllOrgsPayload, IAllOrgsNameId } from '@credebl/common/interfaces/organization.interface'; -import { organisation, user } from '@prisma/client'; +import { organisation, user } from '@credebl/prisma/client'; import { IAccessTokenData } from '@credebl/common/interfaces/interface'; import { IClientRoles } from '@credebl/client-registration/interfaces/client.interface'; import { IOrgRoles } from 'libs/org-roles/interfaces/org-roles.interface'; diff --git a/apps/organization/src/organization.service.ts b/apps/organization/src/organization.service.ts index 316e82df22..7a27377728 100755 --- a/apps/organization/src/organization.service.ts +++ b/apps/organization/src/organization.service.ts @@ -1,6 +1,6 @@ /* eslint-disable prefer-destructuring */ // eslint-disable-next-line camelcase -import { RecordType, org_invitations, organisation, user } from '@prisma/client'; +import { RecordType, org_invitations, organisation, user } from '@credebl/prisma/client'; import { Injectable, Logger, diff --git a/apps/user/dtos/login-user.dto.ts b/apps/user/dtos/login-user.dto.ts index 0c344161b4..53c1ca9d9a 100644 --- a/apps/user/dtos/login-user.dto.ts +++ b/apps/user/dtos/login-user.dto.ts @@ -1,7 +1,7 @@ import { IsBoolean, IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; -import type { Prisma } from '@prisma/client'; +import type { Prisma } from '@credebl/prisma/client'; import { Transform } from 'class-transformer'; import { trim } from '@credebl/common/cast.helper'; diff --git a/apps/user/interfaces/user.interface.ts b/apps/user/interfaces/user.interface.ts index b00f19112a..dbec2523d6 100644 --- a/apps/user/interfaces/user.interface.ts +++ b/apps/user/interfaces/user.interface.ts @@ -1,4 +1,4 @@ -import { $Enums, Prisma, RecordType } from '@prisma/client'; +import { $Enums, Prisma, RecordType } from '@credebl/prisma/client'; export interface IUsersProfile { id: string; diff --git a/apps/user/repositories/fido-user.repository.ts b/apps/user/repositories/fido-user.repository.ts index ea78d16277..94b092c335 100644 --- a/apps/user/repositories/fido-user.repository.ts +++ b/apps/user/repositories/fido-user.repository.ts @@ -2,7 +2,7 @@ import { Injectable, Logger, NotFoundException } from '@nestjs/common'; import { CreateUserDto } from '../dtos/create-user.dto'; import { InternalServerErrorException } from '@nestjs/common'; import { PrismaService } from '@credebl/prisma-service'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { v4 as uuidv4 } from 'uuid'; type UserUpdateData = { @@ -14,12 +14,14 @@ type UserUpdateData = { @Injectable() export class FidoUserRepository { - constructor(private readonly prisma: PrismaService, private readonly logger: Logger) { } + constructor( + private readonly prisma: PrismaService, + private readonly logger: Logger + ) {} - /** - * - * @param createUserDto + * + * @param createUserDto * @returns user details */ async createUser(createUserDto: CreateUserDto): Promise { @@ -37,7 +39,6 @@ export class FidoUserRepository { }); return saveResponse; - } catch (error) { this.logger.error(`In Create User Repository: ${JSON.stringify(error)}`); throw error; @@ -45,8 +46,8 @@ export class FidoUserRepository { } /** - * - * @param email + * + * @param email * @returns User exist details */ @@ -65,10 +66,10 @@ export class FidoUserRepository { } /** - * - * @param email - * @returns User details - */ + * + * @param email + * @returns User details + */ // eslint-disable-next-line camelcase async getUserDetails(email: string): Promise { @@ -85,12 +86,12 @@ export class FidoUserRepository { } /** - * - * @param tenantDetails - * @returns Updates organization details - */ + * + * @param tenantDetails + * @returns Updates organization details + */ // eslint-disable-next-line camelcase - async updateFidoUserDetails(email:string, fidoUserId: string, username: string): Promise { + async updateFidoUserDetails(email: string, fidoUserId: string, username: string): Promise { try { const updateUserDetails = await this.prisma.user.update({ where: { @@ -102,28 +103,24 @@ export class FidoUserRepository { } }); return updateUserDetails; - } catch (error) { this.logger.error(`Error in update isEmailVerified: ${error.message} `); throw error; } } - - async updateUserDetails(email:string, additionalParams:UserUpdateData[]): Promise { + async updateUserDetails(email: string, additionalParams: UserUpdateData[]): Promise { try { const updateUserDetails = await this.prisma.user.update({ where: { email }, - data: { ...additionalParams[0]} + data: { ...additionalParams[0] } }); return updateUserDetails; - } catch (error) { this.logger.error(`Error in update isEmailVerified: ${error.message} `); throw error; } } } - diff --git a/apps/user/repositories/user-device.repository.ts b/apps/user/repositories/user-device.repository.ts index f9935f81bc..ce0091fea8 100644 --- a/apps/user/repositories/user-device.repository.ts +++ b/apps/user/repositories/user-device.repository.ts @@ -2,7 +2,7 @@ import { Injectable, Logger, NotFoundException } from '@nestjs/common'; import { InternalServerErrorException } from '@nestjs/common'; import { PrismaService } from '@credebl/prisma-service'; // eslint-disable-next-line camelcase -import { Prisma, user_devices } from '@prisma/client'; +import { Prisma, user_devices } from '@credebl/prisma/client'; type FidoMultiDevicePayload = { createDateTime: Date; @@ -16,11 +16,14 @@ type FidoMultiDevicePayload = { }[]; @Injectable() export class UserDevicesRepository { - constructor(private readonly prisma: PrismaService, private readonly logger: Logger) { } + constructor( + private readonly prisma: PrismaService, + private readonly logger: Logger + ) {} /** - * - * @param email + * + * @param email * @returns User exist details */ @@ -29,7 +32,7 @@ export class UserDevicesRepository { try { return this.prisma.user_devices.findFirst({ where: { - userId:String(userId) + userId: String(userId) } }); } catch (error) { @@ -39,25 +42,23 @@ export class UserDevicesRepository { } /** - * - * @param createFidoMultiDevice - * @returns Device details - */ + * + * @param createFidoMultiDevice + * @returns Device details + */ // eslint-disable-next-line camelcase async createMultiDevice(newDevice: Prisma.JsonValue, userId: string): Promise { try { - const saveResponse = await this.prisma.user_devices.create({ data: { devices: newDevice, - userId:String(userId), + userId: String(userId), createdBy: userId, lastChangedBy: userId } }); return saveResponse; - } catch (error) { this.logger.error(`In Create User Repository: ${JSON.stringify(error)}`); throw error; @@ -65,16 +66,16 @@ export class UserDevicesRepository { } /** - * - * @param userId - * @returns Device details - */ + * + * @param userId + * @returns Device details + */ // eslint-disable-next-line camelcase async fidoMultiDevice(userId: string): Promise { try { const userDetails = await this.prisma.user_devices.findMany({ where: { - userId:String(userId), + userId: String(userId), deletedAt: null }, orderBy: { @@ -90,17 +91,16 @@ export class UserDevicesRepository { } /** - * - * @param userId - * @returns Get all device details - */ + * + * @param userId + * @returns Get all device details + */ // eslint-disable-next-line camelcase, @typescript-eslint/no-explicit-any async getfidoMultiDevice(userId: string): Promise { try { - const fidoMultiDevice = await this.prisma.user_devices.findMany({ where: { - userId:String(userId) + userId: String(userId) } }); return fidoMultiDevice; @@ -111,15 +111,15 @@ export class UserDevicesRepository { } /** - * - * @param userId - * @returns Get all active device details - */ + * + * @param userId + * @returns Get all active device details + */ async getfidoMultiDeviceDetails(userId: string): Promise { try { const fidoMultiDevice = await this.prisma.user_devices.findMany({ where: { - userId:String(userId), + userId: String(userId), deletedAt: null }, select: { @@ -141,10 +141,10 @@ export class UserDevicesRepository { } /** - * - * @param credentialId - * @returns Find device details from credentialID - */ + * + * @param credentialId + * @returns Find device details from credentialID + */ async getFidoUserDeviceDetails(credentialId: string): Promise { try { const getUserDevice = await this.prisma.$queryRaw` @@ -160,11 +160,11 @@ export class UserDevicesRepository { } /** - * - * @param credentialId - * @param loginCounter - * @returns Update Auth counter - */ + * + * @param credentialId + * @param loginCounter + * @returns Update Auth counter + */ async updateFidoAuthCounter(credentialId: string, loginCounter: number): Promise { try { return await this.prisma.user_devices.updateMany({ @@ -175,7 +175,6 @@ export class UserDevicesRepository { authCounter: loginCounter } }); - } catch (error) { this.logger.error(`Not Found: ${JSON.stringify(error)}`); throw new NotFoundException(error); @@ -183,10 +182,10 @@ export class UserDevicesRepository { } /** - * - * @param credentialId - * @returns Device detail for specific credentialId - */ + * + * @param credentialId + * @returns Device detail for specific credentialId + */ // eslint-disable-next-line camelcase async checkUserDeviceByCredentialId(credentialId: string): Promise { try { @@ -202,10 +201,10 @@ export class UserDevicesRepository { } /** - * - * @param credentialId - * @returns Delete device - */ + * + * @param credentialId + * @returns Delete device + */ // eslint-disable-next-line camelcase async deleteUserDeviceByCredentialId(credentialId: string): Promise { try { @@ -223,11 +222,11 @@ export class UserDevicesRepository { } } /** - * - * @param id - * @param deviceName - * @returns Update device name - */ + * + * @param id + * @param deviceName + * @returns Update device name + */ async updateUserDeviceByCredentialId(id: string, deviceName: string): Promise { try { return await this.prisma.user_devices.updateMany({ @@ -245,11 +244,11 @@ export class UserDevicesRepository { } /** - * - * @param credentialId - * @param deviceFriendlyName - * @returns Get device details name for specific credentialId - */ + * + * @param credentialId + * @param deviceFriendlyName + * @returns Get device details name for specific credentialId + */ async updateDeviceByCredentialId(credentialId: string): Promise { try { return await this.prisma.$queryRaw` @@ -263,15 +262,14 @@ export class UserDevicesRepository { } /** - * - * @param id - * @param credentialId - * @param deviceFriendlyName - * @returns Update device name for specific credentialId - */ + * + * @param id + * @param credentialId + * @param deviceFriendlyName + * @returns Update device name for specific credentialId + */ // eslint-disable-next-line camelcase async addCredentialIdAndNameById(id: string, updateFidoUserDetails: string): Promise { - try { return await this.prisma.user_devices.update({ where: { @@ -287,5 +285,4 @@ export class UserDevicesRepository { throw new InternalServerErrorException(error); } } - } diff --git a/apps/user/repositories/user.repository.ts b/apps/user/repositories/user.repository.ts index 3889e96c27..11e508bb2a 100644 --- a/apps/user/repositories/user.repository.ts +++ b/apps/user/repositories/user.repository.ts @@ -35,7 +35,7 @@ import { token, user, user_org_roles -} from '@prisma/client'; +} from '@credebl/prisma/client'; import { ProviderType, UserRole } from '@credebl/enum/enum'; import { PrismaService } from '@credebl/prisma-service'; diff --git a/apps/user/src/user.controller.ts b/apps/user/src/user.controller.ts index 5731998f12..1cb754f1d5 100644 --- a/apps/user/src/user.controller.ts +++ b/apps/user/src/user.controller.ts @@ -24,7 +24,7 @@ import { IVerifyUserEmail } from '@credebl/common/interfaces/user.interface'; // eslint-disable-next-line camelcase -import { client_aliases, user, user_org_roles } from '@prisma/client'; +import { client_aliases, user, user_org_roles } from '@credebl/prisma/client'; import { AcceptRejectInvitationDto } from '../dtos/accept-reject-invitation.dto'; import { AddPasskeyDetailsDto } from 'apps/api-gateway/src/user/dto/add-user.dto'; diff --git a/apps/user/src/user.service.ts b/apps/user/src/user.service.ts index 28fa83bf70..77d0427494 100644 --- a/apps/user/src/user.service.ts +++ b/apps/user/src/user.service.ts @@ -25,7 +25,7 @@ import { UserOrgRolesService } from '@credebl/user-org-roles'; import { UserRepository } from '../repositories/user.repository'; import { VerifyEmailTokenDto } from '../dtos/verify-email.dto'; // eslint-disable-next-line camelcase -import { client_aliases, RecordType, session, user, user_org_roles } from '@prisma/client'; +import { client_aliases, RecordType, session, user, user_org_roles } from '@credebl/prisma/client'; import { ICheckUserDetails, OrgInvitations, diff --git a/apps/utility/src/utilities.repository.ts b/apps/utility/src/utilities.repository.ts index ad138d24c8..d54a424eb3 100644 --- a/apps/utility/src/utilities.repository.ts +++ b/apps/utility/src/utilities.repository.ts @@ -1,6 +1,6 @@ import { Injectable, Logger } from '@nestjs/common'; // eslint-disable-next-line camelcase -import { platform_config, shortening_url } from '@prisma/client'; +import { platform_config, shortening_url } from '@credebl/prisma/client'; import { PrismaService } from '@credebl/prisma-service'; diff --git a/apps/verification/src/repositories/verification.repository.ts b/apps/verification/src/repositories/verification.repository.ts index 61ae918b30..e54427e410 100644 --- a/apps/verification/src/repositories/verification.repository.ts +++ b/apps/verification/src/repositories/verification.repository.ts @@ -7,8 +7,16 @@ import { } from '../interfaces/verification.interface'; import { IProofPresentationsListCount, IVerificationRecords } from '@credebl/common/interfaces/verification.interface'; import { Injectable, Logger, NotFoundException } from '@nestjs/common'; -// eslint-disable-next-line camelcase -import { Prisma, agent_invitations, org_agents, organisation, platform_config, presentations } from '@prisma/client'; +/* eslint-disable camelcase */ +import { + Prisma, + agent_invitations, + org_agents, + organisation, + platform_config, + presentations +} from '@credebl/prisma/client'; +/* eslint-enable camelcase */ import { CommonService } from '@credebl/common'; import { IUserRequest } from '@credebl/user-request/user-request.interface'; diff --git a/apps/verification/src/verification.controller.ts b/apps/verification/src/verification.controller.ts index 907c00a77b..8a805c7a63 100644 --- a/apps/verification/src/verification.controller.ts +++ b/apps/verification/src/verification.controller.ts @@ -10,7 +10,7 @@ import { IProofPresentationList, IVerificationRecords } from '@credebl/common/interfaces/verification.interface'; -import { presentations, user } from '@prisma/client'; +import { presentations, user } from '@credebl/prisma/client'; import { Controller } from '@nestjs/common'; import { IUserRequest } from '@credebl/user-request/user-request.interface'; diff --git a/apps/verification/src/verification.service.ts b/apps/verification/src/verification.service.ts index 460de7cc87..e0ee399083 100644 --- a/apps/verification/src/verification.service.ts +++ b/apps/verification/src/verification.service.ts @@ -25,7 +25,7 @@ import { } from './interfaces/verification.interface'; import { VerificationRepository } from './repositories/verification.repository'; import { ATTRIBUTE_NAME_REGEX, CommonConstants } from '@credebl/common/common.constant'; -import { RecordType, agent_invitations, org_agents, organisation, presentations, user } from '@prisma/client'; +import { RecordType, agent_invitations, org_agents, organisation, presentations, user } from '@credebl/prisma/client'; import { AutoAccept, VerificationProcessState } from '@credebl/enum/enum'; import { ResponseMessages } from '@credebl/common/response-messages'; import * as QRCode from 'qrcode'; diff --git a/apps/webhook/src/webhook.repository.ts b/apps/webhook/src/webhook.repository.ts index 2f8fb3cd8f..10c1290ac7 100644 --- a/apps/webhook/src/webhook.repository.ts +++ b/apps/webhook/src/webhook.repository.ts @@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { PrismaService } from '@credebl/prisma-service'; import { ICreateWebhookUrl, IGetWebhookUrl } from '../interfaces/webhook.interfaces'; -import { org_agents } from '@prisma/client'; +import { org_agents } from '@credebl/prisma/client'; import { IWebhookUrl } from '@credebl/common/interfaces/webhook.interface'; @Injectable() export class WebhookRepository { @@ -31,26 +31,23 @@ export class WebhookRepository { async getWebhookUrl(getWebhook: IWebhookUrl): Promise { try { - const { tenantId, orgId } = getWebhook; let webhookUrlInfo; if ((undefined === tenantId || 'default' === tenantId) && orgId) { webhookUrlInfo = await this.prisma.org_agents.findFirstOrThrow({ - where: { orgId } }); } else if (tenantId && 'default' !== tenantId) { webhookUrlInfo = await this.prisma.org_agents.findFirstOrThrow({ - where: { tenantId } }); } - + return webhookUrlInfo; } catch (error) { this.logger.error(`[getWebhookUrl] - webhook url details: ${JSON.stringify(error)}`); diff --git a/apps/x509/src/repositories/x509.repository.ts b/apps/x509/src/repositories/x509.repository.ts index 78226a2634..8499931973 100644 --- a/apps/x509/src/repositories/x509.repository.ts +++ b/apps/x509/src/repositories/x509.repository.ts @@ -12,7 +12,7 @@ import { } from '../interfaces/x509.interface'; import { x5cRecordStatus } from '@credebl/enum/enum'; import { ResponseMessages } from '@credebl/common/response-messages'; -import { org_agents } from '@prisma/client'; +import { org_agents } from '@credebl/prisma/client'; import { X509CertificateRecord } from '@credebl/common/interfaces/x509.interface'; @Injectable() diff --git a/apps/x509/src/x509.controller.ts b/apps/x509/src/x509.controller.ts index 8227e88e4a..e8ef7c0330 100644 --- a/apps/x509/src/x509.controller.ts +++ b/apps/x509/src/x509.controller.ts @@ -1,7 +1,7 @@ import { Controller } from '@nestjs/common'; import { MessagePattern } from '@nestjs/microservices'; import { X509CertificateService } from './x509.service'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { IUserRequest } from '@credebl/user-request/user-request.interface'; import { IX509ImportCertificateOptionsDto, diff --git a/apps/x509/src/x509.service.ts b/apps/x509/src/x509.service.ts index 81c1dec068..56fbfb0812 100644 --- a/apps/x509/src/x509.service.ts +++ b/apps/x509/src/x509.service.ts @@ -10,7 +10,7 @@ import { } from '@nestjs/common'; import { BaseService } from 'libs/service/base.service'; import { X509CertificateRepository } from './repositories/x509.repository'; -import { user } from '@prisma/client'; +import { user } from '@credebl/prisma/client'; import { ClientProxy, RpcException } from '@nestjs/microservices'; import { map } from 'rxjs'; import { diff --git a/libs/common/src/interfaces/cloud-wallet.interface.ts b/libs/common/src/interfaces/cloud-wallet.interface.ts index f4d8ab52f1..4e4e6b9d37 100644 --- a/libs/common/src/interfaces/cloud-wallet.interface.ts +++ b/libs/common/src/interfaces/cloud-wallet.interface.ts @@ -1,5 +1,5 @@ import { CloudWalletType } from '../../../enum/src/enum'; -import { $Enums } from '@prisma/client'; +import { $Enums } from '@credebl/prisma/client'; export class ICreateCloudWallet { label: string; diff --git a/libs/common/src/interfaces/oid4vp-verification.ts b/libs/common/src/interfaces/oid4vp-verification.ts index 91f54da7f8..a7d21bc792 100644 --- a/libs/common/src/interfaces/oid4vp-verification.ts +++ b/libs/common/src/interfaces/oid4vp-verification.ts @@ -1,5 +1,5 @@ import { ClientIdPrefix } from '@credebl/enum/enum'; -import { SignerOption } from '@prisma/client'; +import { SignerOption } from '@credebl/prisma/client'; export interface ClientMetadata { client_name: string; diff --git a/libs/common/src/interfaces/verification.interface.ts b/libs/common/src/interfaces/verification.interface.ts index 762512cbd1..dec5165321 100644 --- a/libs/common/src/interfaces/verification.interface.ts +++ b/libs/common/src/interfaces/verification.interface.ts @@ -1,4 +1,4 @@ -import { Prisma } from '@prisma/client'; +import { Prisma } from '@credebl/prisma/client'; export interface IProofPresentationsListCount { proofRequestsCount: number; diff --git a/libs/http-exception.filter.ts b/libs/http-exception.filter.ts index c7dc008fb0..61b05d8ecc 100644 --- a/libs/http-exception.filter.ts +++ b/libs/http-exception.filter.ts @@ -1,6 +1,6 @@ import { Catch, ExceptionFilter, HttpException, HttpStatus, Logger } from '@nestjs/common'; import { RpcException } from '@nestjs/microservices'; -import { PrismaClientKnownRequestError, PrismaClientValidationError } from '@prisma/client/runtime/library'; +import { PrismaClientKnownRequestError, PrismaClientValidationError } from '@credebl/prisma/internal/prismaNamespace'; import { Observable, throwError } from 'rxjs'; @Catch() @@ -35,7 +35,7 @@ export class HttpExceptionFilter implements ExceptionFilter { case 'P2011': // Null constraint violation on the {constraint} case 'P2017': // The records for relation {relation_name} between the {parent_name} and {child_name} models are not connected. case 'P2021': // The table {table} does not exist in the current database. - case 'P2022': // The column {column} does not exist in the current database. + case 'P2022': // The column {column} does not exist in the current database. httpStatus = HttpStatus.BAD_REQUEST; message = exception?.response?.message || exception?.message; break; @@ -76,4 +76,4 @@ export class HttpExceptionFilter implements ExceptionFilter { } return throwError(() => new RpcException({ message, code: httpStatus })); } -} \ No newline at end of file +} diff --git a/libs/org-roles/repositories/index.ts b/libs/org-roles/repositories/index.ts index 37b1607742..01beceb52f 100644 --- a/libs/org-roles/repositories/index.ts +++ b/libs/org-roles/repositories/index.ts @@ -2,13 +2,16 @@ import { Injectable, InternalServerErrorException, Logger } from '@nestjs/common import { PrismaService } from '@credebl/prisma-service'; // eslint-disable-next-line camelcase -import { org_roles } from '@prisma/client'; +import { org_roles } from '@credebl/prisma/client'; import { OrgRoles } from '../enums'; import { IOrgRoles } from '../interfaces/org-roles.interface'; @Injectable() export class OrgRolesRepository { - constructor(private readonly prisma: PrismaService, private readonly logger: Logger) {} + constructor( + private readonly prisma: PrismaService, + private readonly logger: Logger + ) {} // eslint-disable-next-line camelcase async getRole(roleName: string): Promise { @@ -24,40 +27,37 @@ export class OrgRolesRepository { throw new InternalServerErrorException('Bad Request'); } } - - - async getOrgRoles(): Promise { - try { - const roleDetails = await this.prisma.org_roles.findMany(); - const filteredRoles = roleDetails.filter(role => role.name !== OrgRoles.PLATFORM_ADMIN); - return filteredRoles; - } catch (error) { - this.logger.error(`In get org-roles repository: ${JSON.stringify(error)}`); - throw new InternalServerErrorException('Bad Request'); - - } + async getOrgRoles(): Promise { + try { + const roleDetails = await this.prisma.org_roles.findMany(); + const filteredRoles = roleDetails.filter((role) => role.name !== OrgRoles.PLATFORM_ADMIN); + return filteredRoles; + } catch (error) { + this.logger.error(`In get org-roles repository: ${JSON.stringify(error)}`); + throw new InternalServerErrorException('Bad Request'); } + } - // eslint-disable-next-line camelcase + // eslint-disable-next-line camelcase async getOrgRolesByIds(orgRoles: string[]): Promise { - try { - const roleDetails = await this.prisma.org_roles.findMany({ - where: { - id:{ - in:orgRoles - } - }, - select: { - id: true, - name: true, - description: true - } - }); - return roleDetails; - } catch (error) { - this.logger.error(`In get org-roles by id repository : ${JSON.stringify(error)}`); - throw error; + try { + const roleDetails = await this.prisma.org_roles.findMany({ + where: { + id: { + in: orgRoles + } + }, + select: { + id: true, + name: true, + description: true } + }); + return roleDetails; + } catch (error) { + this.logger.error(`In get org-roles by id repository : ${JSON.stringify(error)}`); + throw error; } -} \ No newline at end of file + } +} diff --git a/libs/org-roles/src/org-roles.service.ts b/libs/org-roles/src/org-roles.service.ts index a7ce01cdf3..428e235181 100644 --- a/libs/org-roles/src/org-roles.service.ts +++ b/libs/org-roles/src/org-roles.service.ts @@ -2,24 +2,26 @@ import { Injectable } from '@nestjs/common'; import { Logger } from '@nestjs/common'; import { OrgRolesRepository } from '../repositories'; // eslint-disable-next-line camelcase -import { org_roles } from '@prisma/client'; +import { org_roles } from '@credebl/prisma/client'; import { IOrgRoles } from '../interfaces/org-roles.interface'; @Injectable() export class OrgRolesService { - - constructor(private readonly orgRoleRepository: OrgRolesRepository, private readonly logger: Logger) { } + constructor( + private readonly orgRoleRepository: OrgRolesRepository, + private readonly logger: Logger + ) {} - // eslint-disable-next-line camelcase - async getRole(roleName: string): Promise { - return this.orgRoleRepository.getRole(roleName); - } + // eslint-disable-next-line camelcase + async getRole(roleName: string): Promise { + return this.orgRoleRepository.getRole(roleName); + } - async getOrgRoles(): Promise< IOrgRoles[]> { - return this.orgRoleRepository.getOrgRoles(); - } + async getOrgRoles(): Promise { + return this.orgRoleRepository.getOrgRoles(); + } - // eslint-disable-next-line camelcase - async getOrgRolesByIds(orgRoleIds: string[]): Promise { - return this.orgRoleRepository.getOrgRolesByIds(orgRoleIds); - } + // eslint-disable-next-line camelcase + async getOrgRolesByIds(orgRoleIds: string[]): Promise { + return this.orgRoleRepository.getOrgRolesByIds(orgRoleIds); + } } diff --git a/libs/prisma-service/src/prisma-service.service.ts b/libs/prisma-service/src/prisma-service.service.ts index f0a78eeeb5..dc723a6d19 100644 --- a/libs/prisma-service/src/prisma-service.service.ts +++ b/libs/prisma-service/src/prisma-service.service.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { INestApplication, Injectable, Logger, OnModuleInit } from '@nestjs/common'; -import { Prisma, PrismaClient } from '@prisma/client'; +import { Prisma, PrismaClient } from '../generated/prisma/client'; +import { PrismaPg } from '@prisma/adapter-pg'; @Injectable() export class PrismaService extends PrismaClient implements OnModuleInit { @@ -10,7 +11,11 @@ export class PrismaService extends PrismaClient implements OnModuleInit { private enable = (type: string): boolean => this.prismaLogs.includes(type); constructor() { + const connectionString = process.env.POOL_DATABASE_URL as string; + const adapter = new PrismaPg({ connectionString }); + super({ + adapter, log: [ { level: 'query', emit: 'event' }, { level: 'warn', emit: 'event' }, diff --git a/libs/user-activity/repositories/index.ts b/libs/user-activity/repositories/index.ts index 7342f79107..358d30a363 100644 --- a/libs/user-activity/repositories/index.ts +++ b/libs/user-activity/repositories/index.ts @@ -3,7 +3,7 @@ import { HttpException, HttpStatus, Inject, Injectable, Logger } from '@nestjs/common'; import { IUsersActivity } from '../interface'; import { PrismaService } from '@credebl/prisma-service'; -import { RecordType, user, user_activity } from '@prisma/client'; +import { RecordType, user, user_activity } from '@credebl/prisma/client'; import { lastValueFrom, timeout } from 'rxjs'; import { ClientProxy } from '@nestjs/microservices'; diff --git a/libs/user-activity/src/user-activity.service.ts b/libs/user-activity/src/user-activity.service.ts index f90f4f00a0..d82bdab11e 100644 --- a/libs/user-activity/src/user-activity.service.ts +++ b/libs/user-activity/src/user-activity.service.ts @@ -1,22 +1,18 @@ /* eslint-disable camelcase */ import { Injectable } from '@nestjs/common'; import { UserActivityRepository } from '../repositories'; -import { user_activity } from '@prisma/client'; +import { user_activity } from '@credebl/prisma/client'; import { IUsersActivity } from '../interface'; @Injectable() export class UserActivityService { + constructor(private readonly userActivityRepository: UserActivityRepository) {} - constructor( - private readonly userActivityRepository: UserActivityRepository - ) { } + async createActivity(userId: string, orgId: string, action: string, details: string): Promise { + return this.userActivityRepository.logActivity(userId, orgId, action, details); + } - async createActivity(userId: string, orgId: string, action: string, details: string): Promise { - - return this.userActivityRepository.logActivity(userId, orgId, action, details); - } - - async getUserActivity(userId: string, limit: number): Promise { - return this.userActivityRepository.getRecentActivities(userId, limit); - } + async getUserActivity(userId: string, limit: number): Promise { + return this.userActivityRepository.getRecentActivities(userId, limit); + } } diff --git a/libs/user-org-roles/repositories/index.ts b/libs/user-org-roles/repositories/index.ts index 5458796cdd..32c895b260 100644 --- a/libs/user-org-roles/repositories/index.ts +++ b/libs/user-org-roles/repositories/index.ts @@ -3,14 +3,17 @@ import { Injectable, Logger } from '@nestjs/common'; import { InternalServerErrorException } from '@nestjs/common'; import { PrismaService } from '@credebl/prisma-service'; // eslint-disable-next-line camelcase -import { user_org_roles } from '@prisma/client'; -import { Prisma } from '@prisma/client'; +import { user_org_roles } from '@credebl/prisma/client'; +import { Prisma } from '@credebl/prisma/client'; type UserOrgRolesWhereUniqueInput = Prisma.user_org_rolesWhereUniqueInput; @Injectable() export class UserOrgRolesRepository { - constructor(private readonly prisma: PrismaService, private readonly logger: Logger) {} + constructor( + private readonly prisma: PrismaService, + private readonly logger: Logger + ) {} /** * @@ -19,13 +22,12 @@ export class UserOrgRolesRepository { */ // eslint-disable-next-line camelcase async createUserOrgRole(userId: string, roleId: string, orgId?: string, idpRoleId?: string): Promise { - try { const data: { orgRole: { connect: { id: string } }; user: { connect: { id: string } }; organisation?: { connect: { id: string } }; - idpRoleId?: string + idpRoleId?: string; } = { orgRole: { connect: { id: roleId } }, user: { connect: { id: userId } } @@ -42,9 +44,8 @@ export class UserOrgRolesRepository { const saveResponse = await this.prisma.user_org_roles.create({ data }); - + return saveResponse; - } catch (error) { this.logger.error(`UserOrgRolesRepository:: createUserOrgRole: ${error}`); throw new InternalServerErrorException('User Org Role not created'); @@ -102,5 +103,4 @@ export class UserOrgRolesRepository { throw new InternalServerErrorException(error); } } - } diff --git a/libs/user-org-roles/src/user-org-roles.service.ts b/libs/user-org-roles/src/user-org-roles.service.ts index 0b87cd9cf6..af208bf627 100644 --- a/libs/user-org-roles/src/user-org-roles.service.ts +++ b/libs/user-org-roles/src/user-org-roles.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { UserOrgRolesRepository } from '../repositories'; // eslint-disable-next-line camelcase -import { user_org_roles } from '@prisma/client'; +import { user_org_roles } from '@credebl/prisma/client'; @Injectable() export class UserOrgRolesService { @@ -17,11 +17,10 @@ export class UserOrgRolesService { return this.userOrgRoleRepository.createUserOrgRole(userId, roleId, orgId, idpRoleId); } - /** - * - * @param userId - * @param orgId + * + * @param userId + * @param orgId * @returns Boolean response for user exist */ async checkUserOrgExist(userId: string, orgId: string): Promise { @@ -38,20 +37,18 @@ export class UserOrgRolesService { return true; } - /** - * - * @param userId - * @param orgId - * @param roleIds - * @returns + * + * @param userId + * @param orgId + * @param roleIds + * @returns */ async updateUserOrgRole( userId: string, orgId: string, - roleIdList: {roleId: string, idpRoleId: string}[] - ): Promise { - + roleIdList: { roleId: string; idpRoleId: string }[] + ): Promise { for (const roleData of roleIdList) { this.userOrgRoleRepository.createUserOrgRole(userId, roleData.roleId, orgId, roleData.idpRoleId); } @@ -60,19 +57,17 @@ export class UserOrgRolesService { } /** - * - * @param userId - * @param orgId + * + * @param userId + * @param orgId * @returns Delete user org roles */ async deleteOrgRoles(userId: string, orgId: string): Promise { - const queryOptions = { userId, orgId }; return this.userOrgRoleRepository.deleteMany(queryOptions); - } } diff --git a/tsconfig.json b/tsconfig.json index 48e1b3c98f..990f7d3786 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -66,7 +66,7 @@ "libs/prisma-service/src/*" ], "@credebl/prisma/*": [ - "libs/prisma/src/*" + "libs/prisma-service/generated/prisma/*" ], "@credebl/repositories": [ "libs/repositories/src"