style: Apply Prettier formatting with 4-space indentation

Applied consistent code formatting across the project using Prettier, now configured to use 4-space indentation instead of tabs.
This commit is contained in:
Scott Idem
2025-11-18 18:40:50 -05:00
parent 6d1f9989d0
commit 0987cd6ad9
346 changed files with 86645 additions and 84459 deletions

256
TODO.md
View File

@@ -30,22 +30,22 @@ This is a list of tasks to be completed before the next event/show/conference.
- [ ] **Goal:** Enforce a single, consistent naming standard across the entire codebase.
- [ ] **Files:**
- Logic: `ae_<module>__<concept>.ts`
- DB Definitions: `db_<module>.ts`
- Svelte Stores: `ae_<module>_stores.ts`
- Consolidate helper files (e.g., `ae_core_functions.ts`) into the above files.
- Logic: `ae_<module>__<concept>.ts`
- DB Definitions: `db_<module>.ts`
- Svelte Stores: `ae_<module>_stores.ts`
- Consolidate helper files (e.g., `ae_core_functions.ts`) into the above files.
- [ ] **Functions & Variables:**
- [x] Enforce `snake_case` for all function and variable names.
- [x] Deprecate and remove `camelCase`.
- [x] Deprecate and refactor ambiguous `handle_` prefixes.
- [x] Enforce `snake_case` for all function and variable names.
- [x] Deprecate and remove `camelCase`.
- [x] Deprecate and refactor ambiguous `handle_` prefixes.
- [ ] **Object & Property Naming:**
- Use singular nouns for objects and properties (e.g., `example.id`, not `examples.id`).
- Use singular nouns for objects and properties (e.g., `example.id`, not `examples.id`).
- [ ] **List Suffixes:**
- Use `_li` for simple, unordered arrays.
- Use `_kv` for key-value objects/maps.
- Use `_li` for simple, unordered arrays.
- Use `_kv` for key-value objects/maps.
- [ ] **Process:**
- Refactor one module at a time to ensure internal consistency before moving to the next. Start with `ae_core`.
- **Update 2025-11-13:** `ae_core_functions.ts` has been temporarily restored to resolve a critical issue. The refactoring of `process_ae_obj__*_props()` functions will now proceed module by module, ensuring stability at each step.
- Refactor one module at a time to ensure internal consistency before moving to the next. Start with `ae_core`.
- **Update 2025-11-13:** `ae_core_functions.ts` has been temporarily restored to resolve a critical issue. The refactoring of `process_ae_obj__*_props()` functions will now proceed module by module, ensuring stability at each step.
### 2. Component Standardization
@@ -65,21 +65,21 @@ This is a list of tasks to be completed before the next event/show/conference.
These functions are frequently used and critical to the application's data flow. Reviewing and cleaning them up will significantly improve the codebase.
1. **`get_ae_obj_li_for_obj_id_crud_v2()`** (from `src/lib/ae_api/api_get__crud_obj_li_v2.ts`)
- **Why:** This is the main function for fetching lists of data from the backend, used extensively across all modules.
- **Cleanup:** Review parameters and return types for consistency, improve error handling, and add more detailed logging for debugging.
- **Why:** This is the main function for fetching lists of data from the backend, used extensively across all modules.
- **Cleanup:** Review parameters and return types for consistency, improve error handling, and add more detailed logging for debugging.
2. **`db_save_ae_obj_li__ae_obj()`** (from `src/lib/ae_core/core__idb_dexie.ts`)
- **Why:** This function is the single point of entry for saving data to the local Dexie database, critical for performance and reliability.
- **Cleanup:** Optimize for bulk operations, add robust error handling and logging, and ensure correct handling of updates to existing objects.
- **Why:** This function is the single point of entry for saving data to the local Dexie database, critical for performance and reliability.
- **Cleanup:** Optimize for bulk operations, add robust error handling and logging, and ensure correct handling of updates to existing objects.
3. **The `process_ae_obj__*_props()` family of functions** (e.g., `process_ae_obj__journal_props()` from `src/lib/ae_journals/ae_journals__journal.ts`)
- **Why:** These functions transform API data for the frontend and are a common source of bugs and inconsistencies.
- **Cleanup:** Standardize their structure across all modules, ensure they are pure functions, and add unit tests for correctness.
- **Update 2025-11-13 (Temporary Rollback):** The previous refactoring of these functions has been temporarily rolled back due to an `InternalError`. `ae_core_functions.ts` has been restored. The new plan is to refactor these functions module by module, ensuring stability at each step. The generic CRUD functions in `core__crud_generic.ts` were simplified to remove data processing and caching, delegating those responsibilities to the module-specific functions. The deprecated `process_ae_obj__props` function in that file was left in place but is no longer used by the generic CRUD functions.
- **Why:** These functions transform API data for the frontend and are a common source of bugs and inconsistencies.
- **Cleanup:** Standardize their structure across all modules, ensure they are pure functions, and add unit tests for correctness.
- **Update 2025-11-13 (Temporary Rollback):** The previous refactoring of these functions has been temporarily rolled back due to an `InternalError`. `ae_core_functions.ts` has been restored. The new plan is to refactor these functions module by module, ensuring stability at each step. The generic CRUD functions in `core__crud_generic.ts` were simplified to remove data processing and caching, delegating those responsibilities to the module-specific functions. The deprecated `process_ae_obj__props` function in that file was left in place but is no longer used by the generic CRUD functions.
4. **Usage of `liveQuery` from Dexie**
- **Why:** `liveQuery` is powerful for reactive UIs, but current usage suggests complexity and potential issues.
- **Cleanup:** Review `liveQuery` usage throughout the application, simplify queries, and investigate reactivity issues. Consider wrapping `liveQuery` in a custom Svelte store for a more predictable interface.
- **Why:** `liveQuery` is powerful for reactive UIs, but current usage suggests complexity and potential issues.
- **Cleanup:** Review `liveQuery` usage throughout the application, simplify queries, and investigate reactivity issues. Consider wrapping `liveQuery` in a custom Svelte store for a more predictable interface.
---
@@ -99,8 +99,8 @@ These functions are frequently used and critical to the application's data flow.
- [ ] **Data:** Define the `Account` interface in a new file `src/lib/ae_core/core__account.ts`.
- [ ] **API:** Implement functions in `core__account.ts` for CRUD operations on accounts.
- [ ] **UI:**
- [ ] Create a `+page.svelte` to list all accounts.
- [ ] Create a `[account_id]` dynamic route to view and edit account details.
- [ ] Create a `+page.svelte` to list all accounts.
- [ ] Create a `[account_id]` dynamic route to view and edit account details.
### 3. Site & Domain Management
@@ -108,37 +108,37 @@ These functions are frequently used and critical to the application's data flow.
- [ ] **Data:** Define `Site` and `Site_Domain` interfaces in a new file `src/lib/ae_core/core__site.ts`.
- [ ] **API:** Implement functions in `core__site.ts` for CRUD operations on sites and domains.
- [ ] **UI:**
- [ ] Create a `+page.svelte` to list all sites.
- [ ] Create a `[site_id]` dynamic route to view and edit site details and manage associated domains.
- [ ] Create a `+page.svelte` to list all sites.
- [ ] Create a `[site_id]` dynamic route to view and edit site details and manage associated domains.
### 4. Person Management
- [ ] **Enhance:** Improve the existing person management components under `/core/person`.
- [ ] **UI:**
- [ ] Create a dedicated page for creating new person records.
- [ ] Add search and filtering capabilities to the person list.
- [ ] Create a dedicated page for creating new person records.
- [ ] Add search and filtering capabilities to the person list.
### 5. User Management
- [ ] **Route:** Create a new route at `/core/users`.
- [ ] **UI:**
- [ ] Create a `+page.svelte` to list all users.
- [ ] Create a `[user_id]` dynamic route to view and edit user details, including permissions.
- [ ] Implement a component to link users to person records.
- [ ] Create a `+page.svelte` to list all users.
- [ ] Create a `[user_id]` dynamic route to view and edit user details, including permissions.
- [ ] Implement a component to link users to person records.
### 6. Hosted File Management
- [ ] **Route:** Create a new route at `/core/hosted_files`.
- [ ] **UI:**
- [ ] Create a `+page.svelte` to list all hosted files with filters (e.g., by file type, uploader).
- [ ] Implement a file viewer for common file types.
- [ ] Add functionality to upload new files and associate them with other objects (e.g., a person, a journal entry).
- [ ] Create a `+page.svelte` to list all hosted files with filters (e.g., by file type, uploader).
- [ ] Implement a file viewer for common file types.
- [ ] Add functionality to upload new files and associate them with other objects (e.g., a person, a journal entry).
### 7. Shared Lookup Lists
- [ ] **Route:** Create a new route at `/core/lookups`.
- [ ] **UI:**
- [ ] Create a simple UI to view and manage the shared lookup lists (e.g., `countries`, `time_zones`).
- [ ] Create a simple UI to view and manage the shared lookup lists (e.g., `countries`, `time_zones`).
---
@@ -157,9 +157,9 @@ These functions are frequently used and critical to the application's data flow.
- [ ] **Offline Support:** Improve offline capabilities by pre-fetching and caching more data. Review the current Dexie implementation for optimizations.
- [ ] **Search & Filtering:** Enhance the UI with more advanced search and filtering options for journals and entries (e.g., by date range, content, tags).
- [ ] **User Experience (UX):**
- Implement better loading indicators and skeleton loaders.
- Provide clearer empty state messages (e.g., "No journals found, create one!").
- Improve error handling and provide more informative error messages to the user.
- Implement better loading indicators and skeleton loaders.
- Provide clearer empty state messages (e.g., "No journals found, create one!").
- Improve error handling and provide more informative error messages to the user.
- [ ] **Encryption:** Review and enhance the encryption implementation for journal entries to ensure it is secure and user-friendly.
- [ ] **Templates:** Fully implement and document the "templates" feature for creating new journals and entries.
@@ -181,28 +181,28 @@ These functions are frequently used and critical to the application's data flow.
### Archives Module (`/idaa/archives`)
- [ ] **UI/UX:**
- [ ] Add a loading indicator while archives are being fetched.
- [ ] Implement a more engaging "empty state" when no archives are available.
- [ ] Add a loading indicator while archives are being fetched.
- [ ] Implement a more engaging "empty state" when no archives are available.
- [ ] **Performance:**
- [ ] Implement pagination or infinite scrolling for the archive list.
- [ ] Implement pagination or infinite scrolling for the archive list.
### Bulletin Board Module (`/idaa/bb`)
- [ ] **UI/UX:**
- [ ] Improve the UI for creating and editing posts and comments.
- [x] Add a rich text editor for a better writing experience.
- [ ] Improve the UI for creating and editing posts and comments.
- [x] Add a rich text editor for a better writing experience.
- [ ] **Features:**
- [ ] Implement user-specific features, such as editing their own posts and comments.
- [ ] Implement user-specific features, such as editing their own posts and comments.
### Recovery Meetings Module (`/idaa/recovery_meetings`)
- [ ] **Refactoring:**
- [ ] Simplify the search and filtering logic. The current implementation with `setInterval` is complex and could be replaced with a more modern approach using debouncing or reactive statements.
- [ ] Simplify the search and filtering logic. The current implementation with `setInterval` is complex and could be replaced with a more modern approach using debouncing or reactive statements.
- [ ] **UI/UX:**
- [ ] Make the search and filtering interface more intuitive and responsive.
- [ ] Provide instant feedback to the user as they type in the search box.
- [ ] Make the search and filtering interface more intuitive and responsive.
- [ ] Provide instant feedback to the user as they type in the search box.
- [ ] **Performance:**
- [ ] Optimize the search query to be faster and more efficient.
- [ ] Optimize the search query to be faster and more efficient.
---
@@ -217,28 +217,28 @@ These functions are frequently used and critical to the application's data flow.
### Core Event Management
- [ ] **Event List (`/events`):**
- [ ] Add search and filtering capabilities to the main event list.
- [ ] Implement pagination for the event list.
- [ ] Add search and filtering capabilities to the main event list.
- [ ] Implement pagination for the event list.
- [ ] **Event Creation/Editing:**
- [ ] Create a dedicated page or modal for creating and editing events.
- [ ] Create a dedicated page or modal for creating and editing events.
### Sub-modules (`/events/[event_id]/...`)
- [ ] **Sessions, Presentations, Presenters, etc.:**
- [ ] For each sub-module (sessions, presentations, etc.), implement a consistent set of features:
- [ ] List view with search and filtering.
- [ ] Detail view.
- [ ] Create and edit forms.
- [ ] Delete functionality with confirmation.
- [ ] For each sub-module (sessions, presentations, etc.), implement a consistent set of features:
- [ ] List view with search and filtering.
- [ ] Detail view.
- [ ] Create and edit forms.
- [ ] Delete functionality with confirmation.
- [ ] **File Management:**
- [ ] Improve the file upload component (`ae_comp__event_files_upload.svelte`) with features like drag-and-drop and progress bars.
- [ ] Enhance the file list view with more details and actions.
- [ ] Improve the file upload component (`ae_comp__event_files_upload.svelte`) with features like drag-and-drop and progress bars.
- [ ] Enhance the file list view with more details and actions.
- [ ] \*\*Launcher (`/events/[event_id]/launcher`):
- [ ] Add documentation to explain the purpose and usage of the launcher.
- [ ] Improve the UI to make it more intuitive for users.
- [ ] Add documentation to explain the purpose and usage of the launcher.
- [ ] Improve the UI to make it more intuitive for users.
- [ ] \*\*Badges (`/events/[event_id]/badges`):
- [ ] Enhance the badge printing interface with more customization options.
- [ ] Add a preview of the badge before printing.
- [ ] Enhance the badge printing interface with more customization options.
- [ ] Add a preview of the badge before printing.
### Performance
@@ -250,14 +250,14 @@ These functions are frequently used and critical to the application's data flow.
## UI/UX Consistency
- [ ] **Broad UI/UX Review:** Conduct a comprehensive review of UI elements across the application to ensure consistency. This includes, but is not limited to:
- Buttons (style, placement, wording)
- Lists (style, actions)
- Links vs. Buttons (correct semantic usage)
- Menus (style, options)
- Debug components and other developer-facing UI.
- **Wording:** Standardize the text used in common UI elements (e.g., "Save", "Cancel", "Delete", "Add New").
- **Scope:** This should be done on a per-module basis to ensure local consistency, with a goal of achieving global consistency where possible.
- **Note on IDAA:** The `idaa` modules are semi-custom for a client and may have their own specific UI/UX requirements. Their consistency should be evaluated separately, keeping the client's needs in mind.
- Buttons (style, placement, wording)
- Lists (style, actions)
- Links vs. Buttons (correct semantic usage)
- Menus (style, options)
- Debug components and other developer-facing UI.
- **Wording:** Standardize the text used in common UI elements (e.g., "Save", "Cancel", "Delete", "Add New").
- **Scope:** This should be done on a per-module basis to ensure local consistency, with a goal of achieving global consistency where possible.
- **Note on IDAA:** The `idaa` modules are semi-custom for a client and may have their own specific UI/UX requirements. Their consistency should be evaluated separately, keeping the client's needs in mind.
---
@@ -280,81 +280,81 @@ These are just quick notes, thoughts, ideas, and reminders for myself.
### Events modules and main landing pages
- **Presentation Management**
- Manage
- Session Search
- View Session
- View Presenter
- Locations List
- View Location
- Devices List
- View Device
- Reports
- Manage
- Session Search
- View Session
- View Presenter
- Locations List
- View Location
- Devices List
- View Device
- Reports
- **Launcher** (desktop first; tablet second; mobile last)
- Manage - Various admin and configuration options
- Menu Section - Event; Location; Sessions; Show/Hide
- Content Section - Shows session specific files; Shows session specific presentations; presentation specific presenters are shown per presentation; presenter specific files are shown per presenter
- Header Section - Event Name; Location Name; Current Time; Offline/Online Status; Sync Status
- Footer Section - Other status indicators; sync button
- Manage - Various admin and configuration options
- Menu Section - Event; Location; Sessions; Show/Hide
- Content Section - Shows session specific files; Shows session specific presentations; presentation specific presenters are shown per presentation; presenter specific files are shown per presenter
- Header Section - Event Name; Location Name; Current Time; Offline/Online Status; Sync Status
- Footer Section - Other status indicators; sync button
- **Badge Printing**
- Manage
- Print Badges
- View Badge (show full preview before printing)
- Review Badge (attendee confirms key info before printing; agree/disagree to terms; agree/disagree to lead retrieval and tracking)
- Manually add Badge
- Reports
- Manage
- Print Badges
- View Badge (show full preview before printing)
- Review Badge (attendee confirms key info before printing; agree/disagree to terms; agree/disagree to lead retrieval and tracking)
- Manually add Badge
- Reports
- **Lead Retrieval**
- Manage
- View Leads
- Add Lead (Scan or Manual Entry)
- License Management and Payment (Stripe)
- Manage
- View Leads
- Add Lead (Scan or Manual Entry)
- License Management and Payment (Stripe)
- **Admin or Manage or Configure Event**
### New Directory Structure?
- src/lib/ - Shared libraries and components
- src/routes/core/ - Core Aether management module
- sub-directories for:
- accounts
- account (by ID)
- sites
- site (by ID)
- site_domains
- site_domain (by ID)
- people
- person (by ID)
- users
- user (by ID)
- hosted_files
- hosted_file (by ID or partial hash match???)
- lookups
- (countries)
- (state_provinces)
- (time_zones)
- sub-directories for:
- accounts
- account (by ID)
- sites
- site (by ID)
- site_domains
- site_domain (by ID)
- people
- person (by ID)
- users
- user (by ID)
- hosted_files
- hosted_file (by ID or partial hash match???)
- lookups
- (countries)
- (state_provinces)
- (time_zones)
- src/routes/events/ - Events main landing page and event management
- src/routes/events/[event_id]/(presentations)/ - Event presentation management module
- sub-directories for:
- sessions
- session (by ID or code)
- presentations
- presenters
- presenter (by ID or code???)
- event_files
- locations
- location (by ID or code)
- devices
- device (by ID or code)
- reports
- report (by name of report)
- sub-directories for:
- sessions
- session (by ID or code)
- presentations
- presenters
- presenter (by ID or code???)
- event_files
- locations
- location (by ID or code)
- devices
- device (by ID or code)
- reports
- report (by name of report)
- src/routes/events/[event_id]/(launcher)/ - Event launcher module
- src/routes/events/[event_id]/(badges)/ - Event badge printing module
- src/routes/events/[event_id]/(leads)/ - Event lead retrieval module
- src/routes/events/[event_id]/+page.svelte - Event main dashboard
- [event_id]/exhibit/[exhibit_id]/ - Exhibitor specific lead retrieval pages
- src/routes/events/[event_id]/+page.svelte - Event main dashboard
- [event_id]/exhibit/[exhibit_id]/ - Exhibitor specific lead retrieval pages
- src/routes/journals/ - Journals module
- src/routes/idaa/ - IDAA custom modules
- (archives)/ - Archives module
- (bb)/ - Bulletin Board module
- (recovery_meetings)/ - Recovery Meetings module
- (archives)/ - Archives module
- (bb)/ - Bulletin Board module
- (recovery_meetings)/ - Recovery Meetings module
- src/lib/ae_core/ - Core Aether logic and data models
- src/lib/ae_events/ - Events module logic and data models
- src/lib/ae_journals/ - Journals module logic and data models