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 4b82df9a5..1bbd3fb6a 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 20f15ecff..817307c1a 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 072f87a02..b8a577fd2 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 5d16bf99c..00cad186b 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 0a0bbec1a..bea28a348 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 000000000..0cd28fd55 --- /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 18d5d2bd1..daec12a82 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 823432c7d..cdc832b55 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 2aa6cace6..db51f9107 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 4204389fa..fac3e111c 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 a88543085..4d21eaf63 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 398b3482e..528f1523d 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 31d375603..cc124e00a 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 f5e28d931..27cb103b6 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 8c4a60197..989bd7d71 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 bdf32a8f2..673ca4de6 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 c1791888b..911b56599 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 f90bbb90a..f1d21550a 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 ee646dd93..3b88f9c32 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 9fde40303..65abdc897 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 a060788a4..ea31307d9 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 f581c11f4..71f677967 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 6d3ba32d7..14c0ff959 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 9f0f42c92..735c57046 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 f182e362b..bb4973763 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 57d7e5d0f..ee3d4232b 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 c6bb03b89..713730f46 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 5fd03a93c..fd3b0f15b 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 1bbb6de32..cdabea2ac 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 797909344..8d5763bea 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 98a5d3e6f..f31a979e7 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 cf502af68..35ffd904e 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 6537c17b2..047e3dd78 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 126d337be..e07859bbb 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 90c44d14b..fc9011022 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 7028b3b8c..a38c15eef 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 d32a985e9..7025a4a2f 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 a1b860b68..75ca860f8 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 24d4918d4..a45d8698a 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 03029dd27..4216a3f81 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 cbd952442..2763edcc7 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 68eb70a23..51b040f17 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 a572cdedd..782bec5ec 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 e4ce19597..91db53794 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 cbf63f788..5d9f89fd6 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 cb5c92fbd..19f5eec6d 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 ec43c8385..4f6c489a2 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 e05218e92..9a1c71047 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 dad9de317..1c1832490 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 4b795575d..4f6cc4add 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 a2a817023..2cd08ec4b 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 8a6910421..f2f350714 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 464835180..e6bca4865 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 6fb847924..a2055593b 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 abc653b19..f4e3cf697 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 8fa95635a..8bda845c3 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 04dce88af..defdfee9a 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 138929978..69997776d 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 05d9ffcb8..eca522e2d 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 6923b49ea..05cc9c9b6 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 250203dfb..d7dd51cc1 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 170f6c3ac..421d0df0e 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 176d365f5..a628d3c40 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 f21c0678d..888d24b93 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 45d36462c..41065527f 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 d4b4f5f31..f4bfe5e5e 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 be9613ed6..df50f3951 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 2b33c19e1..30152b28b 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 a2b8b208d..3ebf606c2 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 f5a3426ad..4149d947d 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 b1e471fc3..8787af392 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 b90a25abf..8ecae53f7 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 1abe9578e..4710f78fa 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 c39d7ae26..abed92578 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 6c57e73a3..5f68ad7b1 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 52ae1ee7d..fa6e49e35 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 77b6abcdc..933fc91a4 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 3c8862d19..5490afb55 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 a011c0ceb..396b38dfd 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 0401e4468..bcee4408c 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 14c2d50ad..163797498 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 7ad259b27..06b67b0cc 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 316e82df2..7a2737772 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 0c344161b..53c1ca9d9 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 b00f19112..dbec2523d 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 ea78d1627..94b092c33 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 f9935f81b..ce0091fea 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 3889e96c2..11e508bb2 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 5731998f1..1cb754f1d 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 28fa83bf7..77d042749 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 ad138d24c..d54a424eb 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 61ae918b3..e54427e41 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 907c00a77..8a805c7a6 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 460de7cc8..e0ee39908 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 2f8fb3cd8..10c1290ac 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 78226a263..849993197 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 8227e88e4..e8ef7c033 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 81c1dec06..56fbfb081 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 f4d8ab52f..4e4e6b9d3 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 91f54da7f..a7d21bc79 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 762512cbd..dec516532 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 c7dc008fb..61b05d8ec 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 37b160774..01beceb52 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 a7ce01cdf..428e23518 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 f0a78eeeb..dc723a6d1 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 7342f7910..358d30a36 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 f90f4f00a..d82bdab11 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 5458796cd..32c895b26 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 0b87cd9cf..af208bf62 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 48e1b3c98..990f7d378 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"