Repositories/Eigenverft/ModuleDefaults/NotepadPlusPlus.json

{
  "$schema": "../../Schema/eigenverft-module-package-definition-1.4.schema.json",
  "schemaVersion": "1.4",
  "definitionPublication": {
    "publisherId": "Eigenverft",
    "publisherName": "Eigenverft",
    "definitionRevision": 1,
    "publishedAtUtc": "2026-05-13T12:00:00Z"
  },
  "display": {
    "default": {
      "name": "Notepad++",
      "publisher": "Notepad++ Team",
      "corporation": "NOTEPAD++",
      "summary": "Windows text and source-code editor"
    }
  },
  "dependencies": [],
  "artifacts": {
    "targets": [
      {
        "id": "NotepadPlusPlus-win-x64-stable",
        "releaseTrack": "stable",
        "artifactDistributionVariant": "win-x64",
        "constraints": {
          "os": [
            "windows"
          ],
          "cpu": [
            "x64"
          ]
        },
        "versionSelection": {
          "strategy": "latestByVersion",
          "allowPrerelease": false
        },
        "fileNameTemplate": "npp.{version}.Installer.x64.exe",
        "acquisitionCandidates": [
          {
            "kind": "packageDepot",
            "searchOrder": 100,
            "verification": {
              "mode": "required"
            }
          },
          {
            "kind": "download",
            "sourceId": "notepadPlusPlusGitHubRelease",
            "sourcePath": "v{version}/npp.{version}.Installer.x64.exe",
            "searchOrder": 900,
            "verification": {
              "mode": "required"
            }
          }
        ]
      },
      {
        "id": "NotepadPlusPlus-win-arm64-stable",
        "releaseTrack": "stable",
        "artifactDistributionVariant": "win-arm64",
        "constraints": {
          "os": [
            "windows"
          ],
          "cpu": [
            "arm64"
          ]
        },
        "versionSelection": {
          "strategy": "latestByVersion",
          "allowPrerelease": false
        },
        "fileNameTemplate": "npp.{version}.Installer.arm64.exe",
        "acquisitionCandidates": [
          {
            "kind": "packageDepot",
            "searchOrder": 100,
            "verification": {
              "mode": "required"
            }
          },
          {
            "kind": "download",
            "sourceId": "notepadPlusPlusGitHubRelease",
            "sourcePath": "v{version}/npp.{version}.Installer.arm64.exe",
            "searchOrder": 900,
            "verification": {
              "mode": "required"
            }
          }
        ]
      }
    ],
    "releases": [
      {
        "version": "8.9.4",
        "releaseTracks": [
          "stable"
        ],
        "targetArtifacts": {
          "NotepadPlusPlus-win-x64-stable": {
            "artifactId": "notepad-plus-plus-8.9.4-win-x64",
            "contentHash": {
              "algorithm": "sha256",
              "value": "f3629f500d0754d8e870255fff0e00384a37f5402d6f3ad8dd1f4f67d707b593"
            },
            "publisherSignature": {
              "kind": "authenticode",
              "requireValid": true,
              "subjectContains": "NOTEPAD++"
            }
          },
          "NotepadPlusPlus-win-arm64-stable": {
            "artifactId": "notepad-plus-plus-8.9.4-win-arm64",
            "contentHash": {
              "algorithm": "sha256",
              "value": "7d59f0c62caa4d2366f900ca8169fb37cf1dcfce5c79cb3ccb08089b1adbc91"
            },
            "publisherSignature": {
              "kind": "authenticode",
              "requireValid": true,
              "subjectContains": "NOTEPAD++"
            }
          }
        }
      }
    ],
    "sources": {
      "notepadPlusPlusGitHubRelease": {
        "kind": "download",
        "baseUri": "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/"
      }
    }
  },
  "presenceDiscovery": {
    "files": [
      "notepad++.exe"
    ],
    "directories": [],
    "commands": [],
    "apps": [
      {
        "name": "notepad++",
        "relativePath": "notepad++.exe",
        "requiredForState": true,
        "exposeApp": true
      }
    ],
    "metadataFiles": [],
    "signatures": [
      {
        "relativePath": "notepad++.exe",
        "requireValid": true,
        "subjectContains": "NOTEPAD++"
      }
    ],
    "fileDetails": [
      {
        "relativePath": "notepad++.exe",
        "productName": "Notepad++",
        "fileDescription": "Notepad++",
        "fileVersion": "{version}",
        "productVersion": "{version}"
      }
    ],
    "registry": []
  },
  "existingInstallDiscovery": {
    "enabled": true,
    "searchLocations": [
      {
        "id": "notepadPlusPlusUninstallRegistry",
        "kind": "windowsUninstallRegistryKey",
        "searchOrder": 100,
        "paths": [
          "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Notepad++"
        ],
        "installDirectorySource": "displayIconDirectory"
      }
    ],
    "installRootRules": []
  },
  "packageOperations": {
    "policy": {
      "ownershipPolicy": {
        "allowAdoptExternal": true,
        "upgradeAdoptedInstall": false,
        "requirePackageOwnership": false
      },
      "compatibility": {
        "checks": [
          {
            "kind": "osVersion",
            "operator": ">=",
            "value": "10.0"
          }
        ]
      }
    },
    "assigned": {
      "install": {
        "kind": "nsisInstaller",
        "installDirectory": "notepad-plus-plus/{releaseTrack}/{version}/{artifactDistributionVariant}",
        "installerKind": "nsis",
        "uiMode": "silent",
        "elevation": "none",
        "timeoutSec": 300,
        "commandArguments": [
          "/S",
          "/noUpdater",
          "/closeRunningNpp"
        ],
        "targetDirectoryArgument": {
          "enabled": true,
          "prefix": "/D="
        },
        "successExitCodes": [
          0
        ],
        "restartExitCodes": []
      },
      "readyStateCheck": {
        "use": "presenceDiscovery",
        "expectedVersion": "{version}",
        "require": {
          "files": true,
          "directories": false,
          "commands": false,
          "apps": true,
          "metadataFiles": false,
          "signatures": true,
          "fileDetails": true,
          "registry": false
        }
      },
      "pathRegistration": {
        "mode": "none"
      },
      "versionUpdatePolicy": {
        "whenAssigned": "trackSelectedVersion",
        "onSameSelectedVersion": "reuseOrRepair",
        "onNewSelectedVersion": "replacePackageOwnedInstall"
      }
    },
    "removed": {
      "policy": {
        "whenNotInInventory": "succeed",
        "allowedInventoryOwnershipKinds": [
          "PackageInstalled",
          "AdoptedExternal"
        ],
        "allowUntrackedExternalRemoval": false,
        "removeDependencies": false
      },
      "operation": {
        "kind": "nsisUninstaller",
        "commandSource": {
          "use": "existingInstallDiscovery",
          "searchLocationId": "notepadPlusPlusUninstallRegistry",
          "registryValueOrder": [
            "QuietUninstallString",
            "UninstallString"
          ]
        },
        "commandArguments": [
          "/S"
        ],
        "elevation": "auto",
        "timeoutSec": 300,
        "successExitCodes": [
          0
        ],
        "restartExitCodes": [],
        "uiMode": "silent"
      },
      "absenceVerification": {
        "use": "presenceDiscovery",
        "require": {
          "files": true,
          "directories": false,
          "commands": true,
          "apps": false,
          "metadataFiles": false,
          "signatures": false,
          "fileDetails": false,
          "registry": false
        }
      },
      "postRemoveCleanup": {
        "packageInventoryRecord": true,
        "generatedShims": true,
        "pathEntries": true,
        "workDirectories": true
      }
    }
  },
  "definitionId": "NotepadPlusPlus",
  "repositoryId": "EigenverftModule"
}