Skip to content

feat: COM + toast notification activation in generated AppxManifest#30

Merged
bitdisaster merged 5 commits into
mainfrom
toastCLSID-for-maifest
Apr 1, 2026
Merged

feat: COM + toast notification activation in generated AppxManifest#30
bitdisaster merged 5 commits into
mainfrom
toastCLSID-for-maifest

Conversation

@bitdisaster
Copy link
Copy Markdown
Collaborator

@bitdisaster bitdisaster commented Mar 19, 2026

Summary

Adds optional manifestVariables.comToastActivation so generated manifests can declare the packaged COM server (windows.comServer) and toast notification activation (windows.toastNotificationActivation) used by desktop apps for toast click handling, aligned with Microsoft’s packaged desktop toast guidance.
Only applies when the manifest is generated (no appManifest); pre-built manifests are unchanged.

What’s included

  • static/templates/ComToastActivation.xml.in – Fragment for <Extensions> under <Application> (com:Extension + desktop:Extension).
  • src/manifestation.ts – Merges fragment into the main template; xmlns:com stays in code; IgnorableNamespaces gains com and desktop when toast activation is enabled.
  • ComToastActivationOptions (types.ts): toastActivatorClsid (required), optional arguments (default -ToastActivated), optional executable (basename; path in manifest is app\{executable}).
  • CLSID normalization – Single normalizeToastActivatorClsid(raw, braced?): default braced {guid}; braced: false for manifest (no braces, per MakeAppx/schema).
  • verifyOptions – Validates toastActivatorClsid as a GUID when set.
  • ExportsComToastActivationOptions re-exported from src/index.ts.
  • Tests – Unit coverage for manifest generation, GUID validation, and normalizeToastActivatorClsid; e2e packages with comToastActivation and asserts manifest content via readAppxManifestFromMsix in test/e2e/utils/installer.ts.
  • README – Documents comToastActivation and example usage.

Notes

  • Template omits optional DisplayName attributes on ExeServer / Class to match minimal manifest samples.

How to verify

npm run test:unit
npm run test:e2e  

@bitdisaster bitdisaster requested a review from erickzhao March 20, 2026 01:52
Comment thread src/manifestation.ts Outdated
Comment thread src/manifestation.ts
Comment thread README.md
@bitdisaster bitdisaster merged commit ad5653b into main Apr 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants