@@ -56,6 +56,223 @@ declare type TwitterLinkDetails = {
56
56
57
57
declare type ImageAssetDetails = {
58
58
url : string ;
59
- width : number ;
60
- height : number ;
59
+ alt ?: string ;
60
+ width ?: number ;
61
+ height ?: number ;
62
+ } ;
63
+
64
+ /* OpenGraph Ninja Types */
65
+ // Types adapted from https://github.com/opengraphninja/react/blob/main/src/types.d.ts
66
+ type OpenGraphMedia = {
67
+ height : string | null ;
68
+ type : string | null ;
69
+ url : string ;
70
+ width : string | null ;
71
+ } ;
72
+
73
+ type OpenGraphTwitterImage = {
74
+ height : string | null ;
75
+ alt : string | null ;
76
+ url : string ;
77
+ width : string | null ;
78
+ } ;
79
+
80
+ type OpenGraphTwitterPlayer = {
81
+ height : string | null ;
82
+ stream : string | null ;
83
+ url : string ;
84
+ width : string | null ;
85
+ } ;
86
+
87
+ type OpenGraphMusicSong = {
88
+ url : string ;
89
+ track : string | null ;
90
+ disc : string | null ;
91
+ } ;
92
+
93
+ type OpenGraphDetails = {
94
+ alAndroidAppName ?: string ;
95
+ alAndroidClass ?: string ;
96
+ alAndroidPackage ?: string ;
97
+ alAndroidUrl ?: string ;
98
+ alIosAppName ?: string ;
99
+ alIosAppStoreId ?: string ;
100
+ alIosUrl ?: string ;
101
+ alIpadAppName ?: string ;
102
+ alIpadAppStoreId ?: string ;
103
+ alIpadUrl ?: string ;
104
+ alIphoneAppName ?: string ;
105
+ alIphoneAppStoreId ?: string ;
106
+ alIphoneUrl ?: string ;
107
+ alWebShouldFallback ?: string ;
108
+ alWebUrl ?: string ;
109
+ alWindowsAppId ?: string ;
110
+ alWindowsAppName ?: string ;
111
+ alWindowsPhoneAppId ?: string ;
112
+ alWindowsPhoneAppName ?: string ;
113
+ alWindowsPhoneUrl ?: string ;
114
+ alWindowsUniversalAppId ?: string ;
115
+ alWindowsUniversalAppName ?: string ;
116
+ alWindowsUniversalUrl ?: string ;
117
+ alWindowsUrl ?: string ;
118
+ articleAuthor ?: string ;
119
+ articleExpirationTime ?: string ;
120
+ articleModifiedTime ?: string ;
121
+ articlePublishedTime ?: string ;
122
+ articlePublisher ?: string ;
123
+ articleSection ?: string ;
124
+ articleTag ?: string ;
125
+ author ?: string ;
126
+ bookAuthor ?: string ;
127
+ bookCanonicalName ?: string ;
128
+ bookIsbn ?: string ;
129
+ bookReleaseDate ?: string ;
130
+ booksBook ?: string ;
131
+ booksRatingScale ?: string ;
132
+ booksRatingValue ?: string ;
133
+ bookTag ?: string ;
134
+ businessContactDataCountryName ?: string ;
135
+ businessContactDataLocality ?: string ;
136
+ businessContactDataPostalCode ?: string ;
137
+ businessContactDataRegion ?: string ;
138
+ businessContactDataStreetAddress ?: string ;
139
+ dcContributor ?: string ;
140
+ dcCoverage ?: string ;
141
+ dcCreator ?: string ;
142
+ dcDate ?: string ;
143
+ dcDateCreated ?: string ;
144
+ dcDateIssued ?: string ;
145
+ dcDescription ?: string ;
146
+ dcFormatMedia ?: string ;
147
+ dcFormatSize ?: string ;
148
+ dcIdentifier ?: string ;
149
+ dcLanguage ?: string ;
150
+ dcPublisher ?: string ;
151
+ dcRelation ?: string ;
152
+ dcRights ?: string ;
153
+ dcSource ?: string ;
154
+ dcSubject ?: string ;
155
+ dcTitle ?: string ;
156
+ dcType ?: string ;
157
+ modifiedTime ?: string ;
158
+ musicAlbum ?: string | string [ ] ;
159
+ musicAlbumDisc ?: string ;
160
+ musicAlbumTrack ?: string ;
161
+ musicAlbumUrl ?: string ;
162
+ musicCreator ?: string | string [ ] ;
163
+ musicDuration ?: string ;
164
+ musicMusician ?: string | string [ ] ;
165
+ musicReleaseDate ?: string ;
166
+ musicSong ?: OpenGraphMusicSong ;
167
+ musicSongDisc ?: string | string [ ] ;
168
+ musicSongTrack ?: string | string [ ] ;
169
+ musicSongUrl ?: string | string [ ] ;
170
+ ogArticleAuthor ?: string ;
171
+ ogArticleExpirationTime ?: string ;
172
+ ogArticleModifiedTime ?: string ;
173
+ ogArticlePublishedTime ?: string ;
174
+ ogArticlePublisher ?: string ;
175
+ ogArticleSection ?: string ;
176
+ ogArticleTag ?: string ;
177
+ ogAudio ?: string ;
178
+ ogAudioSecureURL ?: string ;
179
+ ogAudioType ?: string ;
180
+ ogAudioURL ?: string ;
181
+ ogAvailability ?: string ;
182
+ ogDate ?: string ;
183
+ ogDescription ?: string ;
184
+ ogDeterminer ?: string ;
185
+ ogImage ?: OpenGraphMedia | OpenGraphMedia [ ] ;
186
+ ogImageHeight ?: string | string [ ] ;
187
+ ogImageSecureURL ?: string | string [ ] ;
188
+ ogImageType ?: string | string [ ] ;
189
+ ogImageURL ?: string | string [ ] ;
190
+ ogImageWidth ?: string | string [ ] ;
191
+ ogLocale ?: string ;
192
+ ogLocaleAlternate ?: string ;
193
+ ogLogo ?: string ;
194
+ ogPriceAmount ?: string ;
195
+ ogPriceCurrency ?: string ;
196
+ ogProductAvailability ?: string ;
197
+ ogProductCondition ?: string ;
198
+ ogProductPriceAmount ?: string ;
199
+ ogProductPriceCurrency ?: string ;
200
+ ogProductRetailerItemId ?: string ;
201
+ ogSiteName ?: string ;
202
+ ogTitle ?: string ;
203
+ ogType ?: string ;
204
+ ogUrl ?: string ;
205
+ ogVideo ?: OpenGraphMedia | OpenGraphMedia [ ] ;
206
+ ogVideoActorId ?: string | string [ ] ;
207
+ ogVideoHeight ?: string | string [ ] ;
208
+ ogVideoSecureURL ?: string | string [ ] ;
209
+ ogVideoType ?: string | string [ ] ;
210
+ ogVideoWidth ?: string | string [ ] ;
211
+ placeLocationLatitude ?: string ;
212
+ placeLocationLongitude ?: string ;
213
+ profileFirstName ?: string ;
214
+ profileGender ?: string ;
215
+ profileLastName ?: string ;
216
+ profileUsername ?: string ;
217
+ publishedTime ?: string ;
218
+ releaseDate ?: string ;
219
+ restaurantContactInfoCountryName ?: string ;
220
+ restaurantContactInfoEmail ?: string ;
221
+ restaurantContactInfoLocality ?: string ;
222
+ restaurantContactInfoPhoneNumber ?: string ;
223
+ restaurantContactInfoPostalCode ?: string ;
224
+ restaurantContactInfoRegion ?: string ;
225
+ restaurantContactInfoStreetAddress ?: string ;
226
+ restaurantContactInfoWebsite ?: string ;
227
+ restaurantMenu ?: string ;
228
+ restaurantRestaurant ?: string ;
229
+ restaurantSection ?: string ;
230
+ restaurantVariationPriceAmount ?: string ;
231
+ restaurantVariationPriceCurrency ?: string ;
232
+ twitterAppIdGooglePlay ?: string ;
233
+ twitterAppIdiPad ?: string ;
234
+ twitterAppIdiPhone ?: string ;
235
+ twitterAppNameGooglePlay ?: string ;
236
+ twitterAppNameiPad ?: string ;
237
+ twitterAppNameiPhone ?: string ;
238
+ twitterAppUrlGooglePlay ?: string ;
239
+ twitterAppUrliPad ?: string ;
240
+ twitterAppUrliPhone ?: string ;
241
+ twitterCard ?: string ;
242
+ twitterCreator ?: string ;
243
+ twitterCreatorId ?: string ;
244
+ twitterDescription ?: string ;
245
+ twitterImage ?: OpenGraphTwitterImage | OpenGraphTwitterImage [ ] ;
246
+ twitterImageAlt ?: string | string [ ] ;
247
+ twitterImageHeight ?: string | string [ ] ;
248
+ twitterImageSrc ?: string | string [ ] ;
249
+ twitterImageWidth ?: string | string [ ] ;
250
+ twitterPlayer ?: OpenGraphTwitterPlayer | OpenGraphTwitterPlayer [ ] ;
251
+ twitterPlayerHeight ?: string | string [ ] ;
252
+ twitterPlayerStream ?: string | string [ ] ;
253
+ twitterPlayerStreamContentType ?: string | string [ ] ;
254
+ twitterPlayerWidth ?: string | string [ ] ;
255
+ twitterSite ?: string ;
256
+ twitterSiteId ?: string ;
257
+ twitterTitle ?: string ;
258
+ twitterUrl ?: string ;
259
+ updatedTime ?: string ;
260
+ favicon ?: string ;
261
+ [ key : string ] : any ;
262
+ } ;
263
+
264
+ export type OpenGraphPreviewData = {
265
+ hostname : string ;
266
+ requestUrl : string ;
267
+ title : string ;
268
+ description : string ;
269
+ image ?: {
270
+ url : string ;
271
+ alt ?: string ;
272
+ } ;
273
+ details : Details ;
274
+ } ;
275
+
276
+ export type OpenGraphPreviewDataError = {
277
+ error : string ;
61
278
} ;
0 commit comments