Sync fork with upstream releaseCandidate (tprouvot/Salesforce-Inspector-reloaded) - #9
Draft
JonnyPower wants to merge 122 commits into
Draft
JonnyPower wants to merge 122 commits into
JonnyPower wants to merge 122 commits into
Conversation
…Ls with address parameter
…equests to be sent each time the popup opens (tprouvot#1100) ## Describe your changes Introduce SObjectList cache to prevent request to Salesforce requests to be sent each time the popup opens. Add a new Cache option tab with options for cache duration, clear cache buttons <img width="1090" height="176" alt="image" src="https://github.com/user-attachments/assets/434eb37f-b995-42cd-ac06-2531a71f4d44" />⚠️ This PR introduce a new permission on the manifest file that may require users to accept those new permissions before using the extension. ## Issue ticket number and link tprouvot#437 ## Checklist before requesting a review - [ ] I have read and understand the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] Target branch is releaseCandidate and not master - [ ] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [ ] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional)
…ot#1103) ## Describe your changes Refactors the Flow Scanner rules configuration logic by extracting shared functionality into a dedicated module (flow-scanner-rules.js). This improves code organization, eliminates duplication between flow-scanner.js and options.js, and makes the rules management logic more maintainable. **Key changes:** - Created flow-scanner-rules.js with shared utilities - Optimized rule processing: - Added error handling for localStorage retrieval - Implemented Map-based lookups for O(1) performance - Improved code modularity and testability - Updated imports in flow-scanner.js and options.js to use the new shared module ## Issue ticket number and link N/A - Internal refactoring for code quality improvement ## Checklist before requesting a review - [x] I have read and understand the Contributions section - [x] Target branch is releaseCandidate and not master - [x] I have performed a self-review of my code - [ ] I ran the unit tests and my PR does not break any tests - [ ] I documented the changes I've made on the CHANGES.md and followed actual conventions - [ ] I added a new section on how-to.md (optional) --------- Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com>
## Describe your changes Dependencies Explorer ===================== Interactive UI and model for analyzing Salesforce metadata dependencies, visualizing relationships, and exporting package.xml files or human-readable reports. <img width="1909" height="372" alt="image" src="https://github.com/user-attachments/assets/e58bf254-276c-423a-b74d-d8c4b0cc481d" /> <img width="1916" height="543" alt="image" src="https://github.com/user-attachments/assets/8df13635-22a8-4a31-a685-43452d63d88c" /> <img width="1920" height="507" alt="image" src="https://github.com/user-attachments/assets/5e16f8a4-0a2b-4f7e-b7fb-4880152db25d" /> <img width="1920" height="904" alt="image" src="https://github.com/user-attachments/assets/a74c8722-0b2b-40ce-9acf-4032d410420f" /> <img width="1920" height="950" alt="image" src="https://github.com/user-attachments/assets/ed3e2cf4-273a-449f-a849-93ea4daa5c0b" /> What It Is ---------- Dependencies Explorer uses the Salesforce Tooling API to explore metadata relationships in both directions ("Depends On" for what a component references, and "Referenced By" for what references it). It provides a searchable UI for selecting items, displays results in quick summaries or dependency trees, and supports exports for packaging or review. Why Use It ---------- * Accelerates impact analysis, troubleshooting, and change planning by revealing hidden dependencies (e.g., lookups, value sets, dependent picklists). * Generates minimal package.xml files for efficient metadata retrieval. * Offers readable reports for team reviews, beyond what's visible in file names or standard tools. Key Capabilities ---------------- * **Metadata Selection**: Searchable dropdown for types and items; excludes managed packages by default (with toggle). * **Analysis Directions**: "Depends On" (references) and "Referenced By" (referencers). * **Views**: * Quick Summary: Deduplicated list grouped by type, ideal for exports. * Dependency Tree: Nested parent-child structure for interactive exploration. * **Recursive Resolution**: Fetches dependencies via Tooling API (MetadataComponentDependency), with special handling for types like CustomField, Flow, and ValidationRule. * **Enrichments**: Maps custom fields to objects, resolves lookups, global value sets, and dependent picklists; synthesizes missing dependencies for unsupported metadata. * **Exports**: * Creates a package.xml from the current dependency set. * Generates a human-readable report with stats, per-type listings, and flat summary format. * **Interactivity**: Click-through links to open items in Salesforce (where IDs are available); JSON debug view for raw data inspection. * **Performance Guards**: Detects circular references; supports batching or Composite API for large graphs. How It Works (High-Level) ------------------------- * Queries Tooling API to recursively gather dependency records. * Enhances data by querying CustomField and CustomObject metadata for readable names and supplemental relationships. * Builds in-memory views (grouped or nested) and renders them. Limitations ----------- * Relies on Tooling API. * Synthetic dependencies (e.g., value sets, controlling picklists) lack IDs and can't be opened in Salesforce. Quick Usage ----------- 1. Select a metadata type and item via the searchable dropdown (toggle to include/exclude managed packages) . 2. Choose analysis direction ("Depends On" or "Referenced By"). 3. Toggle between Quick Summary and Dependency Tree views. 4. Export package.xml or a readable summary report once results load. ## Issue ticket number and link tprouvot#963 ## Checklist before requesting a review - [x] I have read and understand the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [x] Target branch is releaseCandidate and not master - [x] I have performed a self-review of my code - [x] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [ ] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: CamilleGuillory <45099363+CamilleGuillory@users.noreply.github.com> Co-authored-by: Camille.GUILLORY <Camille.GUILLORY@adeccogroup.com> Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com> Co-authored-by: Thomas Prouvot <35368290+tprouvot@users.noreply.github.com> Co-authored-by: DivyanshuBist <77827249+DivyanshuBist@users.noreply.github.com> Co-authored-by: KamilGadawski <kamil.gadawski@gmail.com> Co-authored-by: Kamil Gadawski <kamil.gadawski@aldi-techhub.pl>
…rmatting - Introduced a new link for the "Developer Console" in the setup links array. - Updated formatting in `getFieldDefinitionSetupLinks` for consistency with coding style guidelines.
…xt issues - Revised the introduction for clarity and conciseness. - Added detailed descriptions for new features including REST Explorer, Dependencies Explorer, Field Creator, Flow Scanner, Debug Logs Viewer, Event Monitor, Metadata Retrieve, and API Statistics. - Included enhancements for existing features and improvements in the UI and functionality. - Updated the section on security and privacy to reflect recent changes.
- Revised the description section header for consistency. - Improved checklist items for better clarity and emphasis on SLDS usage. - Ensured all checklist items are clearly formatted and easy to understand.
…ot#1106) ## Describe your changes Fix several screen reader accessibility issues with core UI controls: - **AlertBanner silent announcements**: `AlertBanner.js:10` used bitwise OR (`|`) instead of logical OR (`||`), causing assistive text to render as `0` instead of the fallback string. Additionally, all callers in `popup.js` passed `assistiveTest` (typo) instead of `assistiveText`, so the prop never reached the component. - **Inspector button not announced as button**: The injected inspector button was a `<div>` with `tabIndex=0`. Converted to a native `<button>` element which provides built-in keyboard activation (Enter/Space) and correct screen reader role announcement. Added CSS reset to preserve existing visual appearance. - **Popup iframe unnamed**: Screen readers announced the popup as "frame" with no description. Added `title="Salesforce Inspector Reloaded"` to the iframe element. - **Tooltip trigger announced as link**: Tooltip info icons used `<a href="#">` which screen readers announced as a link despite performing an action. Converted to `<button>` with `slds-button_reset` class. Also fixed `onClick` to toggle visibility so tooltips can be dismissed via keyboard (previously `onClick` only called `show()` with no way to hide). ## Issue ticket number and link tprouvot#1107 tprouvot#1108 ## Checklist before requesting a review - [x] I have read and understand the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [x] Target branch is releaseCandidate and not master - [x] I have performed a self-review of my code - [x] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com>
…splay on API statistics page - Introduced a new utility function `formatDuration` in `utils.js` to convert session duration in minutes into a human-readable format. - Updated the `api-statistics-page.js` to utilize the new `formatDuration` function, improving the display of session duration with a tooltip attribute for better context. - Enhanced the `StatsCard` component to accept a new `titleAttr` prop for improved accessibility and information display.
… and permissions - Added a new script for building the Chrome beta version in package.json. - Removed the `unlimitedStorage` permission from manifest.json to streamline permissions.
- Updated the `onShortcutKey` method in `popup.js` to ignore key events that involve modifier keys (Ctrl, Alt, Shift, Meta), ensuring that shortcuts are only triggered for single key presses. This improves the usability of keyboard shortcuts in the extension.
- Updated the `isSettingEnabled` function in `utils.js` to accept a default value parameter. If the setting is not found in localStorage, it now returns the provided default value instead of `false`. - Adjusted the `getSobjectsList` function to utilize the new default value behavior, ensuring caching settings can default to `true` if not explicitly set.
- Added a `modalSize` prop to the `ConfirmModal` component to allow for customizable modal sizes. - Updated the `metadata-retrieve.js` to utilize the new `modalSize` prop, setting it to "large" for improved user experience. - Replaced inline styles with SLDS classes for better adherence to project guidelines.
…#1095) ## Describe your changes - add STANDARD_OBJECT_NAME_FIELDS static mapping to manage known standard objects (and reduce API calls) - in the error management, add object describe call to get the name field if Name field does not exists, and store the result in Datacache for future reuse ## Issue ticket number and link [274](tprouvot#274) ## Checklist before requesting a review - [x] I have read and understand the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [x] Target branch is releaseCandidate and not master - [x] I have performed a self-review of my code - [x] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com>
- Changed the title from "Dependencies Explorer" to "Dependencies Explorer (beta)" to reflect the current status of the feature.
…uvot#1117) # Describe your changes - display all recentitems to allow the browser scroll (remove the old logic as 100 items is not that much today in browsers) - add filter to exclude listview in recentitems ## Issue ticket number and link N/A ## Checklist before requesting a review - [x] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [x] I used SLDS style and limit the usage of custom CSS - [ x I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com>
# Describe your changes After a first callout to Salesforce servers, the ouptut is rendered using Prims. When you want to edit the entrypoint for example after this first call using your keyboard, you can see some latency (because the output is rerendered). - Add a response counter that is increment each time we do a "callout" action - Use this new variable to detect if it has changed and we need to rerender the json output ## Issue ticket number and link N/A ## Checklist before requesting a review - [x] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [x] I used SLDS style and limit the usage of custom CSS - [x] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: Thomas Prouvot <35368290+tprouvot@users.noreply.github.com>
# Describe your changes Review the sobject list load/cache management ## Issue ticket number and link N/A ## Checklist before requesting a review - [x] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [x] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [x] I used SLDS style and limit the usage of custom CSS - [x] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [x] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com> Co-authored-by: Thomas Prouvot <35368290+tprouvot@users.noreply.github.com>
…tprouvot#1123) # Describe your changes Fix Lightning Navigation from Analytics / Tableau ## Issue ticket number and link Fix tprouvot#1121 ## Checklist before requesting a review - [ ] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [ ] I used SLDS style and limit the usage of custom CSS - [ ] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [ ] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional)
# Describe your changes Allow users to update metadata from Data Export using tooling api (ie disable flow) ## Issue ticket number and link Closes tprouvot#1125 ## Checklist before requesting a review - [ ] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [ ] I used SLDS style and limit the usage of custom CSS - [ ] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [ ] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional)
…ouvot#1088) ## Describe your changes Remove the "Flow Scrollability" feature and its associated configuration options. This change involves: - Removing the logic that injected the scrollability checkbox into the Flow Builder UI (`addon/button.js`). - Removing the stored preference for this feature (`addon/options.js`, `addon/popup.js`). - Removing the documentatio references associated with this feature (`docs/how-to.md`). ## Issue ticket number and link ## Checklist before requesting a review - [X] I have read and understand the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [X] Target branch is releaseCandidate and not master - [X] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [ ] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional)
## Describe your changes review and refactor all Inspector Reloaded tests to leverage Playwright ## Issue ticket number and link N/A ## Checklist before requesting a review - [x] I have read and understand the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] Target branch is releaseCandidate and not master - [x] I have performed a self-review of my code - [x] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional) --------- Co-authored-by: Thomas Prouvot <prouvot.t@gmail.com>
…tprouvot#1301) ## What Removes the `IsFrozen` condition from `doSupportLoginAs` so the **LoginAs / Incognito** buttons on the Users tab are shown again for frozen users. The **Unfreeze** button still appears for frozen users, now alongside LoginAs. ## Why Discussion tprouvot#1270: users reported the LoginAs button missing in v2.0, typically in sandboxes only. Root cause: 2.0 introduced a check that hides LoginAs when the target user is frozen — but Salesforce itself still allows "Login" as a frozen user from Setup (freezing blocks the user's own login, not login-as). Freezing users is common in sandboxes after a refresh, which explains the "UAT broken / production fine" reports. Reproduced in a scratch org: freeze a user → LoginAs disappears in 2.0 while the native Setup Login button keeps working; unfreeze → button returns. On 1.x the button showed regardless of frozen state. ## Testing - `npm run test:e2e:mock -- popup.spec.js`: 27 passed - eslint on `addon/popup.js`: same error count as releaseCandidate baseline (no new issues) Potentially fixes tprouvot#1270 and tprouvot#1282
Added a property check in onContextUrlMessage to prevent standard window messages from clearing the isFieldsPresent state.
Update project to use Salesforce API 67.0. Changes set the default API version in addon/inspector.js and the fallback in scripts/set-test-constants-from-org.js, update sfdx-project.json sourceApiVersion, and increment metadata apiVersion for Apex class and Flow tests. E2E test templates, docs (HOW_TO_RUN_TESTS.md), and the test mock (tests/e2e/test-mock.js) were updated to include 67.0 (added Summer '26 label). No behavior changes beyond aligning version numbers for tests and defaults.
…orce-Inspector-reloaded into bump-api-version
# Describe your changes Added a property check in onContextUrlMessage to prevent standard window messages from clearing the isFieldsPresent state. ## Issue ticket number and link closes tprouvot#1246 Closes tprouvot#571 ## Checklist before requesting a review - [x] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [x] I used SLDS style and limit the usage of custom CSS - [x] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional)
- Updated the data import component to enable editing of Batch Size and Threads while an import is in progress, enhancing user flexibility. - Adjusted input fields to remove the disabled state during active imports. ## Issue ticket number and link closes tprouvot#1036 ## Documentation - Updated CHANGES.md to reflect the new feature.
- Added a check to ensure that the preview filter input is not updated if a newer input is pending debounce, improving the responsiveness of the debug log filtering feature.
…rouvot#1172) ## Summary - keeps the Debug Log Viewer custom filter input focused while typing - debounces preview filter application instead of reprocessing the preview on every keystroke - keeps the live input value separate from the applied filter and cancels stale queued updates ## How it works When the user types in the custom filter box, the textbox value updates immediately, but the expensive preview filtering is only applied after a short debounce. The filter input is no longer disabled during preview filter processing, so focus is not dropped mid-typing. ## Test Plan - [ ] Open Logs Viewer (beta) - [ ] Open any log preview - [ ] Type continuously in the Custom Filter field - [ ] Verify the input keeps focus and the cursor does not jump out while typing - [ ] Verify the selected filter template still updates the preview correctly - [ ] Close and reopen a preview to confirm the filter resets cleanly Closes tprouvot#1063
Salesforce API version 67.0 corresponds to Summer'26 is available since July +Added missing versions in Bug template +Updated Readme badges
… log - Eliminated the `previewFilterProcessing` state from the debug log model to simplify the logic. - Updated related components to reflect the removal of this state, ensuring the UI remains responsive during filter application. - Adjusted the preview filter application logic to enhance performance and maintain focus during user input. This change improves the overall efficiency of the debug log filtering feature and streamlines the codebase.
…eractions - Introduced constants for log body and mock log data to improve readability and maintainability. - Added multiple tests to verify the functionality of the Debug Log Viewer, including log display, deletion confirmation, and pagination. - Implemented checks for UI elements to ensure proper interaction and visibility during log operations. - Enhanced the preview modal tests to validate search functionality and focus behavior. These changes improve the robustness of the test suite for the Debug Log Viewer, ensuring better coverage and reliability.
Bumps [@humanfs/node](https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node) from 0.16.6 to 0.16.8. - [Release notes](https://github.com/humanwhocodes/humanfs/releases) - [Changelog](https://github.com/humanwhocodes/humanfs/blob/main/packages/node/CHANGELOG.md) - [Commits](https://github.com/humanwhocodes/humanfs/commits/node-v0.16.8/packages/node) --- updated-dependencies: - dependency-name: "@humanfs/node" dependency-version: 0.16.8 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
- Modified the `onStartChange` and `onEndChange` functions to call `model.didUpdate()` after setting the filter values, ensuring that the selected dates are retained in the UI. - Added a new test to verify that the date filter inputs maintain their values after user interaction. These changes enhance the user experience by ensuring that date selections are preserved during log filtering operations.
) Bumps [@humanfs/node](https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node) from 0.16.6 to 0.16.8. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/humanwhocodes/humanfs/releases">@humanfs/node's releases</a>.</em></p> <blockquote> <h2>node: v0.16.8</h2> <h2><a href="https://github.com/humanwhocodes/humanfs/compare/node-v0.16.7...node-v0.16.8">0.16.8</a> (2026-04-17)</h2> <h3>Bug Fixes</h3> <ul> <li>Include type dependencies at runtime (<a href="https://github.com/humanwhocodes/humanfs/commit/956ce7aac2a998d0af23b7cb08e7630b69693138">956ce7a</a>), closes <a href="https://redirect.github.com/humanwhocodes/humanfs/issues/145">#145</a></li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li><code>@humanfs/core</code> bumped from ^0.19.1 to ^0.19.2</li> </ul> </li> </ul> </li> </ul> <h2>node: v0.16.7</h2> <h2><a href="https://github.com/humanwhocodes/humanfs/compare/node-v0.16.6...node-v0.16.7">0.16.7</a> (2024-11-27)</h2> <h3>Bug Fixes</h3> <ul> <li>Add directory to package.json (<a href="https://github.com/humanwhocodes/humanfs/commit/f691b60a0df2ce9a5894b6af51acc2461654cf6b">f691b60</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/humanwhocodes/humanfs/blob/main/packages/node/CHANGELOG.md">@humanfs/node's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/humanwhocodes/humanfs/compare/node-v0.16.7...node-v0.16.8">0.16.8</a> (2026-04-17)</h2> <h3>Bug Fixes</h3> <ul> <li>Ensure symlinks are copied as symlinks in <code>copy()</code> and <code>copyAll()</code> (<a href="https://github.com/humanwhocodes/humanfs/commit/22bbaa4487a3e6c1197ca619840de4615d0c3404">22bbaa44</a>)</li> <li>Include type dependencies at runtime (<a href="https://github.com/humanwhocodes/humanfs/commit/956ce7aac2a998d0af23b7cb08e7630b69693138">956ce7a</a>), closes <a href="https://redirect.github.com/humanwhocodes/humanfs/issues/145">#145</a></li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li><code>@humanfs/core</code> bumped from ^0.19.1 to ^0.19.2</li> </ul> </li> </ul> </li> </ul> <h2><a href="https://github.com/humanwhocodes/humanfs/compare/node-v0.16.6...node-v0.16.7">0.16.7</a> (2024-11-27)</h2> <h3>Bug Fixes</h3> <ul> <li>Add directory to package.json (<a href="https://github.com/humanwhocodes/humanfs/commit/f691b60a0df2ce9a5894b6af51acc2461654cf6b">f691b60</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/humanwhocodes/humanfs/commit/e96070e897f017ae8abd2b0676d98d14e49665cc"><code>e96070e</code></a> chore: release main (<a href="https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node/issues/146">#146</a>)</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/22bbaa4487a3e6c1197ca619840de4615d0c3404"><code>22bbaa4</code></a> Merge commit from fork</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/956ce7aac2a998d0af23b7cb08e7630b69693138"><code>956ce7a</code></a> fix: Include type dependencies at runtime</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/257b7b53eb2800daca06453ea385f9f2a098fcb9"><code>257b7b5</code></a> chore: release main (<a href="https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node/issues/142">#142</a>)</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/f691b60a0df2ce9a5894b6af51acc2461654cf6b"><code>f691b60</code></a> fix: Add directory to package.json</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/7b81d9accf36bed41883e5e0c2eaaefce8c15fee"><code>7b81d9a</code></a> chore(deps): Upgrading retry dependency in node package. (<a href="https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node/issues/140">#140</a>)</li> <li>See full diff in <a href="https://github.com/humanwhocodes/humanfs/commits/node-v0.16.8/packages/node">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tprouvot/Salesforce-Inspector-reloaded/network/alerts). </details>
Update addon/popup.js to be defensive when sobject fields or the query are missing. Combine null checks for query and sobjectsList, use (sobject.name||"") and (sobject.label||"") in searches and comparisons, introduce local sName/sLabel/q and qLower for clarity, and use safe localeCompare fallbacks. Also ensure MarkSubstring receives safe text and start indices. These changes prevent runtime errors when name/label are undefined while preserving existing relevance and sorting logic. Update CHANGES.md
Avoids crashes when maintenance data contains missing or incomplete entries. The code now checks that each event and its name exist before calling .endsWith(), and returns null when no Major Release event is available. show "None scheduled" when no major releases are found
…prouvot#1319) # Describe your changes The Salesforce Winter '27 release likely introduced internal objects in the Global Describe that return null for their API name or label. Because the extension iterates through all objects and directly calls .toLowerCase() on these properties, it throws a TypeError when it hits one of these new null values, breaking the UI. To fix this, we need to safely handle null or undefined values by falling back to an empty string (sobject.name || "") before calling .toLowerCase(). <img width="1908" height="800" alt="image" src="https://github.com/user-attachments/assets/92dec884-c2da-4d9b-bbfe-018303c75042" /> ## Issue ticket number and link Closes tprouvot#1316 Closes tprouvot#1317 Closes tprouvot#1315 ## Checklist before requesting a review - [x] I have **read and understand** the [Contributions section](https://github.com/tprouvot/Salesforce-Inspector-reloaded#contributions) - [ ] My PR relates to an existing issue or feature request and **I discussed it with maintainer** - [x] I used SLDS style and limit the usage of custom CSS - [x] I have performed a self-review of my code - [ ] I ran the [unit tests](https://github.com/tprouvot/Salesforce-Inspector-reloaded#unit-tests) and my PR does not break any tests - [x] I documented the changes I've made on the [CHANGES.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/CHANGES.md) and followed actual conventions - [ ] I added a new section on [how-to.md](https://github.com/tprouvot/Salesforce-Inspector-reloaded/blob/master/docs/how-to.md) (optional)
…le custom channels (tprouvot#1323) Switch the PlatformEventChannel query from `FullName` to `DeveloperName` and `NamespacePrefix`, and build the channel name with the correct `__chn` suffix so custom channels are listed properly. Also update CHANGES.md.
Sync fork with tprouvot/Salesforce-Inspector-reloaded (120 upstream commits). Conflict resolutions: - manifest-firefox.json: keep fork Gemini API permission plus upstream storage permissions - package-lock.json: keep fork security-patched dependency versions (brace-expansion, js-yaml) Co-authored-by: Jonny Alexander Power <JonnyPower@users.noreply.github.com>
npm ci failed because merge conflict resolution kept brace-expansion 1.1.18/2.1.4 in the lockfile while package.json overrides still referenced 1.1.17/2.1.3. Co-authored-by: Jonny Alexander Power <JonnyPower@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes
Merged
upstream/releaseCandidatefrom tprouvot/Salesforce-Inspector-reloaded into the fork, bringing in ~120 upstream commits while preserving fork-specific changes.Upstream changes included
Fork-specific changes preserved
Conflict resolutions
generativelanguage.googleapis.compermission with upstream'sstorageandunlimitedStoragepermissionsbrace-expansion(1.1.18, 2.1.4) andjs-yaml(4.3.2)Setup
upstreamremote pointing tohttps://github.com/tprouvot/Salesforce-Inspector-reloaded.gitIssue ticket number and link
N/A — fork maintenance sync
Checklist before requesting a review