standalone

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AppIDWord          = "MSWD2019"
	AppIDExcel         = "XCEL2019"
	AppIDPowerPoint    = "PPT32019"
	AppIDOutlook       = "OPIM2019"
	AppIDOneNote       = "ONMC2019"
	AppIDTeams         = "TEAMS21"
	AppIDSkypeForBiz   = "MSFB16"
	AppIDDefenderEP    = "WDAV00"
	AppIDDefenderCons  = "WDAVC00"
	AppIDDefenderShim  = "WDAVS00"
	AppIDCompanyPortal = "IMCP01"
	AppIDAutoUpdate    = "MSau04"
	AppIDWindowsApp    = "MSRD10"
	AppIDCopilot       = "MSCP10"
	AppIDQuickAssist   = "MSQA01"
	AppIDRemoteHelp    = "MSRH01"
	AppIDLicensing     = "OLIC02"
)

Application IDs used in the Microsoft Office CDN URL path. CDN URL format: {ChannelBaseURL}{ApplicationID}.xml

View Source
const (
	BundleIDWord          = "com.microsoft.word"
	BundleIDExcel         = "com.microsoft.excel"
	BundleIDPowerPoint    = "com.microsoft.powerpoint"
	BundleIDOutlook       = "com.microsoft.outlook"
	BundleIDOneNote       = "com.microsoft.onenote.mac"
	BundleIDTeams         = "com.microsoft.teams2"
	BundleIDSkypeForBiz   = "com.microsoft.skypeforbusiness"
	BundleIDDefenderEP    = "com.microsoft.wdav"
	BundleIDDefenderCons  = "com.microsoft.wdav.tray"
	BundleIDDefenderShim  = "com.microsoft.wdav.epsext"
	BundleIDCompanyPortal = "com.microsoft.CompanyPortalMac"
	BundleIDAutoUpdate    = "com.microsoft.autoupdate2"
	BundleIDWindowsApp    = "com.microsoft.rdc.macos"
	BundleIDCopilot       = "com.microsoft.m365copilot"
	BundleIDQuickAssist   = "com.microsoft.quickassist"
	BundleIDRemoteHelp    = "com.microsoft.remotehelp"
	BundleIDLicensing     = "com.microsoft.office.licensingV2.helper"
)

Bundle ID constants for all standalone macOS Microsoft applications.

Variables

AllAppIDs is the ordered list of all production standalone application IDs.

AppIDBundleMap maps application ID to its primary macOS bundle identifier.

View Source
var AppNames = map[string]string{
	AppIDWord:          "Microsoft Word",
	AppIDExcel:         "Microsoft Excel",
	AppIDPowerPoint:    "Microsoft PowerPoint",
	AppIDOutlook:       "Microsoft Outlook",
	AppIDOneNote:       "Microsoft OneNote",
	AppIDTeams:         "Microsoft Teams",
	AppIDSkypeForBiz:   "Skype for Business",
	AppIDDefenderEP:    "Microsoft Defender (Endpoint)",
	AppIDDefenderCons:  "Microsoft Defender (Consumer)",
	AppIDDefenderShim:  "Microsoft Defender (Shim)",
	AppIDCompanyPortal: "Intune Company Portal",
	AppIDAutoUpdate:    "Microsoft AutoUpdate",
	AppIDWindowsApp:    "Windows App",
	AppIDCopilot:       "Microsoft 365 Copilot",
	AppIDQuickAssist:   "Quick Assist",
	AppIDRemoteHelp:    "Remote Help",
	AppIDLicensing:     "Licensing Helper Tool",
}

Human-readable display names for each application ID.

Functions

This section is empty.

Types

type Package

type Package struct {
	// ApplicationID is the Microsoft CDN application identifier (e.g. "MSWD2019").
	ApplicationID string

	// Title is the human-readable application name from the plist (e.g. "Microsoft Word").
	Title string

	// ShortVersion is the user-facing version string (e.g. "16.108.1").
	ShortVersion string

	// FullVersion is the build version string (e.g. "16.108.26041915").
	FullVersion string

	// MinimumOS is the minimum macOS version required (e.g. "14.0").
	MinimumOS string

	// UpdateVersion is the full update version as returned by the CDN.
	UpdateVersion string

	// Location is the download URL for the full installer package.
	Location string

	// AppOnlyLocation is the download URL for the app-only delta update (may be empty).
	AppOnlyLocation string

	// Hash is the base64-encoded SHA-1 hash of the full installer.
	Hash string

	// HashSHA256 is the base64-encoded SHA-256 hash of the full installer.
	HashSHA256 string

	// AppOnlyHash is the SHA-1 hash of the app-only update (may be empty).
	AppOnlyHash string

	// AppOnlyHashSHA256 is the SHA-256 hash of the app-only update (may be empty).
	AppOnlyHashSHA256 string

	// Date is the release date string as provided by the CDN.
	Date string
}

Package represents a single Microsoft application update entry. Fields map to the Apple plist dict keys returned by the Microsoft CDN XML.

type StandaloneResponse

type StandaloneResponse struct {
	// Packages contains one entry per application ID fetched from the CDN.
	Packages []*Package
}

StandaloneResponse holds all packages fetched across one CDN channel.

type StandaloneService

type StandaloneService struct {
	// contains filtered or unexported fields
}

StandaloneService fetches macOS standalone application metadata from the Microsoft Office CDN production channel.

The CDN hosts per-application Apple plist XML files at:

https://officecdnmac.microsoft.com/pr/{channelUUID}/MacAutoupdate/{AppID}.xml

Each plist contains version, download URL, minimum OS, and checksum data.

func NewService

func NewService(c client.Client) *StandaloneService

NewService creates a new StandaloneService targeting the production CDN channel.

func (*StandaloneService) GetLatestV1

func (s *StandaloneService) GetLatestV1(ctx context.Context) (*StandaloneResponse, error)

GetLatestV1 fetches the latest metadata for all known standalone applications from the Microsoft Office CDN production channel. It returns one Package per application ID, collected from individual per-app plist XML endpoints.

GET https://officecdnmac.microsoft.com/pr/{channelUUID}/MacAutoupdate/{AppID}.xml

func (*StandaloneService) GetPackageByApplicationIDV1

func (s *StandaloneService) GetPackageByApplicationIDV1(ctx context.Context, appID string) (*Package, error)

GetPackageByApplicationIDV1 fetches the latest metadata for a single application identified by its Microsoft CDN application ID (e.g. "MSWD2019").

GET https://officecdnmac.microsoft.com/pr/{channelUUID}/MacAutoupdate/{AppID}.xml

func (*StandaloneService) GetPackageByNameV1

func (s *StandaloneService) GetPackageByNameV1(ctx context.Context, name string) (*Package, error)

GetPackageByNameV1 fetches the latest metadata for the application with the given human-readable display name (e.g. "Microsoft Word"). The name lookup is performed against the AppNames map in constants.go.

Returns an error if no application with that name is found.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL