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

Sign up to get free protection for your applications and to get access to all the features.
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
+ }