update: types,packages,lua (6 files)

This commit is contained in:
Richard Ward
2025-12-30 14:59:12 +00:00
parent c6d229e653
commit ea61937239
6 changed files with 496 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
-- Type definitions for codegen_studio package
-- Central types for code generation and blueprint management
-- @meta
---@alias TemplateLanguage "typescript"|"javascript"|"python"|"lua"|"rust"|"go"|"java"|"csharp"
---@alias FileType "component"|"service"|"model"|"util"|"test"|"config"|"schema"|"api"
---@class BlueprintFile
---@field path string File path relative to output directory
---@field content string File content (may be template)
---@field type FileType File type category
---@field language TemplateLanguage Target language
---@field overwrite boolean Whether to overwrite if exists
---@class BlueprintVariable
---@field name string Variable name
---@field type "string"|"number"|"boolean"|"array"|"object" Variable type
---@field default any Default value
---@field required boolean Whether variable is required
---@field description string Variable description
---@field validation? string Validation regex pattern
---@class Blueprint
---@field id string Blueprint identifier
---@field name string Blueprint name
---@field description string Blueprint description
---@field version string Blueprint version
---@field author string Blueprint author
---@field category string Blueprint category
---@field tags string[] Blueprint tags
---@field variables BlueprintVariable[] Template variables
---@field files BlueprintFile[] Files to generate
---@field dependencies? string[] Required package dependencies
---@field postGenerate? string[] Post-generation commands
---@class GenerationContext
---@field blueprint Blueprint Blueprint being generated
---@field variables table<string, any> Variable values
---@field outputDir string Output directory path
---@field dryRun boolean Whether to simulate generation
---@class GenerationResult
---@field success boolean Whether generation succeeded
---@field files string[] Generated file paths
---@field errors string[] Error messages
---@field warnings string[] Warning messages
---@field duration number Generation duration in ms
---@class ZipPlan
---@field name string Archive name
---@field files BlueprintFile[] Files to include
---@field includeReadme boolean Include README
---@field includeManifest boolean Include manifest.json
---@class ZipResult
---@field success boolean Whether zip creation succeeded
---@field path string Output zip path
---@field size number Archive size in bytes
---@field error? string Error message if failed
---@class CodegenPermissions
---@field canCreate boolean Can create blueprints
---@field canEdit boolean Can edit blueprints
---@field canDelete boolean Can delete blueprints
---@field canExport boolean Can export blueprints
---@field canImport boolean Can import blueprints
---@field maxBlueprints number Maximum blueprints allowed
---@class CodegenStudioConfig
---@field blueprints Blueprint[] Available blueprints
---@field permissions CodegenPermissions User permissions
---@field defaultLanguage TemplateLanguage Default target language
---@field outputDirectory string Default output directory
---@field templateEngine "mustache"|"handlebars"|"ejs" Template engine
---@class CodegenStudioProps
---@field config CodegenStudioConfig Studio configuration
---@field onGenerate? fun(result: GenerationResult): void Generation callback
---@field onExport? fun(result: ZipResult): void Export callback
---@field onImport? fun(blueprint: Blueprint): void Import callback
---@class UIComponent
---@field type string Component type
---@field props? table Component props
---@field children? UIComponent[] Child components
-- Export all types (no runtime exports, types only)
return {}

View File

@@ -0,0 +1,71 @@
-- Type definitions for role_editor package
-- Central types file re-exporting all module types
-- @meta
-- Re-export role module types
local role_types = require("role.types")
---@alias UserRole "public"|"user"|"moderator"|"admin"|"god"|"supergod"
---@alias PermissionLevel 0|1|2|3|4|5|6
-- Permission level mapping
-- Level 0: Public (anonymous)
-- Level 1: User (authenticated)
-- Level 2: Moderator
-- Level 3: Admin
-- Level 4: God
-- Level 5: Supergod
---@class RoleInfo
---@field label string Display label for the role
---@field blurb string Short description
---@field highlights string[] Feature highlights for this role
---@field badge string Badge icon name
---@field variant "default"|"secondary" Visual variant
---@field level PermissionLevel Permission level number
---@class RoleConfig
---@field roles table<UserRole, RoleInfo> Role definitions
---@class Permission
---@field id string Permission identifier
---@field name string Permission display name
---@field description string Permission description
---@field category string Permission category
---@field minLevel PermissionLevel Minimum level required
---@class RolePermissions
---@field role UserRole Role identifier
---@field permissions string[] Granted permission IDs
---@field inherited string[] Inherited permission IDs from lower roles
---@class RoleEditorProps
---@field currentRole UserRole Current user's role
---@field targetRole UserRole Role being edited
---@field allowedRoles? UserRole[] Roles the current user can assign
---@field permissions Permission[] Available permissions
---@field rolePermissions RolePermissions[] Permission assignments
---@field onSave? fun(role: UserRole, permissions: string[]): void Save callback
---@field onCancel? fun(): void Cancel callback
---@field readonly? boolean Read-only mode
---@class RoleCardProps
---@field role UserRole Role to display
---@field info RoleInfo Role information
---@field selected? boolean Whether card is selected
---@field onClick? fun(role: UserRole): void Click callback
---@field showBadge? boolean Show role badge
---@class RoleEditorState
---@field selectedRole UserRole Currently selected role
---@field modifiedPermissions table<string, boolean> Modified permission states
---@field isDirty boolean Has unsaved changes
---@class UIComponent
---@field type string Component type
---@field props? table Component props
---@field children? UIComponent[] Child components
-- Export all types (no runtime exports, types only)
return {}

View File

@@ -0,0 +1,97 @@
-- Type definitions for smtp_config package
-- Central types for SMTP email configuration
-- @meta
---@alias SMTPEncryption "none"|"tls"|"ssl"|"starttls"
---@alias SMTPAuthMethod "plain"|"login"|"cram-md5"|"oauth2"
---@class SMTPConfig
---@field host string SMTP server hostname
---@field port number SMTP server port (25, 465, 587)
---@field encryption SMTPEncryption Encryption method
---@field username string SMTP username
---@field password string SMTP password (encrypted)
---@field authMethod SMTPAuthMethod Authentication method
---@field fromEmail string Default sender email
---@field fromName string Default sender name
---@field replyTo? string Reply-to email address
---@field timeout number Connection timeout in seconds
---@field maxRetries number Maximum retry attempts
---@class SMTPField
---@field id string Field identifier
---@field name string Field name
---@field type "text"|"password"|"number"|"select" Field type
---@field label string Display label
---@field placeholder? string Placeholder text
---@field required boolean Whether field is required
---@field helpText? string Help text
---@field options? SMTPFieldOption[] Options for select fields
---@class SMTPFieldOption
---@field value string|number Option value
---@field label string Option label
---@class ValidationResult
---@field valid boolean Whether validation passed
---@field errors table<string, string> Field errors
---@field warnings? table<string, string> Field warnings
---@class SMTPTestResult
---@field success boolean Whether test succeeded
---@field message string Result message
---@field duration number Test duration in ms
---@field details? SMTPTestDetails Detailed results
---@class SMTPTestDetails
---@field connected boolean Connection established
---@field authenticated boolean Authentication succeeded
---@field tlsEnabled boolean TLS enabled
---@field serverResponse string Server response
---@field capabilities string[] Server capabilities
---@class EmailTemplate
---@field id string Template identifier
---@field name string Template name
---@field subject string Email subject
---@field body string Email body (HTML or text)
---@field isHtml boolean Whether body is HTML
---@field variables string[] Template variables
---@class SendEmailRequest
---@field to string|string[] Recipient(s)
---@field cc? string|string[] CC recipient(s)
---@field bcc? string|string[] BCC recipient(s)
---@field subject string Email subject
---@field body string Email body
---@field isHtml? boolean Whether body is HTML
---@field attachments? EmailAttachment[] File attachments
---@field template? string Template ID to use
---@field templateData? table<string, any> Template variable values
---@class EmailAttachment
---@field filename string Attachment filename
---@field content string Base64 encoded content
---@field contentType string MIME type
---@class SendEmailResult
---@field success boolean Whether send succeeded
---@field messageId? string Message ID from server
---@field error? string Error message if failed
---@field timestamp number Send timestamp
---@class SMTPConfigProps
---@field config SMTPConfig Current configuration
---@field onSave fun(config: SMTPConfig): void Save callback
---@field onTest fun(): Promise<SMTPTestResult> Test callback
---@field onCancel? fun(): void Cancel callback
---@field readonly? boolean Read-only mode
---@class UIComponent
---@field type string Component type
---@field props? table Component props
---@field children? UIComponent[] Child components
-- Export all types (no runtime exports, types only)
return {}

View File

@@ -0,0 +1,58 @@
-- Type definitions for ui_auth package
-- Central types for authentication UI components
-- @meta
---@alias AuthState "unauthenticated"|"authenticating"|"authenticated"|"error"
---@alias GateAction "allow"|"deny"|"redirect"|"challenge"
---@class AuthUser
---@field id string User identifier
---@field username string Username
---@field email string Email address
---@field level number Permission level (0-6)
---@field role string Role name
---@field avatar? string Avatar URL
---@field tenantId string Tenant identifier
---@class AuthContext
---@field user? AuthUser Current user
---@field state AuthState Authentication state
---@field error? string Error message
---@field isLoading boolean Whether auth is loading
---@class GateConfig
---@field minLevel number Minimum permission level required
---@field allowedRoles? string[] Specific roles allowed
---@field deniedMessage? string Custom denied message
---@field redirectUrl? string Redirect URL when denied
---@field showLoginPrompt boolean Show login prompt when denied
---@class GateResult
---@field action GateAction Gate decision
---@field reason? string Reason for denial
---@field redirectUrl? string Where to redirect
---@class DeniedPageProps
---@field title? string Page title
---@field message? string Denial message
---@field requiredLevel? number Level required
---@field currentLevel? number User's current level
---@field showLoginButton boolean Show login button
---@field showBackButton boolean Show back button
---@field onLogin? fun(): void Login callback
---@field onBack? fun(): void Back callback
---@class AuthGuardProps
---@field minLevel number Minimum level required
---@field fallback? UIComponent Component to show when denied
---@field children UIComponent[] Children to protect
---@field onDenied? fun(reason: string): void Denied callback
---@class UIComponent
---@field type string Component type
---@field props? table Component props
---@field children? UIComponent[] Child components
-- Export all types (no runtime exports, types only)
return {}

View File

@@ -0,0 +1,83 @@
-- Type definitions for ui_dialogs package
-- Central types for dialog components
-- @meta
---@alias DialogType "alert"|"confirm"|"prompt"|"custom"
---@alias DialogSize "xs"|"sm"|"md"|"lg"|"xl"|"fullscreen"
---@alias DialogSeverity "info"|"success"|"warning"|"error"
---@class DialogButton
---@field label string Button label
---@field variant? "text"|"outlined"|"contained" Button variant
---@field color? "primary"|"secondary"|"error"|"warning"|"info"|"success" Button color
---@field onClick fun(): void Click handler
---@field autoFocus? boolean Auto-focus this button
---@field disabled? boolean Whether button is disabled
---@class AlertDialogProps
---@field open boolean Whether dialog is open
---@field title string Dialog title
---@field message string Alert message
---@field severity? DialogSeverity Alert severity
---@field confirmLabel? string Confirm button label
---@field onClose fun(): void Close callback
---@field onConfirm fun(): void Confirm callback
---@class ConfirmDialogProps
---@field open boolean Whether dialog is open
---@field title string Dialog title
---@field message string Confirmation message
---@field confirmLabel? string Confirm button label
---@field cancelLabel? string Cancel button label
---@field severity? DialogSeverity Dialog severity
---@field onClose fun(): void Close callback
---@field onConfirm fun(): void Confirm callback
---@field onCancel fun(): void Cancel callback
---@class PromptDialogProps
---@field open boolean Whether dialog is open
---@field title string Dialog title
---@field message string Prompt message
---@field placeholder? string Input placeholder
---@field defaultValue? string Default input value
---@field inputType? "text"|"password"|"email"|"number" Input type
---@field confirmLabel? string Confirm button label
---@field cancelLabel? string Cancel button label
---@field validation? fun(value: string): string|nil Validation function
---@field onClose fun(): void Close callback
---@field onConfirm fun(value: string): void Confirm callback
---@field onCancel fun(): void Cancel callback
---@class CustomDialogProps
---@field open boolean Whether dialog is open
---@field title? string Dialog title
---@field size? DialogSize Dialog size
---@field fullWidth? boolean Full width dialog
---@field hideCloseButton? boolean Hide close button
---@field disableBackdropClick? boolean Disable closing on backdrop click
---@field disableEscapeKey? boolean Disable closing on Escape key
---@field actions? DialogButton[] Dialog action buttons
---@field children UIComponent[] Dialog content
---@field onClose fun(): void Close callback
---@class DialogState
---@field type DialogType Dialog type
---@field open boolean Whether dialog is open
---@field props table Dialog props
---@class DialogManager
---@field alert fun(props: AlertDialogProps): void Show alert dialog
---@field confirm fun(props: ConfirmDialogProps): Promise<boolean> Show confirm dialog
---@field prompt fun(props: PromptDialogProps): Promise<string|nil> Show prompt dialog
---@field custom fun(props: CustomDialogProps): void Show custom dialog
---@field close fun(): void Close current dialog
---@class UIComponent
---@field type string Component type
---@field props? table Component props
---@field children? UIComponent[] Child components
-- Export all types (no runtime exports, types only)
return {}

View File

@@ -0,0 +1,98 @@
-- Type definitions for ui_login package
-- Central types for login UI components
-- @meta
---@alias LoginState "idle"|"loading"|"success"|"error"
---@alias LoginMethod "password"|"oauth"|"sso"|"magic-link"|"2fa"
---@class LoginCredentials
---@field username string Username or email
---@field password string Password
---@field rememberMe? boolean Remember login
---@field tenantId? string Tenant identifier
---@class LoginResult
---@field success boolean Whether login succeeded
---@field user? AuthUser Authenticated user
---@field token? string Auth token
---@field error? string Error message
---@field requiresTwoFactor? boolean Whether 2FA is needed
---@field twoFactorToken? string Token for 2FA verification
---@class AuthUser
---@field id string User identifier
---@field username string Username
---@field email string Email address
---@field level number Permission level (0-6)
---@field role string Role name
---@field avatar? string Avatar URL
---@field tenantId string Tenant identifier
---@class TwoFactorRequest
---@field code string 2FA code
---@field token string 2FA token from login
---@field method "totp"|"sms"|"email" 2FA method
---@class RegisterCredentials
---@field username string Desired username
---@field email string Email address
---@field password string Password
---@field confirmPassword string Password confirmation
---@field acceptTerms boolean Accept terms and conditions
---@field tenantId? string Tenant identifier
---@class RegisterResult
---@field success boolean Whether registration succeeded
---@field user? AuthUser Created user
---@field error? string Error message
---@field requiresVerification? boolean Email verification needed
---@field verificationSent? boolean Verification email sent
---@class PasswordResetRequest
---@field email string Email address
---@class PasswordResetResult
---@field success boolean Whether reset was initiated
---@field message string Result message
---@class LoginFormProps
---@field onSubmit fun(credentials: LoginCredentials): void Submit callback
---@field onRegister? fun(): void Navigate to register
---@field onForgotPassword? fun(): void Navigate to forgot password
---@field loading? boolean Loading state
---@field error? string Error message
---@field methods? LoginMethod[] Available login methods
---@field showRememberMe? boolean Show remember me checkbox
---@field showTenantSelect? boolean Show tenant selector
---@field tenants? TenantOption[] Available tenants
---@class TenantOption
---@field id string Tenant identifier
---@field name string Tenant name
---@field logo? string Tenant logo URL
---@class RegisterFormProps
---@field onSubmit fun(credentials: RegisterCredentials): void Submit callback
---@field onLogin? fun(): void Navigate to login
---@field loading? boolean Loading state
---@field error? string Error message
---@field requireAcceptTerms? boolean Require terms acceptance
---@field termsUrl? string Terms of service URL
---@field privacyUrl? string Privacy policy URL
---@class LoginPageConfig
---@field title? string Page title
---@field subtitle? string Page subtitle
---@field logo? string Logo URL
---@field showRegister boolean Show register link
---@field showForgotPassword boolean Show forgot password link
---@field backgroundImage? string Background image URL
---@class UIComponent
---@field type string Component type
---@field props? table Component props
---@field children? UIComponent[] Child components
-- Export all types (no runtime exports, types only)
return {}