forked from open-vsx/publish-extensions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.d.ts
131 lines (114 loc) · 2.75 KB
/
types.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/********************************************************************************
* Copyright (c) 2021 Gitpod and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
//@ts-check
export interface MSExtensionStat {
msInstalls: number,
msVersion: string
}
export interface ExtensionStat extends MSExtensionStat {
daysInBetween: number,
openVersion: string,
}
export interface PublishStat {
upToDate: {
[id: string]: ExtensionStat
}
unstable: {
[id: string]: ExtensionStat
}
outdated: {
[id: string]: ExtensionStat
}
notInOpen: {
[id: string]: MSExtensionStat
}
notInMS: string[]
resolutions: {
[id: string]: Partial<MSExtensionStat> & ExtensionResolution
}
failed: string[]
msPublished: {
[id: string]: MSExtensionStat
}
hitMiss: {
[id: string]: (ExtensionStat | ExtensionStat)
}
}
export interface Extensions {
[id: string]: Omit<Extension, 'id'>
}
export interface SingleExtensionQueryResult {
publisher: Publisher
extensionId: string
extensionName: string
displayName: string
flags: number
lastUpdated: string
publishedDate: string
releaseDate: string
shortDescription: string
deploymentType: number
statistics: Statistic[]
}
export interface Statistic {
statisticName: string
value: number
}
export interface Publisher {
publisherId: string
publisherName: string
displayName: string
flags: number
domain: string
isDomainVerified: boolean
}
export interface Extension {
id: string,
repository?: string
location?: string
prepublish?: string
extensionFile?: string
custom?: string[]
timeout?: number
target?: string[]
msMarketplaceIdOverride?: string
}
export interface ExtensionResolution {
releaseAsset?: string
releaseTag?: string
tag?: string
latest?: string
matchedLatest?: string
matched?: string
}
export interface ResolvedExtension {
version: string
path: string
files?: {[key: string]: string}
resolution: ExtensionResolution
}
export interface PublishContext {
msVersion?: string
msLastUpdated?: Date
msInstalls?: number
msPublisher?: string
ovsxVersion?: string
ovsxLastUpdated?: Date
version?: string
files?: {[key: string]: string}
target: string
file?: string
repo?: string
ref?: string
}
interface IRawGalleryExtensionProperty {
readonly key: string;
readonly value: string;
}