@forge/manifest
13.6.0-next.313.6.0-next.4
~
Modified (5 files)
Index: package/out/validators/display-conditions-validator.js
===================================================================
--- package/out/validators/display-conditions-validator.js
+++ package/out/validators/display-conditions-validator.js
@@ -8,8 +8,9 @@
const isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]';
const errors = text_1.errors.modules.displayConditions;
const pageLocation = (page, index) => typeof page?.route === 'string' ? `page "${page.route}"` : `page[${index}]`;
const sectionLocation = (section, index) => typeof section?.header === 'string' ? `section "${section.header}"` : `section[${index}]`;
+const isJiraOrJsmModuleType = (moduleType) => moduleType.startsWith('jira:') || moduleType.startsWith('jiraServiceManagement:');
class DisplayConditionsValidator {
schema;
validateSchema;
moduleSchemas;
@@ -21,21 +22,24 @@
const properties = this.schema.properties;
this.moduleSchemas = properties.modules?.properties;
this.supportedOperations = properties.operations?.items?.enum;
}
- flattenDisplayConditions(moduleKey, displayConditions, nesting = 0, location) {
+ flattenDisplayConditions(moduleType, moduleKey, displayConditions, nesting = 0, location) {
if (nesting >= 10) {
throw Error(errors.overcomplicated(moduleKey, location));
}
if (Array.isArray(displayConditions)) {
+ if (isJiraOrJsmModuleType(moduleType)) {
+ return displayConditions.flatMap((entry) => this.flattenDisplayConditions(moduleType, moduleKey, entry, nesting, location));
+ }
return [displayConditions];
}
const result = [];
const obj = {};
const keys = Object.keys(displayConditions);
for (let i = 0; i < keys.length; i += 1) {
if (this.supportedOperations.includes(keys[i])) {
- result.push(...this.flattenDisplayConditions(moduleKey, displayConditions[keys[i]], nesting + 1, location));
+ result.push(...this.flattenDisplayConditions(moduleType, moduleKey, displayConditions[keys[i]], nesting + 1, location));
}
else {
obj[keys[i]] = displayConditions[keys[i]];
}
@@ -89,9 +93,9 @@
return;
}
let flattened = [];
try {
- flattened = this.flattenDisplayConditions(moduleKey, displayConditions, 0, location);
+ flattened = this.flattenDisplayConditions(moduleType, moduleKey, displayConditions, 0, location);
}
catch (e) {
reportError('n/a', e.message);
return; Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/manifest",
- "version": "13.6.0-next.3",
+ "version": "13.6.0-next.4",
"description": "Definitions and validations of the Forge manifest",
"main": "out/index.js",
"scripts": {
"build": "yarn run compile", Index: package/out/validators/display-conditions-validator.d.ts.map
===================================================================
--- package/out/validators/display-conditions-validator.d.ts.map
+++ package/out/validators/display-conditions-validator.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"display-conditions-validator.d.ts","sourceRoot":"","sources":["../../src/validators/display-conditions-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,cAAc,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAiBpD,qBAAa,0BAA0B,CAAC,CAAC,CACvC,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAM7E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAElC,MAAM,EAAE,MAAM;IAoE3C,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,GAAG;IA2BxG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IAanD,OAAO,CAAC,qCAAqC;IA0C7C,OAAO,CAAC,yBAAyB;IAuD3B,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;CA4ErD"}
\ No newline at end of file
+{"version":3,"file":"display-conditions-validator.d.ts","sourceRoot":"","sources":["../../src/validators/display-conditions-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,cAAc,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAsBpD,qBAAa,0BAA0B,CAAC,CAAC,CACvC,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAM7E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAElC,MAAM,EAAE,MAAM;IAoE3C,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,GAAG,EACtB,OAAO,SAAI,EACX,QAAQ,CAAC,EAAE,MAAM,GAChB,GAAG;IAqCN,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IAanD,OAAO,CAAC,qCAAqC;IA0C7C,OAAO,CAAC,yBAAyB;IAuD3B,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;CA4ErD"}
\ No newline at end of file File too large for inline diff
Index: package/out/validators/display-conditions-validator.d.ts
===================================================================
--- package/out/validators/display-conditions-validator.d.ts
+++ package/out/validators/display-conditions-validator.d.ts
@@ -6,9 +6,9 @@
private readonly validateSchema;
private readonly moduleSchemas;
private readonly supportedOperations;
constructor(schema: object);
- flattenDisplayConditions(moduleKey: string, displayConditions: any, nesting?: number, location?: string): any;
+ flattenDisplayConditions(moduleType: string, moduleKey: string, displayConditions: any, nesting?: number, location?: string): any;
toValidationError(message: string): ValidationError;
private collectNestedDisplayConditionsTargets;
private validateDisplayConditions;
validate(manifest: ManifestObject<ManifestSchema> | undefined): Promise<ManifestValidationResult<ManifestSchema>>;