@forge/manifest 13.4.0-next.3-experimental-e9e08bb → 13.4.0-next.3-experimental-241de51
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.
- package/CHANGELOG.md +3 -1
- package/out/schema/basic-manifest-schema.json +0 -1
- package/out/schema/manifest-schema.json +103 -24
- package/out/schema/manifest.d.ts +106 -10
- package/out/scopes/shipyard-scopes.json +70 -3
- package/out/text/errors.js +1 -1
- package/out/validators/compatibility-validator.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
# @forge/manifest
|
|
2
2
|
|
|
3
|
-
## 13.4.0-next.3-experimental-
|
|
3
|
+
## 13.4.0-next.3-experimental-241de51
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
7
7
|
- a804b36: Add migration:macrosToIndex module
|
|
8
|
+
- d477002: Allow all optional contexts for global apps EAP
|
|
8
9
|
|
|
9
10
|
### Patch Changes
|
|
10
11
|
|
|
11
12
|
- db66d54: Stop requiring app.compatibility for global:ui and global:fullPage modules
|
|
12
13
|
- 40260f5: Add dashboards filter module
|
|
13
14
|
- 0795370: Accept `.cjs` function handler files
|
|
15
|
+
- c62c72a: Update manifest definitions
|
|
14
16
|
|
|
15
17
|
## 13.4.0-next.3
|
|
16
18
|
|
|
@@ -56,7 +56,6 @@
|
|
|
56
56
|
"title": "compatibility",
|
|
57
57
|
"description": "The app compatibility configuration. If not set, app is not a cross-context or global app.",
|
|
58
58
|
"additionalProperties": false,
|
|
59
|
-
"minProperties": 1,
|
|
60
59
|
"properties": {
|
|
61
60
|
"confluence": {
|
|
62
61
|
"type": "object",
|
|
@@ -2121,6 +2120,16 @@
|
|
|
2121
2120
|
"maxLength": 300,
|
|
2122
2121
|
"pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
|
|
2123
2122
|
},
|
|
2123
|
+
"category": {
|
|
2124
|
+
"type": "string",
|
|
2125
|
+
"enum": [
|
|
2126
|
+
"structure",
|
|
2127
|
+
"media",
|
|
2128
|
+
"embed",
|
|
2129
|
+
"text-formatting",
|
|
2130
|
+
"data-and-charts"
|
|
2131
|
+
]
|
|
2132
|
+
},
|
|
2124
2133
|
"refDataSchema": {
|
|
2125
2134
|
"type": "object",
|
|
2126
2135
|
"additionalProperties": false,
|
|
@@ -2338,6 +2347,16 @@
|
|
|
2338
2347
|
"maxLength": 300,
|
|
2339
2348
|
"pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
|
|
2340
2349
|
},
|
|
2350
|
+
"category": {
|
|
2351
|
+
"type": "string",
|
|
2352
|
+
"enum": [
|
|
2353
|
+
"structure",
|
|
2354
|
+
"media",
|
|
2355
|
+
"embed",
|
|
2356
|
+
"text-formatting",
|
|
2357
|
+
"data-and-charts"
|
|
2358
|
+
]
|
|
2359
|
+
},
|
|
2341
2360
|
"adfExport": {
|
|
2342
2361
|
"type": "object",
|
|
2343
2362
|
"additionalProperties": false,
|
|
@@ -2364,6 +2383,36 @@
|
|
|
2364
2383
|
"minLength": 1,
|
|
2365
2384
|
"maxLength": 255,
|
|
2366
2385
|
"pattern": "^[a-zA-Z0-9-_]+$"
|
|
2386
|
+
},
|
|
2387
|
+
"concurrency": {
|
|
2388
|
+
"type": "integer",
|
|
2389
|
+
"minimum": 1
|
|
2390
|
+
},
|
|
2391
|
+
"cacheConfiguration": {
|
|
2392
|
+
"type": "object",
|
|
2393
|
+
"additionalProperties": false,
|
|
2394
|
+
"properties": {
|
|
2395
|
+
"keyComposition": {
|
|
2396
|
+
"type": "array",
|
|
2397
|
+
"minItems": 1,
|
|
2398
|
+
"uniqueItems": true,
|
|
2399
|
+
"items": {
|
|
2400
|
+
"type": "string",
|
|
2401
|
+
"enum": [
|
|
2402
|
+
"macro.id",
|
|
2403
|
+
"macro.body",
|
|
2404
|
+
"macro.params",
|
|
2405
|
+
"content.id",
|
|
2406
|
+
"content.type",
|
|
2407
|
+
"content.version",
|
|
2408
|
+
"space.id"
|
|
2409
|
+
]
|
|
2410
|
+
}
|
|
2411
|
+
}
|
|
2412
|
+
},
|
|
2413
|
+
"required": [
|
|
2414
|
+
"keyComposition"
|
|
2415
|
+
]
|
|
2367
2416
|
}
|
|
2368
2417
|
},
|
|
2369
2418
|
"required": [
|
|
@@ -2379,6 +2428,36 @@
|
|
|
2379
2428
|
"minLength": 1,
|
|
2380
2429
|
"maxLength": 255,
|
|
2381
2430
|
"pattern": "^[a-zA-Z0-9-_]+$"
|
|
2431
|
+
},
|
|
2432
|
+
"concurrency": {
|
|
2433
|
+
"type": "integer",
|
|
2434
|
+
"minimum": 1
|
|
2435
|
+
},
|
|
2436
|
+
"cacheConfiguration": {
|
|
2437
|
+
"type": "object",
|
|
2438
|
+
"additionalProperties": false,
|
|
2439
|
+
"properties": {
|
|
2440
|
+
"keyComposition": {
|
|
2441
|
+
"type": "array",
|
|
2442
|
+
"minItems": 1,
|
|
2443
|
+
"uniqueItems": true,
|
|
2444
|
+
"items": {
|
|
2445
|
+
"type": "string",
|
|
2446
|
+
"enum": [
|
|
2447
|
+
"macro.id",
|
|
2448
|
+
"macro.body",
|
|
2449
|
+
"macro.params",
|
|
2450
|
+
"content.id",
|
|
2451
|
+
"content.type",
|
|
2452
|
+
"content.version",
|
|
2453
|
+
"space.id"
|
|
2454
|
+
]
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
},
|
|
2458
|
+
"required": [
|
|
2459
|
+
"keyComposition"
|
|
2460
|
+
]
|
|
2382
2461
|
}
|
|
2383
2462
|
},
|
|
2384
2463
|
"required": [
|
|
@@ -2952,33 +3031,32 @@
|
|
|
2952
3031
|
"native"
|
|
2953
3032
|
],
|
|
2954
3033
|
"type": "string"
|
|
3034
|
+
}
|
|
3035
|
+
},
|
|
3036
|
+
"required": [
|
|
3037
|
+
"resource"
|
|
3038
|
+
]
|
|
3039
|
+
},
|
|
3040
|
+
"edit.sidePanel": {
|
|
3041
|
+
"type": "object",
|
|
3042
|
+
"properties": {
|
|
3043
|
+
"resource": {
|
|
3044
|
+
"type": "string",
|
|
3045
|
+
"minLength": 1,
|
|
3046
|
+
"maxLength": 23,
|
|
3047
|
+
"pattern": "^[a-zA-Z0-9_\\-]+$"
|
|
2955
3048
|
},
|
|
2956
|
-
"
|
|
2957
|
-
"
|
|
2958
|
-
"
|
|
2959
|
-
"
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
"pattern": "^[a-zA-Z0-9_\\-]+$"
|
|
2964
|
-
},
|
|
2965
|
-
"render": {
|
|
2966
|
-
"default": "default",
|
|
2967
|
-
"enum": [
|
|
2968
|
-
"default",
|
|
2969
|
-
"native"
|
|
2970
|
-
],
|
|
2971
|
-
"type": "string"
|
|
2972
|
-
}
|
|
2973
|
-
},
|
|
2974
|
-
"required": [
|
|
2975
|
-
"resource"
|
|
2976
|
-
]
|
|
3049
|
+
"render": {
|
|
3050
|
+
"default": "default",
|
|
3051
|
+
"enum": [
|
|
3052
|
+
"default",
|
|
3053
|
+
"native"
|
|
3054
|
+
],
|
|
3055
|
+
"type": "string"
|
|
2977
3056
|
}
|
|
2978
3057
|
},
|
|
2979
3058
|
"required": [
|
|
2980
|
-
"resource"
|
|
2981
|
-
"sidePanel"
|
|
3059
|
+
"resource"
|
|
2982
3060
|
]
|
|
2983
3061
|
},
|
|
2984
3062
|
"resolver": {
|
|
@@ -3024,6 +3102,7 @@
|
|
|
3024
3102
|
"icon",
|
|
3025
3103
|
"resource",
|
|
3026
3104
|
"edit",
|
|
3105
|
+
"edit.sidePanel",
|
|
3027
3106
|
"key"
|
|
3028
3107
|
],
|
|
3029
3108
|
"not": {
|
package/out/schema/manifest.d.ts
CHANGED
|
@@ -12538,6 +12538,7 @@ export interface Modules {
|
|
|
12538
12538
|
}
|
|
12539
12539
|
| string;
|
|
12540
12540
|
description__i18n?: string;
|
|
12541
|
+
category?: 'structure' | 'media' | 'embed' | 'text-formatting' | 'data-and-charts';
|
|
12541
12542
|
refDataSchema?: {
|
|
12542
12543
|
inputType: string;
|
|
12543
12544
|
};
|
|
@@ -12735,15 +12736,62 @@ export interface Modules {
|
|
|
12735
12736
|
}
|
|
12736
12737
|
| string;
|
|
12737
12738
|
description__i18n?: string;
|
|
12739
|
+
category?: 'structure' | 'media' | 'embed' | 'text-formatting' | 'data-and-charts';
|
|
12738
12740
|
adfExport?: {
|
|
12739
12741
|
function: string;
|
|
12740
12742
|
};
|
|
12741
12743
|
static?:
|
|
12742
12744
|
| {
|
|
12743
12745
|
function: string;
|
|
12746
|
+
concurrency?: number;
|
|
12747
|
+
cacheConfiguration?: {
|
|
12748
|
+
keyComposition: [
|
|
12749
|
+
(
|
|
12750
|
+
| 'macro.id'
|
|
12751
|
+
| 'macro.body'
|
|
12752
|
+
| 'macro.params'
|
|
12753
|
+
| 'content.id'
|
|
12754
|
+
| 'content.type'
|
|
12755
|
+
| 'content.version'
|
|
12756
|
+
| 'space.id'
|
|
12757
|
+
),
|
|
12758
|
+
...(
|
|
12759
|
+
| 'macro.id'
|
|
12760
|
+
| 'macro.body'
|
|
12761
|
+
| 'macro.params'
|
|
12762
|
+
| 'content.id'
|
|
12763
|
+
| 'content.type'
|
|
12764
|
+
| 'content.version'
|
|
12765
|
+
| 'space.id'
|
|
12766
|
+
)[]
|
|
12767
|
+
];
|
|
12768
|
+
};
|
|
12744
12769
|
}
|
|
12745
12770
|
| {
|
|
12746
12771
|
endpoint: string;
|
|
12772
|
+
concurrency?: number;
|
|
12773
|
+
cacheConfiguration?: {
|
|
12774
|
+
keyComposition: [
|
|
12775
|
+
(
|
|
12776
|
+
| 'macro.id'
|
|
12777
|
+
| 'macro.body'
|
|
12778
|
+
| 'macro.params'
|
|
12779
|
+
| 'content.id'
|
|
12780
|
+
| 'content.type'
|
|
12781
|
+
| 'content.version'
|
|
12782
|
+
| 'space.id'
|
|
12783
|
+
),
|
|
12784
|
+
...(
|
|
12785
|
+
| 'macro.id'
|
|
12786
|
+
| 'macro.body'
|
|
12787
|
+
| 'macro.params'
|
|
12788
|
+
| 'content.id'
|
|
12789
|
+
| 'content.type'
|
|
12790
|
+
| 'content.version'
|
|
12791
|
+
| 'space.id'
|
|
12792
|
+
)[]
|
|
12793
|
+
];
|
|
12794
|
+
};
|
|
12747
12795
|
};
|
|
12748
12796
|
refDataSchema?: {
|
|
12749
12797
|
inputType: string;
|
|
@@ -12837,6 +12885,7 @@ export interface Modules {
|
|
|
12837
12885
|
}
|
|
12838
12886
|
| string;
|
|
12839
12887
|
description__i18n?: string;
|
|
12888
|
+
category?: 'structure' | 'media' | 'embed' | 'text-formatting' | 'data-and-charts';
|
|
12840
12889
|
refDataSchema?: {
|
|
12841
12890
|
inputType: string;
|
|
12842
12891
|
};
|
|
@@ -13034,15 +13083,62 @@ export interface Modules {
|
|
|
13034
13083
|
}
|
|
13035
13084
|
| string;
|
|
13036
13085
|
description__i18n?: string;
|
|
13086
|
+
category?: 'structure' | 'media' | 'embed' | 'text-formatting' | 'data-and-charts';
|
|
13037
13087
|
adfExport?: {
|
|
13038
13088
|
function: string;
|
|
13039
13089
|
};
|
|
13040
13090
|
static?:
|
|
13041
13091
|
| {
|
|
13042
13092
|
function: string;
|
|
13093
|
+
concurrency?: number;
|
|
13094
|
+
cacheConfiguration?: {
|
|
13095
|
+
keyComposition: [
|
|
13096
|
+
(
|
|
13097
|
+
| 'macro.id'
|
|
13098
|
+
| 'macro.body'
|
|
13099
|
+
| 'macro.params'
|
|
13100
|
+
| 'content.id'
|
|
13101
|
+
| 'content.type'
|
|
13102
|
+
| 'content.version'
|
|
13103
|
+
| 'space.id'
|
|
13104
|
+
),
|
|
13105
|
+
...(
|
|
13106
|
+
| 'macro.id'
|
|
13107
|
+
| 'macro.body'
|
|
13108
|
+
| 'macro.params'
|
|
13109
|
+
| 'content.id'
|
|
13110
|
+
| 'content.type'
|
|
13111
|
+
| 'content.version'
|
|
13112
|
+
| 'space.id'
|
|
13113
|
+
)[]
|
|
13114
|
+
];
|
|
13115
|
+
};
|
|
13043
13116
|
}
|
|
13044
13117
|
| {
|
|
13045
13118
|
endpoint: string;
|
|
13119
|
+
concurrency?: number;
|
|
13120
|
+
cacheConfiguration?: {
|
|
13121
|
+
keyComposition: [
|
|
13122
|
+
(
|
|
13123
|
+
| 'macro.id'
|
|
13124
|
+
| 'macro.body'
|
|
13125
|
+
| 'macro.params'
|
|
13126
|
+
| 'content.id'
|
|
13127
|
+
| 'content.type'
|
|
13128
|
+
| 'content.version'
|
|
13129
|
+
| 'space.id'
|
|
13130
|
+
),
|
|
13131
|
+
...(
|
|
13132
|
+
| 'macro.id'
|
|
13133
|
+
| 'macro.body'
|
|
13134
|
+
| 'macro.params'
|
|
13135
|
+
| 'content.id'
|
|
13136
|
+
| 'content.type'
|
|
13137
|
+
| 'content.version'
|
|
13138
|
+
| 'space.id'
|
|
13139
|
+
)[]
|
|
13140
|
+
];
|
|
13141
|
+
};
|
|
13046
13142
|
};
|
|
13047
13143
|
refDataSchema?: {
|
|
13048
13144
|
inputType: string;
|
|
@@ -13215,11 +13311,11 @@ export interface Modules {
|
|
|
13215
13311
|
edit: {
|
|
13216
13312
|
resource: string;
|
|
13217
13313
|
render?: 'default' | 'native';
|
|
13218
|
-
|
|
13219
|
-
|
|
13220
|
-
|
|
13221
|
-
|
|
13222
|
-
|
|
13314
|
+
[k: string]: unknown;
|
|
13315
|
+
};
|
|
13316
|
+
'edit.sidePanel': {
|
|
13317
|
+
resource: string;
|
|
13318
|
+
render?: 'default' | 'native';
|
|
13223
13319
|
[k: string]: unknown;
|
|
13224
13320
|
};
|
|
13225
13321
|
resolver?:
|
|
@@ -13240,11 +13336,11 @@ export interface Modules {
|
|
|
13240
13336
|
edit: {
|
|
13241
13337
|
resource: string;
|
|
13242
13338
|
render?: 'default' | 'native';
|
|
13243
|
-
|
|
13244
|
-
|
|
13245
|
-
|
|
13246
|
-
|
|
13247
|
-
|
|
13339
|
+
[k: string]: unknown;
|
|
13340
|
+
};
|
|
13341
|
+
'edit.sidePanel': {
|
|
13342
|
+
resource: string;
|
|
13343
|
+
render?: 'default' | 'native';
|
|
13248
13344
|
[k: string]: unknown;
|
|
13249
13345
|
};
|
|
13250
13346
|
resolver?:
|
|
@@ -69,7 +69,6 @@
|
|
|
69
69
|
"delete:issue.remote-link:jira",
|
|
70
70
|
"delete:notes:customer-notes",
|
|
71
71
|
"delete:object:jira",
|
|
72
|
-
"delete:object:jira",
|
|
73
72
|
"delete:operations-info:jira",
|
|
74
73
|
"delete:ops-alert:jira-service-management",
|
|
75
74
|
"delete:ops-config:jira-service-management",
|
|
@@ -226,8 +225,78 @@
|
|
|
226
225
|
"read:forge-app:confluence",
|
|
227
226
|
"read:forge-app:jira",
|
|
228
227
|
"read:forge-proxy:support-api-gateway",
|
|
228
|
+
"read:graph:assets-object:atlassian",
|
|
229
|
+
"read:graph:blogpost:confluence",
|
|
230
|
+
"read:graph:board:jira",
|
|
231
|
+
"read:graph:branch:external",
|
|
232
|
+
"read:graph:build:external",
|
|
233
|
+
"read:graph:calendar-event:external",
|
|
234
|
+
"read:graph:change-proposal:focus",
|
|
235
|
+
"read:graph:comment:atlassian",
|
|
236
|
+
"read:graph:comment:confluence",
|
|
237
|
+
"read:graph:comment:external",
|
|
238
|
+
"read:graph:comment:loom",
|
|
239
|
+
"read:graph:commit:external",
|
|
240
|
+
"read:graph:component-link:compass",
|
|
241
|
+
"read:graph:component:compass",
|
|
229
242
|
"read:graph:confluence",
|
|
243
|
+
"read:graph:conversation:external",
|
|
244
|
+
"read:graph:customer-contact:external",
|
|
245
|
+
"read:graph:customer-org-category:external",
|
|
246
|
+
"read:graph:customer-org:external",
|
|
247
|
+
"read:graph:dashboard:external",
|
|
248
|
+
"read:graph:data-table:external",
|
|
249
|
+
"read:graph:database:confluence",
|
|
250
|
+
"read:graph:deal:external",
|
|
251
|
+
"read:graph:deployment:external",
|
|
252
|
+
"read:graph:design:external",
|
|
253
|
+
"read:graph:document:external",
|
|
254
|
+
"read:graph:feature-flag:external",
|
|
255
|
+
"read:graph:focus-area-status-update:focus",
|
|
256
|
+
"read:graph:focus-area:focus",
|
|
257
|
+
"read:graph:folder:confluence",
|
|
258
|
+
"read:graph:goal-update:atlassian",
|
|
259
|
+
"read:graph:goal:atlassian",
|
|
260
|
+
"read:graph:issue-comment:jira",
|
|
261
|
+
"read:graph:issue-remote-link:jira",
|
|
262
|
+
"read:graph:issue-status:jira",
|
|
263
|
+
"read:graph:issue-worklog:jira",
|
|
264
|
+
"read:graph:issue:jira",
|
|
230
265
|
"read:graph:jira",
|
|
266
|
+
"read:graph:meeting-recurrence:loom",
|
|
267
|
+
"read:graph:meeting:loom",
|
|
268
|
+
"read:graph:message:external",
|
|
269
|
+
"read:graph:organisation:external",
|
|
270
|
+
"read:graph:page:confluence",
|
|
271
|
+
"read:graph:position:external",
|
|
272
|
+
"read:graph:position:talent",
|
|
273
|
+
"read:graph:priority:jira",
|
|
274
|
+
"read:graph:project-update:atlassian",
|
|
275
|
+
"read:graph:project:atlassian",
|
|
276
|
+
"read:graph:project:external",
|
|
277
|
+
"read:graph:project:jira",
|
|
278
|
+
"read:graph:pull-request:external",
|
|
279
|
+
"read:graph:remote-link:external",
|
|
280
|
+
"read:graph:repository:external",
|
|
281
|
+
"read:graph:scorecard:compass",
|
|
282
|
+
"read:graph:service:external",
|
|
283
|
+
"read:graph:space:confluence",
|
|
284
|
+
"read:graph:space:external",
|
|
285
|
+
"read:graph:space:loom",
|
|
286
|
+
"read:graph:sprint:jira",
|
|
287
|
+
"read:graph:tag:atlassian",
|
|
288
|
+
"read:graph:team-type:atlassian",
|
|
289
|
+
"read:graph:team:atlassian",
|
|
290
|
+
"read:graph:team:opsgenie",
|
|
291
|
+
"read:graph:user:atlassian",
|
|
292
|
+
"read:graph:version:jira",
|
|
293
|
+
"read:graph:video:external",
|
|
294
|
+
"read:graph:video:loom",
|
|
295
|
+
"read:graph:vulnerability:external",
|
|
296
|
+
"read:graph:whiteboard:confluence",
|
|
297
|
+
"read:graph:work-item:external",
|
|
298
|
+
"read:graph:worker:external",
|
|
299
|
+
"read:graph:worker:talent",
|
|
231
300
|
"read:group:confluence",
|
|
232
301
|
"read:group:jira",
|
|
233
302
|
"read:hierarchical-content:confluence",
|
|
@@ -279,7 +348,6 @@
|
|
|
279
348
|
"read:notes:customer-notes",
|
|
280
349
|
"read:notification-scheme:jira",
|
|
281
350
|
"read:object:jira",
|
|
282
|
-
"read:object:jira",
|
|
283
351
|
"read:operations-info:jira",
|
|
284
352
|
"read:ops-alert:jira-service-management",
|
|
285
353
|
"read:ops-config:jira-service-management",
|
|
@@ -494,7 +562,6 @@
|
|
|
494
562
|
"write:non-project-work:capacity-planning",
|
|
495
563
|
"write:notes:customer-notes",
|
|
496
564
|
"write:object:jira",
|
|
497
|
-
"write:object:jira",
|
|
498
565
|
"write:operations-info:jira",
|
|
499
566
|
"write:ops-alert:jira-service-management",
|
|
500
567
|
"write:ops-config:jira-service-management",
|
package/out/text/errors.js
CHANGED
|
@@ -288,7 +288,7 @@ exports.errors = {
|
|
|
288
288
|
invalidConfluenceModuleInJira: () => 'Using the module `confluence:fullPage` is invalid when the required product is Jira. Full page modules must match the required product. Use `jira:fullPage` as the module type, or change the required product to Confluence in your manifest.yml compatibility settings.',
|
|
289
289
|
invalidJiraModuleInConfluence: () => 'Using the module `jira:fullPage` is invalid when the required product is Confluence. Full page modules must match the required product. Use `confluence:fullPage` as the module type, or change the required product to Jira in your manifest.yml compatibility settings.',
|
|
290
290
|
invalidProduct: (product) => `Invalid product '${product}' in app.compatibility. Only 'jira' and 'confluence' are supported as compatibility products for this module.`,
|
|
291
|
-
oneRequiredContext: () => '
|
|
291
|
+
oneRequiredContext: () => 'Only one context (Jira, Confluence, or Compass) must have `required:true` in app.compatibility.'
|
|
292
292
|
}
|
|
293
293
|
},
|
|
294
294
|
translations: {
|
|
@@ -18,7 +18,7 @@ class CompatibilityValidator {
|
|
|
18
18
|
const compatibility = app?.compatibility || {};
|
|
19
19
|
const hasCompatibilityKeys = Object.keys(compatibility).length > 0;
|
|
20
20
|
const requiredContexts = Object.keys(compatibility).filter((key) => compatibility[key]?.required === true);
|
|
21
|
-
if (hasCompatibilityKeys && requiredContexts.length
|
|
21
|
+
if (hasCompatibilityKeys && requiredContexts.length > 1) {
|
|
22
22
|
validationErrors.push({
|
|
23
23
|
message: text_1.errors.app.compatibility.oneRequiredContext(),
|
|
24
24
|
reference: text_2.References.SchemaError,
|
package/package.json
CHANGED