ahqstore-types 3.20.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/ahqstore.types.d.ts +56 -50
  2. package/package.json +1 -1
@@ -1,100 +1,106 @@
1
1
  // This file has been generated by Specta. DO NOT EDIT.
2
2
 
3
- export type Semi = { title: string; background: string; appId: string; color: string | null }
4
-
5
3
  /**
6
- * PREFERENCES
4
+ * šŸ”¬ Under Development
5
+ *
6
+ *
7
7
  */
8
- export type UpdateStrategy = "Never" | "CheckOnly" | "DownloadInstall_UnmeteredWifi" | "DownloadInstall_Wifi" | "DownloadInstall"
8
+ export type AndroidAbi = "Aarch64" | "Armv7" | "X86" | "X64"
9
9
 
10
- export type Prefs = { update: UpdateStrategy }
10
+ export type Semi = { title: string; background: string; appId: string; color: string | null }
11
11
 
12
- /**
13
- * **You should use cli**
14
- * ```sh
15
- * cargo install ahqstore_cli_rs
16
- * ```
17
- * or visit app / api sub module
18
- *
19
- * This Module:
20
- * This module lists the standard commands & types that AHQ Store sends to AHQ Store Service
21
- */
22
- export type StatusUpdateData = { queue: { id: string; status: AppUpdateInstallStatus }; supportsUpdate: boolean }
12
+ export type MobSFReport = { status: SecurityReportStatus; score: number }
13
+
14
+ export type AndroidAssetId = { assetType: "Universal"; assetId: number } | { assetType: "AbiBased"; aarch64: number | null; armv7: number | null; x86: number | null; x86_64: number | null }
15
+
16
+ export type Platform = "WindowsX64" | "WindowsArm64" | "LinuxX64" | "LinuxArm64" | "AndroidX64" | "AndroidX86" | "AndroidArm7" | "AndroidArm64"
23
17
 
24
18
  export type WingetApplication = { PackageIdentifier: string; PackageVersion: string; Publisher: string | null; PublisherUrl: string | null; Copyright: string | null; ShortDescription: string | null; Description: string | null; ReleaseNotes: string | null; PackageName: string; PackageUrl: string | null; License: string | null; LicenseUrl: string | null }
25
19
 
26
- export type InstallerOptionsWindows = { assetId: number; exec: string | null; scope: WindowsInstallScope | null; installerArgs: string[] | null }
20
+ export type SecurityReportStatus = "Passed" | "Failed" | "Unknown"
27
21
 
28
22
  export type DevData = { name: string | null; id: string; github: string; avatar_url: string | null; verified?: boolean }
29
23
 
30
24
  export type Installer = { Architecture: string; InstallerType: string | null; InstallerLocale: string | null; InstallerUrl: string }
31
25
 
26
+ export type Resource = { intent: FileIntent; asset: AssetData; sha: string }
27
+
32
28
  export type AppSupport = { discord: string | null; website: string | null; github: string | null }
33
29
 
34
- export type InstallerOptions = { win32: InstallerOptionsWindows | null; winarm: InstallerOptionsWindows | null; linux: InstallerOptionsLinux | null; linuxArm64: InstallerOptionsLinux | null; linuxArm7: InstallerOptionsLinux | null; android: InstallerOptionsAndroid | null }
30
+ export type InstallerOptions = { win32: InstallerOptionsWindows | null; winarm: InstallerOptionsWindows | null; linux: InstallerOptionsLinux | null; linuxArm64: InstallerOptionsLinux | null; android: InstallerOptionsAndroid | null }
35
31
 
36
- export type DeveloperUser = { name: string; description: string; gh_username: string; icon_base64: string | null; ahq_official: boolean; email: string; support: AppSupport; apps: string[] }
32
+ export type StatusUpdateData = { queue: QueuedAppData[]; supportsUpdate: boolean; queueOverflow: boolean }
37
33
 
38
- /**
39
- * Use the official ahqstore (<https://crates.io/crates/ahqstore_cli_rs>) cli\nšŸŽÆ Introduced in v1, Revamped in v2
40
- */
41
- export type AHQStoreApplication = { appId: string; appShortcutName: string; appDisplayName: string; authorId: string; releaseTagName: string; downloadUrls: { [key: number]: DownloadUrl }; install: InstallerOptions; displayImages: number[]; description: string; repo: AppRepo; usrVersion: string | null; version: number; site: string | null; source: string | null; license_or_tos: string | null; resources: { [key: number]: number[] } | null; verified: boolean }
34
+ export type FileIntent = { type: "ArtifactZip" } | { type: "Artifact"; extension: string } | { type: "WindowsZip" } | { type: "WindowsInstallerMsi" } | { type: "WindowsInstallerExe" } | { type: "WindowsUWPMsix" } | { type: "WindowsAHQDB" } | { type: "LinuxAppImage" } | { type: "AndroidApkZip" }
35
+
36
+ export type AssetData = ({ type: "AssetName" } & string) | ({ type: "ArbitraryUrl" } & string)
42
37
 
43
- export type QueuedApp = { id: string; status: AppUpdateInstallStatus }
38
+ export type DeveloperUser = { name: string; description: string; gh_username: string; icon_base64: string | null; ahq_official: boolean; email: string; support: AppSupport; apps: string[] }
44
39
 
45
40
  /**
46
41
  * This is exactly `Vec<(String, Vec<String>)>`
47
42
  */
48
43
  export type HomeMapData = { inner: ([string, string[]])[] }
49
44
 
50
- /**
51
- * šŸ”¬ Under Development
52
- *
53
- *
54
- */
55
- export type InstallerOptionsAndroid = { assetId: number; min_sdk: number; abi: AndroidAbi[] }
56
-
57
45
  export type Splash = { hero: Hero; subhero: SubHero; third: Semi; fourth: Semi }
58
46
 
59
- /**
60
- * šŸ”¬ Under Development
61
- *
62
- *
63
- */
64
- export type AndroidAbi = "Aarch64" | "Armv7" | "X86" | "X64"
47
+ export type Attestations = { oidc: string; ed25519: string; workflow: string; workflowSha: string; security_reports: SecurityReports }
48
+
49
+ export type AppActionIntent = "Install" | "Uninstall" | "Update"
65
50
 
66
51
  /**
67
- * šŸ”¬ Under Development
68
- *
69
- *
52
+ * This uses an LLM to verify and attest that the building
53
+ * CI CD indeed builds the codebase on the fly of the exact repository
70
54
  */
71
- export type InstallerOptionsLinux = { assetId: number }
55
+ export type LLMCICDReport = { status: SecurityReportStatus; integrityScore: number; intentScore: number; bestPracticesScore: number; totalScore: number }
56
+
57
+ export type AppUpdateInstallStatus = { status: "Pending" } | { status: "PendingUserAction" } | { status: "Cancelled"; time: number } | { status: "Downloading"; progress: number } | { status: "AVScanning" } | { status: "PendingInstall" } | { status: "Installing"; progress: number | null } | { status: "MoreDwnlNeeded"; progress: number; current: number; items: number } | { status: "CopyingFiles"; percentage: number; total: number } | { status: "Finalizing" } | { status: "Updating" } | { status: "Uninstalling" } | { status: "Successful"; time: number } | { status: "Error"; err: string; time: number }
72
58
 
73
59
  export type Commits = { ahqstore: string; alt: string }
74
60
 
75
- export type AppStatus = "Pending" | "Downloading" | "AVScanning" | "Installing" | "Uninstalling" | "InstallSuccessful" | "UninstallSuccessful" | "NotSuccessful" | "AVFlagged"
61
+ export type AppRepo = { author: string; repo: string }
76
62
 
77
63
  export type InstallerScheme = { PackageIdentifier: string; PackageVersion: string; Scope: string; Installers: Installer[] }
78
64
 
79
65
  export type Hero = { title: string; description: string; button: string; background: string; author: string; appId: string }
80
66
 
81
- export type DownloadUrl = { installerType: InstallerFormat; asset: string; url: string }
82
-
83
67
  export type SubHero = { title: string; background: string; appId: string; color: string | null }
84
68
 
85
- export type AppUpdateInstallStatus = { status: "Pending" } | { status: "Cancelled" } | { status: "Downloading"; progress: number } | { status: "Installing" } | { status: "Updating" } | { status: "Uninstalling" } | { status: "Done" }
86
-
87
69
  export type GHRepoCommit = { sha: string }
88
70
 
71
+ /**
72
+ * šŸ”¬ Under Development
73
+ *
74
+ *
75
+ */
76
+ export type InstallerOptionsLinux = { assetId: number }
77
+
89
78
  export type SearchEntry = { name: string; title: string; id: string }
90
79
 
91
80
  export type Home = { splash: Splash | null; home: HomeMapData }
92
81
 
93
- export type AppRepo = { author: string; repo: string }
82
+ export type InstallerOptionsWindows = { assetId: number; exec: string | null; scope: WindowsInstallScope | null; installerArgs: string[] | null }
94
83
 
95
- export type WindowsInstallScope = "User" | "Machine"
84
+ /**
85
+ * šŸ”¬ Under Development
86
+ *
87
+ *
88
+ */
89
+ export type InstallerOptionsAndroid = { asset: AndroidAssetId; min_sdk: number }
96
90
 
97
- export type InstallerFormat = "WindowsZip" | "WindowsInstallerMsi" | "WindowsInstallerExe" | "WindowsUWPMsix" | "WindowsAHQDB" | "LinuxAppImage" | "AndroidApkZip"
91
+ export type SecurityReports = { windowsDefenderStatus: SecurityReportStatus; clamAVReport: ClamAVReport; mobSFReport: MobSFReport; ciIntegrity: LLMCICDReport; ciReferencesSecondaryScripts: boolean }
98
92
 
99
- export type UpdateStatusReport = "Disabled" | "UpToDate" | "Checking" | "Updating"
93
+ export type ClamAVReport = { status: SecurityReportStatus; goodFiles: string[]; badFiles: string[]; virusNames: string[] }
94
+
95
+ export type QueuedAppData = { id: string; transaction: number; status: AppUpdateInstallStatus; intent: AppActionIntent }
96
+
97
+ export type WindowsInstallScope = "User" | "Machine"
98
+
99
+ /**
100
+ * Use the official ahqstore (<https://crates.io/crates/ahqstore_cli_rs>) cli\nšŸŽÆ Introduced in v1
101
+ *
102
+ * Please note that this entire file (encoded as JSON), must be supplemented with
103
+ * OIDC Rekor Transparency bundle log
104
+ */
105
+ export type AHQStoreApplication = { appId: string; appShortcutName: string; appDisplayName: string; authorId: string; resources: { [key: number]: Resource }; ahqtarball: string; install: InstallerOptions; description: string; repo: AppRepo; usrVersion: string | null; version: number; site: string | null; source: string | null; licenseOrTos: string | null; totalImages: number; verified: boolean; attestations: Attestations }
100
106
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "ahqstore-types",
3
3
  "type": "module",
4
4
  "description": "Standard types used by AHQ Store",
5
- "version": "3.20.0",
5
+ "version": "4.1.0",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",