nucleus-core-ts 0.8.147 → 0.8.148

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/client.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{batch as F,createStore as ce}from"h-state";import{useEffectEvent as pe}from"react";function fe(e){let n={};for(let t of Object.keys(e))n[t]={isPending:!1,data:null,error:null,code:null};return n}function me(e,n){let{useStore:t}=ce(fe(e),{_callEndpoint:(i)=>async(s,a)=>{if(!i[s])return;F(()=>{i[s].isPending=!0,i[s].error=null});try{let r=await n(s,a.payload);if(F(()=>{if(i[s].isPending=!1,i[s].code=r.code??null,r.isSuccess&&r.data!==void 0)i[s].data=r.data,i[s].error=null;else i[s].error=r.errors??null}),r.isSuccess)a.onAfterHandle?.(r.data??r);else a.onErrorHandle?.(r.errors??{message:"Request failed"},r.code)}catch(r){F(()=>{i[s].isPending=!1,i[s].error={message:r instanceof Error?r.message:"Unknown error"}}),a.onErrorHandle?.({message:r instanceof Error?r.message:"Unknown error"},null)}}});return function(){let s=t(),a=pe((r,d)=>{s._callEndpoint(r,d)}),o={};for(let r of Object.keys(e)){let d=(u)=>{a(r,u)};o[r]={state:s[r],start:d}}return o}}var J={$schema:"../schemas/nucleus.tables.schema.json",tables:[{table_name:"users",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"email",type:"varchar",length:255},{name:"password",type:"varchar",length:255},{name:"verified_at",type:"timestamp"},{name:"email_verification_token",type:"varchar",length:255},{name:"email_verification_token_expires_at",type:"timestamp"},{name:"email_verification_sent_at",type:"timestamp"},{name:"email_verification_attempts",type:"integer",default:0},{name:"last_login_at",type:"timestamp"},{name:"login_count",type:"integer",default:0},{name:"is_locked",type:"boolean",default:!1},{name:"locked_until",type:"timestamp"},{name:"failed_login_attempts",type:"integer",default:0},{name:"is_god",type:"boolean",default:!1}],indexes:[{columns:["email"],unique:!0},{columns:["email","is_active"]},{columns:["last_login_at"]},{columns:["is_locked","locked_until"]}]},{table_name:"profiles",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id"}},{name:"first_name",type:"varchar",length:100,notNull:!0},{name:"last_name",type:"varchar",length:100,notNull:!0}],indexes:[{columns:["user_id"],unique:!0},{columns:["first_name","last_name"]}]},{table_name:"roles",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"name",type:"varchar",length:100,notNull:!0},{name:"description",type:"varchar",length:500}],indexes:[{columns:["name"],unique:!0}]},{table_name:"claims",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"action",type:"varchar",length:100,notNull:!0},{name:"description",type:"varchar",length:500},{name:"path",type:"varchar",length:200,notNull:!0},{name:"method",type:"varchar",length:10,notNull:!0}],indexes:[{columns:["action"],unique:!0},{columns:["path","method"]}]},{table_name:"user_roles",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"role_id",type:"uuid",notNull:!0,references:{table:"roles",column:"id",onDelete:"cascade"}}],indexes:[{columns:["user_id"]},{columns:["role_id"]}],constraints:{unique:[{name:"unique_user_role",columns:["user_id","role_id"]}]}},{table_name:"role_claims",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"role_id",type:"uuid",notNull:!0,references:{table:"roles",column:"id",onDelete:"cascade"}},{name:"claim_id",type:"uuid",notNull:!0,references:{table:"claims",column:"id",onDelete:"cascade"}},{name:"scope",type:"text"}],indexes:[{columns:["role_id"]},{columns:["claim_id"]},{columns:["role_id","claim_id","scope"]}]},{table_name:"files",feature_set:["storage"],add_base_columns:!0,is_form_data:!0,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"name",type:"varchar",length:255,notNull:!0},{name:"original_name",type:"varchar",length:255,notNull:!0},{name:"type",type:"varchar",length:50,enumValues:["image","document","video","audio","profile_picture"]},{name:"path",type:"varchar",length:500,notNull:!0},{name:"size",type:"bigint",mode:"number",notNull:!0},{name:"mime_type",type:"varchar",length:100,notNull:!0},{name:"extension",type:"varchar",length:10,notNull:!0},{name:"uploaded_by",type:"uuid",references:{table:"users",column:"id"}}],indexes:[{columns:["type"]},{columns:["uploaded_by"]},{columns:["size"]}]},{table_name:"addresses",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"owner_type",type:"varchar",length:50,notNull:!0,enumValues:["user","company","contact"]},{name:"owner_id",type:"uuid",notNull:!0},{name:"name",type:"varchar",length:100,notNull:!0},{name:"street",type:"varchar",length:255},{name:"city",type:"varchar",length:100},{name:"state",type:"varchar",length:50},{name:"zip",type:"varchar",length:20},{name:"country",type:"varchar",length:50,default:"US"},{name:"latitude",type:"decimal",precision:10,scale:8},{name:"longitude",type:"decimal",precision:11,scale:8},{name:"neighborhood",type:"varchar",length:100},{name:"apartment",type:"varchar",length:50},{name:"province",type:"varchar",length:100},{name:"district",type:"varchar",length:100},{name:"type",type:"varchar",length:50}],indexes:[{columns:["city","state"]},{columns:["latitude","longitude"]},{columns:["type"]},{columns:["owner_type","owner_id"]}]},{table_name:"phones",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"owner_type",type:"varchar",length:50,notNull:!0,enumValues:["user","company","contact"]},{name:"owner_id",type:"uuid",notNull:!0},{name:"name",type:"varchar",length:100,notNull:!0},{name:"type",type:"varchar",length:50,enumValues:["mobile","office","fax"]},{name:"number",type:"varchar",length:20,notNull:!0},{name:"country_code",type:"varchar",length:10,notNull:!0,default:"+1"},{name:"extension",type:"varchar",length:10}],indexes:[{columns:["number"]},{columns:["type"]},{columns:["owner_type","owner_id"]}]},{table_name:"notifications",feature_set:["notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"user_id",type:"uuid",notNull:!0},{name:"title",type:"varchar",length:255,notNull:!0},{name:"body",type:"varchar",length:1000},{name:"entity_name",type:"varchar",length:100},{name:"entity_id",type:"uuid"},{name:"type",type:"varchar",length:50,notNull:!0,default:"system",enumValues:["verification","system","custom"]},{name:"source",type:"varchar",length:100},{name:"is_seen",type:"boolean",notNull:!0,default:!1},{name:"seen_at",type:"timestamptz"}],indexes:[{columns:["user_id","created_at"]},{columns:["is_seen"]},{columns:["type"]},{columns:["user_id","type","is_seen"]}]},{table_name:"tenants",feature_set:["multi-tenant"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["main"],excluded_schemas:[],excluded_methods:[],columns:[{name:"subdomain",type:"varchar",length:100,notNull:!0,unique:!0},{name:"company_id",type:"uuid",notNull:!0},{name:"schema_name",type:"varchar",length:100,notNull:!0,unique:!0},{name:"company_name",type:"varchar",length:255},{name:"god_admin_email",type:"varchar",length:255}],indexes:[]},{table_name:"verifications",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"instance_id",type:"uuid",notNull:!0,references:{table:"verificationInstances",column:"id",onDelete:"cascade"}},{name:"requirement_id",type:"uuid",notNull:!0,references:{table:"verificationRequirements",column:"id"}},{name:"verifier_id",type:"uuid",notNull:!0,references:{table:"users",column:"id"}},{name:"signature_id",type:"uuid",references:{table:"files",column:"id"}},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"entity_id",type:"uuid",notNull:!0},{name:"step_order",type:"integer",notNull:!0,default:1},{name:"decision",type:"varchar",length:50,notNull:!0,default:"pending",enumValues:["approved","rejected","pending"]},{name:"reason",type:"text"},{name:"diff",type:"jsonb"}],indexes:[{columns:["instance_id"]},{columns:["requirement_id"]},{columns:["verifier_id"]},{columns:["entity_name","entity_id"]},{columns:["entity_name","entity_id","step_order"]},{columns:["decision"]}]},{table_name:"verificationRequirements",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"instance_id",type:"uuid",notNull:!0,references:{table:"verificationInstances",column:"id",onDelete:"cascade"}},{name:"step_node_id",type:"varchar",length:100,notNull:!0},{name:"verifier_node_id",type:"varchar",length:100,notNull:!0},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"entity_id",type:"uuid",notNull:!0},{name:"verifier_type",type:"varchar",length:30,notNull:!0,enumValues:["user","role"]},{name:"verifier_user_id",type:"uuid"},{name:"verifier_role",type:"varchar",length:100},{name:"require_signature",type:"boolean",notNull:!0,default:!1},{name:"all_must_approve",type:"boolean",notNull:!0,default:!1},{name:"step_order",type:"integer",notNull:!0,default:1},{name:"status",type:"varchar",length:30,notNull:!0,default:"pending",enumValues:["pending","approved","rejected"]}],indexes:[{columns:["instance_id"]},{columns:["instance_id","step_order"]},{columns:["entity_name","entity_id"]},{columns:["verifier_user_id"]},{columns:["status"]}]},{table_name:"verificationFlows",feature_set:["authentication","verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"name",type:"varchar",length:255,notNull:!0},{name:"description",type:"text"},{name:"trigger_on",type:"varchar",length:50,notNull:!0,default:"update",enumValues:["create","update","delete","manual"]},{name:"trigger_fields",type:"jsonb"},{name:"is_draft",type:"boolean",notNull:!0,default:!0},{name:"published_at",type:"timestamptz"},{name:"viewport",type:"jsonb"}],indexes:[{columns:["entity_name"]},{columns:["entity_name","trigger_on"]},{columns:["is_draft"]}]},{table_name:"verificationSteps",feature_set:["authentication","verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"node_id",type:"varchar",length:100,notNull:!0},{name:"node_type",type:"varchar",length:50,notNull:!0,default:"step",enumValues:["step","verifier","notification"]},{name:"step_order",type:"integer",notNull:!0,default:1},{name:"name",type:"varchar",length:255},{name:"description",type:"text"},{name:"position_x",type:"numeric",notNull:!0,default:0},{name:"position_y",type:"numeric",notNull:!0,default:0},{name:"width",type:"numeric"},{name:"height",type:"numeric"},{name:"style",type:"jsonb"},{name:"data",type:"jsonb"}],indexes:[{columns:["flow_id"]},{columns:["entity_name"]},{columns:["flow_id","node_id"],unique:!0},{columns:["entity_name","step_order"]}]},{table_name:"verificationEdges",feature_set:["authentication","verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"edge_id",type:"varchar",length:100,notNull:!0},{name:"source_node_id",type:"varchar",length:100,notNull:!0},{name:"target_node_id",type:"varchar",length:100,notNull:!0},{name:"source_handle",type:"varchar",length:50},{name:"target_handle",type:"varchar",length:50},{name:"edge_type",type:"varchar",length:50,default:"default",enumValues:["default","conditional","success","failure"]},{name:"label",type:"varchar",length:255},{name:"condition",type:"jsonb"},{name:"style",type:"jsonb"},{name:"animated",type:"boolean",default:!1}],indexes:[{columns:["flow_id"]},{columns:["flow_id","edge_id"],unique:!0},{columns:["source_node_id"]},{columns:["target_node_id"]}]},{table_name:"verificationNotificationRules",feature_set:["verification","notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"node_id",type:"varchar",length:100,notNull:!0},{name:"trigger",type:"varchar",length:50,notNull:!0,enumValues:["on_flow_started","on_step_reached","on_approved","on_rejected","on_flow_completed"]},{name:"title_template",type:"varchar",length:255},{name:"body_template",type:"text"},{name:"starts_at",type:"timestamptz"},{name:"expires_at",type:"timestamptz"}],indexes:[{columns:["flow_id"]},{columns:["flow_id","node_id"],unique:!0},{columns:["trigger"]}]},{table_name:"verificationNotificationRecipients",feature_set:["verification","notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"rule_id",type:"uuid",notNull:!0,references:{table:"verificationNotificationRules",column:"id",onDelete:"cascade"}},{name:"recipient_type",type:"varchar",length:30,notNull:!0,enumValues:["user","role","all_verifiers","step_verifier","entity_creator"]},{name:"recipient_user_id",type:"uuid"},{name:"recipient_role",type:"varchar",length:100}],indexes:[{columns:["rule_id"]},{columns:["recipient_type"]}]},{table_name:"verificationVerifierConfigs",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"node_id",type:"varchar",length:100,notNull:!0},{name:"verifier_type",type:"varchar",length:30,notNull:!0,enumValues:["user","role"]},{name:"verifier_user_id",type:"uuid"},{name:"verifier_role",type:"varchar",length:100},{name:"require_signature",type:"boolean",notNull:!0,default:!1},{name:"all_must_approve",type:"boolean",notNull:!0,default:!1}],indexes:[{columns:["flow_id"]},{columns:["flow_id","node_id"],unique:!0},{columns:["verifier_type"]}]},{table_name:"verificationInstances",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id"}},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"entity_id",type:"uuid",notNull:!0},{name:"started_by",type:"uuid",references:{table:"users",column:"id"}},{name:"status",type:"varchar",length:30,notNull:!0,default:"active",enumValues:["active","completed","rejected","cancelled"]},{name:"current_step_order",type:"integer",notNull:!0,default:1},{name:"started_at",type:"timestamptz",notNull:!0,defaultRaw:"now()"},{name:"completed_at",type:"timestamptz"}],indexes:[{columns:["flow_id"]},{columns:["entity_name","entity_id"]},{columns:["entity_name","entity_id","status"]},{columns:["status"]},{columns:["started_by"]}]},{table_name:"verificationNotificationChannels",feature_set:["verification","notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"rule_id",type:"uuid",notNull:!0,references:{table:"verificationNotificationRules",column:"id",onDelete:"cascade"}},{name:"channel",type:"varchar",length:30,notNull:!0,enumValues:["portal","email","sms","telegram","webhook"]}],indexes:[{columns:["rule_id"]},{columns:["rule_id","channel"],unique:!0},{columns:["channel"]}]},{table_name:"user_sessions",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH"],columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"token_hash",type:"varchar",length:255,notNull:!0},{name:"refresh_token_hash",type:"varchar",length:255},{name:"device_fingerprint",type:"varchar",length:255},{name:"device_name",type:"varchar",length:100},{name:"device_type",type:"varchar",length:50,enumValues:["desktop","mobile","tablet","unknown"]},{name:"browser_name",type:"varchar",length:50},{name:"browser_version",type:"varchar",length:20},{name:"os_name",type:"varchar",length:50},{name:"os_version",type:"varchar",length:20},{name:"ip_address",type:"varchar",length:45,notNull:!0},{name:"location_country",type:"varchar",length:100},{name:"location_city",type:"varchar",length:100},{name:"location_coordinates",type:"varchar",length:50},{name:"last_activity_at",type:"timestamptz",notNull:!0,defaultRaw:"now()"},{name:"expires_at",type:"timestamptz",notNull:!0},{name:"revoked_at",type:"timestamptz"},{name:"revoked_reason",type:"varchar",length:100,enumValues:["user_logout","user_revoked","admin_revoked","security_concern","password_changed","expired","replaced"]},{name:"is_current",type:"boolean",notNull:!0,default:!1},{name:"login_method",type:"varchar",length:50,enumValues:["password","oauth_google","oauth_github","oauth_microsoft","magic_link","sso","api_key"]},{name:"remember_me",type:"boolean",notNull:!0,default:!1},{name:"trust_score",type:"integer",default:100},{name:"approval_status",type:"varchar",length:20,default:"approved",enumValues:["approved","pending","rejected"]},{name:"approval_token",type:"varchar",length:64},{name:"approval_requested_at",type:"timestamptz"},{name:"approval_responded_at",type:"timestamptz"}],indexes:[{columns:["user_id"]},{columns:["token_hash"],unique:!0},{columns:["refresh_token_hash"]},{columns:["user_id","is_active"]},{columns:["expires_at"]},{columns:["device_fingerprint"]},{columns:["ip_address"]},{columns:["last_activity_at"]},{columns:["approval_status"]},{columns:["approval_token"]}]},{table_name:"password_reset_tokens",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH","DELETE"],columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"token_hash",type:"varchar",length:255,notNull:!0},{name:"expires_at",type:"timestamptz",notNull:!0},{name:"used_at",type:"timestamptz"}],indexes:[{columns:["token_hash"],unique:!0},{columns:["user_id"]},{columns:["expires_at"]}]},{table_name:"magic_link_tokens",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH","DELETE"],columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"email",type:"varchar",length:255,notNull:!0},{name:"token_hash",type:"varchar",length:255,notNull:!0},{name:"expires_at",type:"timestamptz",notNull:!0},{name:"used_at",type:"timestamptz"}],indexes:[{columns:["token_hash"],unique:!0},{columns:["user_id"]},{columns:["email"]},{columns:["expires_at"]}]},{table_name:"audit_logs",feature_set:["audit"],add_base_columns:!1,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","DELETE","PATCH","TOGGLE","VERIFICATION"],columns:[{name:"id",type:"uuid",primaryKey:!0,defaultRaw:"gen_random_uuid()"},{name:"entity_id",type:"uuid"},{name:"entity_name",type:"text",notNull:!0},{name:"operation_type",type:"text",notNull:!0},{name:"user_id",type:"uuid"},{name:"ip_address",type:"text"},{name:"user_agent",type:"text"},{name:"summary",type:"text"},{name:"old_values",type:"jsonb"},{name:"new_values",type:"jsonb"},{name:"created_at",type:"timestamp",notNull:!0,defaultRaw:"now()"},{name:"path",type:"text"},{name:"query",type:"text"}],indexes:[{columns:["entity_id"]},{columns:["entity_name"]},{columns:["user_id"]},{columns:["created_at"]}]},{table_name:"oauth_accounts",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!1,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"provider",type:"varchar",length:50,notNull:!0,enumValues:["google","github","microsoft","discord","facebook","twitter","apple","custom"]},{name:"provider_account_id",type:"varchar",length:255,notNull:!0},{name:"provider_email",type:"varchar",length:255},{name:"provider_name",type:"varchar",length:255},{name:"provider_avatar_url",type:"text"},{name:"access_token",type:"text"},{name:"refresh_token",type:"text"},{name:"token_expires_at",type:"timestamp"},{name:"scope",type:"text"},{name:"raw_profile",type:"jsonb"},{name:"is_primary",type:"boolean",notNull:!0,default:!1},{name:"last_used_at",type:"timestamp"}],indexes:[{columns:["user_id"]},{columns:["provider","provider_account_id"],unique:!0},{columns:["provider_email"]},{columns:["user_id","provider"]}],constraints:{unique:[{name:"unique_provider_account",columns:["provider","provider_account_id"]}]}}]};var M={login:{key:"LOGIN",method:"POST",defaultRoute:"/auth/login",defaultIsPublic:!0,_payload:void 0,_success:void 0,_error:void 0},register:{key:"REGISTER",method:"POST",defaultRoute:"/auth/register",defaultIsPublic:!0,_payload:void 0,_success:void 0,_error:void 0},logout:{key:"LOGOUT",method:"POST",defaultRoute:"/auth/logout",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},refresh:{key:"REFRESH",method:"POST",defaultRoute:"/auth/refresh",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},me:{key:"ME",method:"GET",defaultRoute:"/auth/me",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},passwordChange:{key:"PASSWORD_CHANGE",method:"POST",defaultRoute:"/auth/password-change",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},passwordSet:{key:"PASSWORD_SET",method:"POST",defaultRoute:"/auth/password-set",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},passwordReset:{key:"PASSWORD_RESET_REQUEST",method:"POST",defaultRoute:"/auth/password-reset",defaultIsPublic:!0,subEndpoints:[{key:"PASSWORD_RESET_REQUEST",method:"POST",suffix:"/request",_payload:void 0,_success:void 0,_error:void 0},{key:"PASSWORD_RESET_CONFIRM",method:"POST",suffix:"/confirm",_payload:void 0,_success:void 0,_error:void 0}]},sessions:{key:"SESSIONS",method:"GET",defaultRoute:"/auth/sessions",defaultIsPublic:!1,subEndpoints:[{key:"SESSIONS",method:"GET",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_CURRENT",method:"GET",suffix:"/current",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_STATS",method:"GET",suffix:"/stats",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_PENDING",method:"GET",suffix:"/pending",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_REVOKE",method:"DELETE",suffix:"/:sessionId",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_REVOKE_ALL",method:"DELETE",suffix:"/all",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_APPROVE",method:"POST",suffix:"/approve",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_REJECT",method:"POST",suffix:"/reject",_payload:void 0,_success:void 0,_error:void 0}]},magicLink:{key:"MAGIC_LINK",method:"POST",defaultRoute:"/auth/magic-link",defaultIsPublic:!0,subEndpoints:[{key:"MAGIC_LINK",method:"POST",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"MAGIC_LINK_VERIFY",method:"GET",suffix:"/verify",routeKey:"verifyRoute",_payload:void 0,_success:void 0,_error:void 0}]},invite:{key:"INVITE",method:"POST",defaultRoute:"/auth/invite",defaultIsPublic:!1,subEndpoints:[{key:"INVITE",method:"POST",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"INVITE_VERIFY",method:"POST",suffix:"/verify",_payload:void 0,_success:void 0,_error:void 0}]},emailVerification:{key:"VERIFY_EMAIL",method:"GET",defaultRoute:"/verify-email",defaultIsPublic:!0,subEndpoints:[{key:"VERIFY_EMAIL",method:"GET",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"RESEND_VERIFICATION",method:"POST",suffix:"",routeKey:"resendRoute",defaultRoute:"/resend-verification",_payload:void 0,_success:void 0,_error:void 0}]},captcha:{key:"CAPTCHA",method:"GET",defaultRoute:"/auth/captcha",defaultIsPublic:!0,subEndpoints:[{key:"CAPTCHA_GENERATE",method:"GET",suffix:"/generate",_payload:void 0,_success:void 0,_error:void 0},{key:"CAPTCHA_VALIDATE",method:"POST",suffix:"/validate",_payload:void 0,_success:void 0,_error:void 0}]},oauth:{key:"OAUTH_PROVIDERS",method:"GET",defaultRoute:"/auth/oauth/providers",defaultIsPublic:!0,subEndpoints:[{key:"OAUTH_PROVIDERS",method:"GET",suffix:"/providers",_payload:void 0,_success:void 0,_error:void 0},{key:"OAUTH_REDIRECT",method:"GET",suffix:"/:provider",_payload:void 0,_success:void 0,_error:void 0},{key:"OAUTH_ACCOUNTS",method:"GET",suffix:"/accounts",_payload:void 0,_success:void 0,_error:void 0},{key:"OAUTH_UNLINK",method:"DELETE",suffix:"/unlink/:provider",_payload:void 0,_success:void 0,_error:void 0}]}},Z={healthCheck:{key:"MONITORING_HEALTH_CHECK",method:"GET",suffix:"/health",_payload:void 0,_success:void 0,_error:void 0},getSettings:{key:"MONITORING_GET_SETTINGS",method:"GET",suffix:"/settings",_payload:void 0,_success:void 0,_error:void 0},changeSettings:{key:"MONITORING_CHANGE_SETTINGS",method:"PATCH",suffix:"/settings",_payload:void 0,_success:void 0,_error:void 0},getLogs:{key:"MONITORING_GET_LOGS",method:"GET",suffix:"/logs",_payload:void 0,_success:void 0,_error:void 0}};var he=["profiles","addresses","phones","files","users","roles","claims","user_roles","role_claims","audit_logs"],ge=J.tables.filter((e)=>he.includes(e.table_name));function L(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toUpperCase()}function ye(e){return e.replace(/_([a-z])/g,(n,t)=>t.toUpperCase())}function V(e){if(e.endsWith("ies"))return`${e.slice(0,-3)}y`;if(e.endsWith("ses"))return`${e.slice(0,-2)}`;if(e.endsWith("s"))return e.slice(0,-1);return e}function h(e,n){let t=L(e),i=L(V(e));switch(n){case"GET":return`GET_${t}`;case"POST":return`ADD_${i}`;case"PUT":return`UPDATE_${i}`;case"PATCH":return`PATCH_${i}`;case"DELETE":return`DELETE_${i}`}}function I(e,n){let t=L(e);switch(n){case"POST":return`BULK_ADD_${t}`;case"PUT":return`BULK_UPDATE_${t}`;case"DELETE":return`BULK_DELETE_${t}`}}function T(e,n){if(!e.excluded_methods)return!1;let t={GET:"GET",POST:"POST",PUT:"PUT",PATCH:"PATCH",DELETE:"DELETE"};return e.excluded_methods.includes(t[n])}function X(e){let n={};for(let t of e.entities){let i=t.table_name,s=`/${i}`,a=t.serviceId;if(!T(t,"GET")){n[h(i,"GET")]={method:"GET",path:s,isPublic:t.is_public?.GET??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};let o=L(V(i));n[`GET_${o}_BY_ID`]={method:"GET",path:`${s}/:id`,isPublic:t.is_public?.GET??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0},n[`GET_${L(i)}_DISTINCT`]={method:"GET",path:`${s}/distinct/:field`,isPublic:t.is_public?.GET??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0}}if(!T(t,"POST"))n[h(i,"POST")]={method:"POST",path:s,isPublic:t.is_public?.POST??!1,isFormData:t.is_form_data,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"PUT"))n[h(i,"PUT")]={method:"PUT",path:`${s}/:id`,isPublic:t.is_public?.PUT??!1,isFormData:t.is_form_data,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"PATCH"))n[h(i,"PATCH")]={method:"PATCH",path:`${s}/:id`,isPublic:t.is_public?.PATCH??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"DELETE"))n[h(i,"DELETE")]={method:"DELETE",path:`${s}/:id`,isPublic:t.is_public?.DELETE??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};if(t.bulk_endpoints_enabled){if(!T(t,"POST"))n[I(i,"POST")]={method:"POST",path:`${s}/bulk`,isPublic:t.is_public?.POST??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"PUT"))n[I(i,"PUT")]={method:"PUT",path:`${s}/bulk`,isPublic:t.is_public?.PUT??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"DELETE"))n[I(i,"DELETE")]={method:"DELETE",path:`${s}/bulk`,isPublic:t.is_public?.DELETE??!1,serviceId:a,_payload:void 0,_success:void 0,_error:void 0}}}return n}function Q(e){let n={},t=e.authentication;if(!t?.enabled)return n;for(let[i,s]of Object.entries(M)){let a=t[i];if(!a?.enabled)continue;let o=a,r=o.route||s.defaultRoute,d=o.isPublic??s.defaultIsPublic;if("subEndpoints"in s&&s.subEndpoints)for(let u of s.subEndpoints){let p="routeKey"in u&&u.routeKey&&a[u.routeKey]?String(a[u.routeKey]):("defaultRoute"in u)&&u.defaultRoute?String(u.defaultRoute):`${r}${u.suffix}`;n[u.key]={method:u.method,path:p,isPublic:u.key==="MAGIC_LINK_VERIFY"?!0:d,_payload:u._payload,_success:u._success,_error:u._error}}else if("_payload"in s)n[s.key]={method:s.method,path:r,isPublic:d,_payload:s._payload,_success:s._success,_error:s._error}}return n}function ee(){let e={};for(let n of ge){let t=n.table_name,s=`/${ye(t)}`,a=t==="files";e[h(t,"GET")]={method:"GET",path:s,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0};let o=L(V(t));if(e[`GET_${o}_BY_ID`]={method:"GET",path:`${s}/:id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"POST")]={method:"POST",path:s,isPublic:!1,isFormData:a,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"PUT")]={method:"PUT",path:`${s}/:id`,isPublic:!1,isFormData:a,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"PATCH")]={method:"PATCH",path:`${s}/:id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"DELETE")]={method:"DELETE",path:`${s}/:id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.bulk_endpoints_enabled)e[I(t,"POST")]={method:"POST",path:`${s}/bulk`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[I(t,"PUT")]={method:"PUT",path:`${s}/bulk`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[I(t,"DELETE")]={method:"DELETE",path:`${s}/bulk`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0}}return e}function ne(e){let n={},t=e.liveMonitoring;if(!t?.enabled)return n;let i=t.basePath||"/monitoring";for(let s of Object.values(Z))n[s.key]={method:s.method,path:`${i}${s.suffix}`,isPublic:!1,_payload:s._payload,_success:s._success,_error:s._error};return n}function te(e){let n={};if(!e.authentication?.enabled)return n;return n.ADMIN_IMPERSONATE={method:"POST",path:"/auth/admin/impersonate",isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.ADMIN_IMPERSONATE_STOP={method:"POST",path:"/auth/admin/impersonate/stop",isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.ADMIN_CHANGE_USER_ID={method:"POST",path:"/auth/admin/change-user-id",isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n}function se(e){let n={},t=e.verification,i=e.notification;if(!t?.enabled)return n;let s=t.endpoints?.basePath||"/verifications",a=t.flowEndpoints?.basePath||"/verification-flows",o=i?.endpoints?.basePath||"/notifications";if(n.VERIFICATION_STATUS={method:"GET",path:`${s}/status/:entity_name/:entity_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_DECIDE={method:"POST",path:`${s}/:entity_name/:entity_id/decide`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_PENDING={method:"GET",path:`${s}/pending`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_HISTORY={method:"GET",path:`${s}/history/:entity_name/:entity_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_START={method:"POST",path:`${s}/start`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_START_FOR_ENTITY={method:"POST",path:`${s}/start-for-entity`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_ENTITY_STATUSES={method:"GET",path:`${s}/statuses/:entity_name`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},t.flowEndpoints?.enabled)n.FLOW_LIST={method:"GET",path:a,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_GET={method:"GET",path:`${a}/:flow_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_SAVE={method:"POST",path:a,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_PUBLISH={method:"POST",path:`${a}/:flow_id/publish`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_DELETE={method:"DELETE",path:`${a}/:flow_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0};if(i?.enabled&&i.endpoints?.enabled)n.NOTIFICATION_LIST={method:"GET",path:o,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.NOTIFICATION_UNSEEN_COUNT={method:"GET",path:`${o}/unseen-count`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.NOTIFICATION_MARK_SEEN={method:"POST",path:`${o}/:notification_id/seen`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.NOTIFICATION_MARK_ALL_SEEN={method:"POST",path:`${o}/seen-all`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0};return n}function Ee(e,n){let t=X(e),i=Q(e),s=te(e),a=ee(),o=ne(e),r=se(e);return{...t,...i,...s,...a,...o,...r,...n??{}}}import{randomUUID as Te}from"crypto";import{randomUUID as ve}from"crypto";var B={debug:0,info:1,warn:2,error:3,fatal:4},ie={debug:"\x1B[36m",info:"\x1B[32m",warn:"\x1B[33m",error:"\x1B[31m",fatal:"\x1B[35m"},U="\x1B[0m",G="\x1B[2m",ae="\x1B[1m";var be=["password","secret","token","apiKey","api_key","authorization","cookie","credit_card","creditCard","ssn","privateKey","private_key"];function O(e,n=be,t=new WeakSet){if(e===null||e===void 0)return e;if(typeof e!=="object")return e;if(t.has(e))return"[Circular]";if(t.add(e),Array.isArray(e))return e.map((s)=>O(s,n,t));let i={};for(let[s,a]of Object.entries(e))if(n.some((r)=>s.toLowerCase().includes(r.toLowerCase()))&&typeof a==="string")i[s]="[REDACTED]";else if(typeof a==="object"&&a!==null)i[s]=O(a,n,t);else i[s]=a;return i}function oe(e=4){let n=Error().stack;if(!n)return{file:"unknown",line:0,function:"unknown"};let i=n.split(`
3
- `)[e];if(!i)return{file:"unknown",line:0,function:"unknown"};let s=i.match(/at\s+(?:(.+?)\s+)?\(?(.+?):(\d+):(\d+)\)?/);if(!s)return{file:"unknown",line:0,function:"unknown"};let[,a,o,r]=s;return{file:o?o.split("/").pop()||o:"unknown",line:parseInt(r||"0",10),function:a?.replace(/^Object\./,"")||"anonymous"}}function re(e){if(e instanceof Error)return{name:e.name,message:e.message,stack:e.stack,code:e.code};if(typeof e==="string")return{name:"Error",message:e};return{name:"UnknownError",message:String(e)}}function z(e,n){if(!e&&!n)return;if(!e)return n;if(!n)return e;return{...e,...n}}function ue(e){if(e<1)return`${(e*1000).toFixed(2)}\xB5s`;if(e<1000)return`${e.toFixed(2)}ms`;return`${(e/1000).toFixed(2)}s`}function de(e,n){let t=new WeakSet;return JSON.stringify(e,(i,s)=>{if(typeof s==="object"&&s!==null){if(t.has(s))return"[Circular]";t.add(s)}if(typeof s==="bigint")return s.toString();if(s instanceof Error)return{name:s.name,message:s.message,stack:s.stack};return s},n)}class q{name="console";colorize;prettyPrint;constructor(e={}){this.colorize=e.colorize??!0,this.prettyPrint=e.prettyPrint??!0}log(e){if(this.prettyPrint)this.logPretty(e);else this.logJson(e)}logJson(e){let n=de(e);this.getConsoleMethod(e.level)(n)}logPretty(e){let n=this.getConsoleMethod(e.level),t=this.colorize?ie[e.level]:"",i=this.colorize?U:"",s=this.colorize?G:"",a=this.colorize?ae:"",o=new Date(e.timestamp).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),r=e.level.toUpperCase().padEnd(5),d=e.service?`[${e.service}]`:"",u=e.correlationId?`${s}(${e.correlationId.slice(0,8)})${i}`:"",p=e.duration!==void 0?`${s}${ue(e.duration)}${i}`:"",R=`${s}${o}${i} ${t}${a}${r}${i} ${d}${u} ${e.message} ${p}`;if(n(R.trim()),e.caller)n(` ${s}at ${e.caller.function} (${e.caller.file}:${e.caller.line})${i}`);if(e.context&&Object.keys(e.context).length>0)n(` ${s}context:${i}`,e.context);if(e.error){if(n(` ${t}${e.error.name}: ${e.error.message}${i}`),e.error.stack){let c=e.error.stack.split(`
4
- `).slice(1,4);for(let v of c)n(` ${s}${v.trim()}${i}`)}}}getConsoleMethod(e){switch(e){case"debug":return console.debug.bind(console);case"info":return console.info.bind(console);case"warn":return console.warn.bind(console);case"error":case"fatal":return console.error.bind(console);default:return console.log.bind(console)}}}class K{name="console-audit";enabled;constructor(e={}){this.enabled=e.enabled??!0}write(e){if(!this.enabled)return;let n="\x1B[35m",t=U,i=G;console.log(`${i}${e.timestamp}${t} ${n}AUDIT${t} [${e.operation}] ${e.entityName}${e.entityId?`:${e.entityId}`:""} ${i}by ${e.userId||"anonymous"}${t}`)}}var we={level:"info",service:"nucleus",environment:"development",redactKeys:[],colorize:!0,prettyPrint:!0,includeCallerInfo:!0,asyncBufferSize:100,flushIntervalMs:1000,auditEnabled:!1};class g{config;transports;auditTransports;context;correlationId;static instance=null;constructor(e={},n={},t){this.config={...we,...e},this.context=n,this.correlationId=t,this.transports=[new q({colorize:this.config.colorize,prettyPrint:this.config.prettyPrint})],this.auditTransports=[new K({enabled:this.config.prettyPrint})]}static getInstance(e){if(!g.instance)g.instance=new g(e);return g.instance}static resetInstance(){g.instance=null}child(e,n){let t=new g(this.config,z(this.context,e)||{},n||this.correlationId);return t.transports=this.transports,t.auditTransports=this.auditTransports,t}withCorrelationId(e){return this.child({},e)}addTransport(e){this.transports.push(e)}addAuditTransport(e){this.auditTransports.push(e)}setLevel(e){this.config.level=e}setAuditEnabled(e){this.config.auditEnabled=e}isAuditEnabled(){return this.config.auditEnabled}shouldLog(e){return B[e]>=B[this.config.level]}createEntry(e,n,t,i,s){let a={timestamp:new Date().toISOString(),level:e,message:n,service:this.config.service,correlationId:this.correlationId},o=z(this.context,t);if(o&&Object.keys(o).length>0)a.context=O(o,this.config.redactKeys);if(this.config.includeCallerInfo)a.caller=oe();if(i)a.error=re(i);if(s!==void 0)a.duration=performance.now()-s;return a}log(e,n,t,i,s){if(!this.shouldLog(e))return;let a=this.createEntry(e,n,t,i,s);for(let o of this.transports)try{o.log(a)}catch(r){console.error(`Logger transport "${o.name}" failed:`,r)}}debug(e,n){this.log("debug",e,n)}info(e,n){this.log("info",e,n)}warn(e,n){this.log("warn",e,n)}error(e,n,t){this.log("error",e,t,n)}fatal(e,n,t){this.log("fatal",e,t,n)}time(e){let n=performance.now();return()=>{this.log("debug",`${e} completed`,void 0,void 0,n)}}async timeAsync(e,n,t){let i=performance.now();try{let s=await n();return this.log("debug",`${e} completed`,t,void 0,i),s}catch(s){throw this.log("error",`${e} failed`,t,s,i),s}}request(e){let n=e.statusCode>=500?"error":e.statusCode>=400?"warn":"info";this.log(n,`${e.method} ${e.path} ${e.statusCode}`,{method:e.method,path:e.path,statusCode:e.statusCode,durationMs:e.duration,correlationId:e.correlationId,userId:e.userId,ip:e.ip,userAgent:e.userAgent})}db(e){let n=e.error?"error":"debug";this.log(n,`DB ${e.operation} on ${e.table}`,{operation:e.operation,table:e.table,durationMs:e.duration,rowCount:e.rowCount},e.error)}async flush(){for(let e of this.transports)if(e.flush)await e.flush()}async audit(e){let n={id:ve(),timestamp:new Date().toISOString(),entityName:e.entityName,entityId:e.entityId??null,operation:e.operation,userId:e.userId??null,summary:e.summary||`${e.operation} on ${e.entityName}`,oldValues:e.oldValues||{},newValues:e.newValues||{},ipAddress:e.ipAddress||"unknown",userAgent:e.userAgent||"unknown",path:e.path||"",query:e.query||"",correlationId:this.correlationId};for(let t of this.auditTransports)try{await t.write(n)}catch(i){console.error(`Audit transport "${t.name}" failed:`,i)}}auditOnly(e){this.audit(e)}async trace(e){let n=e.log!==!1,t=e.writeAudit===!0||e.writeAudit!==!1&&this.config.auditEnabled&&e.audit;if(n)this.log(e.level||"info",e.message,e.context,e.error);if(t&&e.audit)await this.audit(e.audit)}traceSync(e){let n=e.log!==!1,t=e.writeAudit===!0||e.writeAudit!==!1&&this.config.auditEnabled&&e.audit;if(n)this.log(e.level||"info",e.message,e.context,e.error);if(t&&e.audit)this.audit(e.audit)}}var We=g.getInstance();var Re={timeout:30000,retries:0,retryDelay:1000,debug:!1};class ${config;logger;constructor(e={}){this.config={...Re,...e},this.logger=new g({service:"ServerFetch",prettyPrint:this.config.debug,colorize:this.config.debug,auditEnabled:!1})}buildUrl(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;return this.config.baseUrl?`${this.config.baseUrl}${e}`:e}buildHeaders(e){let n=new Headers;if(this.config.defaultHeaders)for(let[t,i]of Object.entries(this.config.defaultHeaders))n.set(t,i);if(e)if(e instanceof Headers)e.forEach((t,i)=>{n.set(i,t)});else if(Array.isArray(e))for(let[t,i]of e)n.set(t,i);else for(let[t,i]of Object.entries(e))n.set(t,i);return n}parseResponseHeaders(e){let n={};if(e.forEach((t,i)=>{if(i.toLowerCase()==="set-cookie"){let s=n[i];n[i]=s?`${s}, ${t}`:t}else n[i]=t}),typeof e.getSetCookie==="function"){let t=e.getSetCookie();if(t.length>0)n["set-cookie"]=t.join(", ")}return n}async executeWithTimeout(e,n,t){let i=new AbortController,s=setTimeout(()=>i.abort(),n);try{return await Promise.race([e,new Promise((o,r)=>{i.signal.addEventListener("abort",()=>{r(Error(`Request timeout after ${n}ms`))})})])}finally{clearTimeout(s)}}async fetch(e){let n=Te(),t=performance.now(),i=this.buildUrl(e.url),s=this.buildHeaders(e.headers),a=e.timeout??this.config.timeout??30000,o=e.retries??this.config.retries??0,r=e.retryDelay??this.config.retryDelay??1000,d;if(e.body)if(typeof e.body==="object"&&!(e.body instanceof FormData)&&!(e.body instanceof URLSearchParams)&&!(e.body instanceof Blob)&&!(e.body instanceof ArrayBuffer)){if(d=JSON.stringify(e.body),!s.has("content-type"))s.set("content-type","application/json")}else d=e.body;this.logger.debug(`[${n}] ${e.method} ${i}`,{method:e.method,url:i,hasBody:!!d});let u=null,p=0;while(p<=o)try{let c=await this.executeWithTimeout(fetch(i,{method:e.method,headers:s,body:d}),a,n),v=performance.now()-t,k=this.parseResponseHeaders(c.headers),m,_,y=await c.text();if(y)try{let x=JSON.parse(y);if(c.ok)m=x;else _=x}catch{if(!c.ok)_={message:y||c.statusText}}else if(!c.ok)_={message:c.statusText};let C={isSuccess:c.ok,response:m,errors:_,code:c.status,headers:k,durationMs:v,requestId:n,createdAt:new Date};if(c.ok)this.logger.info(`[${n}] ${e.method} ${i} ${c.status}`,{method:e.method,url:i,statusCode:c.status,durationMs:Math.round(v)});else this.logger.warn(`[${n}] ${e.method} ${i} ${c.status}`,{method:e.method,url:i,statusCode:c.status,durationMs:Math.round(v),error:_});return C}catch(c){if(u=c instanceof Error?c:Error(String(c)),p++,p<=o)this.logger.warn(`[${n}] Retry ${p}/${o} after error`,{method:e.method,url:i,error:u.message,attempt:p,retries:o}),await new Promise((v)=>setTimeout(v,r))}let R=performance.now()-t;return this.logger.error(`[${n}] ${e.method} ${i} failed`,u,{method:e.method,url:i,durationMs:Math.round(R),attempts:p}),{isSuccess:!1,response:void 0,errors:{message:u?.message||"Unknown error"},code:null,headers:{},durationMs:R,requestId:n,createdAt:new Date}}async get(e,n){return this.fetch({...n,url:e,method:"GET"})}async post(e,n,t){return this.fetch({...t,url:e,method:"POST",body:n})}async put(e,n,t){return this.fetch({...t,url:e,method:"PUT",body:n})}async patch(e,n,t){return this.fetch({...t,url:e,method:"PATCH",body:n})}async delete(e,n){return this.fetch({...n,url:e,method:"DELETE"})}}var Xe=new $;var ke={accessToken:"access_token",refreshToken:"refresh_token",sessionToken:"session_token"};function xe(e){let n=[],t="";for(let i=0;i<e.length;i++){let s=e[i];if(s===","){let a=e.slice(i+1).trimStart();if(/^[a-zA-Z0-9_-]+=/.test(a)){n.push(t.trim()),t="";continue}}t+=s}if(t.trim())n.push(t.trim());return n}function Pe(e,n){let t={},i=["x-forwarded-for","x-real-ip","user-agent","accept-language","x-request-id","x-client-ip","cf-connecting-ip","true-client-ip"];for(let d of i){let u=e.get(d);if(u)t[d]=u}if(!t["user-agent"])t["user-agent"]="Nucleus-ServerAction/1.0";let s=e.get(`x-${n.accessToken}`),a=e.get(`x-${n.refreshToken}`),o=e.get(`x-${n.sessionToken}`);if(s)t[`x-${n.accessToken}`]=s;if(a)t[`x-${n.refreshToken}`]=a;if(o)t[`x-${n.sessionToken}`]=o;let r=e.get("cookie");if(r)t.cookie=r;return t}function Se(e){return e.replace(/_([a-z])/g,(n,t)=>t.toUpperCase())}function H(e){let n={};for(let[t,i]of Object.entries(e)){let s=t.startsWith("_")?t:Se(t);if(i instanceof Date)n[s]=i.toISOString();else if(i&&typeof i==="object"&&!Array.isArray(i))n[s]=H(i);else n[s]=i}return n}function De(e,n){let t=new URLSearchParams,i=(a,o)=>{if(o===void 0||o===null)return;if(Array.isArray(o))for(let r of o)i(`${a}[]`,r);else if(o instanceof Date)t.append(a,o.toISOString());else if(typeof o==="object")for(let[r,d]of Object.entries(o))i(`${a}[${r}]`,d);else t.append(a,String(o))};for(let[a,o]of Object.entries(n))i(a,o);let s=t.toString();if(!s)return e;return e.includes("?")?`${e}&${s}`:`${e}?${s}`}function Ie(e,n,t,i){let s={...ke,...n.tokenNames},a=new $({baseUrl:n.baseUrl,debug:n.debug,timeout:30000,retries:0});return async function(r,d){let u=e[r];if(!u)return{isSuccess:!1,errors:{message:`Endpoint "${r}" not found`},code:404};let p=await t(),R=await i(),c={};if(R.forEach((l,f)=>{c[f]=l}),(u.path.includes("/auth/login")||u.path.includes("/auth/oauth"))&&u.method==="POST")try{p.delete(s.accessToken),p.delete(s.refreshToken),p.delete(s.sessionToken)}catch(l){}let k=Pe(R,s),m=u.path,_,y=new Set,C=/:([a-zA-Z_][a-zA-Z0-9_]*)/g,x=C.exec(m);while(x!==null){if(x[1])y.add(x[1]);x=C.exec(m)}if(d&&typeof d==="object"&&!(d instanceof FormData)){let l=d;for(let[f,b]of Object.entries(l))if(b!=null){if(y.has(f))m=m.replace(`:${f}`,String(b));else if(f.startsWith("_")&&y.has(f.substring(1)))m=m.replace(`:${f.substring(1)}`,String(b));else if(f==="id"&&y.has("id"))m=m.replace(":id",String(b))}}if(u.method==="GET"&&d&&typeof d==="object"){let l={...d};for(let f of y)delete l[f],delete l[`_${f}`];m=De(m,l)}else if(d!==void 0){if(u.isFormData&&d instanceof FormData)_=d;else if(Array.isArray(d)){if(_=d.map((l)=>l&&typeof l==="object"?H(l):l),!k["content-type"])k["content-type"]="application/json"}else if(_=u.skipCamelCase?d:H(d),!k["content-type"])k["content-type"]="application/json"}let E=await a.fetch({url:m,method:u.method,headers:k,body:_});if(E.headers["set-cookie"])try{let l=E.headers["set-cookie"],f=xe(l);for(let b of f){let[N,...A]=b.split(";");if(!N)continue;let[j,W]=N.split("=");if(j&&W){let w={};for(let le of A){let[Y,D]=le.trim().split("=");if(!Y)continue;let P=Y.toLowerCase();if(P==="path")w.path=D;else if(P==="domain")w.domain=D;else if(P==="max-age")w.maxAge=Number(D);else if(P==="expires"&&D)w.expires=new Date(D);else if(P==="httponly")w.httpOnly=!0;else if(P==="secure")w.secure=!0;else if(P==="samesite")w.sameSite=D}p.set(j.trim(),W.trim(),w)}}}catch(l){console.warn("[ServerFactory] Failed to process Set-Cookie headers:",l instanceof Error?l.message:String(l))}let S=E.response;if(E.isSuccess&&S&&typeof S==="object"&&!Array.isArray(S)){let l=S;if("success"in l&&!("data"in l)){let{success:f,message:b,error:N,...A}=l;S={success:f,...b!==void 0?{message:b}:{},...N!==void 0?{error:N}:{},...Object.keys(A).length>0?{data:A}:{}}}}return{isSuccess:E.isSuccess,data:S,errors:E.errors,code:E.code,message:E.isSuccess?void 0:E.errors?.message}}}export{se as generateVerificationEndpoints,ee as generateSystemTableEndpoints,ne as generateMonitoringEndpoints,X as generateEndpointsFromConfig,Q as generateAuthEndpoints,Ee as generateAllEndpoints,te as generateAdminEndpoints,Ie as createServerFactory,me as createApiHook,M as AUTH_ENDPOINT_CONFIGS};
2
+ import{batch as F,createStore as ce}from"h-state";import{useEffectEvent as pe}from"react";function me(e){let n={};for(let t of Object.keys(e))n[t]={isPending:!1,data:null,error:null,code:null};return n}function fe(e,n){let{useStore:t}=ce(me(e),{_callEndpoint:(a)=>async(s,i)=>{if(!a[s])return;F(()=>{a[s].isPending=!0,a[s].error=null});try{let r=await n(s,i.payload);if(F(()=>{if(a[s].isPending=!1,a[s].code=r.code??null,r.isSuccess&&r.data!==void 0)a[s].data=r.data,a[s].error=null;else a[s].error=r.errors??null}),r.isSuccess)i.onAfterHandle?.(r.data??r);else i.onErrorHandle?.(r.errors??{message:"Request failed"},r.code)}catch(r){F(()=>{a[s].isPending=!1,a[s].error={message:r instanceof Error?r.message:"Unknown error"}}),i.onErrorHandle?.({message:r instanceof Error?r.message:"Unknown error"},null)}}});return function(){let s=t(),i=pe((r,l)=>{s._callEndpoint(r,l)}),o={};for(let r of Object.keys(e)){let l=(u)=>{i(r,u)};o[r]={state:s[r],start:l}}return o}}var J={$schema:"../schemas/nucleus.tables.schema.json",tables:[{table_name:"users",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"email",type:"varchar",length:255},{name:"password",type:"varchar",length:255},{name:"verified_at",type:"timestamp"},{name:"email_verification_token",type:"varchar",length:255},{name:"email_verification_token_expires_at",type:"timestamp"},{name:"email_verification_sent_at",type:"timestamp"},{name:"email_verification_attempts",type:"integer",default:0},{name:"last_login_at",type:"timestamp"},{name:"login_count",type:"integer",default:0},{name:"is_locked",type:"boolean",default:!1},{name:"locked_until",type:"timestamp"},{name:"failed_login_attempts",type:"integer",default:0},{name:"is_god",type:"boolean",default:!1}],indexes:[{columns:["email"],unique:!0},{columns:["email","is_active"]},{columns:["last_login_at"]},{columns:["is_locked","locked_until"]}]},{table_name:"profiles",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id"}},{name:"first_name",type:"varchar",length:100,notNull:!0},{name:"last_name",type:"varchar",length:100,notNull:!0}],indexes:[{columns:["user_id"],unique:!0},{columns:["first_name","last_name"]}]},{table_name:"roles",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"name",type:"varchar",length:100,notNull:!0},{name:"description",type:"varchar",length:500}],indexes:[{columns:["name"],unique:!0}]},{table_name:"claims",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"action",type:"varchar",length:100,notNull:!0},{name:"description",type:"varchar",length:500},{name:"path",type:"varchar",length:200,notNull:!0},{name:"method",type:"varchar",length:10,notNull:!0}],indexes:[{columns:["action"],unique:!0},{columns:["path","method"]}]},{table_name:"user_roles",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"role_id",type:"uuid",notNull:!0,references:{table:"roles",column:"id",onDelete:"cascade"}}],indexes:[{columns:["user_id"]},{columns:["role_id"]}],constraints:{unique:[{name:"unique_user_role",columns:["user_id","role_id"]}]}},{table_name:"role_claims",feature_set:["authentication","authorization"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"role_id",type:"uuid",notNull:!0,references:{table:"roles",column:"id",onDelete:"cascade"}},{name:"claim_id",type:"uuid",notNull:!0,references:{table:"claims",column:"id",onDelete:"cascade"}},{name:"scope",type:"text"}],indexes:[{columns:["role_id"]},{columns:["claim_id"]},{columns:["role_id","claim_id","scope"]}]},{table_name:"files",feature_set:["storage"],add_base_columns:!0,is_form_data:!0,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"name",type:"varchar",length:255,notNull:!0},{name:"original_name",type:"varchar",length:255,notNull:!0},{name:"type",type:"varchar",length:50,enumValues:["image","document","video","audio","profile_picture"]},{name:"path",type:"varchar",length:500,notNull:!0},{name:"size",type:"bigint",mode:"number",notNull:!0},{name:"mime_type",type:"varchar",length:100,notNull:!0},{name:"extension",type:"varchar",length:10,notNull:!0},{name:"uploaded_by",type:"uuid",references:{table:"users",column:"id"}}],indexes:[{columns:["type"]},{columns:["uploaded_by"]},{columns:["size"]}]},{table_name:"addresses",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"owner_type",type:"varchar",length:50,notNull:!0,enumValues:["user","company","contact"]},{name:"owner_id",type:"uuid",notNull:!0},{name:"name",type:"varchar",length:100,notNull:!0},{name:"street",type:"varchar",length:255},{name:"city",type:"varchar",length:100},{name:"state",type:"varchar",length:50},{name:"zip",type:"varchar",length:20},{name:"country",type:"varchar",length:50,default:"US"},{name:"latitude",type:"decimal",precision:10,scale:8},{name:"longitude",type:"decimal",precision:11,scale:8},{name:"neighborhood",type:"varchar",length:100},{name:"apartment",type:"varchar",length:50},{name:"province",type:"varchar",length:100},{name:"district",type:"varchar",length:100},{name:"type",type:"varchar",length:50}],indexes:[{columns:["city","state"]},{columns:["latitude","longitude"]},{columns:["type"]},{columns:["owner_type","owner_id"]}]},{table_name:"phones",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!0,columns:[{name:"owner_type",type:"varchar",length:50,notNull:!0,enumValues:["user","company","contact"]},{name:"owner_id",type:"uuid",notNull:!0},{name:"name",type:"varchar",length:100,notNull:!0},{name:"type",type:"varchar",length:50,enumValues:["mobile","office","fax"]},{name:"number",type:"varchar",length:20,notNull:!0},{name:"country_code",type:"varchar",length:10,notNull:!0,default:"+1"},{name:"extension",type:"varchar",length:10}],indexes:[{columns:["number"]},{columns:["type"]},{columns:["owner_type","owner_id"]}]},{table_name:"notifications",feature_set:["notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"user_id",type:"uuid",notNull:!0},{name:"title",type:"varchar",length:255,notNull:!0},{name:"body",type:"varchar",length:1000},{name:"entity_name",type:"varchar",length:100},{name:"entity_id",type:"uuid"},{name:"type",type:"varchar",length:50,notNull:!0,default:"system",enumValues:["verification","system","custom"]},{name:"source",type:"varchar",length:100},{name:"is_seen",type:"boolean",notNull:!0,default:!1},{name:"seen_at",type:"timestamptz"}],indexes:[{columns:["user_id","created_at"]},{columns:["is_seen"]},{columns:["type"]},{columns:["user_id","type","is_seen"]}]},{table_name:"tenants",feature_set:["multi-tenant"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["main"],excluded_schemas:[],excluded_methods:[],columns:[{name:"subdomain",type:"varchar",length:100,notNull:!0,unique:!0},{name:"company_id",type:"uuid",notNull:!0},{name:"schema_name",type:"varchar",length:100,notNull:!0,unique:!0},{name:"company_name",type:"varchar",length:255},{name:"god_admin_email",type:"varchar",length:255}],indexes:[]},{table_name:"verifications",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"instance_id",type:"uuid",notNull:!0,references:{table:"verificationInstances",column:"id",onDelete:"cascade"}},{name:"requirement_id",type:"uuid",notNull:!0,references:{table:"verificationRequirements",column:"id"}},{name:"verifier_id",type:"uuid",notNull:!0,references:{table:"users",column:"id"}},{name:"signature_id",type:"uuid",references:{table:"files",column:"id"}},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"entity_id",type:"uuid",notNull:!0},{name:"step_order",type:"integer",notNull:!0,default:1},{name:"decision",type:"varchar",length:50,notNull:!0,default:"pending",enumValues:["approved","rejected","pending"]},{name:"reason",type:"text"},{name:"diff",type:"jsonb"}],indexes:[{columns:["instance_id"]},{columns:["requirement_id"]},{columns:["verifier_id"]},{columns:["entity_name","entity_id"]},{columns:["entity_name","entity_id","step_order"]},{columns:["decision"]}]},{table_name:"verificationRequirements",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"instance_id",type:"uuid",notNull:!0,references:{table:"verificationInstances",column:"id",onDelete:"cascade"}},{name:"step_node_id",type:"varchar",length:100,notNull:!0},{name:"verifier_node_id",type:"varchar",length:100,notNull:!0},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"entity_id",type:"uuid",notNull:!0},{name:"verifier_type",type:"varchar",length:30,notNull:!0,enumValues:["user","role"]},{name:"verifier_user_id",type:"uuid"},{name:"verifier_role",type:"varchar",length:100},{name:"require_signature",type:"boolean",notNull:!0,default:!1},{name:"all_must_approve",type:"boolean",notNull:!0,default:!1},{name:"step_order",type:"integer",notNull:!0,default:1},{name:"status",type:"varchar",length:30,notNull:!0,default:"pending",enumValues:["pending","approved","rejected"]}],indexes:[{columns:["instance_id"]},{columns:["instance_id","step_order"]},{columns:["entity_name","entity_id"]},{columns:["verifier_user_id"]},{columns:["status"]}]},{table_name:"verificationFlows",feature_set:["authentication","verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"name",type:"varchar",length:255,notNull:!0},{name:"description",type:"text"},{name:"trigger_on",type:"varchar",length:50,notNull:!0,default:"update",enumValues:["create","update","delete","manual"]},{name:"trigger_fields",type:"jsonb"},{name:"is_draft",type:"boolean",notNull:!0,default:!0},{name:"published_at",type:"timestamptz"},{name:"viewport",type:"jsonb"}],indexes:[{columns:["entity_name"]},{columns:["entity_name","trigger_on"]},{columns:["is_draft"]}]},{table_name:"verificationSteps",feature_set:["authentication","verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"node_id",type:"varchar",length:100,notNull:!0},{name:"node_type",type:"varchar",length:50,notNull:!0,default:"step",enumValues:["step","verifier","notification"]},{name:"step_order",type:"integer",notNull:!0,default:1},{name:"name",type:"varchar",length:255},{name:"description",type:"text"},{name:"position_x",type:"numeric",notNull:!0,default:0},{name:"position_y",type:"numeric",notNull:!0,default:0},{name:"width",type:"numeric"},{name:"height",type:"numeric"},{name:"style",type:"jsonb"},{name:"data",type:"jsonb"}],indexes:[{columns:["flow_id"]},{columns:["entity_name"]},{columns:["flow_id","node_id"],unique:!0},{columns:["entity_name","step_order"]}]},{table_name:"verificationEdges",feature_set:["authentication","verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"edge_id",type:"varchar",length:100,notNull:!0},{name:"source_node_id",type:"varchar",length:100,notNull:!0},{name:"target_node_id",type:"varchar",length:100,notNull:!0},{name:"source_handle",type:"varchar",length:50},{name:"target_handle",type:"varchar",length:50},{name:"edge_type",type:"varchar",length:50,default:"default",enumValues:["default","conditional","success","failure"]},{name:"label",type:"varchar",length:255},{name:"condition",type:"jsonb"},{name:"style",type:"jsonb"},{name:"animated",type:"boolean",default:!1}],indexes:[{columns:["flow_id"]},{columns:["flow_id","edge_id"],unique:!0},{columns:["source_node_id"]},{columns:["target_node_id"]}]},{table_name:"verificationNotificationRules",feature_set:["verification","notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"node_id",type:"varchar",length:100,notNull:!0},{name:"trigger",type:"varchar",length:50,notNull:!0,enumValues:["on_flow_started","on_step_reached","on_approved","on_rejected","on_flow_completed"]},{name:"title_template",type:"varchar",length:255},{name:"body_template",type:"text"},{name:"starts_at",type:"timestamptz"},{name:"expires_at",type:"timestamptz"}],indexes:[{columns:["flow_id"]},{columns:["flow_id","node_id"],unique:!0},{columns:["trigger"]}]},{table_name:"verificationNotificationRecipients",feature_set:["verification","notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"rule_id",type:"uuid",notNull:!0,references:{table:"verificationNotificationRules",column:"id",onDelete:"cascade"}},{name:"recipient_type",type:"varchar",length:30,notNull:!0,enumValues:["user","role","all_verifiers","step_verifier","entity_creator"]},{name:"recipient_user_id",type:"uuid"},{name:"recipient_role",type:"varchar",length:100}],indexes:[{columns:["rule_id"]},{columns:["recipient_type"]}]},{table_name:"verificationVerifierConfigs",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id",onDelete:"cascade"}},{name:"node_id",type:"varchar",length:100,notNull:!0},{name:"verifier_type",type:"varchar",length:30,notNull:!0,enumValues:["user","role"]},{name:"verifier_user_id",type:"uuid"},{name:"verifier_role",type:"varchar",length:100},{name:"require_signature",type:"boolean",notNull:!0,default:!1},{name:"all_must_approve",type:"boolean",notNull:!0,default:!1}],indexes:[{columns:["flow_id"]},{columns:["flow_id","node_id"],unique:!0},{columns:["verifier_type"]}]},{table_name:"verificationInstances",feature_set:["verification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"flow_id",type:"uuid",notNull:!0,references:{table:"verificationFlows",column:"id"}},{name:"entity_name",type:"varchar",length:100,notNull:!0},{name:"entity_id",type:"uuid",notNull:!0},{name:"started_by",type:"uuid",references:{table:"users",column:"id"}},{name:"status",type:"varchar",length:30,notNull:!0,default:"active",enumValues:["active","completed","rejected","cancelled"]},{name:"current_step_order",type:"integer",notNull:!0,default:1},{name:"started_at",type:"timestamptz",notNull:!0,defaultRaw:"now()"},{name:"completed_at",type:"timestamptz"}],indexes:[{columns:["flow_id"]},{columns:["entity_name","entity_id"]},{columns:["entity_name","entity_id","status"]},{columns:["status"]},{columns:["started_by"]}]},{table_name:"verificationNotificationChannels",feature_set:["verification","notification"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],columns:[{name:"rule_id",type:"uuid",notNull:!0,references:{table:"verificationNotificationRules",column:"id",onDelete:"cascade"}},{name:"channel",type:"varchar",length:30,notNull:!0,enumValues:["portal","email","sms","telegram","webhook"]}],indexes:[{columns:["rule_id"]},{columns:["rule_id","channel"],unique:!0},{columns:["channel"]}]},{table_name:"user_sessions",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH"],columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"token_hash",type:"varchar",length:255,notNull:!0},{name:"refresh_token_hash",type:"varchar",length:255},{name:"device_fingerprint",type:"varchar",length:255},{name:"device_name",type:"varchar",length:100},{name:"device_type",type:"varchar",length:50,enumValues:["desktop","mobile","tablet","unknown"]},{name:"browser_name",type:"varchar",length:50},{name:"browser_version",type:"varchar",length:20},{name:"os_name",type:"varchar",length:50},{name:"os_version",type:"varchar",length:20},{name:"ip_address",type:"varchar",length:45,notNull:!0},{name:"location_country",type:"varchar",length:100},{name:"location_city",type:"varchar",length:100},{name:"location_coordinates",type:"varchar",length:50},{name:"last_activity_at",type:"timestamptz",notNull:!0,defaultRaw:"now()"},{name:"expires_at",type:"timestamptz",notNull:!0},{name:"revoked_at",type:"timestamptz"},{name:"revoked_reason",type:"varchar",length:100,enumValues:["user_logout","user_revoked","admin_revoked","security_concern","password_changed","expired","replaced"]},{name:"is_current",type:"boolean",notNull:!0,default:!1},{name:"login_method",type:"varchar",length:50,enumValues:["password","oauth_google","oauth_github","oauth_microsoft","magic_link","sso","api_key"]},{name:"remember_me",type:"boolean",notNull:!0,default:!1},{name:"trust_score",type:"integer",default:100},{name:"approval_status",type:"varchar",length:20,default:"approved",enumValues:["approved","pending","rejected"]},{name:"approval_token",type:"varchar",length:64},{name:"approval_requested_at",type:"timestamptz"},{name:"approval_responded_at",type:"timestamptz"}],indexes:[{columns:["user_id"]},{columns:["token_hash"],unique:!0},{columns:["refresh_token_hash"]},{columns:["user_id","is_active"]},{columns:["expires_at"]},{columns:["device_fingerprint"]},{columns:["ip_address"]},{columns:["last_activity_at"]},{columns:["approval_status"]},{columns:["approval_token"]}]},{table_name:"password_reset_tokens",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH","DELETE"],columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"token_hash",type:"varchar",length:255,notNull:!0},{name:"expires_at",type:"timestamptz",notNull:!0},{name:"used_at",type:"timestamptz"}],indexes:[{columns:["token_hash"],unique:!0},{columns:["user_id"]},{columns:["expires_at"]}]},{table_name:"magic_link_tokens",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH","DELETE"],columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"email",type:"varchar",length:255,notNull:!0},{name:"token_hash",type:"varchar",length:255,notNull:!0},{name:"expires_at",type:"timestamptz",notNull:!0},{name:"used_at",type:"timestamptz"}],indexes:[{columns:["token_hash"],unique:!0},{columns:["user_id"]},{columns:["email"]},{columns:["expires_at"]}]},{table_name:"audit_logs",feature_set:["audit"],add_base_columns:!1,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","DELETE","PATCH","TOGGLE","VERIFICATION"],columns:[{name:"id",type:"uuid",primaryKey:!0,defaultRaw:"gen_random_uuid()"},{name:"entity_id",type:"uuid"},{name:"entity_name",type:"text",notNull:!0},{name:"operation_type",type:"text",notNull:!0},{name:"user_id",type:"uuid"},{name:"ip_address",type:"text"},{name:"user_agent",type:"text"},{name:"summary",type:"text"},{name:"old_values",type:"jsonb"},{name:"new_values",type:"jsonb"},{name:"created_at",type:"timestamp",notNull:!0,defaultRaw:"now()"},{name:"path",type:"text"},{name:"query",type:"text"}],indexes:[{columns:["entity_id"]},{columns:["entity_name"]},{columns:["user_id"]},{columns:["created_at"]}]},{table_name:"oauth_accounts",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:[],bulk_endpoints_enabled:!1,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"provider",type:"varchar",length:50,notNull:!0,enumValues:["google","github","microsoft","discord","facebook","twitter","apple","custom"]},{name:"provider_account_id",type:"varchar",length:255,notNull:!0},{name:"provider_email",type:"varchar",length:255},{name:"provider_name",type:"varchar",length:255},{name:"provider_avatar_url",type:"text"},{name:"access_token",type:"text"},{name:"refresh_token",type:"text"},{name:"token_expires_at",type:"timestamp"},{name:"scope",type:"text"},{name:"raw_profile",type:"jsonb"},{name:"is_primary",type:"boolean",notNull:!0,default:!1},{name:"last_used_at",type:"timestamp"}],indexes:[{columns:["user_id"]},{columns:["provider","provider_account_id"],unique:!0},{columns:["provider_email"]},{columns:["user_id","provider"]}],constraints:{unique:[{name:"unique_provider_account",columns:["provider","provider_account_id"]}]}},{table_name:"api_keys",feature_set:["authentication"],add_base_columns:!0,is_form_data:!1,available_app_ids:["default_be"],available_schemas:["*"],excluded_schemas:[],excluded_methods:["POST","PUT","PATCH"],bulk_endpoints_enabled:!1,columns:[{name:"user_id",type:"uuid",notNull:!0,references:{table:"users",column:"id",onDelete:"cascade"}},{name:"name",type:"varchar",length:255,notNull:!0},{name:"description",type:"text"},{name:"key_hash",type:"varchar",length:255,notNull:!0},{name:"key_preview",type:"varchar",length:12,notNull:!0},{name:"owner_type",type:"varchar",length:30,notNull:!0,default:"personal",enumValues:["personal","application"]},{name:"application_name",type:"varchar",length:255},{name:"allowed_roles",type:"jsonb",notNull:!0,default:"[]"},{name:"allowed_claims",type:"jsonb",notNull:!0,default:"[]"},{name:"allowed_scopes",type:"jsonb",notNull:!0,default:"[]"},{name:"expires_at",type:"timestamptz"},{name:"last_used_at",type:"timestamptz"},{name:"last_used_ip",type:"varchar",length:45},{name:"usage_count",type:"integer",notNull:!0,default:0},{name:"revoked_at",type:"timestamptz"},{name:"revoked_reason",type:"varchar",length:255}],indexes:[{columns:["key_hash"],unique:!0},{columns:["user_id"]},{columns:["user_id","is_active"]},{columns:["owner_type"]},{columns:["expires_at"]},{columns:["last_used_at"]}]}]};var V={login:{key:"LOGIN",method:"POST",defaultRoute:"/auth/login",defaultIsPublic:!0,_payload:void 0,_success:void 0,_error:void 0},register:{key:"REGISTER",method:"POST",defaultRoute:"/auth/register",defaultIsPublic:!0,_payload:void 0,_success:void 0,_error:void 0},logout:{key:"LOGOUT",method:"POST",defaultRoute:"/auth/logout",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},refresh:{key:"REFRESH",method:"POST",defaultRoute:"/auth/refresh",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},me:{key:"ME",method:"GET",defaultRoute:"/auth/me",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},passwordChange:{key:"PASSWORD_CHANGE",method:"POST",defaultRoute:"/auth/password-change",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},passwordSet:{key:"PASSWORD_SET",method:"POST",defaultRoute:"/auth/password-set",defaultIsPublic:!1,_payload:void 0,_success:void 0,_error:void 0},passwordReset:{key:"PASSWORD_RESET_REQUEST",method:"POST",defaultRoute:"/auth/password-reset",defaultIsPublic:!0,subEndpoints:[{key:"PASSWORD_RESET_REQUEST",method:"POST",suffix:"/request",_payload:void 0,_success:void 0,_error:void 0},{key:"PASSWORD_RESET_CONFIRM",method:"POST",suffix:"/confirm",_payload:void 0,_success:void 0,_error:void 0}]},sessions:{key:"SESSIONS",method:"GET",defaultRoute:"/auth/sessions",defaultIsPublic:!1,subEndpoints:[{key:"SESSIONS",method:"GET",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_CURRENT",method:"GET",suffix:"/current",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_STATS",method:"GET",suffix:"/stats",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_PENDING",method:"GET",suffix:"/pending",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_REVOKE",method:"DELETE",suffix:"/:sessionId",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_REVOKE_ALL",method:"DELETE",suffix:"/all",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_APPROVE",method:"POST",suffix:"/approve",_payload:void 0,_success:void 0,_error:void 0},{key:"SESSIONS_REJECT",method:"POST",suffix:"/reject",_payload:void 0,_success:void 0,_error:void 0}]},magicLink:{key:"MAGIC_LINK",method:"POST",defaultRoute:"/auth/magic-link",defaultIsPublic:!0,subEndpoints:[{key:"MAGIC_LINK",method:"POST",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"MAGIC_LINK_VERIFY",method:"GET",suffix:"/verify",routeKey:"verifyRoute",_payload:void 0,_success:void 0,_error:void 0}]},invite:{key:"INVITE",method:"POST",defaultRoute:"/auth/invite",defaultIsPublic:!1,subEndpoints:[{key:"INVITE",method:"POST",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"INVITE_VERIFY",method:"POST",suffix:"/verify",_payload:void 0,_success:void 0,_error:void 0}]},emailVerification:{key:"VERIFY_EMAIL",method:"GET",defaultRoute:"/verify-email",defaultIsPublic:!0,subEndpoints:[{key:"VERIFY_EMAIL",method:"GET",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"RESEND_VERIFICATION",method:"POST",suffix:"",routeKey:"resendRoute",defaultRoute:"/resend-verification",_payload:void 0,_success:void 0,_error:void 0}]},captcha:{key:"CAPTCHA",method:"GET",defaultRoute:"/auth/captcha",defaultIsPublic:!0,subEndpoints:[{key:"CAPTCHA_GENERATE",method:"GET",suffix:"/generate",_payload:void 0,_success:void 0,_error:void 0},{key:"CAPTCHA_VALIDATE",method:"POST",suffix:"/validate",_payload:void 0,_success:void 0,_error:void 0}]},oauth:{key:"OAUTH_PROVIDERS",method:"GET",defaultRoute:"/auth/oauth/providers",defaultIsPublic:!0,subEndpoints:[{key:"OAUTH_PROVIDERS",method:"GET",suffix:"/providers",_payload:void 0,_success:void 0,_error:void 0},{key:"OAUTH_REDIRECT",method:"GET",suffix:"/:provider",_payload:void 0,_success:void 0,_error:void 0},{key:"OAUTH_ACCOUNTS",method:"GET",suffix:"/accounts",_payload:void 0,_success:void 0,_error:void 0},{key:"OAUTH_UNLINK",method:"DELETE",suffix:"/unlink/:provider",_payload:void 0,_success:void 0,_error:void 0}]},apiKeys:{key:"API_KEYS",method:"GET",defaultRoute:"/auth/api-keys",defaultIsPublic:!1,subEndpoints:[{key:"API_KEYS_CREATE",method:"POST",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"API_KEYS_LIST",method:"GET",suffix:"",_payload:void 0,_success:void 0,_error:void 0},{key:"API_KEYS_DETAIL",method:"GET",suffix:"/:id",_payload:void 0,_success:void 0,_error:void 0},{key:"API_KEYS_UPDATE",method:"PATCH",suffix:"/:id",_payload:void 0,_success:void 0,_error:void 0},{key:"API_KEYS_REVOKE",method:"DELETE",suffix:"/:id",_payload:void 0,_success:void 0,_error:void 0}]}},Z={healthCheck:{key:"MONITORING_HEALTH_CHECK",method:"GET",suffix:"/health",_payload:void 0,_success:void 0,_error:void 0},getSettings:{key:"MONITORING_GET_SETTINGS",method:"GET",suffix:"/settings",_payload:void 0,_success:void 0,_error:void 0},changeSettings:{key:"MONITORING_CHANGE_SETTINGS",method:"PATCH",suffix:"/settings",_payload:void 0,_success:void 0,_error:void 0},getLogs:{key:"MONITORING_GET_LOGS",method:"GET",suffix:"/logs",_payload:void 0,_success:void 0,_error:void 0}};var he=["profiles","addresses","phones","files","users","roles","claims","user_roles","role_claims","audit_logs"],ge=J.tables.filter((e)=>he.includes(e.table_name));function I(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toUpperCase()}function ye(e){return e.replace(/_([a-z])/g,(n,t)=>t.toUpperCase())}function M(e){if(e.endsWith("ies"))return`${e.slice(0,-3)}y`;if(e.endsWith("ses"))return`${e.slice(0,-2)}`;if(e.endsWith("s"))return e.slice(0,-1);return e}function h(e,n){let t=I(e),a=I(M(e));switch(n){case"GET":return`GET_${t}`;case"POST":return`ADD_${a}`;case"PUT":return`UPDATE_${a}`;case"PATCH":return`PATCH_${a}`;case"DELETE":return`DELETE_${a}`}}function D(e,n){let t=I(e);switch(n){case"POST":return`BULK_ADD_${t}`;case"PUT":return`BULK_UPDATE_${t}`;case"DELETE":return`BULK_DELETE_${t}`}}function T(e,n){if(!e.excluded_methods)return!1;let t={GET:"GET",POST:"POST",PUT:"PUT",PATCH:"PATCH",DELETE:"DELETE"};return e.excluded_methods.includes(t[n])}function X(e){let n={};for(let t of e.entities){let a=t.table_name,s=`/${a}`,i=t.serviceId;if(!T(t,"GET")){n[h(a,"GET")]={method:"GET",path:s,isPublic:t.is_public?.GET??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};let o=I(M(a));n[`GET_${o}_BY_ID`]={method:"GET",path:`${s}/:id`,isPublic:t.is_public?.GET??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0},n[`GET_${I(a)}_DISTINCT`]={method:"GET",path:`${s}/distinct/:field`,isPublic:t.is_public?.GET??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0}}if(!T(t,"POST"))n[h(a,"POST")]={method:"POST",path:s,isPublic:t.is_public?.POST??!1,isFormData:t.is_form_data,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"PUT"))n[h(a,"PUT")]={method:"PUT",path:`${s}/:id`,isPublic:t.is_public?.PUT??!1,isFormData:t.is_form_data,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"PATCH"))n[h(a,"PATCH")]={method:"PATCH",path:`${s}/:id`,isPublic:t.is_public?.PATCH??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"DELETE"))n[h(a,"DELETE")]={method:"DELETE",path:`${s}/:id`,isPublic:t.is_public?.DELETE??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};if(t.bulk_endpoints_enabled){if(!T(t,"POST"))n[D(a,"POST")]={method:"POST",path:`${s}/bulk`,isPublic:t.is_public?.POST??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"PUT"))n[D(a,"PUT")]={method:"PUT",path:`${s}/bulk`,isPublic:t.is_public?.PUT??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0};if(!T(t,"DELETE"))n[D(a,"DELETE")]={method:"DELETE",path:`${s}/bulk`,isPublic:t.is_public?.DELETE??!1,serviceId:i,_payload:void 0,_success:void 0,_error:void 0}}}return n}function Q(e){let n={},t=e.authentication;if(!t?.enabled)return n;for(let[a,s]of Object.entries(V)){let i=t[a];if(!i?.enabled)continue;let o=i,r=o.route||s.defaultRoute,l=o.isPublic??s.defaultIsPublic;if("subEndpoints"in s&&s.subEndpoints)for(let u of s.subEndpoints){let p="routeKey"in u&&u.routeKey&&i[u.routeKey]?String(i[u.routeKey]):("defaultRoute"in u)&&u.defaultRoute?String(u.defaultRoute):`${r}${u.suffix}`;n[u.key]={method:u.method,path:p,isPublic:u.key==="MAGIC_LINK_VERIFY"?!0:l,_payload:u._payload,_success:u._success,_error:u._error}}else if("_payload"in s)n[s.key]={method:s.method,path:r,isPublic:l,_payload:s._payload,_success:s._success,_error:s._error}}return n}function ee(){let e={};for(let n of ge){let t=n.table_name,s=`/${ye(t)}`,i=t==="files";e[h(t,"GET")]={method:"GET",path:s,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0};let o=I(M(t));if(e[`GET_${o}_BY_ID`]={method:"GET",path:`${s}/:id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"POST")]={method:"POST",path:s,isPublic:!1,isFormData:i,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"PUT")]={method:"PUT",path:`${s}/:id`,isPublic:!1,isFormData:i,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"PATCH")]={method:"PATCH",path:`${s}/:id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[h(t,"DELETE")]={method:"DELETE",path:`${s}/:id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.bulk_endpoints_enabled)e[D(t,"POST")]={method:"POST",path:`${s}/bulk`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[D(t,"PUT")]={method:"PUT",path:`${s}/bulk`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},e[D(t,"DELETE")]={method:"DELETE",path:`${s}/bulk`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0}}return e}function ne(e){let n={},t=e.liveMonitoring;if(!t?.enabled)return n;let a=t.basePath||"/monitoring";for(let s of Object.values(Z))n[s.key]={method:s.method,path:`${a}${s.suffix}`,isPublic:!1,_payload:s._payload,_success:s._success,_error:s._error};return n}function te(e){let n={};if(!e.authentication?.enabled)return n;return n.ADMIN_IMPERSONATE={method:"POST",path:"/auth/admin/impersonate",isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.ADMIN_IMPERSONATE_STOP={method:"POST",path:"/auth/admin/impersonate/stop",isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.ADMIN_CHANGE_USER_ID={method:"POST",path:"/auth/admin/change-user-id",isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n}function se(e){let n={},t=e.verification,a=e.notification;if(!t?.enabled)return n;let s=t.endpoints?.basePath||"/verifications",i=t.flowEndpoints?.basePath||"/verification-flows",o=a?.endpoints?.basePath||"/notifications";if(n.VERIFICATION_STATUS={method:"GET",path:`${s}/status/:entity_name/:entity_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_DECIDE={method:"POST",path:`${s}/:entity_name/:entity_id/decide`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_PENDING={method:"GET",path:`${s}/pending`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_HISTORY={method:"GET",path:`${s}/history/:entity_name/:entity_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_START={method:"POST",path:`${s}/start`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_START_FOR_ENTITY={method:"POST",path:`${s}/start-for-entity`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.VERIFICATION_ENTITY_STATUSES={method:"GET",path:`${s}/statuses/:entity_name`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},t.flowEndpoints?.enabled)n.FLOW_LIST={method:"GET",path:i,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_GET={method:"GET",path:`${i}/:flow_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_SAVE={method:"POST",path:i,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_PUBLISH={method:"POST",path:`${i}/:flow_id/publish`,isPublic:!1,skipCamelCase:!0,_payload:void 0,_success:void 0,_error:void 0},n.FLOW_DELETE={method:"DELETE",path:`${i}/:flow_id`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0};if(a?.enabled&&a.endpoints?.enabled)n.NOTIFICATION_LIST={method:"GET",path:o,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.NOTIFICATION_UNSEEN_COUNT={method:"GET",path:`${o}/unseen-count`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.NOTIFICATION_MARK_SEEN={method:"POST",path:`${o}/:notification_id/seen`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0},n.NOTIFICATION_MARK_ALL_SEEN={method:"POST",path:`${o}/seen-all`,isPublic:!1,_payload:void 0,_success:void 0,_error:void 0};return n}function Ee(e,n){let t=X(e),a=Q(e),s=te(e),i=ee(),o=ne(e),r=se(e);return{...t,...a,...s,...i,...o,...r,...n??{}}}import{randomUUID as Te}from"crypto";import{randomUUID as ve}from"crypto";var B={debug:0,info:1,warn:2,error:3,fatal:4},ae={debug:"\x1B[36m",info:"\x1B[32m",warn:"\x1B[33m",error:"\x1B[31m",fatal:"\x1B[35m"},U="\x1B[0m",G="\x1B[2m",ie="\x1B[1m";var be=["password","secret","token","apiKey","api_key","authorization","cookie","credit_card","creditCard","ssn","privateKey","private_key"];function O(e,n=be,t=new WeakSet){if(e===null||e===void 0)return e;if(typeof e!=="object")return e;if(t.has(e))return"[Circular]";if(t.add(e),Array.isArray(e))return e.map((s)=>O(s,n,t));let a={};for(let[s,i]of Object.entries(e))if(n.some((r)=>s.toLowerCase().includes(r.toLowerCase()))&&typeof i==="string")a[s]="[REDACTED]";else if(typeof i==="object"&&i!==null)a[s]=O(i,n,t);else a[s]=i;return a}function oe(e=4){let n=Error().stack;if(!n)return{file:"unknown",line:0,function:"unknown"};let a=n.split(`
3
+ `)[e];if(!a)return{file:"unknown",line:0,function:"unknown"};let s=a.match(/at\s+(?:(.+?)\s+)?\(?(.+?):(\d+):(\d+)\)?/);if(!s)return{file:"unknown",line:0,function:"unknown"};let[,i,o,r]=s;return{file:o?o.split("/").pop()||o:"unknown",line:parseInt(r||"0",10),function:i?.replace(/^Object\./,"")||"anonymous"}}function re(e){if(e instanceof Error)return{name:e.name,message:e.message,stack:e.stack,code:e.code};if(typeof e==="string")return{name:"Error",message:e};return{name:"UnknownError",message:String(e)}}function z(e,n){if(!e&&!n)return;if(!e)return n;if(!n)return e;return{...e,...n}}function ue(e){if(e<1)return`${(e*1000).toFixed(2)}\xB5s`;if(e<1000)return`${e.toFixed(2)}ms`;return`${(e/1000).toFixed(2)}s`}function le(e,n){let t=new WeakSet;return JSON.stringify(e,(a,s)=>{if(typeof s==="object"&&s!==null){if(t.has(s))return"[Circular]";t.add(s)}if(typeof s==="bigint")return s.toString();if(s instanceof Error)return{name:s.name,message:s.message,stack:s.stack};return s},n)}class q{name="console";colorize;prettyPrint;constructor(e={}){this.colorize=e.colorize??!0,this.prettyPrint=e.prettyPrint??!0}log(e){if(this.prettyPrint)this.logPretty(e);else this.logJson(e)}logJson(e){let n=le(e);this.getConsoleMethod(e.level)(n)}logPretty(e){let n=this.getConsoleMethod(e.level),t=this.colorize?ae[e.level]:"",a=this.colorize?U:"",s=this.colorize?G:"",i=this.colorize?ie:"",o=new Date(e.timestamp).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),r=e.level.toUpperCase().padEnd(5),l=e.service?`[${e.service}]`:"",u=e.correlationId?`${s}(${e.correlationId.slice(0,8)})${a}`:"",p=e.duration!==void 0?`${s}${ue(e.duration)}${a}`:"",R=`${s}${o}${a} ${t}${i}${r}${a} ${l}${u} ${e.message} ${p}`;if(n(R.trim()),e.caller)n(` ${s}at ${e.caller.function} (${e.caller.file}:${e.caller.line})${a}`);if(e.context&&Object.keys(e.context).length>0)n(` ${s}context:${a}`,e.context);if(e.error){if(n(` ${t}${e.error.name}: ${e.error.message}${a}`),e.error.stack){let c=e.error.stack.split(`
4
+ `).slice(1,4);for(let v of c)n(` ${s}${v.trim()}${a}`)}}}getConsoleMethod(e){switch(e){case"debug":return console.debug.bind(console);case"info":return console.info.bind(console);case"warn":return console.warn.bind(console);case"error":case"fatal":return console.error.bind(console);default:return console.log.bind(console)}}}class K{name="console-audit";enabled;constructor(e={}){this.enabled=e.enabled??!0}write(e){if(!this.enabled)return;let n="\x1B[35m",t=U,a=G;console.log(`${a}${e.timestamp}${t} ${n}AUDIT${t} [${e.operation}] ${e.entityName}${e.entityId?`:${e.entityId}`:""} ${a}by ${e.userId||"anonymous"}${t}`)}}var we={level:"info",service:"nucleus",environment:"development",redactKeys:[],colorize:!0,prettyPrint:!0,includeCallerInfo:!0,asyncBufferSize:100,flushIntervalMs:1000,auditEnabled:!1};class g{config;transports;auditTransports;context;correlationId;static instance=null;constructor(e={},n={},t){this.config={...we,...e},this.context=n,this.correlationId=t,this.transports=[new q({colorize:this.config.colorize,prettyPrint:this.config.prettyPrint})],this.auditTransports=[new K({enabled:this.config.prettyPrint})]}static getInstance(e){if(!g.instance)g.instance=new g(e);return g.instance}static resetInstance(){g.instance=null}child(e,n){let t=new g(this.config,z(this.context,e)||{},n||this.correlationId);return t.transports=this.transports,t.auditTransports=this.auditTransports,t}withCorrelationId(e){return this.child({},e)}addTransport(e){this.transports.push(e)}addAuditTransport(e){this.auditTransports.push(e)}setLevel(e){this.config.level=e}setAuditEnabled(e){this.config.auditEnabled=e}isAuditEnabled(){return this.config.auditEnabled}shouldLog(e){return B[e]>=B[this.config.level]}createEntry(e,n,t,a,s){let i={timestamp:new Date().toISOString(),level:e,message:n,service:this.config.service,correlationId:this.correlationId},o=z(this.context,t);if(o&&Object.keys(o).length>0)i.context=O(o,this.config.redactKeys);if(this.config.includeCallerInfo)i.caller=oe();if(a)i.error=re(a);if(s!==void 0)i.duration=performance.now()-s;return i}log(e,n,t,a,s){if(!this.shouldLog(e))return;let i=this.createEntry(e,n,t,a,s);for(let o of this.transports)try{o.log(i)}catch(r){console.error(`Logger transport "${o.name}" failed:`,r)}}debug(e,n){this.log("debug",e,n)}info(e,n){this.log("info",e,n)}warn(e,n){this.log("warn",e,n)}error(e,n,t){this.log("error",e,t,n)}fatal(e,n,t){this.log("fatal",e,t,n)}time(e){let n=performance.now();return()=>{this.log("debug",`${e} completed`,void 0,void 0,n)}}async timeAsync(e,n,t){let a=performance.now();try{let s=await n();return this.log("debug",`${e} completed`,t,void 0,a),s}catch(s){throw this.log("error",`${e} failed`,t,s,a),s}}request(e){let n=e.statusCode>=500?"error":e.statusCode>=400?"warn":"info";this.log(n,`${e.method} ${e.path} ${e.statusCode}`,{method:e.method,path:e.path,statusCode:e.statusCode,durationMs:e.duration,correlationId:e.correlationId,userId:e.userId,ip:e.ip,userAgent:e.userAgent})}db(e){let n=e.error?"error":"debug";this.log(n,`DB ${e.operation} on ${e.table}`,{operation:e.operation,table:e.table,durationMs:e.duration,rowCount:e.rowCount},e.error)}async flush(){for(let e of this.transports)if(e.flush)await e.flush()}async audit(e){let n={id:ve(),timestamp:new Date().toISOString(),entityName:e.entityName,entityId:e.entityId??null,operation:e.operation,userId:e.userId??null,summary:e.summary||`${e.operation} on ${e.entityName}`,oldValues:e.oldValues||{},newValues:e.newValues||{},ipAddress:e.ipAddress||"unknown",userAgent:e.userAgent||"unknown",path:e.path||"",query:e.query||"",correlationId:this.correlationId};for(let t of this.auditTransports)try{await t.write(n)}catch(a){console.error(`Audit transport "${t.name}" failed:`,a)}}auditOnly(e){this.audit(e)}async trace(e){let n=e.log!==!1,t=e.writeAudit===!0||e.writeAudit!==!1&&this.config.auditEnabled&&e.audit;if(n)this.log(e.level||"info",e.message,e.context,e.error);if(t&&e.audit)await this.audit(e.audit)}traceSync(e){let n=e.log!==!1,t=e.writeAudit===!0||e.writeAudit!==!1&&this.config.auditEnabled&&e.audit;if(n)this.log(e.level||"info",e.message,e.context,e.error);if(t&&e.audit)this.audit(e.audit)}}var We=g.getInstance();var Re={timeout:30000,retries:0,retryDelay:1000,debug:!1};class ${config;logger;constructor(e={}){this.config={...Re,...e},this.logger=new g({service:"ServerFetch",prettyPrint:this.config.debug,colorize:this.config.debug,auditEnabled:!1})}buildUrl(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;return this.config.baseUrl?`${this.config.baseUrl}${e}`:e}buildHeaders(e){let n=new Headers;if(this.config.defaultHeaders)for(let[t,a]of Object.entries(this.config.defaultHeaders))n.set(t,a);if(e)if(e instanceof Headers)e.forEach((t,a)=>{n.set(a,t)});else if(Array.isArray(e))for(let[t,a]of e)n.set(t,a);else for(let[t,a]of Object.entries(e))n.set(t,a);return n}parseResponseHeaders(e){let n={};if(e.forEach((t,a)=>{if(a.toLowerCase()==="set-cookie"){let s=n[a];n[a]=s?`${s}, ${t}`:t}else n[a]=t}),typeof e.getSetCookie==="function"){let t=e.getSetCookie();if(t.length>0)n["set-cookie"]=t.join(", ")}return n}async executeWithTimeout(e,n,t){let a=new AbortController,s=setTimeout(()=>a.abort(),n);try{return await Promise.race([e,new Promise((o,r)=>{a.signal.addEventListener("abort",()=>{r(Error(`Request timeout after ${n}ms`))})})])}finally{clearTimeout(s)}}async fetch(e){let n=Te(),t=performance.now(),a=this.buildUrl(e.url),s=this.buildHeaders(e.headers),i=e.timeout??this.config.timeout??30000,o=e.retries??this.config.retries??0,r=e.retryDelay??this.config.retryDelay??1000,l;if(e.body)if(typeof e.body==="object"&&!(e.body instanceof FormData)&&!(e.body instanceof URLSearchParams)&&!(e.body instanceof Blob)&&!(e.body instanceof ArrayBuffer)){if(l=JSON.stringify(e.body),!s.has("content-type"))s.set("content-type","application/json")}else l=e.body;this.logger.debug(`[${n}] ${e.method} ${a}`,{method:e.method,url:a,hasBody:!!l});let u=null,p=0;while(p<=o)try{let c=await this.executeWithTimeout(fetch(a,{method:e.method,headers:s,body:l}),i,n),v=performance.now()-t,k=this.parseResponseHeaders(c.headers),f,_,y=await c.text();if(y)try{let x=JSON.parse(y);if(c.ok)f=x;else _=x}catch{if(!c.ok)_={message:y||c.statusText}}else if(!c.ok)_={message:c.statusText};let C={isSuccess:c.ok,response:f,errors:_,code:c.status,headers:k,durationMs:v,requestId:n,createdAt:new Date};if(c.ok)this.logger.info(`[${n}] ${e.method} ${a} ${c.status}`,{method:e.method,url:a,statusCode:c.status,durationMs:Math.round(v)});else this.logger.warn(`[${n}] ${e.method} ${a} ${c.status}`,{method:e.method,url:a,statusCode:c.status,durationMs:Math.round(v),error:_});return C}catch(c){if(u=c instanceof Error?c:Error(String(c)),p++,p<=o)this.logger.warn(`[${n}] Retry ${p}/${o} after error`,{method:e.method,url:a,error:u.message,attempt:p,retries:o}),await new Promise((v)=>setTimeout(v,r))}let R=performance.now()-t;return this.logger.error(`[${n}] ${e.method} ${a} failed`,u,{method:e.method,url:a,durationMs:Math.round(R),attempts:p}),{isSuccess:!1,response:void 0,errors:{message:u?.message||"Unknown error"},code:null,headers:{},durationMs:R,requestId:n,createdAt:new Date}}async get(e,n){return this.fetch({...n,url:e,method:"GET"})}async post(e,n,t){return this.fetch({...t,url:e,method:"POST",body:n})}async put(e,n,t){return this.fetch({...t,url:e,method:"PUT",body:n})}async patch(e,n,t){return this.fetch({...t,url:e,method:"PATCH",body:n})}async delete(e,n){return this.fetch({...n,url:e,method:"DELETE"})}}var Xe=new $;var ke={accessToken:"access_token",refreshToken:"refresh_token",sessionToken:"session_token"};function xe(e){let n=[],t="";for(let a=0;a<e.length;a++){let s=e[a];if(s===","){let i=e.slice(a+1).trimStart();if(/^[a-zA-Z0-9_-]+=/.test(i)){n.push(t.trim()),t="";continue}}t+=s}if(t.trim())n.push(t.trim());return n}function Pe(e,n){let t={},a=["x-forwarded-for","x-real-ip","user-agent","accept-language","x-request-id","x-client-ip","cf-connecting-ip","true-client-ip"];for(let l of a){let u=e.get(l);if(u)t[l]=u}if(!t["user-agent"])t["user-agent"]="Nucleus-ServerAction/1.0";let s=e.get(`x-${n.accessToken}`),i=e.get(`x-${n.refreshToken}`),o=e.get(`x-${n.sessionToken}`);if(s)t[`x-${n.accessToken}`]=s;if(i)t[`x-${n.refreshToken}`]=i;if(o)t[`x-${n.sessionToken}`]=o;let r=e.get("cookie");if(r)t.cookie=r;return t}function Se(e){return e.replace(/_([a-z])/g,(n,t)=>t.toUpperCase())}function H(e){let n={};for(let[t,a]of Object.entries(e)){let s=t.startsWith("_")?t:Se(t);if(a instanceof Date)n[s]=a.toISOString();else if(a&&typeof a==="object"&&!Array.isArray(a))n[s]=H(a);else n[s]=a}return n}function Ne(e,n){let t=new URLSearchParams,a=(i,o)=>{if(o===void 0||o===null)return;if(Array.isArray(o))for(let r of o)a(`${i}[]`,r);else if(o instanceof Date)t.append(i,o.toISOString());else if(typeof o==="object")for(let[r,l]of Object.entries(o))a(`${i}[${r}]`,l);else t.append(i,String(o))};for(let[i,o]of Object.entries(n))a(i,o);let s=t.toString();if(!s)return e;return e.includes("?")?`${e}&${s}`:`${e}?${s}`}function De(e,n,t,a){let s={...ke,...n.tokenNames},i=new $({baseUrl:n.baseUrl,debug:n.debug,timeout:30000,retries:0});return async function(r,l){let u=e[r];if(!u)return{isSuccess:!1,errors:{message:`Endpoint "${r}" not found`},code:404};let p=await t(),R=await a(),c={};if(R.forEach((d,m)=>{c[m]=d}),(u.path.includes("/auth/login")||u.path.includes("/auth/oauth"))&&u.method==="POST")try{p.delete(s.accessToken),p.delete(s.refreshToken),p.delete(s.sessionToken)}catch(d){}let k=Pe(R,s),f=u.path,_,y=new Set,C=/:([a-zA-Z_][a-zA-Z0-9_]*)/g,x=C.exec(f);while(x!==null){if(x[1])y.add(x[1]);x=C.exec(f)}if(l&&typeof l==="object"&&!(l instanceof FormData)){let d=l;for(let[m,b]of Object.entries(d))if(b!=null){if(y.has(m))f=f.replace(`:${m}`,String(b));else if(m.startsWith("_")&&y.has(m.substring(1)))f=f.replace(`:${m.substring(1)}`,String(b));else if(m==="id"&&y.has("id"))f=f.replace(":id",String(b))}}if(u.method==="GET"&&l&&typeof l==="object"){let d={...l};for(let m of y)delete d[m],delete d[`_${m}`];f=Ne(f,d)}else if(l!==void 0){if(u.isFormData&&l instanceof FormData)_=l;else if(Array.isArray(l)){if(_=l.map((d)=>d&&typeof d==="object"?H(d):d),!k["content-type"])k["content-type"]="application/json"}else if(_=u.skipCamelCase?l:H(l),!k["content-type"])k["content-type"]="application/json"}let E=await i.fetch({url:f,method:u.method,headers:k,body:_});if(E.headers["set-cookie"])try{let d=E.headers["set-cookie"],m=xe(d);for(let b of m){let[L,...A]=b.split(";");if(!L)continue;let[j,W]=L.split("=");if(j&&W){let w={};for(let de of A){let[Y,N]=de.trim().split("=");if(!Y)continue;let P=Y.toLowerCase();if(P==="path")w.path=N;else if(P==="domain")w.domain=N;else if(P==="max-age")w.maxAge=Number(N);else if(P==="expires"&&N)w.expires=new Date(N);else if(P==="httponly")w.httpOnly=!0;else if(P==="secure")w.secure=!0;else if(P==="samesite")w.sameSite=N}p.set(j.trim(),W.trim(),w)}}}catch(d){console.warn("[ServerFactory] Failed to process Set-Cookie headers:",d instanceof Error?d.message:String(d))}let S=E.response;if(E.isSuccess&&S&&typeof S==="object"&&!Array.isArray(S)){let d=S;if("success"in d&&!("data"in d)){let{success:m,message:b,error:L,...A}=d;S={success:m,...b!==void 0?{message:b}:{},...L!==void 0?{error:L}:{},...Object.keys(A).length>0?{data:A}:{}}}}return{isSuccess:E.isSuccess,data:S,errors:E.errors,code:E.code,message:E.isSuccess?void 0:E.errors?.message}}}export{se as generateVerificationEndpoints,ee as generateSystemTableEndpoints,ne as generateMonitoringEndpoints,X as generateEndpointsFromConfig,Q as generateAuthEndpoints,Ee as generateAllEndpoints,te as generateAdminEndpoints,De as createServerFactory,fe as createApiHook,V as AUTH_ENDPOINT_CONFIGS};