Essentials/src/PepperDash.Essentials.Core
jkdevito 588057f3ba feat: add packageManifest CWS API route
New GET https://{ip}/cws/app{xx}/api/packageManifest route returning a JSON
package manifest (Essentials + plugins + user interfaces) shaped to hydrate
the vsce-essentials-version-manager extension's VersionsSnapshot object.

- EssentialsConfig.cs: add [JsonProperty("versions")] to EssentialsConfig.Versions
  (was attribute-less); add NugetVersion.Name; NullValueHandling.Ignore on
  PackageId/RepoUrl/Name.
- New GetPackageManifestRequestHandler: deep-copies the config's VersionData
  (never mutates the live config object), then enriches it via reflection:
  - essentials: version from Global.AssemblyVersion, repoUrl/name from the
    RepositoryUrl AssemblyMetadata + AssemblyProduct of
    PepperDash.Essentials.Core's own assembly (PluginLoader.EssentialsAssembly.Assembly
    is null at runtime due to a pre-existing name-matching bug, so this route
    reads its own loaded assembly instead), packageId from config or a constant.
  - packages[]: merges PluginLoader.EssentialsPluginAssemblies (matched to config
    packages by packageId via AssemblyTitle -> AssemblyName -> AssemblyName minus
    a trailing .4Series suffix) with reflection supplying version and filling
    missing repoUrl/name; unmatched loaded assemblies are emitted without a
    packageId; configured-but-not-loaded packages pass through unchanged.
  - userInterfaces/touchpanelWrapperApp are passed through from config as-is.
  - Entries with no resolvable version are skipped (the extension's parser drops
    entries whose version isn't a string).
- EssentialsWebApi.cs: register the new packageManifest route next to versions.

Build verified clean (Core + Essentials program, 0 errors). Not yet tested on
hardware.
2026-07-05 20:57:05 -05:00
..
Bridges feat: implement constructor for BridgeApi with key and name parameters 2026-03-12 14:27:21 -06:00
Comm and IR feat: add support for UdpClient in communication methods and implement GenericUdpClient class 2026-05-14 17:22:38 -07:00
Config feat: add packageManifest CWS API route 2026-07-05 20:57:05 -05:00
Crestron docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
CrestronIO Merge branch 'main' into feature/circuittype-property-versiport 2026-02-09 14:58:06 -05:00
Device Info docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
DeviceControlsParentInterfaces refactor: rearrange and add solution for 4-series 2023-02-07 15:45:01 -07:00
Devices fix: add escape handling for byte arrays and strings in DeviceJsonApi 2026-06-02 11:25:48 -06:00
DeviceTypeInterfaces Potential fix for pull request finding 2026-06-26 14:32:22 -06:00
Ethernet docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Extensions docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Factory Update src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs 2026-03-01 14:38:07 -05:00
Feedbacks docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
File docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Fusion Merge branch 'main' into feature/circuittype-property-versiport 2026-02-09 14:58:06 -05:00
Global docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Interfaces feat: mark deprecated classes and methods for future removal 2026-05-08 13:08:58 -06:00
InUseTracking docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
JoinMaps docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
License docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Lighting docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Microphone Privacy docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Monitoring Merge branch 'main' into feature/circuittype-property-versiport 2026-02-09 14:58:06 -05:00
PartitionSensor docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Plugins docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Presets docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Properties refactor: rearrange and add solution for 4-series 2023-02-07 15:45:01 -07:00
Queues docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Ramps and Increments docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Room docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Routing fix: remove impossibleRoutes cache 2026-06-09 10:18:25 -05:00
Secrets fix: string formatting for console responses was incorrect in some cases and causing exceptions 2026-07-02 15:06:51 -05:00
Shades docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
SmartObjects docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Timers docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Touchpanels docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
TriListBridges docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
UI fix: logging & ternary changes 2025-10-30 16:07:26 -05:00
UI PageManagers docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Utilities docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
VideoStatus docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00
Web feat: add packageManifest CWS API route 2026-07-05 20:57:05 -05:00
app.config refactor: rearrange and add solution for 4-series 2023-02-07 15:45:01 -07:00
PepperDash.Essentials.Core.csproj docs: enable XML documentation generation and add initial documentation 2025-07-22 15:44:52 +00:00
PepperDash_Essentials_Core.csproj.DotSettings refactor: rearrange and add solution for 4-series 2023-02-07 15:45:01 -07:00
SigHelper.cs docs: update XML comments for Essentials Core 2026-02-09 08:58:52 -06:00