@@ -17,6 +17,7 @@ INTERFACE zif_types PUBLIC.
17
17
18
18
CONSTANTS c_version TYPE string VALUE '1.0.0' ##NO_TEXT .
19
19
20
+
20
21
TYPES :
21
22
"! Email
22
23
ty_email TYPE string ,
@@ -33,21 +34,23 @@ INTERFACE zif_types PUBLIC.
33
34
ty_persons TYPE STANDARD TABLE OF ty_person WITH KEY name url email,
34
35
"! Dependency with semver range
35
36
BEGIN OF ty_dependency,
36
- name TYPE string ,
37
+ key TYPE string ,
37
38
range TYPE string ,
38
39
END OF ty_dependency,
39
40
"! List of Dependencies
40
- ty_dependencies TYPE STANDARD TABLE OF ty_dependency WITH KEY name ,
41
+ ty_dependencies TYPE STANDARD TABLE OF ty_dependency WITH KEY key ,
41
42
"! Generic key value pair
42
43
BEGIN OF ty_generic,
43
44
key TYPE string ,
44
45
value TYPE string ,
45
46
END OF ty_generic,
47
+ ty_dist_tags TYPE STANDARD TABLE OF ty_generic WITH KEY key ,
46
48
"! Timestamp
47
49
BEGIN OF ty_time,
48
50
key TYPE string ,
49
- timestamp TYPE timestamp ,
51
+ timestamp TYPE timestampl ,
50
52
END OF ty_time,
53
+ ty_times TYPE STANDARD TABLE OF ty_time WITH KEY key ,
51
54
"! Signature
52
55
BEGIN OF ty_signature,
53
56
keyid TYPE string ,
@@ -58,46 +61,55 @@ INTERFACE zif_types PUBLIC.
58
61
name TYPE string ,
59
62
stars TYPE i ,
60
63
END OF ty_user,
64
+ ty_users TYPE STANDARD TABLE OF ty_user WITH KEY name ,
65
+ "! Bugs (Issues)
66
+ BEGIN OF ty_bugs,
67
+ url TYPE ty_uri,
68
+ email TYPE ty_email,
69
+ END OF ty_bugs,
70
+ "! Repository
71
+ BEGIN OF ty_repository,
72
+ type TYPE string ,
73
+ url TYPE ty_uri,
74
+ directory TYPE string ,
75
+ END OF ty_repository,
76
+ "! Funding
77
+ BEGIN OF ty_funding,
78
+ type TYPE string ,
79
+ url TYPE ty_uri,
80
+ END OF ty_funding,
61
81
"! Dist Details
62
82
BEGIN OF ty_dist,
63
83
file_count TYPE i ,
64
- integrity TYPE string ,
65
84
shasum TYPE string ,
66
- signatures TYPE STANDARD TABLE OF ty_signature WITH KEY keyid,
67
85
tarball TYPE string ,
68
86
unpacked_size TYPE i ,
87
+ integrity TYPE string ,
88
+ signatures TYPE STANDARD TABLE OF ty_signature WITH KEY keyid,
69
89
END OF ty_dist.
70
90
71
91
" *** PACKAGE.ABAP.JSON ***
72
92
73
93
TYPES :
74
94
"! Schema for package.abap.json
95
+ "! Everything but "icon" is also in regular npm package.json
75
96
BEGIN OF ty_package_json,
76
97
name TYPE string ,
77
98
version TYPE string ,
78
99
description TYPE string ,
79
100
type TYPE string ,
80
101
keywords TYPE string_table,
81
102
homepage TYPE string ,
82
- BEGIN OF bugs,
83
- url TYPE ty_uri,
84
- email TYPE ty_email,
85
- END OF bugs,
103
+ icon TYPE string ,
104
+ bugs TYPE ty_bugs,
86
105
license TYPE string ,
87
106
author TYPE ty_person,
88
107
contributors TYPE ty_persons,
89
108
maintainers TYPE ty_persons,
90
109
main TYPE string ,
91
110
man TYPE string_table,
92
- BEGIN OF repository,
93
- type TYPE string ,
94
- url TYPE ty_uri,
95
- directory TYPE string ,
96
- END OF repository,
97
- BEGIN OF funding,
98
- type TYPE string ,
99
- url TYPE ty_uri,
100
- END OF funding,
111
+ repository TYPE ty_repository,
112
+ funding TYPE ty_funding,
101
113
dependencies TYPE ty_dependencies,
102
114
dev_dependencies TYPE ty_dependencies,
103
115
optional_dependencies TYPE ty_dependencies,
@@ -113,7 +125,9 @@ INTERFACE zif_types PUBLIC.
113
125
114
126
" *** MANIFEST ***
115
127
116
- "! Full manifest (fetched with "accept: application/json" in HTTP headers)
128
+ "! Full manifest
129
+ "!
130
+ "! fetched with "accept: application/json" in HTTP headers
117
131
TYPES BEGIN OF ty_manifest.
118
132
INCLUDE TYPE ty_package_json.
119
133
TYPES :
@@ -126,7 +140,8 @@ INTERFACE zif_types PUBLIC.
126
140
127
141
TYPES :
128
142
"! Abbreviated manifest
129
- "! (fetched with "accept: application/vnd.npm.install-v1+json" in the HTTP headers)
143
+ "!
144
+ "! fetched with "accept: application/vnd.npm.install-v1+json" in the HTTP headers
130
145
BEGIN OF ty_manifest_abbreviated ##NEEDED ,
131
146
name TYPE string ,
132
147
version TYPE string ,
@@ -150,7 +165,8 @@ INTERFACE zif_types PUBLIC.
150
165
BEGIN OF ty_version,
151
166
key TYPE string ,
152
167
version TYPE ty_manifest,
153
- END OF ty_version.
168
+ END OF ty_version,
169
+ ty_versions TYPE STANDARD TABLE OF ty_version WITH KEY key .
154
170
155
171
TYPES :
156
172
"! Tarball Attachment
@@ -161,36 +177,31 @@ INTERFACE zif_types PUBLIC.
161
177
data TYPE string ,
162
178
length TYPE i ,
163
179
END OF tarball,
164
- END OF ty_attachment.
180
+ END OF ty_attachment,
181
+ ty_attachments TYPE STANDARD TABLE OF ty_attachment WITH KEY key .
165
182
166
183
TYPES :
167
184
"! Full packument (as fetched from registry)
168
185
"! Some fields are hoisted from latest version to root
169
186
BEGIN OF ty_packument ##NEEDED ,
170
187
name TYPE string ,
171
188
description TYPE string ,
172
- dist_tags TYPE STANDARD TABLE OF ty_generic WITH KEY key ,
173
- time TYPE STANDARD TABLE OF ty_time WITH KEY key ,
174
- versions TYPE STANDARD TABLE OF ty_version WITH KEY key ,
189
+ dist_tags TYPE ty_dist_tags ,
190
+ time TYPE ty_times ,
191
+ versions TYPE ty_versions ,
175
192
maintainers TYPE ty_persons,
176
193
readme TYPE string ,
177
- users TYPE STANDARD TABLE OF ty_user WITH KEY name ,
194
+ users TYPE ty_users ,
178
195
homepage TYPE string ,
179
- BEGIN OF bugs,
180
- url TYPE ty_uri,
181
- email TYPE ty_email,
182
- END OF bugs,
196
+ icon TYPE string ,
197
+ bugs TYPE ty_bugs,
183
198
license TYPE string ,
184
199
keywords TYPE string_table,
185
200
author TYPE ty_person,
186
- BEGIN OF repository,
187
- type TYPE string ,
188
- url TYPE ty_uri,
189
- directory TYPE string ,
190
- END OF repository,
201
+ repository TYPE ty_repository,
191
202
_id TYPE string ,
192
203
_rev TYPE string ,
193
- _attachments TYPE STANDARD TABLE OF ty_attachment WITH KEY key ,
204
+ _attachments TYPE ty_attachments ,
194
205
access TYPE string ,
195
206
END OF ty_packument.
196
207
0 commit comments