@happyvertical/smrt-profiles 0.57.28 → 0.57.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ import { t as ProfileRelationshipTypeCollection } from "./chunks/ProfileRelation
20
20
  import { ObjectRegistry, SmrtCollection, SmrtObject, SmrtRecipe, field, foreignKey, smrt } from "@happyvertical/smrt-core";
21
21
  import { createHash, randomBytes } from "node:crypto";
22
22
  //#region src/__smrt-register__.ts
23
- ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-profiles","packageVersion":"0.57.28","objects":{"@happyvertical/smrt-profiles:ApiKeyCollection":{"name":"apikeycollection","className":"ApiKeyCollection","qualifiedName":"@happyvertical/smrt-profiles:ApiKeyCollection","collection":"apikeys","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ApiKeyCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"findActiveByProfile":{"name":"findActiveByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"findByHash":{"name":"findByHash","async":true,"parameters":[{"name":"keyHash","type":"string","optional":false}],"returnType":"Promise<ApiKey | null>","isStatic":false,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"key","type":"string","optional":false}],"returnType":"Promise<ApiKey | null>","isStatic":false,"isPublic":true},"generateForProfile":{"name":"generateForProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"revokeAllForProfile":{"name":"revokeAllForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"revokeByPrefix":{"name":"revokeByPrefix","async":true,"parameters":[{"name":"keyPrefix","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"cleanupExpired":{"name":"cleanupExpired","async":true,"parameters":[],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"api_keys","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get","create"],"skipApiCheck":true}},"extends":"SmrtCollection","extendsTypeArg":"ApiKey","exportName":"ApiKeyCollection","collectionExportName":"ApiKeyCollectionCollection","schema":{"tableName":"api_keys","ddl":"CREATE TABLE IF NOT EXISTS \\"api_keys\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"key_hash\\" TEXT DEFAULT '',\\n \\"key_prefix\\" TEXT DEFAULT '',\\n \\"name\\" TEXT DEFAULT '',\\n \\"scopes\\" JSON DEFAULT '[]',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"expires_at\\" TIMESTAMP,\\n \\"revoked_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"key_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"key_prefix":{"type":"TEXT","notNull":false,"unique":false,"default":""},"name":{"type":"TEXT","notNull":false,"unique":false,"default":""},"scopes":{"type":"JSON","notNull":false,"unique":false,"default":[]},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"revoked_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"api_keys_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"api_keys_key_hash_idx","columns":["key_hash"]},{"name":"api_keys_created_at_idx","columns":["created_at"]},{"name":"api_keys_profile_id_idx","columns":["profile_id"]}],"version":"9b0d49e8"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:AuditLogCollection":{"name":"auditlogcollection","className":"AuditLogCollection","qualifiedName":"@happyvertical/smrt-profiles:AuditLogCollection","collection":"auditlogs","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/AuditLogCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findByResource":{"name":"findByResource","async":true,"parameters":[{"name":"resourceType","type":"string","optional":false},{"name":"resourceId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findByAction":{"name":"findByAction","async":true,"parameters":[{"name":"action","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findBySource":{"name":"findBySource","async":true,"parameters":[{"name":"source","type":"AuditSource","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findOnBehalfOf":{"name":"findOnBehalfOf","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"record":{"name":"record","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["Profile","string","AuditSource","Record<string, unknown>","Profile | null","Record<string, AuditChange>"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true},"getRecentActivity":{"name":"getRecentActivity","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"getResourceTimeline":{"name":"getResourceTimeline","async":true,"parameters":[{"name":"resourceType","type":"string","optional":false},{"name":"resourceId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"audit_logs","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"AuditLog","exportName":"AuditLogCollection","collectionExportName":"AuditLogCollectionCollection","schema":{"tableName":"audit_logs","ddl":"CREATE TABLE IF NOT EXISTS \\"audit_logs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"action\\" TEXT DEFAULT '',\\n \\"reason\\" TEXT DEFAULT '',\\n \\"changes\\" JSON DEFAULT '{}',\\n \\"resource_type\\" TEXT DEFAULT '',\\n \\"resource_id\\" TEXT DEFAULT '',\\n \\"occurred_at\\" TIMESTAMP DEFAULT current_timestamp,\\n \\"source\\" TEXT DEFAULT 'web',\\n \\"metadata\\" JSON DEFAULT '{}',\\n \\"on_behalf_of_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"action":{"type":"TEXT","notNull":false,"unique":false,"default":""},"reason":{"type":"TEXT","notNull":false,"unique":false,"default":""},"changes":{"type":"JSON","notNull":false,"unique":false,"default":{}},"resource_type":{"type":"TEXT","notNull":false,"unique":false,"default":""},"resource_id":{"type":"TEXT","notNull":false,"unique":false,"default":""},"occurred_at":{"type":"TIMESTAMP","notNull":false,"unique":false,"default":"current_timestamp"},"source":{"type":"TEXT","notNull":false,"unique":false,"default":"web"},"metadata":{"type":"JSON","notNull":false,"unique":false,"default":{}},"on_behalf_of_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"audit_logs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"audit_logs_resource_type_idx","columns":["resource_type"]},{"name":"audit_logs_resource_id_idx","columns":["resource_id"]},{"name":"audit_logs_occurred_at_idx","columns":["occurred_at"]},{"name":"audit_logs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"audit_logs_profile_id_idx","columns":["profile_id"]},{"name":"audit_logs_on_behalf_of_id_idx","columns":["on_behalf_of_id"]}],"version":"769bd855"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:MagicLinkTokenCollection":{"name":"magiclinktokencollection","className":"MagicLinkTokenCollection","qualifiedName":"@happyvertical/smrt-profiles:MagicLinkTokenCollection","collection":"magiclinktokens","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/MagicLinkTokenCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByTokenHash":{"name":"findByTokenHash","async":true,"parameters":[{"name":"tokenHash","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken | null>","isStatic":false,"isPublic":true},"findActiveForEmail":{"name":"findActiveForEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken[]>","isStatic":false,"isPublic":true},"findByIdentity":{"name":"findByIdentity","async":true,"parameters":[{"name":"nostrIdentityId","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken[]>","isStatic":false,"isPublic":true},"countRecentByEmail":{"name":"countRecentByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"withinMinutes","type":"number","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"countRecentByIp":{"name":"countRecentByIp","async":true,"parameters":[{"name":"ip","type":"string","optional":false},{"name":"withinMinutes","type":"number","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"token","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken | null>","isStatic":false,"isPublic":true},"cleanupExpired":{"name":"cleanupExpired","async":true,"parameters":[],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"revokeForIdentity":{"name":"revokeForIdentity","async":true,"parameters":[{"name":"nostrIdentityId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"isRateLimitedByEmail":{"name":"isRateLimitedByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"maxPerHour","type":"number","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"isRateLimitedByIp":{"name":"isRateLimitedByIp","async":true,"parameters":[{"name":"ip","type":"string","optional":false},{"name":"maxPerHour","type":"number","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"magic_link_tokens","api":{"exclude":["*"]},"mcp":{"include":["list","get"]},"cli":{"include":["list"]}},"extends":"SmrtCollection","extendsTypeArg":"MagicLinkToken","exportName":"MagicLinkTokenCollection","collectionExportName":"MagicLinkTokenCollectionCollection","schema":{"tableName":"magic_link_tokens","ddl":"CREATE TABLE IF NOT EXISTS \\"magic_link_tokens\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"nostr_identity_id\\" UUID NOT NULL,\\n \\"token_hash\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"expires_at\\" TIMESTAMP,\\n \\"used_at\\" TIMESTAMP,\\n \\"requested_from_ip\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"nostr_identity_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"nostr_identities","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"token_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"requested_from_ip":{"type":"TEXT","notNull":false,"unique":false,"default":""}},"indexes":[{"name":"magic_link_tokens_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"magic_link_tokens_token_hash_idx","columns":["token_hash"]},{"name":"magic_link_tokens_created_at_idx","columns":["created_at"]},{"name":"magic_link_tokens_nostr_identity_id_idx","columns":["nostr_identity_id"]}],"version":"d60748fe"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:NostrIdentityCollection":{"name":"nostridentitycollection","className":"NostrIdentityCollection","qualifiedName":"@happyvertical/smrt-profiles:NostrIdentityCollection","collection":"nostridentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/NostrIdentityCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"findByPubkey":{"name":"findByPubkey","async":true,"parameters":[{"name":"pubkey","type":"string","optional":false}],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"findByEmail":{"name":"findByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"findByNip05":{"name":"findByNip05","async":true,"parameters":[{"name":"username","type":"string","optional":false}],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"createForProfile":{"name":"createForProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"email","type":"string","optional":false},{"name":"masterSecret","type":"string","optional":false},{"name":"nip05Username","type":"string","optional":true}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"linkToProfile":{"name":"linkToProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"unlinkFromProfile":{"name":"unlinkFromProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"pubkey","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getNip05Response":{"name":"getNip05Response","async":true,"parameters":[{"name":"username","type":"string","optional":true}],"returnType":"Promise<Nip05Response>","isStatic":false,"isPublic":true},"isNip05Available":{"name":"isNip05Available","async":true,"parameters":[{"name":"username","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"updateNip05Username":{"name":"updateNip05Username","async":true,"parameters":[{"name":"identity","type":"NostrIdentity","optional":false},{"name":"newUsername","type":"string","optional":false}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"nostr_identities","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"NostrIdentity","exportName":"NostrIdentityCollection","collectionExportName":"NostrIdentityCollectionCollection","schema":{"tableName":"nostr_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"nostr_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"pubkey\\" TEXT DEFAULT '',\\n \\"encrypted_privkey\\" TEXT DEFAULT '',\\n \\"encryption_iv\\" TEXT DEFAULT '',\\n \\"encryption_tag\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"nip05_username\\" TEXT DEFAULT '',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"verified_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"pubkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encrypted_privkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_iv":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_tag":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"nip05_username":{"type":"TEXT","notNull":false,"unique":false,"default":""},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"verified_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"nostr_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"nostr_identities_pubkey_idx","columns":["pubkey"]},{"name":"nostr_identities_created_at_idx","columns":["created_at"]},{"name":"nostr_identities_profile_id_idx","columns":["profile_id"]}],"version":"92eda375"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcIdentityCollection":{"name":"oidcidentitycollection","className":"OidcIdentityCollection","qualifiedName":"@happyvertical/smrt-profiles:OidcIdentityCollection","collection":"oidcidentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/OidcIdentityCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"findBySubject":{"name":"findBySubject","async":true,"parameters":[{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false}],"returnType":"Promise<OidcIdentity | null>","isStatic":false,"isPublic":true},"findByProvider":{"name":"findByProvider","async":true,"parameters":[{"name":"provider","type":"string","optional":false}],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkToProfile":{"name":"linkToProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"unlinkFromProfile":{"name":"unlinkFromProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"oidc_identities","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"OidcIdentity","exportName":"OidcIdentityCollection","collectionExportName":"OidcIdentityCollectionCollection","schema":{"tableName":"oidc_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT,\\n \\"issuer\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"identity_key\\" TEXT UNIQUE,\\n \\"email\\" TEXT,\\n \\"last_used_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"provider":{"type":"TEXT","notNull":false,"unique":false},"issuer":{"type":"TEXT","notNull":false,"unique":false},"subject":{"type":"TEXT","notNull":false,"unique":false},"identity_key":{"type":"TEXT","notNull":false,"unique":true},"email":{"type":"TEXT","notNull":false,"unique":false},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"oidc_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_identities_issuer_idx","columns":["issuer"]},{"name":"oidc_identities_subject_idx","columns":["subject"]},{"name":"oidc_identities_created_at_idx","columns":["created_at"]},{"name":"oidc_identities_profile_id_idx","columns":["profile_id"]}],"version":"925387ea"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcProfileEmailReservationCollection":{"name":"oidcprofileemailreservationcollection","className":"OidcProfileEmailReservationCollection","qualifiedName":"@happyvertical/smrt-profiles:OidcProfileEmailReservationCollection","collection":"oidcprofileemailreservations","description":"Internal collection for canonical OIDC email reservations.","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/OidcProfileEmailReservationCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{},"decoratorConfig":{"tableName":"oidc_profile_email_reservations","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"OidcProfileEmailReservation","exportName":"OidcProfileEmailReservationCollection","collectionExportName":"OidcProfileEmailReservationCollectionCollection","schema":{"tableName":"oidc_profile_email_reservations","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_profile_email_reservations\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL UNIQUE,\\n \\"email_key\\" TEXT NOT NULL UNIQUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":true,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email_key":{"type":"TEXT","notNull":true,"unique":true}},"indexes":[{"name":"oidc_profile_email_reservations_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_profile_email_reservations_created_at_idx","columns":["created_at"]}],"version":"01586e67"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileAssetCollection":{"name":"profileassetcollection","className":"ProfileAssetCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileAssetCollection","collection":"profileassets","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileAssetCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"byRight":{"name":"byRight","async":true,"parameters":[{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<TItem[]>","isStatic":false,"isPublic":true},"byLeft":{"name":"byLeft","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<TItem[]>","isStatic":false,"isPublic":true},"attach":{"name":"attach","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<TItem>","isStatic":false,"isPublic":true},"detach":{"name":"detach","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightIds","type":"string[]","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":false,"mcp":false,"cli":false,"tableName":"profile_assets"},"extends":"SmrtJunction","extendsTypeArg":"ProfileAsset","exportName":"ProfileAssetCollection","collectionExportName":"ProfileAssetCollectionCollection","schema":{"tableName":"profile_assets","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"asset_id\\" UUID NOT NULL,\\n \\"relationship\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"relationship":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_assets_profile_id_asset_id_idx","columns":["profile_id","asset_id","relationship"],"unique":true},{"name":"profile_assets_slug_context_idx","columns":["slug","context"]},{"name":"profile_assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_assets_asset_id_idx","columns":["asset_id"]}],"version":"d0d7c2a2"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileCollection":{"name":"profilecollection","className":"ProfileCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileCollection","collection":"profiles","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByEmail":{"name":"findByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"findUniqueGlobalPersonByEmail":{"name":"findUniqueGlobalPersonByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"requireCanonicalGlobalPerson":{"name":"requireCanonicalGlobalPerson","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"email","type":"string","optional":true}],"returnType":"Promise<Profile>","isStatic":false,"isPublic":true},"reserveCanonicalIdentityEmail":{"name":"reserveCanonicalIdentityEmail","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"email","type":"string","optional":true}],"returnType":"Promise<Profile>","isStatic":false,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"batchGetMetadata":{"name":"batchGetMetadata","async":true,"parameters":[{"name":"profileIds","type":"string[]","optional":false}],"returnType":"Promise<Map<string, Record<string, string>>>","isStatic":false,"isPublic":true},"batchUpdateMetadata":{"name":"batchUpdateMetadata","async":true,"parameters":[{"name":"updates","type":"Array<object>","optional":false,"memberTypes":["string","Record<string, unknown>"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationshipNetwork":{"name":"getRelationshipNetwork","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["number"]}],"returnType":"Promise<Map<string, number>>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]}},"extends":"SmrtCollection","extendsTypeArg":"Profile","exportName":"ProfileCollection","collectionExportName":"ProfileCollectionCollection","schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"f4a7b632"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileLinkCollection":{"name":"profilelinkcollection","className":"ProfileLinkCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileLinkCollection","collection":"profilelinks","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileLinkCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"listForProfile":{"name":"listForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"replaceForProfile":{"name":"replaceForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"reorder":{"name":"reorder","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"linkIds","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"profile_links","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"ProfileLink","exportName":"ProfileLinkCollection","collectionExportName":"ProfileLinkCollectionCollection","schema":{"tableName":"profile_links","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_links\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"platform\\" TEXT NOT NULL DEFAULT 'website',\\n \\"url\\" TEXT NOT NULL,\\n \\"label\\" TEXT,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"platform":{"type":"TEXT","notNull":true,"unique":false,"default":"website"},"url":{"type":"TEXT","notNull":true,"unique":false},"label":{"type":"TEXT","notNull":false,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_links_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"profile_links_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_links_profile_id_idx","columns":["profile_id"]}],"version":"847fd648"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetadataCollection":{"name":"profilemetadatacollection","className":"ProfileMetadataCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetadataCollection","collection":"profilemetadatas","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileMetadataCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getByProfile":{"name":"getByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ProfileMetadata[]>","isStatic":false,"isPublic":true},"getMetadataObject":{"name":"getMetadataObject","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"findProfilesByMetadata":{"name":"findProfilesByMetadata","async":true,"parameters":[{"name":"metafieldId","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<string[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileMetadata","exportName":"ProfileMetadataCollection","collectionExportName":"ProfileMetadataCollectionCollection","schema":{"tableName":"profile_metadata","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metadata\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID,\\n \\"metafield_id\\" UUID,\\n \\"value\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"metafield_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_metafields","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"value":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"profile_metadata_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metadata_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metadata_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_metadata_profile_id_idx","columns":["profile_id"]},{"name":"profile_metadata_metafield_id_idx","columns":["metafield_id"]}],"version":"d3ab1b70"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetafieldCollection":{"name":"profilemetafieldcollection","className":"ProfileMetafieldCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetafieldCollection","collection":"profilemetafields","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileMetafieldCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<ProfileMetafield | null>","isStatic":false,"isPublic":true},"getOrCreateBySlug":{"name":"getOrCreateBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string","ValidationSchema"]}],"returnType":"Promise<ProfileMetafield>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileMetafield","exportName":"ProfileMetafieldCollection","collectionExportName":"ProfileMetafieldCollectionCollection","schema":{"tableName":"profile_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"validation\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"validation":{"type":"JSON","notNull":false}},"indexes":[{"name":"profile_metafields_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metafields_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"afe420df"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipCollection":{"name":"profilerelationshipcollection","className":"ProfileRelationshipCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipCollection","collection":"profilerelationships","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileRelationshipCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getFromProfile":{"name":"getFromProfile","async":true,"parameters":[{"name":"fromProfileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":true}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getToProfile":{"name":"getToProfile","async":true,"parameters":[{"name":"toProfileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":true}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getForProfile":{"name":"getForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":true}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"exists":{"name":"exists","async":true,"parameters":[{"name":"fromProfileId","type":"string","optional":false},{"name":"toProfileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileRelationship","exportName":"ProfileRelationshipCollection","collectionExportName":"ProfileRelationshipCollectionCollection","schema":{"tableName":"profile_relationships","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationships\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"from_profile_id\\" UUID,\\n \\"to_profile_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"context_profile_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"from_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"to_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationship_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"context_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"profile_relationships_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_relationships_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationships_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_relationships_from_profile_id_idx","columns":["from_profile_id"]},{"name":"profile_relationships_to_profile_id_idx","columns":["to_profile_id"]},{"name":"profile_relationships_type_id_idx","columns":["type_id"]},{"name":"profile_relationships_context_profile_id_idx","columns":["context_profile_id"]}],"version":"48878dba"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipTermCollection":{"name":"profilerelationshiptermcollection","className":"ProfileRelationshipTermCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipTermCollection","collection":"profilerelationshipterms","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileRelationshipTermCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getByRelationship":{"name":"getByRelationship","async":true,"parameters":[{"name":"relationshipId","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipTerm[]>","isStatic":false,"isPublic":true},"getActiveTerm":{"name":"getActiveTerm","async":true,"parameters":[{"name":"relationshipId","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipTerm | null>","isStatic":false,"isPublic":true},"getHistoricalTerms":{"name":"getHistoricalTerms","async":true,"parameters":[{"name":"relationshipId","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipTerm[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileRelationshipTerm","exportName":"ProfileRelationshipTermCollection","collectionExportName":"ProfileRelationshipTermCollectionCollection","schema":{"tableName":"profile_relationship_terms","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_terms\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"relationship_id\\" UUID,\\n \\"started_at\\" TIMESTAMP,\\n \\"ended_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"relationship_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationships","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"started_at":{"type":"TIMESTAMP","notNull":false},"ended_at":{"type":"TIMESTAMP","notNull":false}},"indexes":[{"name":"profile_relationship_terms_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_terms_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_terms_created_at_idx","columns":["created_at"]},{"name":"profile_relationship_terms_relationship_id_idx","columns":["relationship_id"]}],"version":"ef299102"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipTypeCollection":{"name":"profilerelationshiptypecollection","className":"ProfileRelationshipTypeCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipTypeCollection","collection":"profilerelationshiptypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileRelationshipTypeCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipType | null>","isStatic":false,"isPublic":true},"getOrCreateBySlug":{"name":"getOrCreateBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string","boolean"]}],"returnType":"Promise<ProfileRelationshipType>","isStatic":false,"isPublic":true},"getReciprocal":{"name":"getReciprocal","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipType[]>","isStatic":false,"isPublic":true},"getDirectional":{"name":"getDirectional","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipType[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileRelationshipType","exportName":"ProfileRelationshipTypeCollection","collectionExportName":"ProfileRelationshipTypeCollectionCollection","schema":{"tableName":"profile_relationship_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT DEFAULT '',\\n \\"reciprocal\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false,"default":""},"reciprocal":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"profile_relationship_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_types_created_at_idx","columns":["created_at"]}],"version":"719fe0d9"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileTypeCollection":{"name":"profiletypecollection","className":"ProfileTypeCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileTypeCollection","collection":"profiletypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileTypeCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<ProfileType | null>","isStatic":false,"isPublic":true},"getAvailableById":{"name":"getAvailableById","async":true,"parameters":[{"name":"id","type":"string","optional":false},{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<ProfileType | null>","isStatic":false,"isPublic":true},"getOrCreateBySlug":{"name":"getOrCreateBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<ProfileType>","isStatic":false,"isPublic":true},"getOrCreateGlobalBySlug":{"name":"getOrCreateGlobalBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<ProfileType>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileType","exportName":"ProfileTypeCollection","collectionExportName":"ProfileTypeCollectionCollection","schema":{"tableName":"profile_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"profile_types_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_types_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"0fb37aeb"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ApiKey":{"name":"apikey","className":"ApiKey","qualifiedName":"@happyvertical/smrt-profiles:ApiKey","collection":"apikeys","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ApiKey.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"keyHash":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"keyPrefix":{"type":"text","required":false,"default":""},"name":{"type":"text","required":false,"default":""},"scopes":{"type":"json","required":false,"default":[]},"lastUsedAt":{"type":"datetime","required":false},"expiresAt":{"type":"datetime","required":false},"revokedAt":{"type":"datetime","required":false}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"isValid":{"name":"isValid","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"hasScope":{"name":"hasScope","async":false,"parameters":[{"name":"scope","type":"string","optional":false}],"returnType":"boolean","isStatic":false,"isPublic":true},"revoke":{"name":"revoke","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"recordUsage":{"name":"recordUsage","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"hashKey":{"name":"hashKey","async":false,"parameters":[{"name":"key","type":"string","optional":false}],"returnType":"string","isStatic":true,"isPublic":true},"generate":{"name":"generate","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":true,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"key","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<ApiKey | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableName":"api_keys","sensitive":true,"api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get","create","revoke"],"skipApiCheck":true}},"extends":"SmrtObject","exportName":"ApiKey","collectionExportName":"ApiKeyCollection","displayLabelField":"name","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"api_keys","ddl":"CREATE TABLE IF NOT EXISTS \\"api_keys\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"key_hash\\" TEXT DEFAULT '',\\n \\"key_prefix\\" TEXT DEFAULT '',\\n \\"name\\" TEXT DEFAULT '',\\n \\"scopes\\" JSON DEFAULT '[]',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"expires_at\\" TIMESTAMP,\\n \\"revoked_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"key_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"key_prefix":{"type":"TEXT","notNull":false,"unique":false,"default":""},"name":{"type":"TEXT","notNull":false,"unique":false,"default":""},"scopes":{"type":"JSON","notNull":false,"unique":false,"default":[]},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"revoked_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"api_keys_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"api_keys_key_hash_idx","columns":["key_hash"]},{"name":"api_keys_created_at_idx","columns":["created_at"]},{"name":"api_keys_profile_id_idx","columns":["profile_id"]}],"version":"9b0d49e8"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:AuditLog":{"name":"auditlog","className":"AuditLog","qualifiedName":"@happyvertical/smrt-profiles:AuditLog","collection":"auditlogs","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/AuditLog.ts","packageName":"@happyvertical/smrt-profiles","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":true}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"action":{"type":"text","required":false,"default":""},"reason":{"type":"text","required":false,"default":""},"changes":{"type":"json","required":false,"default":{}},"resourceType":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"resourceId":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"occurredAt":{"type":"datetime","required":false,"default":"current_timestamp","_meta":{"indexed":true,"default":"current_timestamp"}},"source":{"type":"text","required":false,"default":"web","enum":["web","cli","ci","webhook","mcp"]},"metadata":{"type":"json","required":false,"default":{}},"onBehalfOfId":{"type":"foreignKey","required":false,"related":"Profile","_meta":{"nullable":true}}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"getOnBehalfOf":{"name":"getOnBehalfOf","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"getEffectiveActor":{"name":"getEffectiveActor","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"record":{"name":"record","async":true,"parameters":[{"name":"options","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<AuditLog>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableName":"audit_logs","sensitive":true,"api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional","allowSuperAdminBypass":true},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"AuditLog","collectionExportName":"AuditLogCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"audit_logs","ddl":"CREATE TABLE IF NOT EXISTS \\"audit_logs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"action\\" TEXT DEFAULT '',\\n \\"reason\\" TEXT DEFAULT '',\\n \\"changes\\" JSON DEFAULT '{}',\\n \\"resource_type\\" TEXT DEFAULT '',\\n \\"resource_id\\" TEXT DEFAULT '',\\n \\"occurred_at\\" TIMESTAMP DEFAULT current_timestamp,\\n \\"source\\" TEXT DEFAULT 'web',\\n \\"metadata\\" JSON DEFAULT '{}',\\n \\"on_behalf_of_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"action":{"type":"TEXT","notNull":false,"unique":false,"default":""},"reason":{"type":"TEXT","notNull":false,"unique":false,"default":""},"changes":{"type":"JSON","notNull":false,"unique":false,"default":{}},"resource_type":{"type":"TEXT","notNull":false,"unique":false,"default":""},"resource_id":{"type":"TEXT","notNull":false,"unique":false,"default":""},"occurred_at":{"type":"TIMESTAMP","notNull":false,"unique":false,"default":"current_timestamp"},"source":{"type":"TEXT","notNull":false,"unique":false,"default":"web"},"metadata":{"type":"JSON","notNull":false,"unique":false,"default":{}},"on_behalf_of_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"audit_logs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"audit_logs_resource_type_idx","columns":["resource_type"]},{"name":"audit_logs_resource_id_idx","columns":["resource_id"]},{"name":"audit_logs_occurred_at_idx","columns":["occurred_at"]},{"name":"audit_logs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"audit_logs_profile_id_idx","columns":["profile_id"]},{"name":"audit_logs_on_behalf_of_id_idx","columns":["on_behalf_of_id"]}],"version":"769bd855"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:MagicLinkToken":{"name":"magiclinktoken","className":"MagicLinkToken","qualifiedName":"@happyvertical/smrt-profiles:MagicLinkToken","collection":"magiclinktokens","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/MagicLinkToken.ts","packageName":"@happyvertical/smrt-profiles","fields":{"nostrIdentityId":{"type":"foreignKey","required":true,"related":"NostrIdentity","_meta":{"required":true}},"tokenHash":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"email":{"type":"text","required":false,"default":""},"expiresAt":{"type":"datetime","required":false},"usedAt":{"type":"datetime","required":false},"requestedFromIp":{"type":"text","required":false,"default":""},"createdAt":{"type":"datetime","required":false}},"methods":{"hashToken":{"name":"hashToken","async":false,"parameters":[{"name":"token","type":"string","optional":false}],"returnType":"string","isStatic":true,"isPublic":true},"generate":{"name":"generate","async":true,"parameters":[{"name":"nostrIdentity","type":"NostrIdentity","optional":false},{"name":"email","type":"string","optional":false},{"name":"options","type":"object","optional":true,"typeUnresolved":true,"memberTypes":["number","string"]}],"returnType":"Promise<GenerateTokenResult>","isStatic":true,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"token","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<MagicLinkToken | null>","isStatic":true,"isPublic":true},"isValid":{"name":"isValid","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isExpired":{"name":"isExpired","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isUsed":{"name":"isUsed","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"markUsed":{"name":"markUsed","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getNostrIdentity":{"name":"getNostrIdentity","async":true,"parameters":[],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"getTimeRemainingSeconds":{"name":"getTimeRemainingSeconds","async":false,"parameters":[],"returnType":"number","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"magic_link_tokens","sensitive":true,"api":{"exclude":["*"]},"mcp":{"exclude":["*"]},"cli":{"include":["list"]}},"extends":"SmrtObject","exportName":"MagicLinkToken","collectionExportName":"MagicLinkTokenCollection","validationRules":[{"field":"nostrIdentityId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"magic_link_tokens","ddl":"CREATE TABLE IF NOT EXISTS \\"magic_link_tokens\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"nostr_identity_id\\" UUID NOT NULL,\\n \\"token_hash\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"expires_at\\" TIMESTAMP,\\n \\"used_at\\" TIMESTAMP,\\n \\"requested_from_ip\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"nostr_identity_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"nostr_identities","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"token_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"requested_from_ip":{"type":"TEXT","notNull":false,"unique":false,"default":""}},"indexes":[{"name":"magic_link_tokens_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"magic_link_tokens_token_hash_idx","columns":["token_hash"]},{"name":"magic_link_tokens_created_at_idx","columns":["created_at"]},{"name":"magic_link_tokens_nostr_identity_id_idx","columns":["nostr_identity_id"]}],"version":"d60748fe"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:NostrIdentity":{"name":"nostridentity","className":"NostrIdentity","qualifiedName":"@happyvertical/smrt-profiles:NostrIdentity","collection":"nostridentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/NostrIdentity.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"pubkey":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"encryptedPrivkey":{"type":"text","required":false,"default":""},"encryptionIv":{"type":"text","required":false,"default":""},"encryptionTag":{"type":"text","required":false,"default":""},"email":{"type":"text","required":false,"default":""},"nip05Username":{"type":"text","required":false,"default":""},"lastUsedAt":{"type":"datetime","required":false},"verifiedAt":{"type":"datetime","required":false}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"findByPubkey":{"name":"findByPubkey","async":true,"parameters":[{"name":"pubkey","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<NostrIdentity | null>","isStatic":true,"isPublic":true},"findByEmail":{"name":"findByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<NostrIdentity | null>","isStatic":true,"isPublic":true},"findByNip05":{"name":"findByNip05","async":true,"parameters":[{"name":"username","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<NostrIdentity | null>","isStatic":true,"isPublic":true},"decryptPrivkey":{"name":"decryptPrivkey","async":false,"parameters":[{"name":"masterSecret","type":"string","optional":false}],"returnType":"string","isStatic":false,"isPublic":true},"getKeypair":{"name":"getKeypair","async":false,"parameters":[{"name":"masterSecret","type":"string","optional":false}],"returnType":"object","isStatic":false,"isPublic":true},"recordUsage":{"name":"recordUsage","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"markVerified":{"name":"markVerified","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isVerified":{"name":"isVerified","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getNip05Identifier":{"name":"getNip05Identifier","async":false,"parameters":[{"name":"domain","type":"string","optional":false}],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"nostr_identities","sensitive":true,"api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtObject","exportName":"NostrIdentity","collectionExportName":"NostrIdentityCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"nostr_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"nostr_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"pubkey\\" TEXT DEFAULT '',\\n \\"encrypted_privkey\\" TEXT DEFAULT '',\\n \\"encryption_iv\\" TEXT DEFAULT '',\\n \\"encryption_tag\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"nip05_username\\" TEXT DEFAULT '',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"verified_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"pubkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encrypted_privkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_iv":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_tag":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"nip05_username":{"type":"TEXT","notNull":false,"unique":false,"default":""},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"verified_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"nostr_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"nostr_identities_pubkey_idx","columns":["pubkey"]},{"name":"nostr_identities_created_at_idx","columns":["created_at"]},{"name":"nostr_identities_profile_id_idx","columns":["profile_id"]}],"version":"92eda375"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcIdentity":{"name":"oidcidentity","className":"OidcIdentity","qualifiedName":"@happyvertical/smrt-profiles:OidcIdentity","collection":"oidcidentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/OidcIdentity.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"provider":{"type":"text","required":false,"_meta":{}},"issuer":{"type":"text","required":false,"_meta":{"indexed":true}},"subject":{"type":"text","required":false,"_meta":{"indexed":true}},"identityKey":{"type":"text","required":false,"_meta":{"nullable":true,"unique":true,"readonly":true},"readonly":true},"email":{"type":"text","required":false,"_meta":{}},"lastUsedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"findBySubject":{"name":"findBySubject","async":true,"parameters":[{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<OidcIdentity | null>","isStatic":true,"isPublic":true},"buildIdentityKey":{"name":"buildIdentityKey","async":false,"parameters":[{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false}],"returnType":"string","isStatic":true,"isPublic":true},"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"findOrCreate":{"name":"findOrCreate","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<OidcIdentity>","isStatic":true,"isPublic":true},"recordUsage":{"name":"recordUsage","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"oidc_identities","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtObject","exportName":"OidcIdentity","collectionExportName":"OidcIdentityCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"oidc_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT,\\n \\"issuer\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"identity_key\\" TEXT UNIQUE,\\n \\"email\\" TEXT,\\n \\"last_used_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"provider":{"type":"TEXT","notNull":false,"unique":false},"issuer":{"type":"TEXT","notNull":false,"unique":false},"subject":{"type":"TEXT","notNull":false,"unique":false},"identity_key":{"type":"TEXT","notNull":false,"unique":true},"email":{"type":"TEXT","notNull":false,"unique":false},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"oidc_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_identities_issuer_idx","columns":["issuer"]},{"name":"oidc_identities_subject_idx","columns":["subject"]},{"name":"oidc_identities_created_at_idx","columns":["created_at"]},{"name":"oidc_identities_profile_id_idx","columns":["profile_id"]}],"version":"925387ea"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcProfileEmailReservation":{"name":"oidcprofileemailreservation","className":"OidcProfileEmailReservation","qualifiedName":"@happyvertical/smrt-profiles:OidcProfileEmailReservation","collection":"oidcprofileemailreservations","description":"Private database arbiter for canonical OIDC email provisioning races.","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/OidcProfileEmailReservation.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true,"unique":true}},"emailKey":{"type":"text","required":true,"_meta":{"required":true,"unique":true,"readonly":true},"readonly":true}},"methods":{},"decoratorConfig":{"tableName":"oidc_profile_email_reservations","api":false,"mcp":false,"cli":false},"extends":"SmrtObject","exportName":"OidcProfileEmailReservation","collectionExportName":"OidcProfileEmailReservationCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"emailKey","rule":"required","fieldType":"text"}],"schema":{"tableName":"oidc_profile_email_reservations","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_profile_email_reservations\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL UNIQUE,\\n \\"email_key\\" TEXT NOT NULL UNIQUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":true,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email_key":{"type":"TEXT","notNull":true,"unique":true}},"indexes":[{"name":"oidc_profile_email_reservations_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_profile_email_reservations_created_at_idx","columns":["created_at"]}],"version":"01586e67"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Profile":{"name":"profile","className":"Profile","qualifiedName":"@happyvertical/smrt-profiles:Profile","collection":"profiles","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/Profile.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"Profile","collectionExportName":"ProfileCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"f4a7b632"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileAsset":{"name":"profileasset","className":"ProfileAsset","qualifiedName":"@happyvertical/smrt-profiles:ProfileAsset","collection":"profileassets","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileAsset.ts","packageName":"@happyvertical/smrt-profiles","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true,"onDelete":"CASCADE"}},"assetId":{"type":"crossPackageRef","required":true,"related":"@happyvertical/smrt-assets:Asset","_meta":{"onDelete":"CASCADE"}},"relationship":{"type":"text","required":true,"_meta":{"required":true}},"sortOrder":{"type":"integer","required":true,"default":0}},"methods":{},"decoratorConfig":{"tableName":"profile_assets","conflictColumns":["profile_id","asset_id","relationship"],"api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional"}},"extends":"SmrtObject","exportName":"ProfileAsset","collectionExportName":"ProfileAssetCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"assetId","rule":"required","fieldType":"crossPackageRef"},{"field":"relationship","rule":"required","fieldType":"text"},{"field":"sortOrder","rule":"required","fieldType":"integer"}],"schema":{"tableName":"profile_assets","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"asset_id\\" UUID NOT NULL,\\n \\"relationship\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"relationship":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_assets_profile_id_asset_id_idx","columns":["profile_id","asset_id","relationship"],"unique":true},{"name":"profile_assets_slug_context_idx","columns":["slug","context"]},{"name":"profile_assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_assets_asset_id_idx","columns":["asset_id"]}],"version":"d0d7c2a2"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileLink":{"name":"profilelink","className":"ProfileLink","qualifiedName":"@happyvertical/smrt-profiles:ProfileLink","collection":"profilelinks","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileLink.ts","packageName":"@happyvertical/smrt-profiles","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true,"onDelete":"CASCADE"}},"platform":{"type":"text","required":true,"default":"website","maxLength":32,"_meta":{"required":true,"maxLength":32}},"url":{"type":"text","required":true,"maxLength":2048,"_meta":{"required":true,"maxLength":2048}},"label":{"type":"text","required":false,"maxLength":200,"_meta":{"nullable":true,"maxLength":200}},"sortOrder":{"type":"integer","required":true,"default":0}},"methods":{"getSlug":{"name":"getSlug","async":true,"parameters":[],"returnType":"Promise<string | null | undefined>","isStatic":false,"isPublic":true},"save":{"name":"save","async":true,"parameters":[{"name":"...args","type":"any","optional":true,"typeUnresolved":true}],"returnType":"Promise<this>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"profile_links","api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"ProfileLink","collectionExportName":"ProfileLinkCollection","displayLabelField":"label","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"platform","rule":"required","fieldType":"text"},{"field":"platform","rule":"maxLength","value":32,"fieldType":"text"},{"field":"url","rule":"required","fieldType":"text"},{"field":"url","rule":"maxLength","value":2048,"fieldType":"text"},{"field":"label","rule":"maxLength","value":200,"fieldType":"text"},{"field":"sortOrder","rule":"required","fieldType":"integer"}],"schema":{"tableName":"profile_links","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_links\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"platform\\" TEXT NOT NULL DEFAULT 'website',\\n \\"url\\" TEXT NOT NULL,\\n \\"label\\" TEXT,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"platform":{"type":"TEXT","notNull":true,"unique":false,"default":"website"},"url":{"type":"TEXT","notNull":true,"unique":false},"label":{"type":"TEXT","notNull":false,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_links_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"profile_links_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_links_profile_id_idx","columns":["profile_id"]}],"version":"847fd648"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetadata":{"name":"profilemetadata","className":"ProfileMetadata","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetadata","collection":"profilemetadatas","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileMetadata.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"metafieldId":{"type":"foreignKey","required":true,"related":"ProfileMetafield","_meta":{"required":true}},"value":{"type":"text","required":true,"default":"","_meta":{"required":true}}},"methods":{"validate":{"name":"validate","async":true,"parameters":[],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getMetafieldSlug":{"name":"getMetafieldSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileMetadata","collectionExportName":"ProfileMetadataCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"metafieldId","rule":"required","fieldType":"foreignKey"},{"field":"value","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_metadata","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metadata\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID,\\n \\"metafield_id\\" UUID,\\n \\"value\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"metafield_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_metafields","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"value":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"profile_metadata_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metadata_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metadata_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_metadata_profile_id_idx","columns":["profile_id"]},{"name":"profile_metadata_metafield_id_idx","columns":["metafield_id"]}],"version":"d3ab1b70"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetafield":{"name":"profilemetafield","className":"ProfileMetafield","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetafield","collection":"profilemetafields","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileMetafield.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"validation":{"type":"json","required":false}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<ProfileMetafield | null>","isStatic":true,"isPublic":true},"registerValidator":{"name":"registerValidator","async":false,"parameters":[{"name":"name","type":"string","optional":false},{"name":"validator","type":"ValidatorFunction","optional":false}],"returnType":"void","isStatic":true,"isPublic":true},"getValidator":{"name":"getValidator","async":false,"parameters":[{"name":"name","type":"string","optional":false}],"returnType":"ValidatorFunction | undefined","isStatic":true,"isPublic":true},"validateValue":{"name":"validateValue","async":true,"parameters":[{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileMetafield","collectionExportName":"ProfileMetafieldCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"validation\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"validation":{"type":"JSON","notNull":false}},"indexes":[{"name":"profile_metafields_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metafields_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"afe420df"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationship":{"name":"profilerelationship","className":"ProfileRelationship","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationship","collection":"profilerelationships","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileRelationship.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"fromProfileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"toProfileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileRelationshipType","_meta":{"required":true}},"contextProfileId":{"type":"foreignKey","required":false,"related":"Profile"},"terms":{"type":"oneToMany","required":false,"related":"ProfileRelationshipTerm"}},"methods":{"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"addTerm":{"name":"addTerm","async":true,"parameters":[{"name":"startedAt","type":"Date","optional":false},{"name":"endedAt","type":"Date","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"endCurrentTerm":{"name":"endCurrentTerm","async":true,"parameters":[{"name":"endedAt","type":"Date","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getTerms":{"name":"getTerms","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipTerm[]>","isStatic":false,"isPublic":true},"getActiveTerm":{"name":"getActiveTerm","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipTerm | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileRelationship","collectionExportName":"ProfileRelationshipCollection","validationRules":[{"field":"fromProfileId","rule":"required","fieldType":"foreignKey"},{"field":"toProfileId","rule":"required","fieldType":"foreignKey"},{"field":"typeId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"profile_relationships","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationships\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"from_profile_id\\" UUID,\\n \\"to_profile_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"context_profile_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"from_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"to_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationship_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"context_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"profile_relationships_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_relationships_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationships_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_relationships_from_profile_id_idx","columns":["from_profile_id"]},{"name":"profile_relationships_to_profile_id_idx","columns":["to_profile_id"]},{"name":"profile_relationships_type_id_idx","columns":["type_id"]},{"name":"profile_relationships_context_profile_id_idx","columns":["context_profile_id"]}],"version":"48878dba"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipTerm":{"name":"profilerelationshipterm","className":"ProfileRelationshipTerm","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipTerm","collection":"profilerelationshipterms","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileRelationshipTerm.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"relationshipId":{"type":"foreignKey","required":true,"related":"ProfileRelationship","_meta":{"required":true}},"startedAt":{"type":"datetime","required":true,"_meta":{"required":true}},"endedAt":{"type":"datetime","required":false}},"methods":{"isActive":{"name":"isActive","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"end":{"name":"end","async":true,"parameters":[{"name":"endedAt","type":"Date","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getDurationDays":{"name":"getDurationDays","async":false,"parameters":[],"returnType":"number","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"ProfileRelationshipTerm","collectionExportName":"ProfileRelationshipTermCollection","validationRules":[{"field":"relationshipId","rule":"required","fieldType":"foreignKey"},{"field":"startedAt","rule":"required","fieldType":"datetime"}],"schema":{"tableName":"profile_relationship_terms","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_terms\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"relationship_id\\" UUID,\\n \\"started_at\\" TIMESTAMP,\\n \\"ended_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"relationship_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationships","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"started_at":{"type":"TIMESTAMP","notNull":false},"ended_at":{"type":"TIMESTAMP","notNull":false}},"indexes":[{"name":"profile_relationship_terms_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_terms_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_terms_created_at_idx","columns":["created_at"]},{"name":"profile_relationship_terms_relationship_id_idx","columns":["relationship_id"]}],"version":"ef299102"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipType":{"name":"profilerelationshiptype","className":"ProfileRelationshipType","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipType","collection":"profilerelationshiptypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileRelationshipType.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"reciprocal":{"type":"boolean","required":false,"default":true}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipType | null>","isStatic":true,"isPublic":true},"registerReciprocalHandler":{"name":"registerReciprocalHandler","async":false,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"handler","type":"ReciprocalHandler","optional":false}],"returnType":"void","isStatic":true,"isPublic":true},"getReciprocalHandler":{"name":"getReciprocalHandler","async":false,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"ReciprocalHandler | undefined","isStatic":true,"isPublic":true},"isReciprocal":{"name":"isReciprocal","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"ProfileRelationshipType","collectionExportName":"ProfileRelationshipTypeCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_relationship_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT DEFAULT '',\\n \\"reciprocal\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false,"default":""},"reciprocal":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"profile_relationship_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_types_created_at_idx","columns":["created_at"]}],"version":"719fe0d9"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileType":{"name":"profiletype","className":"ProfileType","qualifiedName":"@happyvertical/smrt-profiles:ProfileType","collection":"profiletypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileType.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<ProfileType | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileType","collectionExportName":"ProfileTypeCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"profile_types_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_types_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"0fb37aeb"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Person":{"name":"person","className":"Person","qualifiedName":"@happyvertical/smrt-profiles:Person","collection":"profiles","description":"Person profile type","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileTypes.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","tableName":"profiles","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true}},"extends":"Profile","exportName":"Person","collectionExportName":"PersonCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"2043b736"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Organization":{"name":"organization","className":"Organization","qualifiedName":"@happyvertical/smrt-profiles:Organization","collection":"profiles","description":"Organization profile type","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileTypes.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","tableName":"profiles","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true}},"extends":"Profile","exportName":"Organization","collectionExportName":"OrganizationCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"573ebccc"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Bot":{"name":"bot","className":"Bot","qualifiedName":"@happyvertical/smrt-profiles:Bot","collection":"profiles","description":"Bot profile type","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileTypes.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","tableName":"profiles","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true}},"extends":"Profile","exportName":"Bot","collectionExportName":"BotCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"2a1c7716"},"importPath":"@happyvertical/smrt-profiles"}},"moduleType":"smrt","recipes":[{"id":"profiles.audit-log","className":"AuditLogRecipe","label":"Activity log","summary":"Review who changed a record and when.","synonyms":["audit trail","record history","activity"],"models":["@happyvertical/smrt-profiles:AuditLog"],"nav":[],"requires":[],"group":{"id":"activity","label":"Activity","summary":"Review authorized record history independently of messaging."},"section":{"id":"activity","label":"Activity","icon":"book","description":"See who changed records and why."},"help":{"markdown":"## Activity log\\nReview changes to records you are authorized to inspect. Each activity shows the actor, action, time, and recorded reason or resource.\\nOpen the related record when your application provides a link.\\n\\n## Record history\\nThe application enables auditing on selected models and authorizes audit reads. Only recorded events appear; enabling auditing does not reconstruct earlier changes.\\nSensitive audit details are available only through the application's authorized history service.\\n","fieldRefs":[]},"surfaces":[{"kind":"route","path":"/activity","export":"@happyvertical/smrt-svelte#ActivityList","label":"Activity log"}],"providers":[{"id":"audit-trail","kind":"activity","options":["audit-log"],"required":true}],"runtime":"both","demoSeed":{"data":{"entries":[{"id":"demo-audit","title":"Demo colleague \xB7 updated","detail":"Approved a fictional record.","occurredAt":"2026-01-01T12:00:00Z","href":null}]}},"demo":{"mode":"server","reasons":["Needs a server because its package does not build for a browser: node:crypto in root; core migrations (node:os); and its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3617, #3624, #3626)."]}}],"smrtDependencies":["@happyvertical/smrt-assets","@happyvertical/smrt-core","@happyvertical/smrt-prompts","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3617","#3624","#3626"],"reason":"node:crypto in root; core migrations (node:os)","via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
23
+ ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-profiles","packageVersion":"0.57.30","objects":{"@happyvertical/smrt-profiles:ApiKeyCollection":{"name":"apikeycollection","className":"ApiKeyCollection","qualifiedName":"@happyvertical/smrt-profiles:ApiKeyCollection","collection":"apikeys","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ApiKeyCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"findActiveByProfile":{"name":"findActiveByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"findByHash":{"name":"findByHash","async":true,"parameters":[{"name":"keyHash","type":"string","optional":false}],"returnType":"Promise<ApiKey | null>","isStatic":false,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"key","type":"string","optional":false}],"returnType":"Promise<ApiKey | null>","isStatic":false,"isPublic":true},"generateForProfile":{"name":"generateForProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"revokeAllForProfile":{"name":"revokeAllForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"revokeByPrefix":{"name":"revokeByPrefix","async":true,"parameters":[{"name":"keyPrefix","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"cleanupExpired":{"name":"cleanupExpired","async":true,"parameters":[],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"api_keys","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get","create"],"skipApiCheck":true}},"extends":"SmrtCollection","extendsTypeArg":"ApiKey","exportName":"ApiKeyCollection","collectionExportName":"ApiKeyCollectionCollection","schema":{"tableName":"api_keys","ddl":"CREATE TABLE IF NOT EXISTS \\"api_keys\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"key_hash\\" TEXT DEFAULT '',\\n \\"key_prefix\\" TEXT DEFAULT '',\\n \\"name\\" TEXT DEFAULT '',\\n \\"scopes\\" JSON DEFAULT '[]',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"expires_at\\" TIMESTAMP,\\n \\"revoked_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"key_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"key_prefix":{"type":"TEXT","notNull":false,"unique":false,"default":""},"name":{"type":"TEXT","notNull":false,"unique":false,"default":""},"scopes":{"type":"JSON","notNull":false,"unique":false,"default":[]},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"revoked_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"api_keys_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"api_keys_key_hash_idx","columns":["key_hash"]},{"name":"api_keys_created_at_idx","columns":["created_at"]},{"name":"api_keys_profile_id_idx","columns":["profile_id"]}],"version":"9b0d49e8"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:AuditLogCollection":{"name":"auditlogcollection","className":"AuditLogCollection","qualifiedName":"@happyvertical/smrt-profiles:AuditLogCollection","collection":"auditlogs","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/AuditLogCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findByResource":{"name":"findByResource","async":true,"parameters":[{"name":"resourceType","type":"string","optional":false},{"name":"resourceId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findByAction":{"name":"findByAction","async":true,"parameters":[{"name":"action","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findBySource":{"name":"findBySource","async":true,"parameters":[{"name":"source","type":"AuditSource","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"findOnBehalfOf":{"name":"findOnBehalfOf","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"record":{"name":"record","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["Profile","string","AuditSource","Record<string, unknown>","Profile | null","Record<string, AuditChange>"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true},"getRecentActivity":{"name":"getRecentActivity","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"getResourceTimeline":{"name":"getResourceTimeline","async":true,"parameters":[{"name":"resourceType","type":"string","optional":false},{"name":"resourceId","type":"string","optional":false}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"audit_logs","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"AuditLog","exportName":"AuditLogCollection","collectionExportName":"AuditLogCollectionCollection","schema":{"tableName":"audit_logs","ddl":"CREATE TABLE IF NOT EXISTS \\"audit_logs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"action\\" TEXT DEFAULT '',\\n \\"reason\\" TEXT DEFAULT '',\\n \\"changes\\" JSON DEFAULT '{}',\\n \\"resource_type\\" TEXT DEFAULT '',\\n \\"resource_id\\" TEXT DEFAULT '',\\n \\"occurred_at\\" TIMESTAMP DEFAULT current_timestamp,\\n \\"source\\" TEXT DEFAULT 'web',\\n \\"metadata\\" JSON DEFAULT '{}',\\n \\"on_behalf_of_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"action":{"type":"TEXT","notNull":false,"unique":false,"default":""},"reason":{"type":"TEXT","notNull":false,"unique":false,"default":""},"changes":{"type":"JSON","notNull":false,"unique":false,"default":{}},"resource_type":{"type":"TEXT","notNull":false,"unique":false,"default":""},"resource_id":{"type":"TEXT","notNull":false,"unique":false,"default":""},"occurred_at":{"type":"TIMESTAMP","notNull":false,"unique":false,"default":"current_timestamp"},"source":{"type":"TEXT","notNull":false,"unique":false,"default":"web"},"metadata":{"type":"JSON","notNull":false,"unique":false,"default":{}},"on_behalf_of_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"audit_logs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"audit_logs_resource_type_idx","columns":["resource_type"]},{"name":"audit_logs_resource_id_idx","columns":["resource_id"]},{"name":"audit_logs_occurred_at_idx","columns":["occurred_at"]},{"name":"audit_logs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"audit_logs_profile_id_idx","columns":["profile_id"]},{"name":"audit_logs_on_behalf_of_id_idx","columns":["on_behalf_of_id"]}],"version":"769bd855"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:MagicLinkTokenCollection":{"name":"magiclinktokencollection","className":"MagicLinkTokenCollection","qualifiedName":"@happyvertical/smrt-profiles:MagicLinkTokenCollection","collection":"magiclinktokens","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/MagicLinkTokenCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByTokenHash":{"name":"findByTokenHash","async":true,"parameters":[{"name":"tokenHash","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken | null>","isStatic":false,"isPublic":true},"findActiveForEmail":{"name":"findActiveForEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken[]>","isStatic":false,"isPublic":true},"findByIdentity":{"name":"findByIdentity","async":true,"parameters":[{"name":"nostrIdentityId","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken[]>","isStatic":false,"isPublic":true},"countRecentByEmail":{"name":"countRecentByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"withinMinutes","type":"number","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"countRecentByIp":{"name":"countRecentByIp","async":true,"parameters":[{"name":"ip","type":"string","optional":false},{"name":"withinMinutes","type":"number","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"token","type":"string","optional":false}],"returnType":"Promise<MagicLinkToken | null>","isStatic":false,"isPublic":true},"cleanupExpired":{"name":"cleanupExpired","async":true,"parameters":[],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"revokeForIdentity":{"name":"revokeForIdentity","async":true,"parameters":[{"name":"nostrIdentityId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"isRateLimitedByEmail":{"name":"isRateLimitedByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"maxPerHour","type":"number","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"isRateLimitedByIp":{"name":"isRateLimitedByIp","async":true,"parameters":[{"name":"ip","type":"string","optional":false},{"name":"maxPerHour","type":"number","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"magic_link_tokens","api":{"exclude":["*"]},"mcp":{"include":["list","get"]},"cli":{"include":["list"]}},"extends":"SmrtCollection","extendsTypeArg":"MagicLinkToken","exportName":"MagicLinkTokenCollection","collectionExportName":"MagicLinkTokenCollectionCollection","schema":{"tableName":"magic_link_tokens","ddl":"CREATE TABLE IF NOT EXISTS \\"magic_link_tokens\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"nostr_identity_id\\" UUID NOT NULL,\\n \\"token_hash\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"expires_at\\" TIMESTAMP,\\n \\"used_at\\" TIMESTAMP,\\n \\"requested_from_ip\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"nostr_identity_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"nostr_identities","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"token_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"requested_from_ip":{"type":"TEXT","notNull":false,"unique":false,"default":""}},"indexes":[{"name":"magic_link_tokens_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"magic_link_tokens_token_hash_idx","columns":["token_hash"]},{"name":"magic_link_tokens_created_at_idx","columns":["created_at"]},{"name":"magic_link_tokens_nostr_identity_id_idx","columns":["nostr_identity_id"]}],"version":"d60748fe"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:NostrIdentityCollection":{"name":"nostridentitycollection","className":"NostrIdentityCollection","qualifiedName":"@happyvertical/smrt-profiles:NostrIdentityCollection","collection":"nostridentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/NostrIdentityCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"findByPubkey":{"name":"findByPubkey","async":true,"parameters":[{"name":"pubkey","type":"string","optional":false}],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"findByEmail":{"name":"findByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"findByNip05":{"name":"findByNip05","async":true,"parameters":[{"name":"username","type":"string","optional":false}],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"createForProfile":{"name":"createForProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"email","type":"string","optional":false},{"name":"masterSecret","type":"string","optional":false},{"name":"nip05Username","type":"string","optional":true}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"linkToProfile":{"name":"linkToProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"unlinkFromProfile":{"name":"unlinkFromProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"pubkey","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getNip05Response":{"name":"getNip05Response","async":true,"parameters":[{"name":"username","type":"string","optional":true}],"returnType":"Promise<Nip05Response>","isStatic":false,"isPublic":true},"isNip05Available":{"name":"isNip05Available","async":true,"parameters":[{"name":"username","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"updateNip05Username":{"name":"updateNip05Username","async":true,"parameters":[{"name":"identity","type":"NostrIdentity","optional":false},{"name":"newUsername","type":"string","optional":false}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"nostr_identities","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"NostrIdentity","exportName":"NostrIdentityCollection","collectionExportName":"NostrIdentityCollectionCollection","schema":{"tableName":"nostr_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"nostr_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"pubkey\\" TEXT DEFAULT '',\\n \\"encrypted_privkey\\" TEXT DEFAULT '',\\n \\"encryption_iv\\" TEXT DEFAULT '',\\n \\"encryption_tag\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"nip05_username\\" TEXT DEFAULT '',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"verified_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"pubkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encrypted_privkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_iv":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_tag":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"nip05_username":{"type":"TEXT","notNull":false,"unique":false,"default":""},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"verified_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"nostr_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"nostr_identities_pubkey_idx","columns":["pubkey"]},{"name":"nostr_identities_created_at_idx","columns":["created_at"]},{"name":"nostr_identities_profile_id_idx","columns":["profile_id"]}],"version":"92eda375"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcIdentityCollection":{"name":"oidcidentitycollection","className":"OidcIdentityCollection","qualifiedName":"@happyvertical/smrt-profiles:OidcIdentityCollection","collection":"oidcidentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/OidcIdentityCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByProfile":{"name":"findByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"findBySubject":{"name":"findBySubject","async":true,"parameters":[{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false}],"returnType":"Promise<OidcIdentity | null>","isStatic":false,"isPublic":true},"findByProvider":{"name":"findByProvider","async":true,"parameters":[{"name":"provider","type":"string","optional":false}],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkToProfile":{"name":"linkToProfile","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"unlinkFromProfile":{"name":"unlinkFromProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"oidc_identities","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"OidcIdentity","exportName":"OidcIdentityCollection","collectionExportName":"OidcIdentityCollectionCollection","schema":{"tableName":"oidc_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT,\\n \\"issuer\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"identity_key\\" TEXT UNIQUE,\\n \\"email\\" TEXT,\\n \\"last_used_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"provider":{"type":"TEXT","notNull":false,"unique":false},"issuer":{"type":"TEXT","notNull":false,"unique":false},"subject":{"type":"TEXT","notNull":false,"unique":false},"identity_key":{"type":"TEXT","notNull":false,"unique":true},"email":{"type":"TEXT","notNull":false,"unique":false},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"oidc_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_identities_issuer_idx","columns":["issuer"]},{"name":"oidc_identities_subject_idx","columns":["subject"]},{"name":"oidc_identities_created_at_idx","columns":["created_at"]},{"name":"oidc_identities_profile_id_idx","columns":["profile_id"]}],"version":"925387ea"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcProfileEmailReservationCollection":{"name":"oidcprofileemailreservationcollection","className":"OidcProfileEmailReservationCollection","qualifiedName":"@happyvertical/smrt-profiles:OidcProfileEmailReservationCollection","collection":"oidcprofileemailreservations","description":"Internal collection for canonical OIDC email reservations.","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/OidcProfileEmailReservationCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{},"decoratorConfig":{"tableName":"oidc_profile_email_reservations","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"OidcProfileEmailReservation","exportName":"OidcProfileEmailReservationCollection","collectionExportName":"OidcProfileEmailReservationCollectionCollection","schema":{"tableName":"oidc_profile_email_reservations","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_profile_email_reservations\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL UNIQUE,\\n \\"email_key\\" TEXT NOT NULL UNIQUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":true,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email_key":{"type":"TEXT","notNull":true,"unique":true}},"indexes":[{"name":"oidc_profile_email_reservations_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_profile_email_reservations_created_at_idx","columns":["created_at"]}],"version":"01586e67"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileAssetCollection":{"name":"profileassetcollection","className":"ProfileAssetCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileAssetCollection","collection":"profileassets","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileAssetCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"byRight":{"name":"byRight","async":true,"parameters":[{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<TItem[]>","isStatic":false,"isPublic":true},"byLeft":{"name":"byLeft","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<TItem[]>","isStatic":false,"isPublic":true},"attach":{"name":"attach","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<TItem>","isStatic":false,"isPublic":true},"detach":{"name":"detach","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightIds","type":"string[]","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":false,"mcp":false,"cli":false,"tableName":"profile_assets"},"extends":"SmrtJunction","extendsTypeArg":"ProfileAsset","exportName":"ProfileAssetCollection","collectionExportName":"ProfileAssetCollectionCollection","schema":{"tableName":"profile_assets","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"asset_id\\" UUID NOT NULL,\\n \\"relationship\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"relationship":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_assets_profile_id_asset_id_idx","columns":["profile_id","asset_id","relationship"],"unique":true},{"name":"profile_assets_slug_context_idx","columns":["slug","context"]},{"name":"profile_assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_assets_asset_id_idx","columns":["asset_id"]}],"version":"d0d7c2a2"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileCollection":{"name":"profilecollection","className":"ProfileCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileCollection","collection":"profiles","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"findByEmail":{"name":"findByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"findUniqueGlobalPersonByEmail":{"name":"findUniqueGlobalPersonByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"requireCanonicalGlobalPerson":{"name":"requireCanonicalGlobalPerson","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"email","type":"string","optional":true}],"returnType":"Promise<Profile>","isStatic":false,"isPublic":true},"reserveCanonicalIdentityEmail":{"name":"reserveCanonicalIdentityEmail","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"email","type":"string","optional":true}],"returnType":"Promise<Profile>","isStatic":false,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"batchGetMetadata":{"name":"batchGetMetadata","async":true,"parameters":[{"name":"profileIds","type":"string[]","optional":false}],"returnType":"Promise<Map<string, Record<string, string>>>","isStatic":false,"isPublic":true},"batchUpdateMetadata":{"name":"batchUpdateMetadata","async":true,"parameters":[{"name":"updates","type":"Array<object>","optional":false,"memberTypes":["string","Record<string, unknown>"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationshipNetwork":{"name":"getRelationshipNetwork","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["number"]}],"returnType":"Promise<Map<string, number>>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]}},"extends":"SmrtCollection","extendsTypeArg":"Profile","exportName":"ProfileCollection","collectionExportName":"ProfileCollectionCollection","schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"f4a7b632"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileLinkCollection":{"name":"profilelinkcollection","className":"ProfileLinkCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileLinkCollection","collection":"profilelinks","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileLinkCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"listForProfile":{"name":"listForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"replaceForProfile":{"name":"replaceForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"reorder":{"name":"reorder","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"linkIds","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"profile_links","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"ProfileLink","exportName":"ProfileLinkCollection","collectionExportName":"ProfileLinkCollectionCollection","schema":{"tableName":"profile_links","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_links\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"platform\\" TEXT NOT NULL DEFAULT 'website',\\n \\"url\\" TEXT NOT NULL,\\n \\"label\\" TEXT,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"platform":{"type":"TEXT","notNull":true,"unique":false,"default":"website"},"url":{"type":"TEXT","notNull":true,"unique":false},"label":{"type":"TEXT","notNull":false,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_links_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"profile_links_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_links_profile_id_idx","columns":["profile_id"]}],"version":"847fd648"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetadataCollection":{"name":"profilemetadatacollection","className":"ProfileMetadataCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetadataCollection","collection":"profilemetadatas","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileMetadataCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getByProfile":{"name":"getByProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<ProfileMetadata[]>","isStatic":false,"isPublic":true},"getMetadataObject":{"name":"getMetadataObject","async":true,"parameters":[{"name":"profileId","type":"string","optional":false}],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"findProfilesByMetadata":{"name":"findProfilesByMetadata","async":true,"parameters":[{"name":"metafieldId","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<string[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileMetadata","exportName":"ProfileMetadataCollection","collectionExportName":"ProfileMetadataCollectionCollection","schema":{"tableName":"profile_metadata","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metadata\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID,\\n \\"metafield_id\\" UUID,\\n \\"value\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"metafield_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_metafields","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"value":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"profile_metadata_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metadata_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metadata_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_metadata_profile_id_idx","columns":["profile_id"]},{"name":"profile_metadata_metafield_id_idx","columns":["metafield_id"]}],"version":"d3ab1b70"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetafieldCollection":{"name":"profilemetafieldcollection","className":"ProfileMetafieldCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetafieldCollection","collection":"profilemetafields","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileMetafieldCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<ProfileMetafield | null>","isStatic":false,"isPublic":true},"getOrCreateBySlug":{"name":"getOrCreateBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string","ValidationSchema"]}],"returnType":"Promise<ProfileMetafield>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileMetafield","exportName":"ProfileMetafieldCollection","collectionExportName":"ProfileMetafieldCollectionCollection","schema":{"tableName":"profile_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"validation\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"validation":{"type":"JSON","notNull":false}},"indexes":[{"name":"profile_metafields_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metafields_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"afe420df"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipCollection":{"name":"profilerelationshipcollection","className":"ProfileRelationshipCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipCollection","collection":"profilerelationships","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileRelationshipCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getFromProfile":{"name":"getFromProfile","async":true,"parameters":[{"name":"fromProfileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":true}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getToProfile":{"name":"getToProfile","async":true,"parameters":[{"name":"toProfileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":true}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getForProfile":{"name":"getForProfile","async":true,"parameters":[{"name":"profileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":true}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"exists":{"name":"exists","async":true,"parameters":[{"name":"fromProfileId","type":"string","optional":false},{"name":"toProfileId","type":"string","optional":false},{"name":"typeId","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileRelationship","exportName":"ProfileRelationshipCollection","collectionExportName":"ProfileRelationshipCollectionCollection","schema":{"tableName":"profile_relationships","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationships\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"from_profile_id\\" UUID,\\n \\"to_profile_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"context_profile_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"from_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"to_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationship_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"context_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"profile_relationships_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_relationships_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationships_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_relationships_from_profile_id_idx","columns":["from_profile_id"]},{"name":"profile_relationships_to_profile_id_idx","columns":["to_profile_id"]},{"name":"profile_relationships_type_id_idx","columns":["type_id"]},{"name":"profile_relationships_context_profile_id_idx","columns":["context_profile_id"]}],"version":"48878dba"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipTermCollection":{"name":"profilerelationshiptermcollection","className":"ProfileRelationshipTermCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipTermCollection","collection":"profilerelationshipterms","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileRelationshipTermCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getByRelationship":{"name":"getByRelationship","async":true,"parameters":[{"name":"relationshipId","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipTerm[]>","isStatic":false,"isPublic":true},"getActiveTerm":{"name":"getActiveTerm","async":true,"parameters":[{"name":"relationshipId","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipTerm | null>","isStatic":false,"isPublic":true},"getHistoricalTerms":{"name":"getHistoricalTerms","async":true,"parameters":[{"name":"relationshipId","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipTerm[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileRelationshipTerm","exportName":"ProfileRelationshipTermCollection","collectionExportName":"ProfileRelationshipTermCollectionCollection","schema":{"tableName":"profile_relationship_terms","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_terms\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"relationship_id\\" UUID,\\n \\"started_at\\" TIMESTAMP,\\n \\"ended_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"relationship_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationships","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"started_at":{"type":"TIMESTAMP","notNull":false},"ended_at":{"type":"TIMESTAMP","notNull":false}},"indexes":[{"name":"profile_relationship_terms_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_terms_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_terms_created_at_idx","columns":["created_at"]},{"name":"profile_relationship_terms_relationship_id_idx","columns":["relationship_id"]}],"version":"ef299102"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipTypeCollection":{"name":"profilerelationshiptypecollection","className":"ProfileRelationshipTypeCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipTypeCollection","collection":"profilerelationshiptypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileRelationshipTypeCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipType | null>","isStatic":false,"isPublic":true},"getOrCreateBySlug":{"name":"getOrCreateBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string","boolean"]}],"returnType":"Promise<ProfileRelationshipType>","isStatic":false,"isPublic":true},"getReciprocal":{"name":"getReciprocal","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipType[]>","isStatic":false,"isPublic":true},"getDirectional":{"name":"getDirectional","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipType[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileRelationshipType","exportName":"ProfileRelationshipTypeCollection","collectionExportName":"ProfileRelationshipTypeCollectionCollection","schema":{"tableName":"profile_relationship_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT DEFAULT '',\\n \\"reciprocal\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false,"default":""},"reciprocal":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"profile_relationship_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_types_created_at_idx","columns":["created_at"]}],"version":"719fe0d9"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileTypeCollection":{"name":"profiletypecollection","className":"ProfileTypeCollection","qualifiedName":"@happyvertical/smrt-profiles:ProfileTypeCollection","collection":"profiletypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/collections/ProfileTypeCollection.ts","packageName":"@happyvertical/smrt-profiles","fields":{},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<ProfileType | null>","isStatic":false,"isPublic":true},"getAvailableById":{"name":"getAvailableById","async":true,"parameters":[{"name":"id","type":"string","optional":false},{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<ProfileType | null>","isStatic":false,"isPublic":true},"getOrCreateBySlug":{"name":"getOrCreateBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<ProfileType>","isStatic":false,"isPublic":true},"getOrCreateGlobalBySlug":{"name":"getOrCreateGlobalBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"defaults","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<ProfileType>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"ProfileType","exportName":"ProfileTypeCollection","collectionExportName":"ProfileTypeCollectionCollection","schema":{"tableName":"profile_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"profile_types_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_types_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"0fb37aeb"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ApiKey":{"name":"apikey","className":"ApiKey","qualifiedName":"@happyvertical/smrt-profiles:ApiKey","collection":"apikeys","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ApiKey.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"keyHash":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"keyPrefix":{"type":"text","required":false,"default":""},"name":{"type":"text","required":false,"default":""},"scopes":{"type":"json","required":false,"default":[]},"lastUsedAt":{"type":"datetime","required":false},"expiresAt":{"type":"datetime","required":false},"revokedAt":{"type":"datetime","required":false}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"isValid":{"name":"isValid","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"hasScope":{"name":"hasScope","async":false,"parameters":[{"name":"scope","type":"string","optional":false}],"returnType":"boolean","isStatic":false,"isPublic":true},"revoke":{"name":"revoke","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"recordUsage":{"name":"recordUsage","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"hashKey":{"name":"hashKey","async":false,"parameters":[{"name":"key","type":"string","optional":false}],"returnType":"string","isStatic":true,"isPublic":true},"generate":{"name":"generate","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":true,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"key","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<ApiKey | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableName":"api_keys","sensitive":true,"api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get","create","revoke"],"skipApiCheck":true}},"extends":"SmrtObject","exportName":"ApiKey","collectionExportName":"ApiKeyCollection","displayLabelField":"name","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"api_keys","ddl":"CREATE TABLE IF NOT EXISTS \\"api_keys\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"key_hash\\" TEXT DEFAULT '',\\n \\"key_prefix\\" TEXT DEFAULT '',\\n \\"name\\" TEXT DEFAULT '',\\n \\"scopes\\" JSON DEFAULT '[]',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"expires_at\\" TIMESTAMP,\\n \\"revoked_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"key_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"key_prefix":{"type":"TEXT","notNull":false,"unique":false,"default":""},"name":{"type":"TEXT","notNull":false,"unique":false,"default":""},"scopes":{"type":"JSON","notNull":false,"unique":false,"default":[]},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"revoked_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"api_keys_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"api_keys_key_hash_idx","columns":["key_hash"]},{"name":"api_keys_created_at_idx","columns":["created_at"]},{"name":"api_keys_profile_id_idx","columns":["profile_id"]}],"version":"9b0d49e8"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:AuditLog":{"name":"auditlog","className":"AuditLog","qualifiedName":"@happyvertical/smrt-profiles:AuditLog","collection":"auditlogs","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/AuditLog.ts","packageName":"@happyvertical/smrt-profiles","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":true}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"action":{"type":"text","required":false,"default":""},"reason":{"type":"text","required":false,"default":""},"changes":{"type":"json","required":false,"default":{}},"resourceType":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"resourceId":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"occurredAt":{"type":"datetime","required":false,"default":"current_timestamp","_meta":{"indexed":true,"default":"current_timestamp"}},"source":{"type":"text","required":false,"default":"web","enum":["web","cli","ci","webhook","mcp"]},"metadata":{"type":"json","required":false,"default":{}},"onBehalfOfId":{"type":"foreignKey","required":false,"related":"Profile","_meta":{"nullable":true}}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"getOnBehalfOf":{"name":"getOnBehalfOf","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"getEffectiveActor":{"name":"getEffectiveActor","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"record":{"name":"record","async":true,"parameters":[{"name":"options","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<AuditLog>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableName":"audit_logs","sensitive":true,"api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional","allowSuperAdminBypass":true},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"AuditLog","collectionExportName":"AuditLogCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"audit_logs","ddl":"CREATE TABLE IF NOT EXISTS \\"audit_logs\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"action\\" TEXT DEFAULT '',\\n \\"reason\\" TEXT DEFAULT '',\\n \\"changes\\" JSON DEFAULT '{}',\\n \\"resource_type\\" TEXT DEFAULT '',\\n \\"resource_id\\" TEXT DEFAULT '',\\n \\"occurred_at\\" TIMESTAMP DEFAULT current_timestamp,\\n \\"source\\" TEXT DEFAULT 'web',\\n \\"metadata\\" JSON DEFAULT '{}',\\n \\"on_behalf_of_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"action":{"type":"TEXT","notNull":false,"unique":false,"default":""},"reason":{"type":"TEXT","notNull":false,"unique":false,"default":""},"changes":{"type":"JSON","notNull":false,"unique":false,"default":{}},"resource_type":{"type":"TEXT","notNull":false,"unique":false,"default":""},"resource_id":{"type":"TEXT","notNull":false,"unique":false,"default":""},"occurred_at":{"type":"TIMESTAMP","notNull":false,"unique":false,"default":"current_timestamp"},"source":{"type":"TEXT","notNull":false,"unique":false,"default":"web"},"metadata":{"type":"JSON","notNull":false,"unique":false,"default":{}},"on_behalf_of_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"audit_logs_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"audit_logs_resource_type_idx","columns":["resource_type"]},{"name":"audit_logs_resource_id_idx","columns":["resource_id"]},{"name":"audit_logs_occurred_at_idx","columns":["occurred_at"]},{"name":"audit_logs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"audit_logs_profile_id_idx","columns":["profile_id"]},{"name":"audit_logs_on_behalf_of_id_idx","columns":["on_behalf_of_id"]}],"version":"769bd855"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:MagicLinkToken":{"name":"magiclinktoken","className":"MagicLinkToken","qualifiedName":"@happyvertical/smrt-profiles:MagicLinkToken","collection":"magiclinktokens","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/MagicLinkToken.ts","packageName":"@happyvertical/smrt-profiles","fields":{"nostrIdentityId":{"type":"foreignKey","required":true,"related":"NostrIdentity","_meta":{"required":true}},"tokenHash":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"email":{"type":"text","required":false,"default":""},"expiresAt":{"type":"datetime","required":false},"usedAt":{"type":"datetime","required":false},"requestedFromIp":{"type":"text","required":false,"default":""},"createdAt":{"type":"datetime","required":false}},"methods":{"hashToken":{"name":"hashToken","async":false,"parameters":[{"name":"token","type":"string","optional":false}],"returnType":"string","isStatic":true,"isPublic":true},"generate":{"name":"generate","async":true,"parameters":[{"name":"nostrIdentity","type":"NostrIdentity","optional":false},{"name":"email","type":"string","optional":false},{"name":"options","type":"object","optional":true,"typeUnresolved":true,"memberTypes":["number","string"]}],"returnType":"Promise<GenerateTokenResult>","isStatic":true,"isPublic":true},"verify":{"name":"verify","async":true,"parameters":[{"name":"token","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<MagicLinkToken | null>","isStatic":true,"isPublic":true},"isValid":{"name":"isValid","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isExpired":{"name":"isExpired","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isUsed":{"name":"isUsed","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"markUsed":{"name":"markUsed","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getNostrIdentity":{"name":"getNostrIdentity","async":true,"parameters":[],"returnType":"Promise<NostrIdentity | null>","isStatic":false,"isPublic":true},"getTimeRemainingSeconds":{"name":"getTimeRemainingSeconds","async":false,"parameters":[],"returnType":"number","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"magic_link_tokens","sensitive":true,"api":{"exclude":["*"]},"mcp":{"exclude":["*"]},"cli":{"include":["list"]}},"extends":"SmrtObject","exportName":"MagicLinkToken","collectionExportName":"MagicLinkTokenCollection","validationRules":[{"field":"nostrIdentityId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"magic_link_tokens","ddl":"CREATE TABLE IF NOT EXISTS \\"magic_link_tokens\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"nostr_identity_id\\" UUID NOT NULL,\\n \\"token_hash\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"expires_at\\" TIMESTAMP,\\n \\"used_at\\" TIMESTAMP,\\n \\"requested_from_ip\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"nostr_identity_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"nostr_identities","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"token_hash":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"expires_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"requested_from_ip":{"type":"TEXT","notNull":false,"unique":false,"default":""}},"indexes":[{"name":"magic_link_tokens_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"magic_link_tokens_token_hash_idx","columns":["token_hash"]},{"name":"magic_link_tokens_created_at_idx","columns":["created_at"]},{"name":"magic_link_tokens_nostr_identity_id_idx","columns":["nostr_identity_id"]}],"version":"d60748fe"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:NostrIdentity":{"name":"nostridentity","className":"NostrIdentity","qualifiedName":"@happyvertical/smrt-profiles:NostrIdentity","collection":"nostridentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/NostrIdentity.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"pubkey":{"type":"text","required":false,"default":"","_meta":{"indexed":true}},"encryptedPrivkey":{"type":"text","required":false,"default":""},"encryptionIv":{"type":"text","required":false,"default":""},"encryptionTag":{"type":"text","required":false,"default":""},"email":{"type":"text","required":false,"default":""},"nip05Username":{"type":"text","required":false,"default":""},"lastUsedAt":{"type":"datetime","required":false},"verifiedAt":{"type":"datetime","required":false}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"findByPubkey":{"name":"findByPubkey","async":true,"parameters":[{"name":"pubkey","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<NostrIdentity | null>","isStatic":true,"isPublic":true},"findByEmail":{"name":"findByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<NostrIdentity | null>","isStatic":true,"isPublic":true},"findByNip05":{"name":"findByNip05","async":true,"parameters":[{"name":"username","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<NostrIdentity | null>","isStatic":true,"isPublic":true},"decryptPrivkey":{"name":"decryptPrivkey","async":false,"parameters":[{"name":"masterSecret","type":"string","optional":false}],"returnType":"string","isStatic":false,"isPublic":true},"getKeypair":{"name":"getKeypair","async":false,"parameters":[{"name":"masterSecret","type":"string","optional":false}],"returnType":"object","isStatic":false,"isPublic":true},"recordUsage":{"name":"recordUsage","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"markVerified":{"name":"markVerified","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isVerified":{"name":"isVerified","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getNip05Identifier":{"name":"getNip05Identifier","async":false,"parameters":[{"name":"domain","type":"string","optional":false}],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"nostr_identities","sensitive":true,"api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtObject","exportName":"NostrIdentity","collectionExportName":"NostrIdentityCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"nostr_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"nostr_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"pubkey\\" TEXT DEFAULT '',\\n \\"encrypted_privkey\\" TEXT DEFAULT '',\\n \\"encryption_iv\\" TEXT DEFAULT '',\\n \\"encryption_tag\\" TEXT DEFAULT '',\\n \\"email\\" TEXT DEFAULT '',\\n \\"nip05_username\\" TEXT DEFAULT '',\\n \\"last_used_at\\" TIMESTAMP,\\n \\"verified_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"pubkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encrypted_privkey":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_iv":{"type":"TEXT","notNull":false,"unique":false,"default":""},"encryption_tag":{"type":"TEXT","notNull":false,"unique":false,"default":""},"email":{"type":"TEXT","notNull":false,"unique":false,"default":""},"nip05_username":{"type":"TEXT","notNull":false,"unique":false,"default":""},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"verified_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"nostr_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"nostr_identities_pubkey_idx","columns":["pubkey"]},{"name":"nostr_identities_created_at_idx","columns":["created_at"]},{"name":"nostr_identities_profile_id_idx","columns":["profile_id"]}],"version":"92eda375"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcIdentity":{"name":"oidcidentity","className":"OidcIdentity","qualifiedName":"@happyvertical/smrt-profiles:OidcIdentity","collection":"oidcidentities","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/OidcIdentity.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"provider":{"type":"text","required":false,"_meta":{}},"issuer":{"type":"text","required":false,"_meta":{"indexed":true}},"subject":{"type":"text","required":false,"_meta":{"indexed":true}},"identityKey":{"type":"text","required":false,"_meta":{"nullable":true,"unique":true,"readonly":true},"readonly":true},"email":{"type":"text","required":false,"_meta":{}},"lastUsedAt":{"type":"datetime","required":false,"_meta":{"nullable":true}}},"methods":{"getProfile":{"name":"getProfile","async":true,"parameters":[],"returnType":"Promise<Profile | null>","isStatic":false,"isPublic":true},"findBySubject":{"name":"findBySubject","async":true,"parameters":[{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<OidcIdentity | null>","isStatic":true,"isPublic":true},"buildIdentityKey":{"name":"buildIdentityKey","async":false,"parameters":[{"name":"issuer","type":"string","optional":false},{"name":"subject","type":"string","optional":false}],"returnType":"string","isStatic":true,"isPublic":true},"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"findOrCreate":{"name":"findOrCreate","async":true,"parameters":[{"name":"profile","type":"Profile","optional":false},{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]},{"name":"options","type":"SmrtObjectOptions","optional":true}],"returnType":"Promise<OidcIdentity>","isStatic":true,"isPublic":true},"recordUsage":{"name":"recordUsage","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"oidc_identities","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtObject","exportName":"OidcIdentity","collectionExportName":"OidcIdentityCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"oidc_identities","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_identities\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"provider\\" TEXT,\\n \\"issuer\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"identity_key\\" TEXT UNIQUE,\\n \\"email\\" TEXT,\\n \\"last_used_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"provider":{"type":"TEXT","notNull":false,"unique":false},"issuer":{"type":"TEXT","notNull":false,"unique":false},"subject":{"type":"TEXT","notNull":false,"unique":false},"identity_key":{"type":"TEXT","notNull":false,"unique":true},"email":{"type":"TEXT","notNull":false,"unique":false},"last_used_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"oidc_identities_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_identities_issuer_idx","columns":["issuer"]},{"name":"oidc_identities_subject_idx","columns":["subject"]},{"name":"oidc_identities_created_at_idx","columns":["created_at"]},{"name":"oidc_identities_profile_id_idx","columns":["profile_id"]}],"version":"925387ea"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:OidcProfileEmailReservation":{"name":"oidcprofileemailreservation","className":"OidcProfileEmailReservation","qualifiedName":"@happyvertical/smrt-profiles:OidcProfileEmailReservation","collection":"oidcprofileemailreservations","description":"Private database arbiter for canonical OIDC email provisioning races.","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/OidcProfileEmailReservation.ts","packageName":"@happyvertical/smrt-profiles","fields":{"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true,"unique":true}},"emailKey":{"type":"text","required":true,"_meta":{"required":true,"unique":true,"readonly":true},"readonly":true}},"methods":{},"decoratorConfig":{"tableName":"oidc_profile_email_reservations","api":false,"mcp":false,"cli":false},"extends":"SmrtObject","exportName":"OidcProfileEmailReservation","collectionExportName":"OidcProfileEmailReservationCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"emailKey","rule":"required","fieldType":"text"}],"schema":{"tableName":"oidc_profile_email_reservations","ddl":"CREATE TABLE IF NOT EXISTS \\"oidc_profile_email_reservations\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"profile_id\\" UUID NOT NULL UNIQUE,\\n \\"email_key\\" TEXT NOT NULL UNIQUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":true,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email_key":{"type":"TEXT","notNull":true,"unique":true}},"indexes":[{"name":"oidc_profile_email_reservations_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"oidc_profile_email_reservations_created_at_idx","columns":["created_at"]}],"version":"01586e67"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Profile":{"name":"profile","className":"Profile","qualifiedName":"@happyvertical/smrt-profiles:Profile","collection":"profiles","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/Profile.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"Profile","collectionExportName":"ProfileCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"f4a7b632"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileAsset":{"name":"profileasset","className":"ProfileAsset","qualifiedName":"@happyvertical/smrt-profiles:ProfileAsset","collection":"profileassets","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileAsset.ts","packageName":"@happyvertical/smrt-profiles","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true,"onDelete":"CASCADE"}},"assetId":{"type":"crossPackageRef","required":true,"related":"@happyvertical/smrt-assets:Asset","_meta":{"onDelete":"CASCADE"}},"relationship":{"type":"text","required":true,"_meta":{"required":true}},"sortOrder":{"type":"integer","required":true,"default":0}},"methods":{},"decoratorConfig":{"tableName":"profile_assets","conflictColumns":["profile_id","asset_id","relationship"],"api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional"}},"extends":"SmrtObject","exportName":"ProfileAsset","collectionExportName":"ProfileAssetCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"assetId","rule":"required","fieldType":"crossPackageRef"},{"field":"relationship","rule":"required","fieldType":"text"},{"field":"sortOrder","rule":"required","fieldType":"integer"}],"schema":{"tableName":"profile_assets","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"asset_id\\" UUID NOT NULL,\\n \\"relationship\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"asset_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"relationship":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_assets_profile_id_asset_id_idx","columns":["profile_id","asset_id","relationship"],"unique":true},{"name":"profile_assets_slug_context_idx","columns":["slug","context"]},{"name":"profile_assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_assets_asset_id_idx","columns":["asset_id"]}],"version":"d0d7c2a2"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileLink":{"name":"profilelink","className":"ProfileLink","qualifiedName":"@happyvertical/smrt-profiles:ProfileLink","collection":"profilelinks","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileLink.ts","packageName":"@happyvertical/smrt-profiles","fields":{"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true,"onDelete":"CASCADE"}},"platform":{"type":"text","required":true,"default":"website","maxLength":32,"_meta":{"required":true,"maxLength":32}},"url":{"type":"text","required":true,"maxLength":2048,"_meta":{"required":true,"maxLength":2048}},"label":{"type":"text","required":false,"maxLength":200,"_meta":{"nullable":true,"maxLength":200}},"sortOrder":{"type":"integer","required":true,"default":0}},"methods":{"getSlug":{"name":"getSlug","async":true,"parameters":[],"returnType":"Promise<string | null | undefined>","isStatic":false,"isPublic":true},"save":{"name":"save","async":true,"parameters":[{"name":"...args","type":"any","optional":true,"typeUnresolved":true}],"returnType":"Promise<this>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"profile_links","api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"ProfileLink","collectionExportName":"ProfileLinkCollection","displayLabelField":"label","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"platform","rule":"required","fieldType":"text"},{"field":"platform","rule":"maxLength","value":32,"fieldType":"text"},{"field":"url","rule":"required","fieldType":"text"},{"field":"url","rule":"maxLength","value":2048,"fieldType":"text"},{"field":"label","rule":"maxLength","value":200,"fieldType":"text"},{"field":"sortOrder","rule":"required","fieldType":"integer"}],"schema":{"tableName":"profile_links","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_links\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID NOT NULL,\\n \\"platform\\" TEXT NOT NULL DEFAULT 'website',\\n \\"url\\" TEXT NOT NULL,\\n \\"label\\" TEXT,\\n \\"sort_order\\" INTEGER NOT NULL DEFAULT 0\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"platform":{"type":"TEXT","notNull":true,"unique":false,"default":"website"},"url":{"type":"TEXT","notNull":true,"unique":false},"label":{"type":"TEXT","notNull":false,"unique":false},"sort_order":{"type":"INTEGER","notNull":true,"unique":false,"default":0}},"indexes":[{"name":"profile_links_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"profile_links_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_links_profile_id_idx","columns":["profile_id"]}],"version":"847fd648"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetadata":{"name":"profilemetadata","className":"ProfileMetadata","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetadata","collection":"profilemetadatas","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileMetadata.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"metafieldId":{"type":"foreignKey","required":true,"related":"ProfileMetafield","_meta":{"required":true}},"value":{"type":"text","required":true,"default":"","_meta":{"required":true}}},"methods":{"validate":{"name":"validate","async":true,"parameters":[],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getMetafieldSlug":{"name":"getMetafieldSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileMetadata","collectionExportName":"ProfileMetadataCollection","validationRules":[{"field":"profileId","rule":"required","fieldType":"foreignKey"},{"field":"metafieldId","rule":"required","fieldType":"foreignKey"},{"field":"value","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_metadata","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metadata\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"profile_id\\" UUID,\\n \\"metafield_id\\" UUID,\\n \\"value\\" TEXT DEFAULT ''\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"metafield_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_metafields","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"value":{"type":"TEXT","notNull":false,"default":""}},"indexes":[{"name":"profile_metadata_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metadata_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metadata_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_metadata_profile_id_idx","columns":["profile_id"]},{"name":"profile_metadata_metafield_id_idx","columns":["metafield_id"]}],"version":"d3ab1b70"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileMetafield":{"name":"profilemetafield","className":"ProfileMetafield","qualifiedName":"@happyvertical/smrt-profiles:ProfileMetafield","collection":"profilemetafields","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileMetafield.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"validation":{"type":"json","required":false}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<ProfileMetafield | null>","isStatic":true,"isPublic":true},"registerValidator":{"name":"registerValidator","async":false,"parameters":[{"name":"name","type":"string","optional":false},{"name":"validator","type":"ValidatorFunction","optional":false}],"returnType":"void","isStatic":true,"isPublic":true},"getValidator":{"name":"getValidator","async":false,"parameters":[{"name":"name","type":"string","optional":false}],"returnType":"ValidatorFunction | undefined","isStatic":true,"isPublic":true},"validateValue":{"name":"validateValue","async":true,"parameters":[{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileMetafield","collectionExportName":"ProfileMetafieldCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"validation\\" JSON\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"validation":{"type":"JSON","notNull":false}},"indexes":[{"name":"profile_metafields_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"profile_metafields_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"afe420df"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationship":{"name":"profilerelationship","className":"ProfileRelationship","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationship","collection":"profilerelationships","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileRelationship.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"fromProfileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"toProfileId":{"type":"foreignKey","required":true,"related":"Profile","_meta":{"required":true}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileRelationshipType","_meta":{"required":true}},"contextProfileId":{"type":"foreignKey","required":false,"related":"Profile"},"terms":{"type":"oneToMany","required":false,"related":"ProfileRelationshipTerm"}},"methods":{"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"addTerm":{"name":"addTerm","async":true,"parameters":[{"name":"startedAt","type":"Date","optional":false},{"name":"endedAt","type":"Date","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"endCurrentTerm":{"name":"endCurrentTerm","async":true,"parameters":[{"name":"endedAt","type":"Date","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getTerms":{"name":"getTerms","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipTerm[]>","isStatic":false,"isPublic":true},"getActiveTerm":{"name":"getActiveTerm","async":true,"parameters":[],"returnType":"Promise<ProfileRelationshipTerm | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileRelationship","collectionExportName":"ProfileRelationshipCollection","validationRules":[{"field":"fromProfileId","rule":"required","fieldType":"foreignKey"},{"field":"toProfileId","rule":"required","fieldType":"foreignKey"},{"field":"typeId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"profile_relationships","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationships\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"from_profile_id\\" UUID,\\n \\"to_profile_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"context_profile_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"from_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"to_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationship_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"context_profile_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profiles","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}}},"indexes":[{"name":"profile_relationships_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_relationships_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationships_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profile_relationships_from_profile_id_idx","columns":["from_profile_id"]},{"name":"profile_relationships_to_profile_id_idx","columns":["to_profile_id"]},{"name":"profile_relationships_type_id_idx","columns":["type_id"]},{"name":"profile_relationships_context_profile_id_idx","columns":["context_profile_id"]}],"version":"48878dba"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipTerm":{"name":"profilerelationshipterm","className":"ProfileRelationshipTerm","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipTerm","collection":"profilerelationshipterms","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileRelationshipTerm.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"relationshipId":{"type":"foreignKey","required":true,"related":"ProfileRelationship","_meta":{"required":true}},"startedAt":{"type":"datetime","required":true,"_meta":{"required":true}},"endedAt":{"type":"datetime","required":false}},"methods":{"isActive":{"name":"isActive","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"end":{"name":"end","async":true,"parameters":[{"name":"endedAt","type":"Date","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getDurationDays":{"name":"getDurationDays","async":false,"parameters":[],"returnType":"number","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"ProfileRelationshipTerm","collectionExportName":"ProfileRelationshipTermCollection","validationRules":[{"field":"relationshipId","rule":"required","fieldType":"foreignKey"},{"field":"startedAt","rule":"required","fieldType":"datetime"}],"schema":{"tableName":"profile_relationship_terms","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_terms\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"relationship_id\\" UUID,\\n \\"started_at\\" TIMESTAMP,\\n \\"ended_at\\" TIMESTAMP\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"relationship_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_relationships","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"started_at":{"type":"TIMESTAMP","notNull":false},"ended_at":{"type":"TIMESTAMP","notNull":false}},"indexes":[{"name":"profile_relationship_terms_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_terms_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_terms_created_at_idx","columns":["created_at"]},{"name":"profile_relationship_terms_relationship_id_idx","columns":["relationship_id"]}],"version":"ef299102"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileRelationshipType":{"name":"profilerelationshiptype","className":"ProfileRelationshipType","qualifiedName":"@happyvertical/smrt-profiles:ProfileRelationshipType","collection":"profilerelationshiptypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileRelationshipType.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"reciprocal":{"type":"boolean","required":false,"default":true}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<ProfileRelationshipType | null>","isStatic":true,"isPublic":true},"registerReciprocalHandler":{"name":"registerReciprocalHandler","async":false,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"handler","type":"ReciprocalHandler","optional":false}],"returnType":"void","isStatic":true,"isPublic":true},"getReciprocalHandler":{"name":"getReciprocalHandler","async":false,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"ReciprocalHandler | undefined","isStatic":true,"isPublic":true},"isReciprocal":{"name":"isReciprocal","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"ProfileRelationshipType","collectionExportName":"ProfileRelationshipTypeCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_relationship_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_relationship_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT DEFAULT '',\\n \\"reciprocal\\" BOOLEAN DEFAULT TRUE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false,"default":""},"reciprocal":{"type":"BOOLEAN","notNull":false,"default":true}},"indexes":[{"name":"profile_relationship_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"profile_relationship_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_relationship_types_created_at_idx","columns":["created_at"]}],"version":"719fe0d9"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:ProfileType":{"name":"profiletype","className":"ProfileType","qualifiedName":"@happyvertical/smrt-profiles:ProfileType","collection":"profiletypes","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileType.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true,"mode":"optional","field":"tenantId","allowSuperAdminBypass":false}}},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<ProfileType | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"ProfileType","collectionExportName":"ProfileTypeCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profile_types","ddl":"CREATE TABLE IF NOT EXISTS \\"profile_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"profile_types_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profile_types_meta_type_idx","columns":["_meta_type"]},{"name":"profile_types_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"0fb37aeb"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Person":{"name":"person","className":"Person","qualifiedName":"@happyvertical/smrt-profiles:Person","collection":"profiles","description":"Person profile type","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileTypes.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","tableName":"profiles","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true}},"extends":"Profile","exportName":"Person","collectionExportName":"PersonCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"2043b736"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Organization":{"name":"organization","className":"Organization","qualifiedName":"@happyvertical/smrt-profiles:Organization","collection":"profiles","description":"Organization profile type","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileTypes.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","tableName":"profiles","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true}},"extends":"Profile","exportName":"Organization","collectionExportName":"OrganizationCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"573ebccc"},"importPath":"@happyvertical/smrt-profiles"},"@happyvertical/smrt-profiles:Bot":{"name":"bot","className":"Bot","qualifiedName":"@happyvertical/smrt-profiles:Bot","collection":"profiles","description":"Bot profile type","filePath":"/home/runner/work/smrt/smrt/packages/profiles/src/models/ProfileTypes.ts","packageName":"@happyvertical/smrt-profiles","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tenantId":{"type":"text","required":false,"_meta":{"sqlType":"UUID","nullable":true,"__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":false,"autoPopulate":true,"nullable":true}}},"typeId":{"type":"foreignKey","required":true,"related":"ProfileType","_meta":{"required":true}},"email":{"type":"text","required":false},"emailKey":{"type":"text","required":false,"_meta":{"nullable":true,"indexed":true,"readonly":true},"readonly":true},"name":{"type":"text","required":true,"default":"","_meta":{"required":true}},"description":{"type":"text","required":false},"isPublic":{"type":"boolean","required":false,"default":false,"_meta":{"default":false}},"metadata":{"type":"oneToMany","required":false,"related":"ProfileMetadata"},"relationshipsFrom":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"fromProfileId"}},"relationshipsTo":{"type":"oneToMany","required":false,"related":"ProfileRelationship","_meta":{"foreignKey":"toProfileId"}}},"methods":{"save":{"name":"save","async":true,"parameters":[],"returnType":"Promise<this>","isStatic":false,"isPublic":true},"getTypeSlug":{"name":"getTypeSlug","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"setTypeBySlug":{"name":"setTypeBySlug","async":true,"parameters":[{"name":"slug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addMetadata":{"name":"addMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false},{"name":"value","type":"unknown","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":true,"parameters":[],"returnType":"Promise<Record<string, string>>","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":true,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeMetadata":{"name":"removeMetadata","async":true,"parameters":[{"name":"metafieldSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getLinks":{"name":"getLinks","async":true,"parameters":[],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"links","type":"any","optional":false,"typeUnresolved":true}],"returnType":"Promise<ProfileLink[]>","isStatic":false,"isPublic":true},"getAssets":{"name":"getAssets","async":true,"parameters":[{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addAsset":{"name":"addAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"relationship","type":"any","optional":true,"default":"attachment"},{"name":"sortOrder","type":"any","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"removeAsset":{"name":"removeAsset","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"relationship","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"addRelationship":{"name":"addRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false},{"name":"contextProfile","type":"Profile","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getRelationships":{"name":"getRelationships","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["string","'from' | 'to' | 'all'"]}],"returnType":"Promise<ProfileRelationship[]>","isStatic":false,"isPublic":true},"getRelatedProfiles":{"name":"getRelatedProfiles","async":true,"parameters":[{"name":"relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":false,"isPublic":true},"removeRelationship":{"name":"removeRelationship","async":true,"parameters":[{"name":"toProfile","type":"Profile","optional":false},{"name":"relationshipSlug","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"generateBio":{"name":"generateBio","async":true,"parameters":[],"returnType":"Promise<string>","isStatic":false,"isPublic":true},"matches":{"name":"matches","async":true,"parameters":[{"name":"criteria","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"findByMetadata":{"name":"findByMetadata","async":true,"parameters":[{"name":"_metafieldSlug","type":"string","optional":false},{"name":"_value","type":"unknown","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findByType":{"name":"findByType","async":true,"parameters":[{"name":"_typeSlug","type":"string","optional":false}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"findRelated":{"name":"findRelated","async":true,"parameters":[{"name":"_profileId","type":"string","optional":false},{"name":"_relationshipSlug","type":"string","optional":true}],"returnType":"Promise<Profile[]>","isStatic":true,"isPublic":true},"searchByEmail":{"name":"searchByEmail","async":true,"parameters":[{"name":"_email","type":"string","optional":false}],"returnType":"Promise<Profile | null>","isStatic":true,"isPublic":true},"getApiKeys":{"name":"getApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"getActiveApiKeys":{"name":"getActiveApiKeys","async":true,"parameters":[],"returnType":"Promise<ApiKey[]>","isStatic":false,"isPublic":true},"generateApiKey":{"name":"generateApiKey","async":true,"parameters":[{"name":"options","type":"object","optional":false,"memberTypes":["string","string[]","Date | null"]}],"returnType":"Promise<GenerateKeyResult>","isStatic":false,"isPublic":true},"getOidcIdentities":{"name":"getOidcIdentities","async":true,"parameters":[],"returnType":"Promise<OidcIdentity[]>","isStatic":false,"isPublic":true},"linkOidcIdentity":{"name":"linkOidcIdentity","async":true,"parameters":[{"name":"oidcData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<OidcIdentity>","isStatic":false,"isPublic":true},"getNostrIdentities":{"name":"getNostrIdentities","async":true,"parameters":[],"returnType":"Promise<NostrIdentity[]>","isStatic":false,"isPublic":true},"linkNostrIdentity":{"name":"linkNostrIdentity","async":true,"parameters":[{"name":"nostrData","type":"object","optional":false,"memberTypes":["string"]}],"returnType":"Promise<NostrIdentity>","isStatic":false,"isPublic":true},"getAuditLogs":{"name":"getAuditLogs","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"Promise<AuditLog[]>","isStatic":false,"isPublic":true},"recordAction":{"name":"recordAction","async":true,"parameters":[{"name":"options","type":"object","optional":false,"typeUnresolved":true,"memberTypes":["string","'web' | 'cli' | 'ci' | 'webhook' | 'mcp'","Record<string, unknown>","Profile | null"]}],"returnType":"Promise<AuditLog>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","tableName":"profiles","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true}},"extends":"Profile","exportName":"Bot","collectionExportName":"BotCollection","displayLabelField":"name","validationRules":[{"field":"typeId","rule":"required","fieldType":"foreignKey"},{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"profiles","ddl":"CREATE TABLE IF NOT EXISTS \\"profiles\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"type_id\\" UUID,\\n \\"email\\" TEXT,\\n \\"email_key\\" TEXT,\\n \\"name\\" TEXT DEFAULT '',\\n \\"description\\" TEXT,\\n \\"is_public\\" BOOLEAN DEFAULT FALSE\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false},"type_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"profile_types","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"email":{"type":"TEXT","notNull":false},"email_key":{"type":"TEXT","notNull":false},"name":{"type":"TEXT","notNull":false,"default":""},"description":{"type":"TEXT","notNull":false},"is_public":{"type":"BOOLEAN","notNull":false,"default":false}},"indexes":[{"name":"profiles_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"profiles_meta_type_idx","columns":["_meta_type"]},{"name":"profiles_email_key_idx","columns":["email_key"]},{"name":"profiles_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"profiles_type_id_idx","columns":["type_id"]}],"version":"2a1c7716"},"importPath":"@happyvertical/smrt-profiles"}},"moduleType":"smrt","recipes":[{"id":"profiles.audit-log","className":"AuditLogRecipe","label":"Activity log","summary":"Review who changed a record and when.","synonyms":["audit trail","record history","activity"],"models":["@happyvertical/smrt-profiles:AuditLog"],"nav":[],"requires":[],"group":{"id":"activity","label":"Activity","summary":"Review authorized record history independently of messaging."},"section":{"id":"activity","label":"Activity","icon":"book","description":"See who changed records and why."},"help":{"markdown":"## Activity log\\nReview changes to records you are authorized to inspect. Each activity shows the actor, action, time, and recorded reason or resource.\\nOpen the related record when your application provides a link.\\n\\n## Record history\\nThe application enables auditing on selected models and authorizes audit reads. Only recorded events appear; enabling auditing does not reconstruct earlier changes.\\nSensitive audit details are available only through the application's authorized history service.\\n","fieldRefs":[]},"surfaces":[{"kind":"route","path":"/activity","export":"@happyvertical/smrt-svelte#ActivityList","label":"Activity log"}],"providers":[{"id":"audit-trail","kind":"activity","options":["audit-log"],"required":true}],"runtime":"both","demoSeed":{"data":{"entries":[{"id":"demo-audit","title":"Demo colleague \xB7 updated","detail":"Approved a fictional record.","occurredAt":"2026-01-01T12:00:00Z","href":null}]}},"demo":{"mode":"server","reasons":["Needs a server because its package does not build for a browser: node:crypto in root; core migrations (node:os); and its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3617, #3624, #3626)."]}}],"smrtDependencies":["@happyvertical/smrt-assets","@happyvertical/smrt-core","@happyvertical/smrt-prompts","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3617","#3624","#3626"],"reason":"node:crypto in root; core migrations (node:os)","via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
24
24
  //#endregion
25
25
  //#region src/activity.ts
26
26
  function auditActivityEntries(entries, options = {}) {