ThirdPartyPackageInfo

Internal class holding identity and metadata for a third-party package. Contains static identifiers (product name, ID, bundle name), import configuration (import folder, hash), and mutable version state populated by Fetch() from the Unity Asset Store and local manifests.

Definition

Namespace: Paragon.Editor.ThirdPartyPackageImporter Assembly: Paragon.Editor.dll

internal class ThirdPartyPackageInfo

Remarks

The package info represents the "what" of a third-party package — its identity and where to find it — while ThirdPartyPackageVersion represents a specific version's details.

Bundle Name Extraction

The bundleName is extracted from packageName using a regex that captures the first three dot-separated segments: ^([^.]+\.[^.]+\.[^.]+). For example, com.unity.render-pipelines.universal.14.0.8 yields com.unity.render-pipelines.

Local Package Detection

A package is considered "local" (IsLocalPackage == true) when its importFolder equals "Third-Party". Local packages have their manifests stored in the project's Third-Party/ directory and are managed via Plastic SCM mounted imports.

Properties

Property
Type
Access
Description

ProductName

string

public

Human-readable package name

ProductID

int

public

Unity Asset Store product identifier

BundleName

string

public

First three segments of the package name (e.g., com.company.package)

PackageName

string

public

Full package identifier (e.g., com.company.package.1.0.0)

CatalogID

int

public

Catalog identifier

ImportFolder

string

public

Target import folder path

Hash

string

public

Package content hash

IsLocalPackage

bool

public

true if ImportFolder == "Third-Party" (managed via mounted import)

InstalledVersion

ThirdPartyPackageVersion

public

Currently installed version (populated by Fetch()). null if not installed

StoreVersion

ThirdPartyPackageVersion

public

Latest available version from the store (populated by Fetch())

Constructors

Parameter
Type
Description

productName

string

Display name

productID

int

Asset Store product ID

packageName

string

Full package name

catalogID

int

Catalog identifier

importFolder

string

Target import folder

hash

string

Content hash

Methods

Fetch

Populates InstalledVersion and StoreVersion by querying the Unity Package Database and local manifests.

Version resolution logic:

  1. Queries ServicesContainer.PackageDatabase.GetPackage() using the product ID

  2. For the installed version:

    • If a local UPM package exists (PackageInfo.FindForPackageName) and a local manifest exists → creates version from the local manifest

    • Otherwise, if the store package has an imported version → creates version from the store's imported data

    • Otherwise → null (not installed)

  3. For the store version: always creates from the store package's latest version

circle-exclamation

See Also

Last updated