1
- interface External {
2
- global : string ;
3
- name : string ;
4
- url : string ;
5
- }
1
+ import { NextFunction , Request , Response } from 'express' ;
6
2
7
- interface Template {
8
- type : string ;
9
- version : string ;
10
- externals : External [ ] ;
11
- }
12
-
13
- interface Author {
3
+ export interface Author {
14
4
name ?: string ;
15
5
email ?: string ;
16
6
url ?: string ;
@@ -28,6 +18,16 @@ interface ComponentHistory {
28
18
version : string ;
29
19
}
30
20
21
+ export interface TemplateInfo {
22
+ type : string ;
23
+ version : string ;
24
+ externals : Array < {
25
+ name : string ;
26
+ global : string | string [ ] ;
27
+ url : string ;
28
+ } > ;
29
+ }
30
+
31
31
export interface ComponentsDetails {
32
32
lastEdit : number ;
33
33
components : {
@@ -37,6 +37,11 @@ export interface ComponentsDetails {
37
37
} ;
38
38
}
39
39
40
+ export interface ComponentsList {
41
+ lastEdit : number ;
42
+ components : Dictionary < string [ ] > ;
43
+ }
44
+
40
45
export interface OcParameter {
41
46
description ?: string ;
42
47
example ?: string ;
@@ -47,6 +52,7 @@ export interface OcParameter {
47
52
48
53
interface OcConfiguration {
49
54
date : number ;
55
+ state ?: 'deprecated' | 'experimental' ;
50
56
files : {
51
57
dataProvider : {
52
58
hashKey : string ;
@@ -65,11 +71,13 @@ interface OcConfiguration {
65
71
parameters : Record < string , OcParameter > ;
66
72
stringifiedDate : string ;
67
73
version : string ;
74
+ plugins ?: string [ ] ;
68
75
}
69
76
70
- interface Component {
77
+ export interface Component {
71
78
allVersions : string [ ] ;
72
79
author : Author ;
80
+ repository ?: string ;
73
81
dependencies : Record < string , string > ;
74
82
description : string ;
75
83
devDependencies : Record < string , string > ;
@@ -88,7 +96,7 @@ export interface VM {
88
96
link : string ;
89
97
} > ;
90
98
components : Component [ ] ;
91
- componentsHistory : ComponentHistory [ ] ;
99
+ componentsHistory ? : ComponentHistory [ ] ;
92
100
componentsList : ComponentList [ ] ;
93
101
componentsReleases : number ;
94
102
href : string ;
@@ -98,12 +106,13 @@ export interface VM {
98
106
deprecated ?: number ;
99
107
experimental ?: number ;
100
108
} ;
101
- templates : Template [ ] ;
109
+ templates : TemplateInfo [ ] ;
102
110
title : string ;
103
111
type : 'oc-registry' | 'oc-registry-local' ;
104
112
}
105
113
106
114
export interface Config {
115
+ beforePublish : ( req : Request , res : Response , next : NextFunction ) => void ;
107
116
baseUrl : string ;
108
117
baseUrlFunc : ( opts : { host ?: string ; secure : boolean } ) => string ;
109
118
discovery : boolean ;
@@ -113,13 +122,91 @@ export interface Config {
113
122
tempDir : string ;
114
123
port : number ;
115
124
postRequestPayloadSize ?: number ;
116
- verbosity : boolean ;
125
+ verbosity : number ;
126
+ prefix : string ;
127
+ path : string ;
128
+ publishAuth ?: {
129
+ type : string ;
130
+ username : string ;
131
+ password : string ;
132
+ } ;
133
+ dependencies : string [ ] ;
134
+ routes ?: Array < {
135
+ route : string ;
136
+ method : string ;
137
+ handler : ( req : Request , res : Response ) => void ;
138
+ } > ;
139
+ storage : {
140
+ adapter : any ;
141
+ options : Dictionary < any > & { componentsDir : string } ;
142
+ } ;
143
+ s3 ?: {
144
+ bucket : string ;
145
+ region : string ;
146
+ key ?: string ;
147
+ secret ?: string ;
148
+ componentsDir : string ;
149
+ } ;
150
+ customHeadersToSkipOnWeakVersion : string [ ] ;
151
+ fallbackRegistryUrl : string ;
152
+ pollingInterval : number ;
153
+ publishValidation : (
154
+ data : unknown
155
+ ) =>
156
+ | {
157
+ isValid : boolean ;
158
+ error ?: string ;
159
+ }
160
+ | boolean ;
161
+ refreshInterval ?: number ;
162
+ keepAliveTimeout ?: number ;
163
+ templates : any [ ] ;
164
+ env : Dictionary < string > ;
165
+ hotReloading : boolean ;
166
+ timeout : number ;
167
+ liveReloadPort : number ;
168
+ }
169
+
170
+ export interface Cdn {
171
+ getJson : < T > ( filePath : string , force : boolean , cb : Callback < T > ) => void ;
172
+ listSubDirectories : (
173
+ dir : string ,
174
+ cb : Callback < string [ ] , Error & { code ?: string } >
175
+ ) => void ;
176
+ putFileContent : (
177
+ data : unknown ,
178
+ path : string ,
179
+ isPrivate : boolean ,
180
+ callback : Callback < unknown , string >
181
+ ) => void ;
182
+ maxConcurrentRequests : number ;
183
+ }
184
+
185
+ export interface Template {
186
+ getInfo : ( ) => TemplateInfo ;
187
+ getCompiledTemplate : Function ;
188
+ render : Function ;
189
+ compile ?: Function ;
190
+ }
191
+
192
+ export interface Plugin {
193
+ name : string ;
194
+ register : {
195
+ register : Function ;
196
+ execute : Function ;
197
+ dependencies : string [ ] ;
198
+ } ;
199
+ description ?: string ;
200
+ options ?: any ;
201
+ callback : Function ;
117
202
}
118
203
119
204
declare global {
120
205
namespace Express {
121
206
interface Response {
122
207
conf : Config ;
208
+ errorDetails ?: string ;
209
+ errorCode ?: string ;
123
210
}
124
211
}
125
212
}
0 commit comments