@squiz/dx-json-schema-lib 1.16.0 → 1.21.1-alpha.10

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 (39) hide show
  1. package/.npm/_logs/{2023-02-27T22_59_15_807Z-debug-0.log → 2023-03-09T00_01_12_827Z-debug-0.log} +14 -14
  2. package/lib/JsonValidationService.js +8 -0
  3. package/lib/JsonValidationService.js.map +1 -1
  4. package/lib/JsonValidationService.spec.js +44 -0
  5. package/lib/JsonValidationService.spec.js.map +1 -1
  6. package/lib/index.d.ts +1 -0
  7. package/lib/index.js +1 -0
  8. package/lib/index.js.map +1 -1
  9. package/lib/manifest/v1/DxContentMetaSchema.json +116 -1
  10. package/lib/manifest/v1/MatrixAssetSchema.json +370 -0
  11. package/lib/manifest/v1/__test__/schemas/inputStringWithFormat.json +29 -0
  12. package/lib/manifest/v1/subSchemas.d.ts +2 -1
  13. package/lib/manifest/v1/subSchemas.js +3 -1
  14. package/lib/manifest/v1/subSchemas.js.map +1 -1
  15. package/lib/manifest/v1/v1.d.ts +400 -2
  16. package/lib/manifest/v1/v1.json +48 -0
  17. package/lib/validators/customFormatValidators.d.ts +2 -0
  18. package/lib/validators/customFormatValidators.js +14 -0
  19. package/lib/validators/customFormatValidators.js.map +1 -0
  20. package/lib/validators/utils/matrixAssetValidator.d.ts +2 -0
  21. package/lib/validators/utils/matrixAssetValidator.js +11 -0
  22. package/lib/validators/utils/matrixAssetValidator.js.map +1 -0
  23. package/lib/validators/utils/matrixAssetValidator.spec.d.ts +1 -0
  24. package/lib/validators/utils/matrixAssetValidator.spec.js +43 -0
  25. package/lib/validators/utils/matrixAssetValidator.spec.js.map +1 -0
  26. package/package.json +2 -2
  27. package/src/JsonValidationService.spec.ts +62 -0
  28. package/src/JsonValidationService.ts +9 -1
  29. package/src/index.ts +2 -0
  30. package/src/manifest/v1/DxContentMetaSchema.json +116 -1
  31. package/src/manifest/v1/MatrixAssetSchema.json +371 -0
  32. package/src/manifest/v1/__test__/schemas/inputStringWithFormat.json +29 -0
  33. package/src/manifest/v1/subSchemas.ts +2 -1
  34. package/src/manifest/v1/v1.json +48 -0
  35. package/src/manifest/v1/v1.ts +640 -2
  36. package/src/validators/customFormatValidators.ts +15 -0
  37. package/src/validators/utils/matrixAssetValidator.spec.ts +49 -0
  38. package/src/validators/utils/matrixAssetValidator.ts +8 -0
  39. package/tsconfig.tsbuildinfo +1 -1
@@ -366,6 +366,54 @@
366
366
  }
367
367
  }
368
368
  }
369
+ },
370
+ "mockedUris": {
371
+ "type": "object",
372
+ "description": "Mocked uri objects used in the preview",
373
+ "propertyNames": {
374
+ "type": "string",
375
+ "pattern": "^[a-z0-9_\\-]+:\\/\\/"
376
+ },
377
+ "additionalProperties": {
378
+ "type": "object",
379
+ "description": "Property for defining the mock URI object",
380
+ "properties": {
381
+ "type": {
382
+ "description": "An enum of 'file' or 'inline' for how the uri object is defined",
383
+ "enum": ["file", "inline"]
384
+ }
385
+ },
386
+ "required": ["type"],
387
+ "oneOf": [
388
+ {
389
+ "type": "object",
390
+ "properties": {
391
+ "type": {
392
+ "enum": ["file"]
393
+ },
394
+ "path": {
395
+ "type": "string",
396
+ "format": "uri-reference",
397
+ "description": "Path to uri object"
398
+ }
399
+ },
400
+ "required": ["type", "path"]
401
+ },
402
+ {
403
+ "type": "object",
404
+ "properties": {
405
+ "type": {
406
+ "enum": ["inline"]
407
+ },
408
+ "value": {
409
+ "$ref": "MatrixAssetSchema.json",
410
+ "description": "Inline URI object"
411
+ }
412
+ },
413
+ "required": ["type", "value"]
414
+ }
415
+ ]
416
+ }
369
417
  }
370
418
  },
371
419
 
@@ -65,7 +65,109 @@ export type CoreSchemaMetaSchema2 =
65
65
  type?:
66
66
  | ('array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string' | 'FormattedText')
67
67
  | ('array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string' | 'FormattedText')[];
68
- format?: string;
68
+ format?:
69
+ | 'date-time'
70
+ | 'email'
71
+ | 'hostname'
72
+ | 'ipv4'
73
+ | 'ipv6'
74
+ | 'json-pointer'
75
+ | 'matrix-asset-uri'
76
+ | 'multi-line'
77
+ | 'password'
78
+ | 'phone'
79
+ | 'regex'
80
+ | 'relative-json-pointer'
81
+ | 'uri-reference'
82
+ | 'uri-template'
83
+ | 'uri'
84
+ | 'uuid';
85
+ matrixAssetTypes?: (
86
+ | 'audioFile'
87
+ | 'bodycopyContainer'
88
+ | 'bodycopyDiv'
89
+ | 'calendarEventsSearchPage'
90
+ | 'contentContainerTemplate'
91
+ | 'contentTypeMarkdown'
92
+ | 'contentTypeNestContent'
93
+ | 'contentTypeRawHtml'
94
+ | 'contentTypeSnippet'
95
+ | 'contentTypeWysiwyg'
96
+ | 'cssFileFolder'
97
+ | 'cssFile'
98
+ | 'customForm'
99
+ | 'dataRecord'
100
+ | 'designAreaAssetLineage'
101
+ | 'designAreaBody'
102
+ | 'designAreaMenuNormal'
103
+ | 'designAreaNestContent'
104
+ | 'designCssCustomisation'
105
+ | 'designCss'
106
+ | 'designCustomisation'
107
+ | 'designScss'
108
+ | 'design'
109
+ | 'docx'
110
+ | 'excelDoc'
111
+ | 'file'
112
+ | 'folder'
113
+ | 'gitBridge'
114
+ | 'googleAnalyticsConnector'
115
+ | 'googleAnalyticsView'
116
+ | 'image'
117
+ | 'jsFileFolder'
118
+ | 'jsFile'
119
+ | 'jsonWebToken'
120
+ | 'layoutManager'
121
+ | 'layout'
122
+ | 'link'
123
+ | 'metadataFieldDate'
124
+ | 'metadataFieldRelatedAsset'
125
+ | 'metadataFieldSelect'
126
+ | 'metadataFieldText'
127
+ | 'metadataFieldWysiwyg'
128
+ | 'metadataSchema'
129
+ | 'metadataSection'
130
+ | 'newsItem'
131
+ | 'oauthAccountManager'
132
+ | 'pageAccountManager'
133
+ | 'pageAssetListing'
134
+ | 'pageCalendarEventsSearch'
135
+ | 'pageCalendar'
136
+ | 'pagePasswordReset'
137
+ | 'pageRemoteContent'
138
+ | 'pageRestResourceJs'
139
+ | 'pageRestResourceOauthSession'
140
+ | 'pageRestResourceOauthTwoLegged'
141
+ | 'pageRestResource'
142
+ | 'pageSiteMap'
143
+ | 'pageStandard'
144
+ | 'paintLayoutBodycopy'
145
+ | 'paintLayoutPage'
146
+ | 'pdfFile'
147
+ | 'pdf'
148
+ | 'persona'
149
+ | 'powerpointDoc'
150
+ | 'pptx'
151
+ | 'redirectPage'
152
+ | 'regex'
153
+ | 'regularExpression'
154
+ | 'rtfFile'
155
+ | 'samlAccountManager'
156
+ | 'saml2Acs'
157
+ | 'saml2Sls'
158
+ | 'searchPage'
159
+ | 'site'
160
+ | 'textFile'
161
+ | 'TriggerTypes?'
162
+ | 'userGroup'
163
+ | 'wordDoc'
164
+ | 'workflowSchema'
165
+ | 'workflowStepCondition'
166
+ | 'workflowStep'
167
+ | 'workflowStream'
168
+ | 'xlsx'
169
+ | 'xmlFile'
170
+ )[];
69
171
  contentMediaType?: string;
70
172
  contentEncoding?: string;
71
173
  if?: CoreSchemaMetaSchema2;
@@ -152,6 +254,7 @@ export type CoreSchemaMetaSchema5 =
152
254
  */
153
255
  export type SchemaArray1 = CoreSchemaMetaSchema5[];
154
256
  export type StringArray1 = string[];
257
+ export type ImageAdditionalInfo = FileAdditionalInfo;
155
258
 
156
259
  export interface ComponentManifest {
157
260
  /**
@@ -211,6 +314,28 @@ export interface ComponentManifest {
211
314
  previews?: {
212
315
  [k: string]: PreviewDefinition;
213
316
  };
317
+ /**
318
+ * Mocked uri objects used in the preview
319
+ */
320
+ mockedUris?: {
321
+ /**
322
+ * Property for defining the mock URI object
323
+ */
324
+ [k: string]:
325
+ | {
326
+ type: 'file';
327
+ /**
328
+ * Path to uri object
329
+ */
330
+ path: string;
331
+ [k: string]: unknown;
332
+ }
333
+ | {
334
+ type: 'inline';
335
+ value: MatrixAssetSchema;
336
+ [k: string]: unknown;
337
+ };
338
+ };
214
339
  }
215
340
  /**
216
341
  * Icon for the component in Matrix and the DXP
@@ -2531,7 +2656,109 @@ export interface CoreSchemaMetaSchema1 {
2531
2656
  type?:
2532
2657
  | ('array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string' | 'FormattedText')
2533
2658
  | ('array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string' | 'FormattedText')[];
2534
- format?: string;
2659
+ format?:
2660
+ | 'date-time'
2661
+ | 'email'
2662
+ | 'hostname'
2663
+ | 'ipv4'
2664
+ | 'ipv6'
2665
+ | 'json-pointer'
2666
+ | 'matrix-asset-uri'
2667
+ | 'multi-line'
2668
+ | 'password'
2669
+ | 'phone'
2670
+ | 'regex'
2671
+ | 'relative-json-pointer'
2672
+ | 'uri-reference'
2673
+ | 'uri-template'
2674
+ | 'uri'
2675
+ | 'uuid';
2676
+ matrixAssetTypes?: (
2677
+ | 'audioFile'
2678
+ | 'bodycopyContainer'
2679
+ | 'bodycopyDiv'
2680
+ | 'calendarEventsSearchPage'
2681
+ | 'contentContainerTemplate'
2682
+ | 'contentTypeMarkdown'
2683
+ | 'contentTypeNestContent'
2684
+ | 'contentTypeRawHtml'
2685
+ | 'contentTypeSnippet'
2686
+ | 'contentTypeWysiwyg'
2687
+ | 'cssFileFolder'
2688
+ | 'cssFile'
2689
+ | 'customForm'
2690
+ | 'dataRecord'
2691
+ | 'designAreaAssetLineage'
2692
+ | 'designAreaBody'
2693
+ | 'designAreaMenuNormal'
2694
+ | 'designAreaNestContent'
2695
+ | 'designCssCustomisation'
2696
+ | 'designCss'
2697
+ | 'designCustomisation'
2698
+ | 'designScss'
2699
+ | 'design'
2700
+ | 'docx'
2701
+ | 'excelDoc'
2702
+ | 'file'
2703
+ | 'folder'
2704
+ | 'gitBridge'
2705
+ | 'googleAnalyticsConnector'
2706
+ | 'googleAnalyticsView'
2707
+ | 'image'
2708
+ | 'jsFileFolder'
2709
+ | 'jsFile'
2710
+ | 'jsonWebToken'
2711
+ | 'layoutManager'
2712
+ | 'layout'
2713
+ | 'link'
2714
+ | 'metadataFieldDate'
2715
+ | 'metadataFieldRelatedAsset'
2716
+ | 'metadataFieldSelect'
2717
+ | 'metadataFieldText'
2718
+ | 'metadataFieldWysiwyg'
2719
+ | 'metadataSchema'
2720
+ | 'metadataSection'
2721
+ | 'newsItem'
2722
+ | 'oauthAccountManager'
2723
+ | 'pageAccountManager'
2724
+ | 'pageAssetListing'
2725
+ | 'pageCalendarEventsSearch'
2726
+ | 'pageCalendar'
2727
+ | 'pagePasswordReset'
2728
+ | 'pageRemoteContent'
2729
+ | 'pageRestResourceJs'
2730
+ | 'pageRestResourceOauthSession'
2731
+ | 'pageRestResourceOauthTwoLegged'
2732
+ | 'pageRestResource'
2733
+ | 'pageSiteMap'
2734
+ | 'pageStandard'
2735
+ | 'paintLayoutBodycopy'
2736
+ | 'paintLayoutPage'
2737
+ | 'pdfFile'
2738
+ | 'pdf'
2739
+ | 'persona'
2740
+ | 'powerpointDoc'
2741
+ | 'pptx'
2742
+ | 'redirectPage'
2743
+ | 'regex'
2744
+ | 'regularExpression'
2745
+ | 'rtfFile'
2746
+ | 'samlAccountManager'
2747
+ | 'saml2Acs'
2748
+ | 'saml2Sls'
2749
+ | 'searchPage'
2750
+ | 'site'
2751
+ | 'textFile'
2752
+ | 'TriggerTypes?'
2753
+ | 'userGroup'
2754
+ | 'wordDoc'
2755
+ | 'workflowSchema'
2756
+ | 'workflowStepCondition'
2757
+ | 'workflowStep'
2758
+ | 'workflowStream'
2759
+ | 'xlsx'
2760
+ | 'xmlFile'
2761
+ )[];
2535
2762
  contentMediaType?: string;
2536
2763
  contentEncoding?: string;
2537
2764
  if?: CoreSchemaMetaSchema2;
@@ -2728,3 +2955,414 @@ export interface FunctionPreviewConfiguration {
2728
2955
  export interface ResponseHeaders2 {
2729
2956
  [k: string]: string;
2730
2957
  }
2958
+ /**
2959
+ * Inline URI object
2960
+ */
2961
+ export interface MatrixAssetSchema {
2962
+ /**
2963
+ * The asset ID.
2964
+ */
2965
+ id: string;
2966
+ /**
2967
+ * The asset type code.
2968
+ */
2969
+ type: string;
2970
+ /**
2971
+ * The asset type friendly name.
2972
+ */
2973
+ type_name: string;
2974
+ /**
2975
+ * The asset semantic version.
2976
+ */
2977
+ version: string;
2978
+ /**
2979
+ * The asset standard field name.
2980
+ */
2981
+ name: string;
2982
+ /**
2983
+ * The asset standard field short name.
2984
+ */
2985
+ short_name: string;
2986
+ /**
2987
+ * A object representing the asset status of the asset resource.
2988
+ */
2989
+ status: {
2990
+ /**
2991
+ * The bitwise id of the asset status
2992
+ */
2993
+ id: 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256;
2994
+ /**
2995
+ * The type code of the asset status
2996
+ */
2997
+ code:
2998
+ | 'archived'
2999
+ | 'under_construction'
3000
+ | 'pending_approval'
3001
+ | 'approved'
3002
+ | 'live'
3003
+ | 'live_approval'
3004
+ | 'editing'
3005
+ | 'editing_approval'
3006
+ | 'editing_approved';
3007
+ /**
3008
+ * The description of the asset status
3009
+ */
3010
+ name?:
3011
+ | 'Archived'
3012
+ | 'Under Construction'
3013
+ | 'Pending Approval'
3014
+ | 'Approved To Go Live'
3015
+ | 'Live'
3016
+ | 'Up For Review'
3017
+ | 'Safe Editing'
3018
+ | 'Safe Editing Pending Approval'
3019
+ | 'Safe Edit Approved To Go Live';
3020
+ };
3021
+ /**
3022
+ * A object representing when the asset status was created.
3023
+ */
3024
+ created: {
3025
+ /**
3026
+ * The creation date of the asset in ISO 8601 format.
3027
+ */
3028
+ date: string | null;
3029
+ /**
3030
+ * The asset ID of the User that created the asset.
3031
+ */
3032
+ user_id: string | null;
3033
+ };
3034
+ /**
3035
+ * A object representing when the asset status was last updated.
3036
+ */
3037
+ updated: {
3038
+ /**
3039
+ * The last updated date of the asset in ISO 8601 format.
3040
+ */
3041
+ date: string | null;
3042
+ /**
3043
+ * The asset ID of the User that last updated the asset.
3044
+ */
3045
+ user_id: string | null;
3046
+ };
3047
+ /**
3048
+ * A object representing when the asset status was last published.
3049
+ */
3050
+ published: {
3051
+ /**
3052
+ * The last published date of the asset in ISO 8601 format.
3053
+ */
3054
+ date: string | null;
3055
+ /**
3056
+ * The asset ID of the User that last published the asset.
3057
+ */
3058
+ user_id: string | null;
3059
+ };
3060
+ /**
3061
+ * A object representing when the asset status was last changed.
3062
+ */
3063
+ status_changed?: {
3064
+ /**
3065
+ * The last date the state of the asset was changed in ISO 8601 format.
3066
+ */
3067
+ date: string | null;
3068
+ /**
3069
+ * The asset ID of the User that last changed the asset status.
3070
+ */
3071
+ user_id: string | null;
3072
+ };
3073
+ /**
3074
+ * The primary URL for the asset.
3075
+ */
3076
+ url: string;
3077
+ /**
3078
+ * All URLs for the asset including the primary URL.
3079
+ */
3080
+ urls: string[];
3081
+ /**
3082
+ * List of attributes for the asset in key-value form.
3083
+ */
3084
+ attributes: {
3085
+ [k: string]: unknown;
3086
+ };
3087
+ /**
3088
+ * List of metadata values in key-value form.
3089
+ */
3090
+ metadata?: {
3091
+ [k: string]: string[];
3092
+ };
3093
+ /**
3094
+ * The contents for the asset (excluding file assets).
3095
+ */
3096
+ contents?: string;
3097
+ /**
3098
+ * The thumbnail image associated with the asset, shows a subset data of an image or image variety.
3099
+ */
3100
+ thumbnail?: {
3101
+ /**
3102
+ * The asset ID of the Image asset of the file.
3103
+ */
3104
+ asset_id?: string;
3105
+ /**
3106
+ * The accessible URL of the thumbnail image file.
3107
+ */
3108
+ url?: string;
3109
+ /**
3110
+ * The file name of the thumbnail image.
3111
+ */
3112
+ file_name?: string;
3113
+ /**
3114
+ * The image file width in pixels.
3115
+ */
3116
+ width?: number;
3117
+ /**
3118
+ * The image file height in pixels.
3119
+ */
3120
+ height?: number;
3121
+ /**
3122
+ * The file type of the image file, generally its extension.
3123
+ */
3124
+ file_type?: string;
3125
+ /**
3126
+ * The file size in bytes
3127
+ */
3128
+ file_size?: number;
3129
+ /**
3130
+ * The file size in human readable format
3131
+ */
3132
+ file_size_readable?: number;
3133
+ /**
3134
+ * The friendly name of the file asset
3135
+ */
3136
+ title?: string;
3137
+ /**
3138
+ * The alt attribute of the Image asset
3139
+ */
3140
+ alt?: string;
3141
+ [k: string]: unknown;
3142
+ };
3143
+ /**
3144
+ * All direct dependent child assets of the asset in normalized asset format.
3145
+ */
3146
+ include_dependents?: MatrixAssetSchema1[];
3147
+ /**
3148
+ * Additional data of an arbitrary nature related to the requested asset, which may include derived information or special child asset information.
3149
+ */
3150
+ additional?: AssetAdditionalInfo | FileAdditionalInfo | ImageAdditionalInfo | CalendarEventAdditionalInfo;
3151
+ [k: string]: unknown;
3152
+ }
3153
+ export interface MatrixAssetSchema1 {
3154
+ /**
3155
+ * The asset ID.
3156
+ */
3157
+ id: string;
3158
+ /**
3159
+ * The asset type code.
3160
+ */
3161
+ type: string;
3162
+ /**
3163
+ * The asset type friendly name.
3164
+ */
3165
+ type_name: string;
3166
+ /**
3167
+ * The asset semantic version.
3168
+ */
3169
+ version: string;
3170
+ /**
3171
+ * The asset standard field name.
3172
+ */
3173
+ name: string;
3174
+ /**
3175
+ * The asset standard field short name.
3176
+ */
3177
+ short_name: string;
3178
+ /**
3179
+ * A object representing the asset status of the asset resource.
3180
+ */
3181
+ status: {
3182
+ /**
3183
+ * The bitwise id of the asset status
3184
+ */
3185
+ id: 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256;
3186
+ /**
3187
+ * The type code of the asset status
3188
+ */
3189
+ code:
3190
+ | 'archived'
3191
+ | 'under_construction'
3192
+ | 'pending_approval'
3193
+ | 'approved'
3194
+ | 'live'
3195
+ | 'live_approval'
3196
+ | 'editing'
3197
+ | 'editing_approval'
3198
+ | 'editing_approved';
3199
+ /**
3200
+ * The description of the asset status
3201
+ */
3202
+ name?:
3203
+ | 'Archived'
3204
+ | 'Under Construction'
3205
+ | 'Pending Approval'
3206
+ | 'Approved To Go Live'
3207
+ | 'Live'
3208
+ | 'Up For Review'
3209
+ | 'Safe Editing'
3210
+ | 'Safe Editing Pending Approval'
3211
+ | 'Safe Edit Approved To Go Live';
3212
+ };
3213
+ /**
3214
+ * A object representing when the asset status was created.
3215
+ */
3216
+ created: {
3217
+ /**
3218
+ * The creation date of the asset in ISO 8601 format.
3219
+ */
3220
+ date: string | null;
3221
+ /**
3222
+ * The asset ID of the User that created the asset.
3223
+ */
3224
+ user_id: string | null;
3225
+ };
3226
+ /**
3227
+ * A object representing when the asset status was last updated.
3228
+ */
3229
+ updated: {
3230
+ /**
3231
+ * The last updated date of the asset in ISO 8601 format.
3232
+ */
3233
+ date: string | null;
3234
+ /**
3235
+ * The asset ID of the User that last updated the asset.
3236
+ */
3237
+ user_id: string | null;
3238
+ };
3239
+ /**
3240
+ * A object representing when the asset status was last published.
3241
+ */
3242
+ published: {
3243
+ /**
3244
+ * The last published date of the asset in ISO 8601 format.
3245
+ */
3246
+ date: string | null;
3247
+ /**
3248
+ * The asset ID of the User that last published the asset.
3249
+ */
3250
+ user_id: string | null;
3251
+ };
3252
+ /**
3253
+ * A object representing when the asset status was last changed.
3254
+ */
3255
+ status_changed?: {
3256
+ /**
3257
+ * The last date the state of the asset was changed in ISO 8601 format.
3258
+ */
3259
+ date: string | null;
3260
+ /**
3261
+ * The asset ID of the User that last changed the asset status.
3262
+ */
3263
+ user_id: string | null;
3264
+ };
3265
+ /**
3266
+ * The primary URL for the asset.
3267
+ */
3268
+ url: string;
3269
+ /**
3270
+ * All URLs for the asset including the primary URL.
3271
+ */
3272
+ urls: string[];
3273
+ /**
3274
+ * List of attributes for the asset in key-value form.
3275
+ */
3276
+ attributes: {
3277
+ [k: string]: unknown;
3278
+ };
3279
+ /**
3280
+ * List of metadata values in key-value form.
3281
+ */
3282
+ metadata?: {
3283
+ [k: string]: string[];
3284
+ };
3285
+ /**
3286
+ * The contents for the asset (excluding file assets).
3287
+ */
3288
+ contents?: string;
3289
+ /**
3290
+ * The thumbnail image associated with the asset, shows a subset data of an image or image variety.
3291
+ */
3292
+ thumbnail?: {
3293
+ /**
3294
+ * The asset ID of the Image asset of the file.
3295
+ */
3296
+ asset_id?: string;
3297
+ /**
3298
+ * The accessible URL of the thumbnail image file.
3299
+ */
3300
+ url?: string;
3301
+ /**
3302
+ * The file name of the thumbnail image.
3303
+ */
3304
+ file_name?: string;
3305
+ /**
3306
+ * The image file width in pixels.
3307
+ */
3308
+ width?: number;
3309
+ /**
3310
+ * The image file height in pixels.
3311
+ */
3312
+ height?: number;
3313
+ /**
3314
+ * The file type of the image file, generally its extension.
3315
+ */
3316
+ file_type?: string;
3317
+ /**
3318
+ * The file size in bytes
3319
+ */
3320
+ file_size?: number;
3321
+ /**
3322
+ * The file size in human readable format
3323
+ */
3324
+ file_size_readable?: number;
3325
+ /**
3326
+ * The friendly name of the file asset
3327
+ */
3328
+ title?: string;
3329
+ /**
3330
+ * The alt attribute of the Image asset
3331
+ */
3332
+ alt?: string;
3333
+ [k: string]: unknown;
3334
+ };
3335
+ /**
3336
+ * All direct dependent child assets of the asset in normalized asset format.
3337
+ */
3338
+ include_dependents?: MatrixAssetSchema1[];
3339
+ /**
3340
+ * Additional data of an arbitrary nature related to the requested asset, which may include derived information or special child asset information.
3341
+ */
3342
+ additional?: AssetAdditionalInfo | FileAdditionalInfo | ImageAdditionalInfo | CalendarEventAdditionalInfo;
3343
+ [k: string]: unknown;
3344
+ }
3345
+ export interface AssetAdditionalInfo {
3346
+ [k: string]: unknown;
3347
+ }
3348
+ export interface FileAdditionalInfo {
3349
+ file_info?: {
3350
+ file_name?: string;
3351
+ size_readable?: string;
3352
+ size_bytes?: number;
3353
+ width?: number;
3354
+ height?: number;
3355
+ modified_readable?: string;
3356
+ modified_unix?: number;
3357
+ [k: string]: unknown;
3358
+ };
3359
+ [k: string]: unknown;
3360
+ }
3361
+ export interface CalendarEventAdditionalInfo {
3362
+ event_info?: {
3363
+ duration?: number;
3364
+ frequency?: string;
3365
+ [k: string]: unknown;
3366
+ };
3367
+ [k: string]: unknown;
3368
+ }