@ibm/zapp-core 1.7.0 → 1.9.0

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/LICENSE.txt CHANGED
@@ -3,7 +3,7 @@ LICENSE INFORMATION
3
3
  The Programs listed below are licensed under the following License Information terms and conditions in addition to the Program license terms previously agreed to by Client and IBM. If Client does not have previously agreed to license terms in effect for the Program, the International License Agreement for Non-Warranted Programs (i125-5589-06) applies.
4
4
 
5
5
  Program Name (Program Number):
6
- IBM Zapp Core Library V1.7 (Plug-in)
6
+ IBM Zapp Core Library V1.9 (Plug-in)
7
7
 
8
8
  The following standard terms apply to Licensee's use of the Program.
9
9
 
package/NOTICES.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  NOTICES AND INFORMATION
2
2
 
3
- IBM Zapp Core Library V1.7
3
+ IBM Zapp Core Library V1.9
4
4
 
5
5
  The IBM license agreement and any applicable information on the web
6
6
  download page for IBM products refers Licensee to this file for details
@@ -25,7 +25,7 @@ and all liability for errors and omissions or for any damages accruing
25
25
  from the use of this NOTICES file or its contents, including without
26
26
  limitation URLs or references to any third party websites.
27
27
 
28
- Start of Notices for IBM Zapp Core Library 1.7
28
+ Start of Notices for IBM Zapp Core Library 1.9
29
29
  =====================================================================
30
30
 
31
31
  =====================================================================
@@ -663,7 +663,7 @@ For more information, please refer to <http://unlicense.org/>
663
663
  END OF UNLICENSE NOTICES AND INFORMATION
664
664
  =====================================================================
665
665
 
666
- End of Notices for IBM Zapp Core Library 1.7
666
+ End of Notices for IBM Zapp Core Library 1.9
667
667
 
668
668
 
669
669
  L/N: L-KTSR-8RJLXL
package/lib/index.d.ts CHANGED
@@ -126,7 +126,7 @@ export abstract class SchemaDocumentCache {
126
126
  protected normalizePath(inputPath: string): string;
127
127
  }
128
128
  /**
129
- * JSON schema for zapp.json and zapp.yaml files. Version 1.7.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2025. All Rights Reserved.
129
+ * JSON schema for zapp.json and zapp.yaml files. Version 1.9.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2026. All Rights Reserved.
130
130
  */
131
131
  export type IBMZappDocument = CoreProperties;
132
132
  /**
@@ -141,7 +141,7 @@ export type Person = {
141
141
  /**
142
142
  * Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.
143
143
  */
144
- export type Profile = DependencyBasedBuildProfile | RSEAPIProfile | PreprocessorProfile | TestProfile | GalasaPropertiesProfile;
144
+ export type Profile = DependencyBasedBuildProfile | RSEAPIProfile | PreprocessorProfile | TestProfile | GalasaPropertiesProfile | ZCodeScanProfile | CodeCoverageProfile;
145
145
  /**
146
146
  * Specify which application load modules correspond to application source files.
147
147
  */
@@ -566,9 +566,13 @@ export interface FunctionalTestSettings {
566
566
  */
567
567
  localImsDbdFiles?: string[];
568
568
  /**
569
- * Specify an array of local Db2 Config files.
569
+ * Specify an array of local Db2 config files.
570
570
  */
571
571
  localDb2Config?: string[];
572
+ /**
573
+ * Specify an array of local COBOL source code files from the config-files directory to be used for generating accurate test files. Ex: ims.cbl.
574
+ */
575
+ localCobolSourceFiles?: string[];
572
576
  substitutionMap?: SubstitutionMapSettings;
573
577
  }
574
578
  /**
@@ -917,6 +921,52 @@ export interface AdditionalPropertiesItemsGalasaSettings {
917
921
  */
918
922
  value?: string;
919
923
  }
924
+ export interface ZCodeScanProfile {
925
+ name: string;
926
+ type: 'zcodescan';
927
+ settings: ZCodeScanSettings;
928
+ }
929
+ /**
930
+ * IBM ZCodeScan settings.
931
+ */
932
+ export interface ZCodeScanSettings {
933
+ /**
934
+ * The IBM ZCodeScan rule files are YAML files that contains a list of rules that needs to be applied on codebase.
935
+ */
936
+ rules?: ZCodeScanRuleItem[];
937
+ /**
938
+ * The IBM ZCodeScan custom rule model defines custom rule domains for IBM ZCodeScan code analysis. It structures the code quality rules that can be used in a static analysis.
939
+ */
940
+ customRuleModels?: ZCodeScanRuleItem[];
941
+ /**
942
+ * The IBM ZCodeScan custom rule Java JAR files. The Java code needs to be packaged into a Java jar file so that it can be consumed by IBM ZCodeScan.
943
+ */
944
+ customRuleJars?: ZCodeScanRuleItem[];
945
+ }
946
+ export interface ZCodeScanRuleItem {
947
+ /**
948
+ * The storage type.
949
+ */
950
+ type: 'local';
951
+ /**
952
+ * An array of file locations. For 'local' values can be absolute and relative filename paths using GLOB patterns.
953
+ */
954
+ locations: string[];
955
+ }
956
+ export interface CodeCoverageProfile {
957
+ name: string;
958
+ type: 'codecoverage';
959
+ settings: CodeCoverageSettings;
960
+ }
961
+ /**
962
+ * Code coverage settings.
963
+ */
964
+ export interface CodeCoverageSettings {
965
+ /**
966
+ * List of relative path names (with GLOB wildcard support) to programs that can only be viewed using the Code Coverage extension's LISTING view.
967
+ */
968
+ listingOnlyPrograms?: string[];
969
+ }
920
970
  /**
921
971
  * A meta-data representation of a zapp file
922
972
  * providing path and type.
@@ -1148,6 +1198,8 @@ export const zappConstants: {
1148
1198
  profileTypePreprocessor: string;
1149
1199
  profileTypeTest: string;
1150
1200
  profileTypeGalasa: string;
1201
+ profileTypeZCodeScan: string;
1202
+ profileTypeCodeCoverage: string;
1151
1203
  };
1152
1204
  /**
1153
1205
  * A collection of business logic for accessing, manipulating, validating
@@ -1277,5 +1329,28 @@ export class GalasaController extends ZappProfilesController {
1277
1329
  static getGalasaProfileNames(workspacePath: string): string[] | undefined;
1278
1330
  static getGalasaSettings(workspacePath: string, profileName?: string): GalasaSettingsItem | undefined;
1279
1331
  }
1332
+ /**
1333
+ * A collection of business logic for accessing, manipulating, validating
1334
+ * user build data in ZAPP documents.
1335
+ */
1336
+ export class ZCodeScanController extends ZappProfilesController {
1337
+ /**
1338
+ * @param {string} workspacePath the location of the workspace with a zapp file
1339
+ * @returns {(string[] | undefined)} a list of IBM ZCodeScan profiles defined in the zapp file
1340
+ */
1341
+ static getZCodeScanProfileNames(workspacePath: string): string[] | undefined;
1342
+ /**
1343
+ * @param {string} workspacePath the location of the workspace with a zapp file
1344
+ * @param {string} [profileName] optional, if multiple IBM ZCodeScan profiles are available then qualify by name
1345
+ * @returns {(zapp.ZCodeScanSettings | undefined)}
1346
+ * ZCodeScanSettings object of the profile that matches the profileName
1347
+ * or if omitted the first one found. Undefined if not available.
1348
+ */
1349
+ static getZCodeScanSettings(workspacePath: string, profileName?: string): ZCodeScanSettings | undefined;
1350
+ }
1351
+ export class CodeCoverageController extends ZappProfilesController {
1352
+ static getCodeCoverageProfileNames(workspacePath: string): string[] | undefined;
1353
+ static getCodeCoverageSettings(workspacePath: string, profileName?: string): CodeCoverageSettings | undefined;
1354
+ }
1280
1355
 
1281
1356
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var $hsidQ$fs=require("fs"),$hsidQ$yawnyamlcjs=require("yawn-yaml/cjs"),$hsidQ$path=require("path"),$hsidQ$os=require("os"),$hsidQ$jsyaml=require("js-yaml"),$hsidQ$ajv=require("ajv"),$hsidQ$ajvformats=require("ajv-formats");function $parcel$exportWildcard(e,t){return Object.keys(t).forEach(function(i){"default"===i||"__esModule"===i||Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[i]}})}),e}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}function $parcel$export(e,t,i,r){Object.defineProperty(e,t,{get:i,set:r,enumerable:!0,configurable:!0})}var $db89a39d91b9746d$exports={},$27816e9aa5a16a75$exports={},$06319fbb034d54be$exports={};$parcel$export($06319fbb034d54be$exports,"SchemaDocumentInstance",()=>$06319fbb034d54be$export$3fa3a1ffc042110d);class $06319fbb034d54be$export$3fa3a1ffc042110d{constructor(e,t){this.isValid=!1,t&&this.prependErrorMessage(t);try{this.yawn=new($parcel$interopDefault($hsidQ$yawnyamlcjs))(e),this.validate()}catch(e){this.prependErrorMessage(e?.message)}}getAsYaml(){return this.yawn?.yaml}getAsJson(){return JSON.stringify(this.yawn?.json)}getAsObject(){return this.yawn?.json}static async readFileWithRetry(e){let t="";for(let i=0;i<10&&!(t=await $hsidQ$fs.promises.readFile(e,"utf8"));i++)await new Promise(e=>setTimeout(e,100));return t}write(){if(!this.isValid)return void this.appendErrorMessage(`Tried to write invalid document "${this.file?.path}"`);if(this.file?.path){let e="# Undefined "+this.type+" document.";"json"===this.file.type&&(e=JSON.stringify(this.getAsObject())),"yaml"===this.file.type&&(e=this.getAsYaml()||e),$hsidQ$fs.writeFileSync(this.file.path,e,{encoding:"utf-8"})}}writeToFile(e){this.file=e,this.write()}appendErrorMessage(e){let t=this.errorMessages?`${this.errorMessages}
1
+ var $hsidQ$fs=require("fs"),$hsidQ$yawnyamlcjs=require("yawn-yaml/cjs"),$hsidQ$path=require("path"),$hsidQ$os=require("os"),$hsidQ$jsyaml=require("js-yaml"),$hsidQ$ajv=require("ajv"),$hsidQ$ajvformats=require("ajv-formats");function $parcel$exportWildcard(e,t){return Object.keys(t).forEach(function(i){"default"===i||"__esModule"===i||Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[i]}})}),e}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}function $parcel$export(e,t,i,a){Object.defineProperty(e,t,{get:i,set:a,enumerable:!0,configurable:!0})}var $db89a39d91b9746d$exports={},$27816e9aa5a16a75$exports={},$06319fbb034d54be$exports={};$parcel$export($06319fbb034d54be$exports,"SchemaDocumentInstance",()=>$06319fbb034d54be$export$3fa3a1ffc042110d);class $06319fbb034d54be$export$3fa3a1ffc042110d{constructor(e,t){this.isValid=!1,t&&this.prependErrorMessage(t);try{this.yawn=new($parcel$interopDefault($hsidQ$yawnyamlcjs))(e),this.validate()}catch(e){this.prependErrorMessage(e?.message)}}getAsYaml(){return this.yawn?.yaml}getAsJson(){return JSON.stringify(this.yawn?.json)}getAsObject(){return this.yawn?.json}static async readFileWithRetry(e){let t="";for(let i=0;i<10&&!(t=await $hsidQ$fs.promises.readFile(e,"utf8"));i++)await new Promise(e=>setTimeout(e,100));return t}write(){if(!this.isValid)return void this.appendErrorMessage(`Tried to write invalid document "${this.file?.path}"`);if(this.file?.path){let e="# Undefined "+this.type+" document.";"json"===this.file.type&&(e=JSON.stringify(this.getAsObject())),"yaml"===this.file.type&&(e=this.getAsYaml()||e),$hsidQ$fs.writeFileSync(this.file.path,e,{encoding:"utf-8"})}}writeToFile(e){this.file=e,this.write()}appendErrorMessage(e){let t=this.errorMessages?`${this.errorMessages}
2
2
  `:"";this.errorMessages=`${t}- ${e||"Unknown Error reading "+this.type+" file."}`}prependErrorMessage(e){let t=this.errorMessages?`
3
- ${this.errorMessages}`:"";this.errorMessages=`- ${e||"Unknown Error reading "+this.type+" file."}${t}`}}var $b1285f501b3f0a4a$exports={};$parcel$export($b1285f501b3f0a4a$exports,"SchemaDocumentCache",()=>$b1285f501b3f0a4a$export$2941748d4d27acfc);class $b1285f501b3f0a4a$export$2941748d4d27acfc{constructor(e){this.type=e,this.documentsCache=new Map,this.workspacesMap=new Map,this.numberDocsAdded=0,this.numberDocsRemoved=0,this.numberDocsFound=0}addDocument(e,t,i){let r=this.normalizePath(e),a=this.normalizePath(t);this.documentsCache.set(r,i),this.workspacesMap.set(a,r)}removeDocument(e){let t=this.normalizePath(e);this.workspacesMap.forEach((e,i)=>{e===t&&this.workspacesMap.delete(i)});let i=this.documentsCache.delete(t);return i&&this.numberDocsRemoved++,i}getCacheSize(){return this.documentsCache.size}getAllDocumentLocations(){return[...this.documentsCache.keys()]}clearSchemaDocument(e){if(!e)return;let t=this.normalizePath(e),i=$hsidQ$path.dirname(t);this.workspacesMap.has(i)&&this.workspacesMap.delete(i),this.documentsCache.has(t)&&(this.documentsCache.delete(t),this.numberDocsRemoved++)}clearCache(){this.workspacesMap.clear(),this.documentsCache.clear()}getCacheStats(){return{documentsCacheSize:this.documentsCache.size,workspacesMapSize:this.workspacesMap.size,numberDocsAdded:this.numberDocsAdded,numberDocsRemoved:this.numberDocsRemoved,numberDocsFound:this.numberDocsFound}}normalizePath(e){if(!e)return e;let t=$hsidQ$path.normalize(e);if("win32"===$hsidQ$os.platform()){let e=$hsidQ$path.basename(t);if(this.isValidFilename(e)){let i=$hsidQ$path.dirname(t);t=$hsidQ$path.join(i.toUpperCase(),e)}else t=t.toUpperCase()}return t}}$parcel$exportWildcard($27816e9aa5a16a75$exports,$06319fbb034d54be$exports),$parcel$exportWildcard($27816e9aa5a16a75$exports,$b1285f501b3f0a4a$exports),$parcel$exportWildcard($db89a39d91b9746d$exports,$27816e9aa5a16a75$exports);var $f8f1f978d697847d$exports={},$29ee84a662b1b8fd$exports={},$fac1dbefdcd03230$exports={};$parcel$export($fac1dbefdcd03230$exports,"PropertyGroupsController",()=>$fac1dbefdcd03230$export$117dc7eeb984edf6);var $33f2606524745ccb$exports={};$parcel$export($33f2606524745ccb$exports,"ZappDocumentsCache",()=>$33f2606524745ccb$export$c06d94e9d38b8bae);var $04802ddbf77b0972$exports={};$parcel$export($04802ddbf77b0972$exports,"ZappDocumentInstance",()=>$04802ddbf77b0972$export$20a2815e8c83febb);var $e2f60dcf3921646c$exports={};$e2f60dcf3921646c$exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBM Zapp Document","description":"JSON schema for zapp.json and zapp.yaml files. Version 1.7.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2025. All Rights Reserved.","type":"object","definitions":{"coreProperties":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"The name of the Z Project.","type":"string","maxLength":214,"minLength":1},"description":{"description":"This helps people understand your project as it would be used by tools.","type":"string"},"version":{"description":"Version is a string and it must be parsable for managing dependencies.","type":"string","default":"1.0.0"},"groupId":{"description":"Defines a group name that is shared for each application part in case of applications composed of multiple parts. Allows to uniquely identify the parts by concatenating with the artifact id. For example a groupId `com.ibm.wazi` with an artifactId `service` would create the unique application identifier `com.ibm.wazi.service`.","type":"string","examples":["com.ibm.wazi","payments"]},"artifactId":{"description":"Define id of the application artifact. Use it in combination with a groupId for multi-part applications.","type":"string","default":"","examples":["sam"]},"parentId":{"description":"In case of a multi-part application defines the name of the parent application part. This zapp will inherit properties such as propertyGroups defined in the parent.","type":"string","default":"","examples":["com.ibm.wazi.parent"]},"keywords":{"description":"This helps people discover your project.","type":"array","items":{"type":"string"}},"homepage":{"description":"The url to the project homepage.","type":"string","oneOf":[{"format":"uri"},{"enum":["."]}]},"license":{"type":"string","description":"You should specify a license for your package so that people know how they are permitted to use it and any restrictions you\'re placing on it."},"author":{"$ref":"#/definitions/person"},"contributors":{"description":"A list of people who contributed to this package.","type":"array","items":{"$ref":"#/definitions/person"},"minItems":1},"maintainers":{"description":"A list of people who maintain this package.","type":"array","items":{"$ref":"#/definitions/person"},"minItems":1},"propertyGroups":{"description":"A list of properties defining path names for resolving dependencies.","type":"array","items":{"$ref":"#/definitions/propertyGroupItem"},"minItems":1},"profiles":{"description":"Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.","type":"array","items":{"$ref":"#/definitions/profile"},"minItems":1}}},"propertyGroupItem":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"The name of the property group, which is used in hovers and error messages.","examples":["sample-local","sample-remote"]},"language":{"type":"string","enum":["cobol","pl1","hlasm","rexx","jcl"],"description":"Limits the property group to one specific language."},"compilerOptions":{"type":"string","description":"Global compiler options separated by a comma that impact the parsing of the programs for the editor. Requires that you specify a language. If there are multiple Property Groups for a language with compiler option then they will be concatenated."},"libraries":{"type":"array","description":"An array of potential library locations defining the search order for include files. Libraries with the name \'syslib\' will be handled as default include locations. The list can contain many entries of the type \'local\' or \'mvs\'. It can contain items of the same type twice in case, for example, you want to search in remote locations first, then some local location, and if still not found more remote locations.","items":{"$ref":"#/definitions/libraryItem"},"minItems":1}}},"libraryItem":{"type":"object","additionalProperties":false,"required":["name","type"],"properties":{"name":{"type":"string","description":"Name of the library. The default name should be `syslib` if using unnamed libraries.","default":"syslib","examples":["syslib","jcllib","proclib","maclib","currencylib"]},"type":{"type":"string","enum":["mvs","local"],"description":"The type of the property group defining where dependencies should be located. Allowed values are \'local\' for using a local workspace and \'mvs\' for dependencies located in MVS data sets.","default":"local","examples":["local","mvs"]},"locations":{"type":"array","description":"An array of include file locations. For \'local\' libraries values can be absolute and relative filename paths using GLOB patterns. For \'mvs\' libraries value can be data set names. GLOB patterns for data sets are currently not supported.","items":{"type":"string"},"examples":["**/copybook","USER1.SAMPLE.COBCOPY"]}},"if":{"properties":{"name":{"enum":["jcllib","proclib"],"type":"string"},"type":{"const":"mvs","type":"string"}}},"then":{"required":["name","type"]},"else":{"required":["name","type","locations"]}},"person":{"description":"A person who has been involved in creating or maintaining this package","type":["object","string"],"required":["name"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"email":{"type":"string","format":"email"}}},"profile":{"type":"object","description":"Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.","additionalProperties":false,"required":["name","type"],"properties":{"name":{"type":"string","description":"The name of the profile.","examples":["dbb-build"]},"language":{"type":"string","enum":["cobol","pl1"],"description":"If the profile type supports it then it defines a scope for the profile to one specific programming language. For example, a profile that defines preprocessor commands for COBOL."},"type":{"type":"string","enum":["dbb","rseapi","debug","preprocessor","test","galasa"],"description":"The type of the profile.","default":"dbb"},"location":{"type":"string","enum":["mvs","local"],"description":"If the profile type supports it then it defines a scope for the profile to a specific location for resources. For example, a profile that defines preprocessor commands to be executed on MVS or local files.","default":"local"},"settings":{"description":"Settings objects specific to the type specified for the profile.","type":"object"}},"oneOf":[{"title":"Dependency-Based Build profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"dbb","type":"string"},"settings":{"oneOf":[{"$ref":"#/definitions/dbbBuilderSettings"},{"$ref":"#/definitions/dbbGroovySettings"}]}}},{"title":"RSE API profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"rseapi","type":"string"},"settings":{"$ref":"#/definitions/rseapiSettingsItem"}}},{"title":"Preprocessor profile","required":["name","type","settings","location","language"],"additionalProperties":false,"properties":{"name":{"type":"string"},"language":{"type":"string"},"type":{"const":"preprocessor","type":"string"},"location":{"type":"string"},"settings":{"oneOf":[{"$ref":"#/definitions/localPreprocessorSettingsItem"},{"$ref":"#/definitions/mvsPreprocessorSettingsItem"}]}},"if":{"properties":{"location":{"const":"local","type":"string"}}},"then":{"properties":{"settings":{"$ref":"#/definitions/localPreprocessorSettingsItem"}}},"else":{"properties":{"settings":{"$ref":"#/definitions/mvsPreprocessorSettingsItem"}}}},{"title":"Test profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"test","type":"string"},"settings":{"$ref":"#/definitions/testSettingsItem"}}},{"title":"Galasa Properties profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"galasa","type":"string"},"settings":{"$ref":"#/definitions/galasaSettingsItem"}}}]},"dbbGroovySettings":{"type":"object","additionalProperties":false,"required":["application","command"],"description":"Groovyz user build script properties for running user build on remote host.","properties":{"application":{"type":"string","description":"Defines the name of the application to build. Will be used to create a folder on USS to upload all files to."},"command":{"type":"string","description":"Command that the build script is executed with such as the path to groovyz and it\'s parameters."},"buildScriptPath":{"type":"string","description":"The full path of build script on the remote host that should be used with the command."},"buildScriptArgs":{"type":"array","items":{"type":"string"},"description":"A list of strings that are the parameters for the build script. Check the documentation for built-in variables, such as the name of the program to build, that can be used here."},"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be uploaded to USS for a build. Relative path names are interpreted relative to the location of the ZAPP file that is being used for the build, which is a ZAPP file in the same workspace as the program to be build."},"logFilePatterns":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be downloaded from USS after the build. Relative path names are interpreted relative to the DBB log directory user setting. If not provided then all files of the user setting location will be downloaded."}}},"dbbBuilderSettings":{"type":"object","additionalProperties":false,"required":["command","lifecycle","lifecycleArgs"],"description":"zBuilder user build properties for running user build on remote host.","properties":{"command":{"type":"string","description":"Command that the build script is executed with such as the path to groovyz and it\'s parameters."},"lifecycle":{"type":"string","description":"Defines named build lifecycles that represent different build scenarios the customer needs to perform and can be executed from the DBB CLI."},"lifecycleArgs":{"type":"array","description":"Additional arguments and options for the lifecycle.","items":{"type":"string"}},"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be uploaded to USS for a build. Relative path names are interpreted relative to the location of the ZAPP file that is being used for the build, which is a ZAPP file in the same workspace as the program to be build."},"logFilePatterns":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be downloaded from USS after the build. Relative path names are interpreted relative to the DBB log directory user setting. If not provided then all files of the user setting location will be downloaded."}}},"rseapiSettingsItem":{"type":"object","additionalProperties":false,"description":"RSE API client settings for interactions with a z/OS remote host running an RSE API server.","required":["mappings","default.encoding"],"properties":{"mappings":{"type":"array","description":"A list of mapping objects that map local file extensions to transfer modes and encodings to MVS data sets that can be specified using wildcards.","items":{"$ref":"#/definitions/rseapiSettingsItemMapping"}},"default.encoding":{"type":"string","description":"The encoding to be used when no mapping can be found. If not provided then either the user or server default will be used."}}},"rseapiSettingsItemMapping":{"type":"object","additionalProperties":false,"description":"One mapping that contains at least transfer and resource values.","properties":{"extension":{"type":"string","description":"A local file extension such as cbl or pl1."},"transfer":{"type":"string","enum":["text","binary"],"description":"The transfer mode to be used. Can be \'text\' or \'binary\'."},"resource":{"type":"string","description":"The data set name to be mapped to. Can use a wildcard such as \'**CPY\'."},"encoding":{"type":"string","description":"The encoding to be used for text transfer. See the RSE API documentation for the values allowed."},"memberMappings":{"type":"array","items":{"type":"object","additionalProperties":false,"description":"One member mapping that contains at least transfer and resource values.","properties":{"extension":{"type":"string","description":"A local file extension such as cbl or pl1."},"transfer":{"type":"string","enum":["text","binary"],"description":"The transfer mode to be used. Can be \'text\' or \'binary\'."},"encoding":{"type":"string","description":"The encoding to be used for text transfer. See the RSE API documentation for the values allowed."},"resource":{"type":"string","description":"The data set member name to be mapped to. Can use a wildcard such as \'**CPY\'."}}},"description":"A nested mappings array with resource mappings to members of the data sets that were mapped by the parent mapping."}}},"localPreprocessorSettingsItem":{"type":"object","additionalProperties":false,"description":"Preprocessor properties for preprocessing COBOL/PL/I files.","required":["command","outputPath","fileExtension"],"properties":{"command":{"type":"string","description":"The command to run to execute the preprocessor executable."},"outputPath":{"type":"string","description":"Path where preprocessor produces its build output."},"fileExtension":{"type":"string","description":"The desired file extension for the post-processed file."},"environmentVariables":{"type":"object","additionalProperties":false,"description":"Specifies any user defined environment variables to be passed to the preprocessor.","patternProperties":{"[a-zA-Z_][a-zA-Z0-9_]*":{"anyOf":[{"type":"string"}]}}}}},"mvsPreprocessorSettingsItem":{"type":"object","additionalProperties":false,"description":"Preprocessor properties for preprocessing COBOL/PL/I files.","required":["commandDataSet","outputDataSet","tempDataHLQ"],"properties":{"commandDataSet":{"type":"string","description":"Specifies an input listing sequential data set."},"commandParameters":{"type":"string","description":"The parameters for the command being run."},"outputDataSet":{"type":"string","description":"Specifies an output listing sequential data set."},"tempDataHLQ":{"type":"string","description":"Specifies the high-level qualifier used for data sets created by plug-in requests to export observation files."},"programDataSet":{"type":"string","description":"Specifies the data set where local programs will be uploaded for preprocessing."}}},"testApplicationToCapture":{"type":"object","additionalProperties":false,"description":"Specify what to capture in an application.","properties":{"recordingType":{"type":"string","enum":["CICS","Batch","IMS"],"description":"Type of application that will be recorded."},"jclSteps":{"type":"string","description":"Provide a path to a JCL file that runs the application to be recorded."},"programs":{"type":"array","description":"Provide name of the program to capture.","items":{"type":"string"}},"transactionId":{"type":"string","description":"Provide a transaction id to capture in the recording."}},"if":{"properties":{"recordingType":{"enum":["CICS","IMS"]}}},"then":{"required":["transactionId"],"not":{"required":["jclSteps"]}},"else":{"not":{"required":["transactionId"]},"required":["jclSteps"]}},"testSourceMap":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","description":"The workspace-relative path to an application source file."},"module":{"type":"string","description":"The z/OS load module name that corresponds to the specified source file."}}},"testSourceMaps":{"type":"array","description":"Specify which application load modules correspond to application source files.","items":{"$ref":"#/definitions/testSourceMap"}},"testHostRecordingSettings":{"type":"object","additionalProperties":false,"description":"Specify host settings for the recording tool.","properties":{"applicationDbrmLibrary":{"type":"string","description":"Required if recording and replaying DB2 statements."},"cicsRegion":{"type":"string","description":"If recording a CICS application, specify a CICS region where the application is running."},"dteEngineLocation":{"type":"string","description":"If recording a batch application, specify the data set where Debug Test Engine load library is located."},"imsSubsystemId":{"type":"string","description":"If recording an IMS application, specify the subsystem id."}}},"testRecordingSettings":{"type":"object","additionalProperties":false,"description":"Specify settings for the recording application tool.","properties":{"applicationToCapture":{"$ref":"#/definitions/testApplicationToCapture"},"hostRecordingSettings":{"$ref":"#/definitions/testHostRecordingSettings"},"sourceMaps":{"$ref":"#/definitions/testSourceMaps"}}},"testSettingsItem":{"type":"object","additionalProperties":false,"description":"Test properties for a test case.","properties":{"recording":{"$ref":"#/definitions/testRecordingSettings"},"unitTest":{"$ref":"#/definitions/unitTestSettings"},"functionalTest":{"$ref":"#/definitions/functionalTestSettings"}}},"unitTestSettings":{"type":"object","additionalProperties":false,"description":"Properties to run a unit test case.","required":["procLib"],"properties":{"procLib":{"type":"array","description":"Specifies the list of Procedure libraries.","items":{"type":"string"}},"allocateWorkingDs":{"type":"boolean","description":"If this option is selected, the data set for the working file is allocated automatically with the allocation options."},"ioDataSetAllocation":{"type":"object","description":"Options to allocate a working file.","properties":{"ioSpaceUnit":{"type":"string","enum":["TRACKS","BLOCKS","CYLINDERS"],"description":"The unit of primary and secondary space to be allocated."},"ioQuant1":{"type":"integer","description":"The amount of DASD space to be used for primary space allocation (PRIMARY)."},"ioQuant2":{"type":"integer","description":"The amount of DASD space to be used for secondary space allocation (SECONDARY)."},"ioHLQ":{"type":"string","description":"The high-level qualifier for the VSAM or QSAM data files for file I/O simulation. These files are allocated when running a Unit test case."}}},"configDS":{"type":"string","description":"Runner configuration destination container."},"resultDS":{"type":"string","description":"Runner result destination container."},"userLibraries":{"type":"array","description":"The datat set of the application under test.","items":{"type":"string"}},"defaultTestCaseFolder":{"type":"string","description":"The default local folder to create the test case artifacts."},"jobcard":{"type":"string","description":"The job card to run a unit test."}}},"substitutionMapSettings":{"type":"object","additionalProperties":false,"description":"Specify settings for the functional test substitution map.","properties":{"cicsTag":{"type":"string","description":"If recording a CICS application, specify the cicsts.dse.tag from the .galasa/cps.properties file."},"imageTag":{"type":"string","description":"If recording a CICS or IMS application, specify the zos.dse.tag from the .galasa/cps.properties file."},"dbPrefix":{"type":"string","description":"If recording a CICS application, specify the Db2 DB ID that was established when the Db2 instance was created."},"dbSchema":{"type":"string","description":"If recording a CICS application, specify the db2.dse.schema.PRIMARY.name from the .galasa/cps.properties."},"loginCredentialsTag":{"type":"string","description":"If recording a CICS or IMS application, specify the zos.image.x.credentials value from the .galasa/cps.properties."},"imsTag":{"type":"string","description":"If recording an IMS application, specify the imstm.dse.tag from the .galasa/cps.properties."},"dliTag":{"type":"string","description":"If recording an IMS application, specify the dli.database.tag.{imsTag}.datastore value from the .galasa/cps.properties."}}},"galasaSettingsItem":{"type":"object","additionalProperties":false,"description":"Galasa properties for executing a functional test galasa test file","properties":{"galasaHome":{"type":"string","description":"Specify the galasa home directory on local machine"},"zos":{"$ref":"#/definitions/zosGalasaSettings"},"cicsts":{"$ref":"#/definitions/cicstsGalasaSettings"},"db2":{"$ref":"#/definitions/db2GalasaSettings"},"imstmDseTags":{"type":"array","description":"Configuration properties used by the IMS TM manager for the DSE provisioner for a specific tag","items":{"$ref":"#/definitions/imstmDseTagItemsGalasaSettings"}},"dli":{"$ref":"#/definitions/dliGalasaSettings"},"totpMfas":{"type":"array","description":"Configuration properties used by the TOTP Manager for MFA","items":{"$ref":"#/definitions/totpMfaItemsGalasaSettings"}},"dpsServer":{"$ref":"#/definitions/dpsServerGalasaSettings"},"additionalProperties":{"type":"array","description":"Specify additional properties to be added to the cps.properties file","items":{"$ref":"#/definitions/additionalPropertiesItemsGalasaSettings"}}}},"zosGalasaSettings":{"type":"object","additionalProperties":false,"description":"The configuration for a z/OS system","properties":{"dseTags":{"type":"array","description":"The configuration for a z/OS DSE tag","items":{"$ref":"#/definitions/zosDseTagItemsGalasaSettings"}},"images":{"type":"array","description":"The configuration for a z/OS image","items":{"$ref":"#/definitions/zosImageItemsGalasaSettings"}}}},"zosDseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"The configuration for a z/OS DSE tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the z/OS DSE tag"},"imageid":{"type":"string","description":"The z/OS Image ID"}}},"zosImageItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Specify the characteristics of a particular z/OS environment that your Galasa tests will target","properties":{"tag":{"type":"string","description":"User-defined identifier for the z/OS Image tag"},"ipv4Hostname":{"type":"string","description":"Hostname of the target z/OS system"},"telnet":{"$ref":"#/definitions/zosImageTelnetGalasaSettings"},"credentials":{"type":"string","description":"Credentials tag for logging onto a z/OS system"},"vtamLogon":{"type":"string","description":"A string representing the VTAM logon command"},"logonInitialText":{"type":"string","description":"This property defines the first input that will be provided to the z/OS system after a connection is established"}}},"zosImageTelnetGalasaSettings":{"type":"object","additionalProperties":false,"description":"The telnet details for the target z/OS system","properties":{"port":{"type":"integer","description":"Specify the telnet port for the target z/OS system"},"tls":{"type":"boolean","description":"Specify if TLS is enabled on the target z/OS system"}}},"cicstsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa CICS TS Manager","properties":{"dseTags":{"type":"array","description":"User-defined identifier for the CICS tag","items":{"$ref":"#/definitions/cicstsDseTagItemsGalasaSettings"}},"defaultLogonGmText":{"type":"string","description":"Property specifying text used for testing a specific CICS login good morning screen"},"provisionType":{"type":"string","description":"Provides the type of the CICS TS region for the DSE provisioner"}}},"cicstsDseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa CICS TS Manager for the specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the CICS tag"},"imageid":{"type":"string","description":"User-defined identifier for the z/OS Image tag"},"applid":{"type":"string","description":"Application Identifier of a CICS TS region for the DSE provisioner"}}},"db2GalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa Db2 Manager","properties":{"dseInstances":{"type":"array","description":"Db2 DSE Instance configuration properties used by the Galasa Db2 Manager","items":{"$ref":"#/definitions/db2DseInstanceItemsGalasaSettings"}},"schemas":{"type":"array","description":"Db2 Schema configuration properties used by the Galasa Db2 Manager","items":{"$ref":"#/definitions/db2SchemaItemsGalasaSettings"}},"instances":{"type":"array","description":"Db2 Instance configuration properties used by the Galasa Db2 Manager","items":{"$ref":"#/definitions/db2InstanceItemsGalasaSettings"}}}},"db2DseInstanceItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Db2 DSE Instance configuration properties used by the Galasa Db2 Manager","properties":{"tag":{"type":"string","description":"User-defined identifier for the z/OS Image tag"},"name":{"type":"string","description":"User-defined identifier for the Db2 tag"}}},"db2SchemaItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"This property specifies the name of the primary Db2 schema that Galasa will use when interacting with a Db2 database","properties":{"tag":{"type":"string","description":"User-defined identifier for the primary Db2 Schema"},"name":{"type":"string","description":"User-defined identifier for the Db2 schema tag"}}},"db2InstanceItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties for the Db2 instance for use within Galasa tests","properties":{"tag":{"type":"string","description":"User-defined identifier for the Db2 tag"},"url":{"type":"string","description":"Specify the JDBC connection URL for a Db2 database instance"},"credentials":{"type":"string","description":"User-defined identifier for the Db2 credentials tag"}}},"imstmDseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the IMS TM manager for the DSE provisioner for a specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the IMS tag"},"applid":{"type":"string","description":"Application Identifier of an IMS TM region for the DSE provisioner"}}},"dliGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa DLI Manager","properties":{"datastoreTags":{"type":"array","description":"User-defined identifier for the DLI Datastore tag","items":{"$ref":"#/definitions/dliDatastoreTagItemsGalasaSettings"}},"databaseTags":{"type":"array","description":"User-defined identifier for the DLI Database tag","items":{"$ref":"#/definitions/dliDatabaseTagItemsGalasaSettings"}}}},"dliDatastoreTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa DLI Manager for datastore access for a specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the DLI Datastore tag"},"name":{"type":"string","description":"Specify the Datastore name"},"server":{"type":"string","description":"Specify the hostname or IP address of the Datastore"},"port":{"type":"integer","description":"Specify the port of the Datastore"},"ssl":{"type":"boolean","description":"Specify if SSL is enabled on the Datastore"}}},"dliDatabaseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa DLI Manager for database access for a specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the DLI Database tag"},"datastore":{"type":"string","description":"User-defined identifier for the DLI datastore tag"},"name":{"type":"string","description":"Provide the name of the database"}}},"totpMfaItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the TOTP Manager for MFA","properties":{"tag":{"type":"string","description":"User-defined identifier for the TOTP MFA tag"},"digits":{"type":"integer","description":"The number of digits required in each generated one time password"},"digest":{"type":"string","description":"The hash algorithm used when generating each one time password"},"interval":{"type":"integer","description":"The number of seconds that each generated one time password will be valid for"}}},"dpsServerGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used to connect to Debug Profile Service","properties":{"port":{"type":"integer","description":"Specify the port of the Debug Profile Service on the remote z/OS system"},"secured":{"type":"boolean","description":"Enable a secure connection"},"host":{"type":"string","description":"Specify the hostname of the remote z/OS system"},"credentials":{"type":"string","description":"User-defined identifier for the credentials tag"}}},"additionalPropertiesItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Additional properties to be used","properties":{"name":{"type":"string","description":"The key of the additional property"},"value":{"type":"string","description":"The value of the additional property"}}},"functionalTestSettings":{"type":"object","additionalProperties":false,"description":"Specify settings for the functional test.","properties":{"defaultTestCaseFolder":{"type":"string","description":"Specify the path to the default test case folder."},"codePages":{"type":"string","description":"Specify the code pages to be used."},"localBmsMapNames":{"type":"array","description":"Specify an array of local BMS files.","items":{"type":"string"}},"localMfsFiles":{"type":"array","description":"Specify an array of local MFS files from the mfs-maps directory to be used for generating accurate test files. Ex: sample.mfs.","items":{"type":"string"}},"localImsDbdFiles":{"type":"array","description":"Specify an array of local IMS DBD files from the config-files directory to be used for generating accurate test files. Ex: imsDbd.txt.","items":{"type":"string"}},"localDb2Config":{"type":"array","description":"Specify an array of local Db2 Config files.","items":{"type":"string"}},"substitutionMap":{"$ref":"#/definitions/substitutionMapSettings"}}}},"anyOf":[{"$ref":"#/definitions/coreProperties"}]}');class $04802ddbf77b0972$export$20a2815e8c83febb extends $06319fbb034d54be$export$3fa3a1ffc042110d{static{this.validationFunction=$04802ddbf77b0972$export$20a2815e8c83febb.initAjvValidator()}static initAjvValidator(){let e=new($parcel$interopDefault($hsidQ$ajv))({allErrors:!0,strictTuples:!1,allowUnionTypes:!0});return $parcel$interopDefault($hsidQ$ajvformats)(e),e.compile($e2f60dcf3921646c$exports)}static createFromYamlString(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(e)}static createFromJsonString(e){let t="";try{let i=JSON.parse(e);return t=$hsidQ$jsyaml.dump(i),this.createFromYamlString(t)}catch(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(t,e?.message||e)}}static createFromObject(e){return this.createFromJsonString(JSON.stringify(e))}static async createFromYamlFile(e){let t="";try{t=await this.readFileWithRetry(e);let i=this.createFromYamlString(t);return i.file={path:e,type:"yaml"},i}catch(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(t,e?.message||e)}}static async createFromJsonFile(e){let t="";try{t=await this.readFileWithRetry(e);let i=this.createFromJsonString(t);return i.file={path:e,type:"json"},i}catch(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(t,e?.message||e)}}static async createFromFile(e){return e?.endsWith(".yaml")||e?.endsWith(".yml")?await this.createFromYamlFile(e):e?.endsWith(".json")?await this.createFromJsonFile(e):new $04802ddbf77b0972$export$20a2815e8c83febb("","Invalid filename for reading a ZAPP file.")}static async loadFromWorkspace(e){let t=this.findZappFile(e);return t?.type==="yaml"?await this.createFromYamlFile(t.path):t?.type==="json"?await this.createFromJsonFile(t.path):new $04802ddbf77b0972$export$20a2815e8c83febb("",`No ZAPP file was found in "${e}".`)}static findZappFile(e){if(!e)return;let t=$hsidQ$path.normalize(e),i=$hsidQ$path.join(t,"zapp.yaml");if($hsidQ$fs.existsSync(i))return{path:i,type:"yaml"};let r=$hsidQ$path.join(t,"zapp.yml");if($hsidQ$fs.existsSync(r))return{path:r,type:"yaml"};let a=$hsidQ$path.join(t,"zapp.json");if($hsidQ$fs.existsSync(a))return{path:a,type:"json"}}static isZappFileName(e){return/^(zapp\.)(yml|yaml|json)$/.test(e)}getVariables(){let e=[],t=this.getAsYaml();if(t){let i=t.match(/\${.*?}/g);i&&(e=(e=[...new Set(i)]).map(e=>e.replace(/[${}]/g,"")))}return e}getAsDocument(){try{let e=this.yawn.json;if(e)return e}catch(e){this.prependErrorMessage(e?.message)}}validate(){if(this.yawn){if(this.isValid=$04802ddbf77b0972$export$20a2815e8c83febb.validationFunction(this.getAsObject()),!this.isValid){let e=$04802ddbf77b0972$export$20a2815e8c83febb.validationFunction.errors;return e?e.forEach(e=>{let t=e.message;if(e.params){let i=e.params,r=Object.keys(i).map(e=>`${e}:${i[e]}`);t=`${t}(${r})`}this.appendErrorMessage(t)}):this.appendErrorMessage("Unknown validation error."),!1}return!0}return!1}constructor(...e){super(...e),this.type="zapp"}}class $33f2606524745ccb$export$c06d94e9d38b8bae extends $b1285f501b3f0a4a$export$2941748d4d27acfc{static{this.cacheType="zapp"}static getInstance(){return this.instance||(this.instance=new $33f2606524745ccb$export$c06d94e9d38b8bae(this.cacheType)),this.instance}static resetInstance(){this.instance=void 0}static getZappDocument(e){if(!e)return;let t=this.getInstance().normalizePath(e);if(this.getInstance().documentsCache.has(t))return this.getInstance().numberDocsFound++,this.getInstance().documentsCache.get(t)}static async loadZappDocument(e,t){if(!e)return;let i=this.getInstance().normalizePath(e),r=await $04802ddbf77b0972$export$20a2815e8c83febb.createFromFile(i),a=t;return t||(a=$hsidQ$path.dirname(i)),this.getInstance().addDocument(e,a,r),this.getInstance().numberDocsAdded++,r}static removeZappDocument(e){return this.getInstance().removeDocument(e)}static clearZappDocument(e){this.getInstance().clearSchemaDocument(e)}static getZappDocumentInWorkspace(e){if(!e)return;let t=this.getInstance().normalizePath(e),i=this.getInstance().workspacesMap.get(t);if(i)return this.getZappDocument(i)}static async loadZappDocumentInWorkspace(e){let t=this.getInstance().normalizePath(e),i=$04802ddbf77b0972$export$20a2815e8c83febb.findZappFile(t);if(i){let r=await this.loadZappDocument(i.path,e);return this.getInstance().workspacesMap.set(t,i.path),r}}isValidFilename(e){return $04802ddbf77b0972$export$20a2815e8c83febb.isZappFileName(e)}static getVariablesFromAllDocs(){let e=[];for(let t of this.getInstance().documentsCache.values())t instanceof $04802ddbf77b0972$export$20a2815e8c83febb&&e.push(...t.getVariables());return e.length>1&&(e=[...new Set(e)]),e}static getCacheSize(){return this.getInstance().getCacheSize()}static getAllDocumentLocations(){return this.getInstance().getAllDocumentLocations()}static getCacheStats(){return this.getInstance().getCacheStats()}static clearCache(){this.getInstance().clearCache(),this.resetInstance()}}var $ca913c503ff973ee$exports={};$parcel$export($ca913c503ff973ee$exports,"ZappUserVariablesCache",()=>$ca913c503ff973ee$export$99d400c8aa397dfe);class $ca913c503ff973ee$export$99d400c8aa397dfe{static getInstance(){return this.instance||(this.instance=new $ca913c503ff973ee$export$99d400c8aa397dfe),this.instance}static resetInstance(){this.instance=void 0}static saveZappUserVariables(e){$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap=e,$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap.forEach((e,t)=>{if(e.includes($parcel$interopDefault($hsidQ$path).win32.sep)){let i=e.split($parcel$interopDefault($hsidQ$path).win32.sep).join($parcel$interopDefault($hsidQ$path).posix.sep);$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap.set(t,i)}})}static getZappUserVariables(){return $ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap}static clearCache(){$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap.clear(),this.resetInstance()}static replaceUserVariables(e){if(!e)return;let t=JSON.stringify(e),i=$ca913c503ff973ee$export$99d400c8aa397dfe.getZappUserVariables();if(!i||0===i.size)return e;let r=t.replace(/\${.*?\}/g,e=>{let t=e.slice(2,-1),r=i.get(t)??e;return t.replace(t,r)});try{return JSON.parse(r)}catch(t){return e}}constructor(){this.zappUserSettingsMap=new Map}}class $fac1dbefdcd03230$export$117dc7eeb984edf6{static getPropertyGroups(e,t){let i=[],r=$33f2606524745ccb$export$c06d94e9d38b8bae.getZappDocumentInWorkspace(e);if(r&&!r.errorMessages){let e=r.getAsDocument();if(e){let r=e.propertyGroups;r&&(i=r,t&&(i=r.filter(e=>!e.language||e.language===t)))}}return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(i)}}var $7000f33b169d3c58$exports={};$parcel$export($7000f33b169d3c58$exports,"UserBuildController",()=>$7000f33b169d3c58$export$b43c0013e41642ea);var $32042bc06eedcf31$exports={};$parcel$export($32042bc06eedcf31$exports,"ZappProfilesController",()=>$32042bc06eedcf31$export$4d46d6e73f3dbcd7);class $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getZappProfiles(e){let t=$33f2606524745ccb$export$c06d94e9d38b8bae.getZappDocumentInWorkspace(e);if(!t||t.errorMessages)return;let i=t.getAsDocument();if(i&&i.profiles&&0!==i.profiles.length)return i.profiles}static async loadZappProfiles(e){if(await $33f2606524745ccb$export$c06d94e9d38b8bae.loadZappDocumentInWorkspace(e))return this.getZappProfiles(e)}}var $42ac5850af2f6ebc$exports={};$parcel$export($42ac5850af2f6ebc$exports,"zappConstants",()=>$42ac5850af2f6ebc$export$5b17e1594a60a665);let $42ac5850af2f6ebc$export$5b17e1594a60a665={profileTypeDbb:"dbb",profileTypeRseApi:"rseapi",propertyPropertyGroups:"propertyGroups",profileTypePreprocessor:"preprocessor",profileTypeTest:"test",profileTypeGalasa:"galasa"};class $7000f33b169d3c58$export$b43c0013e41642ea extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getUserBuildProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeDbb).map(e=>e.name)}static getUserBuildSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeDbb)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeDbb);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}var $ea473087bd4a8ebb$exports={};$parcel$export($ea473087bd4a8ebb$exports,"RseApiController",()=>$ea473087bd4a8ebb$export$3646e96376a215d6);class $ea473087bd4a8ebb$export$3646e96376a215d6 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getRseApiProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeRseApi).map(e=>e.name)}static onlyOneMappingsEntry(e){let t=this.getRseApiProfileNames(e);return t?.length===1}static getRseApiSettings(e){let t=this.getZappProfiles(e);if(t&&t.length>0){let e=t.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeRseApi);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static async loadRseApiSettings(e){if(await this.loadZappProfiles(e))return this.getRseApiSettings(e)}}var $619321c7228d4c17$exports={};$parcel$export($619321c7228d4c17$exports,"PreprocessorController",()=>$619321c7228d4c17$export$9dae19ebbff35912);class $619321c7228d4c17$export$9dae19ebbff35912 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getPreprocessorProfileNames(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)return i.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"language"in e&&(void 0===t||e.language===t)).map(e=>e.name)}static getPreprocessorProfileNamesBasedOnLocation(e,t,i){let r=this.getZappProfiles(e);if(r&&r.length>0)return r.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&e.location===t&&(void 0===i||e.language===i)).map(e=>e.name)}static getLocalPreprocessorSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0){let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"local"===e.location&&(void 0===t||e.language===t));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getMvsPreprocessorSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0){let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"mvs"===e.location&&(void 0===t||e.language===t));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getLocalPreprocessorProfileNamesBasedOnName(e,t,i){let r=this.getZappProfiles(e);if(r&&r.length>0){let e=r.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"local"===e.location&&e.name===t&&(void 0===i||e.language===i));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getMvsPreprocessorProfileNamesBasedOnName(e,t,i){let r=this.getZappProfiles(e);if(r&&r.length>0){let e=r.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"mvs"===e.location&&e.name===t&&(void 0===i||e.language===i));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getPreprocessorProfile(e,t,i){let r=this.getZappProfiles(e);if(r&&r.length>0){let e=r.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&(void 0===i||e.location===i)&&(void 0===t||e.language===t));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e)}}}var $161ed02e8a1bf000$exports={};$parcel$export($161ed02e8a1bf000$exports,"TestController",()=>$161ed02e8a1bf000$export$eddf153237ef6277);class $161ed02e8a1bf000$export$eddf153237ef6277 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getTestProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeTest).map(e=>e.name)}static getTestSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeTest)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeTest);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}var $c261dfe50c828d02$exports={};$parcel$export($c261dfe50c828d02$exports,"GalasaController",()=>$c261dfe50c828d02$export$a930ec3beb2bdf92);class $c261dfe50c828d02$export$a930ec3beb2bdf92 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getGalasaProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeGalasa).map(e=>e.name)}static getGalasaSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeGalasa)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeGalasa);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}$parcel$exportWildcard($29ee84a662b1b8fd$exports,$fac1dbefdcd03230$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$7000f33b169d3c58$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$ea473087bd4a8ebb$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$32042bc06eedcf31$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$619321c7228d4c17$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$161ed02e8a1bf000$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$c261dfe50c828d02$exports);var $4d56b609164198fa$exports={},$9e2faf2482a47e58$exports={};$parcel$exportWildcard($4d56b609164198fa$exports,$9e2faf2482a47e58$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$04802ddbf77b0972$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$33f2606524745ccb$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$42ac5850af2f6ebc$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$ca913c503ff973ee$exports),$parcel$exportWildcard($f8f1f978d697847d$exports,$29ee84a662b1b8fd$exports),$parcel$exportWildcard($f8f1f978d697847d$exports,$4d56b609164198fa$exports),$parcel$exportWildcard(module.exports,$db89a39d91b9746d$exports),$parcel$exportWildcard(module.exports,$f8f1f978d697847d$exports);
3
+ ${this.errorMessages}`:"";this.errorMessages=`- ${e||"Unknown Error reading "+this.type+" file."}${t}`}}var $b1285f501b3f0a4a$exports={};$parcel$export($b1285f501b3f0a4a$exports,"SchemaDocumentCache",()=>$b1285f501b3f0a4a$export$2941748d4d27acfc);class $b1285f501b3f0a4a$export$2941748d4d27acfc{constructor(e){this.type=e,this.documentsCache=new Map,this.workspacesMap=new Map,this.numberDocsAdded=0,this.numberDocsRemoved=0,this.numberDocsFound=0}addDocument(e,t,i){let a=this.normalizePath(e),r=this.normalizePath(t);this.documentsCache.set(a,i),this.workspacesMap.set(r,a)}removeDocument(e){let t=this.normalizePath(e);this.workspacesMap.forEach((e,i)=>{e===t&&this.workspacesMap.delete(i)});let i=this.documentsCache.delete(t);return i&&this.numberDocsRemoved++,i}getCacheSize(){return this.documentsCache.size}getAllDocumentLocations(){return[...this.documentsCache.keys()]}clearSchemaDocument(e){if(!e)return;let t=this.normalizePath(e),i=$hsidQ$path.dirname(t);this.workspacesMap.has(i)&&this.workspacesMap.delete(i),this.documentsCache.has(t)&&(this.documentsCache.delete(t),this.numberDocsRemoved++)}clearCache(){this.workspacesMap.clear(),this.documentsCache.clear()}getCacheStats(){return{documentsCacheSize:this.documentsCache.size,workspacesMapSize:this.workspacesMap.size,numberDocsAdded:this.numberDocsAdded,numberDocsRemoved:this.numberDocsRemoved,numberDocsFound:this.numberDocsFound}}normalizePath(e){if(!e)return e;let t=$hsidQ$path.normalize(e);if("win32"===$hsidQ$os.platform()){let e=$hsidQ$path.basename(t);if(this.isValidFilename(e)){let i=$hsidQ$path.dirname(t);t=$hsidQ$path.join(i.toUpperCase(),e)}else t=t.toUpperCase()}return t}}$parcel$exportWildcard($27816e9aa5a16a75$exports,$06319fbb034d54be$exports),$parcel$exportWildcard($27816e9aa5a16a75$exports,$b1285f501b3f0a4a$exports),$parcel$exportWildcard($db89a39d91b9746d$exports,$27816e9aa5a16a75$exports);var $f8f1f978d697847d$exports={},$29ee84a662b1b8fd$exports={},$fac1dbefdcd03230$exports={};$parcel$export($fac1dbefdcd03230$exports,"PropertyGroupsController",()=>$fac1dbefdcd03230$export$117dc7eeb984edf6);var $33f2606524745ccb$exports={};$parcel$export($33f2606524745ccb$exports,"ZappDocumentsCache",()=>$33f2606524745ccb$export$c06d94e9d38b8bae);var $04802ddbf77b0972$exports={};$parcel$export($04802ddbf77b0972$exports,"ZappDocumentInstance",()=>$04802ddbf77b0972$export$20a2815e8c83febb);var $ed75809f53652cce$exports={};$ed75809f53652cce$exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBM Zapp Document","description":"JSON schema for zapp.json and zapp.yaml files. Version 1.9.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2026. All Rights Reserved.","type":"object","definitions":{"coreProperties":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"The name of the Z Project.","type":"string","maxLength":214,"minLength":1},"description":{"description":"This helps people understand your project as it would be used by tools.","type":"string"},"version":{"description":"Version is a string and it must be parsable for managing dependencies.","type":"string","default":"1.0.0"},"groupId":{"description":"Defines a group name that is shared for each application part in case of applications composed of multiple parts. Allows to uniquely identify the parts by concatenating with the artifact id. For example a groupId `com.ibm.wazi` with an artifactId `service` would create the unique application identifier `com.ibm.wazi.service`.","type":"string","examples":["com.ibm.wazi","payments"]},"artifactId":{"description":"Define id of the application artifact. Use it in combination with a groupId for multi-part applications.","type":"string","default":"","examples":["sam"]},"parentId":{"description":"In case of a multi-part application defines the name of the parent application part. This zapp will inherit properties such as propertyGroups defined in the parent.","type":"string","default":"","examples":["com.ibm.wazi.parent"]},"keywords":{"description":"This helps people discover your project.","type":"array","items":{"type":"string"}},"homepage":{"description":"The url to the project homepage.","type":"string","oneOf":[{"format":"uri"},{"enum":["."]}]},"license":{"type":"string","description":"You should specify a license for your package so that people know how they are permitted to use it and any restrictions you\'re placing on it."},"author":{"$ref":"#/definitions/person"},"contributors":{"description":"A list of people who contributed to this package.","type":"array","items":{"$ref":"#/definitions/person"},"minItems":1},"maintainers":{"description":"A list of people who maintain this package.","type":"array","items":{"$ref":"#/definitions/person"},"minItems":1},"propertyGroups":{"description":"A list of properties defining path names for resolving dependencies.","type":"array","items":{"$ref":"#/definitions/propertyGroupItem"},"minItems":1},"profiles":{"description":"Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.","type":"array","items":{"$ref":"#/definitions/profile"},"minItems":1}}},"propertyGroupItem":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"The name of the property group, which is used in hovers and error messages.","examples":["sample-local","sample-remote"]},"language":{"type":"string","enum":["cobol","pl1","hlasm","rexx","jcl"],"description":"Limits the property group to one specific language."},"compilerOptions":{"type":"string","description":"Global compiler options separated by a comma that impact the parsing of the programs for the editor. Requires that you specify a language. If there are multiple Property Groups for a language with compiler option then they will be concatenated."},"libraries":{"type":"array","description":"An array of potential library locations defining the search order for include files. Libraries with the name \'syslib\' will be handled as default include locations. The list can contain many entries of the type \'local\' or \'mvs\'. It can contain items of the same type twice in case, for example, you want to search in remote locations first, then some local location, and if still not found more remote locations.","items":{"$ref":"#/definitions/libraryItem"},"minItems":1}}},"libraryItem":{"type":"object","additionalProperties":false,"required":["name","type"],"properties":{"name":{"type":"string","description":"Name of the library. The default name should be `syslib` if using unnamed libraries.","default":"syslib","examples":["syslib","jcllib","proclib","maclib","currencylib"]},"type":{"type":"string","enum":["mvs","local"],"description":"The type of the property group defining where dependencies should be located. Allowed values are \'local\' for using a local workspace and \'mvs\' for dependencies located in MVS data sets.","default":"local","examples":["local","mvs"]},"locations":{"type":"array","description":"An array of include file locations. For \'local\' libraries values can be absolute and relative filename paths using GLOB patterns. For \'mvs\' libraries value can be data set names. GLOB patterns for data sets are currently not supported.","items":{"type":"string"},"examples":["**/copybook","USER1.SAMPLE.COBCOPY"]}},"if":{"properties":{"name":{"enum":["jcllib","proclib"],"type":"string"},"type":{"const":"mvs","type":"string"}}},"then":{"required":["name","type"]},"else":{"required":["name","type","locations"]}},"person":{"description":"A person who has been involved in creating or maintaining this package","type":["object","string"],"required":["name"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"email":{"type":"string","format":"email"}}},"profile":{"type":"object","description":"Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.","additionalProperties":false,"required":["name","type"],"properties":{"name":{"type":"string","description":"The name of the profile.","examples":["dbb-build"]},"language":{"type":"string","enum":["cobol","pl1"],"description":"If the profile type supports it then it defines a scope for the profile to one specific programming language. For example, a profile that defines preprocessor commands for COBOL."},"type":{"type":"string","enum":["dbb","rseapi","debug","preprocessor","test","galasa","zcodescan","codecoverage"],"description":"The type of the profile.","default":"dbb"},"location":{"type":"string","enum":["mvs","local"],"description":"If the profile type supports it then it defines a scope for the profile to a specific location for resources. For example, a profile that defines preprocessor commands to be executed on MVS or local files.","default":"local"},"settings":{"description":"Settings objects specific to the type specified for the profile.","type":"object"}},"oneOf":[{"title":"Dependency-Based Build profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"dbb","type":"string"},"settings":{"oneOf":[{"$ref":"#/definitions/dbbBuilderSettings"},{"$ref":"#/definitions/dbbGroovySettings"}]}}},{"title":"RSE API profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"rseapi","type":"string"},"settings":{"$ref":"#/definitions/rseapiSettingsItem"}}},{"title":"Preprocessor profile","required":["name","type","settings","location","language"],"additionalProperties":false,"properties":{"name":{"type":"string"},"language":{"type":"string"},"type":{"const":"preprocessor","type":"string"},"location":{"type":"string"},"settings":{"oneOf":[{"$ref":"#/definitions/localPreprocessorSettingsItem"},{"$ref":"#/definitions/mvsPreprocessorSettingsItem"}]}},"if":{"properties":{"location":{"const":"local","type":"string"}}},"then":{"properties":{"settings":{"$ref":"#/definitions/localPreprocessorSettingsItem"}}},"else":{"properties":{"settings":{"$ref":"#/definitions/mvsPreprocessorSettingsItem"}}}},{"title":"Test profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"test","type":"string"},"settings":{"$ref":"#/definitions/testSettingsItem"}}},{"title":"Galasa Properties profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"galasa","type":"string"},"settings":{"$ref":"#/definitions/galasaSettingsItem"}}},{"title":"ZCodeScan profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"zcodescan","type":"string"},"settings":{"$ref":"#/definitions/ZCodeScanSettings"}}},{"title":"Code Coverage profile","required":["name","type","settings"],"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"const":"codecoverage","type":"string"},"settings":{"$ref":"#/definitions/CodeCoverageSettings"}}}]},"dbbGroovySettings":{"type":"object","additionalProperties":false,"required":["application","command"],"description":"Groovyz user build script properties for running user build on remote host.","properties":{"application":{"type":"string","description":"Defines the name of the application to build. Will be used to create a folder on USS to upload all files to."},"command":{"type":"string","description":"Command that the build script is executed with such as the path to groovyz and it\'s parameters."},"buildScriptPath":{"type":"string","description":"The full path of build script on the remote host that should be used with the command."},"buildScriptArgs":{"type":"array","items":{"type":"string"},"description":"A list of strings that are the parameters for the build script. Check the documentation for built-in variables, such as the name of the program to build, that can be used here."},"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be uploaded to USS for a build. Relative path names are interpreted relative to the location of the ZAPP file that is being used for the build, which is a ZAPP file in the same workspace as the program to be build."},"logFilePatterns":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be downloaded from USS after the build. Relative path names are interpreted relative to the DBB log directory user setting. If not provided then all files of the user setting location will be downloaded."}}},"dbbBuilderSettings":{"type":"object","additionalProperties":false,"required":["command","lifecycle","lifecycleArgs"],"description":"zBuilder user build properties for running user build on remote host.","properties":{"command":{"type":"string","description":"Command that the build script is executed with such as the path to groovyz and it\'s parameters."},"lifecycle":{"type":"string","description":"Defines named build lifecycles that represent different build scenarios the customer needs to perform and can be executed from the DBB CLI."},"lifecycleArgs":{"type":"array","description":"Additional arguments and options for the lifecycle.","items":{"type":"string"}},"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be uploaded to USS for a build. Relative path names are interpreted relative to the location of the ZAPP file that is being used for the build, which is a ZAPP file in the same workspace as the program to be build."},"logFilePatterns":{"type":"array","items":{"type":"string"},"description":"Lists of GLOB patterns that define the files that should be downloaded from USS after the build. Relative path names are interpreted relative to the DBB log directory user setting. If not provided then all files of the user setting location will be downloaded."}}},"rseapiSettingsItem":{"type":"object","additionalProperties":false,"description":"RSE API client settings for interactions with a z/OS remote host running an RSE API server.","required":["mappings","default.encoding"],"properties":{"mappings":{"type":"array","description":"A list of mapping objects that map local file extensions to transfer modes and encodings to MVS data sets that can be specified using wildcards.","items":{"$ref":"#/definitions/rseapiSettingsItemMapping"}},"default.encoding":{"type":"string","description":"The encoding to be used when no mapping can be found. If not provided then either the user or server default will be used."}}},"rseapiSettingsItemMapping":{"type":"object","additionalProperties":false,"description":"One mapping that contains at least transfer and resource values.","properties":{"extension":{"type":"string","description":"A local file extension such as cbl or pl1."},"transfer":{"type":"string","enum":["text","binary"],"description":"The transfer mode to be used. Can be \'text\' or \'binary\'."},"resource":{"type":"string","description":"The data set name to be mapped to. Can use a wildcard such as \'**CPY\'."},"encoding":{"type":"string","description":"The encoding to be used for text transfer. See the RSE API documentation for the values allowed."},"memberMappings":{"type":"array","items":{"type":"object","additionalProperties":false,"description":"One member mapping that contains at least transfer and resource values.","properties":{"extension":{"type":"string","description":"A local file extension such as cbl or pl1."},"transfer":{"type":"string","enum":["text","binary"],"description":"The transfer mode to be used. Can be \'text\' or \'binary\'."},"encoding":{"type":"string","description":"The encoding to be used for text transfer. See the RSE API documentation for the values allowed."},"resource":{"type":"string","description":"The data set member name to be mapped to. Can use a wildcard such as \'**CPY\'."}}},"description":"A nested mappings array with resource mappings to members of the data sets that were mapped by the parent mapping."}}},"localPreprocessorSettingsItem":{"type":"object","additionalProperties":false,"description":"Preprocessor properties for preprocessing COBOL/PL/I files.","required":["command","outputPath","fileExtension"],"properties":{"command":{"type":"string","description":"The command to run to execute the preprocessor executable."},"outputPath":{"type":"string","description":"Path where preprocessor produces its build output."},"fileExtension":{"type":"string","description":"The desired file extension for the post-processed file."},"environmentVariables":{"type":"object","additionalProperties":false,"description":"Specifies any user defined environment variables to be passed to the preprocessor.","patternProperties":{"[a-zA-Z_][a-zA-Z0-9_]*":{"anyOf":[{"type":"string"}]}}}}},"mvsPreprocessorSettingsItem":{"type":"object","additionalProperties":false,"description":"Preprocessor properties for preprocessing COBOL/PL/I files.","required":["commandDataSet","outputDataSet","tempDataHLQ"],"properties":{"commandDataSet":{"type":"string","description":"Specifies an input listing sequential data set."},"commandParameters":{"type":"string","description":"The parameters for the command being run."},"outputDataSet":{"type":"string","description":"Specifies an output listing sequential data set."},"tempDataHLQ":{"type":"string","description":"Specifies the high-level qualifier used for data sets created by plug-in requests to export observation files."},"programDataSet":{"type":"string","description":"Specifies the data set where local programs will be uploaded for preprocessing."}}},"testApplicationToCapture":{"type":"object","additionalProperties":false,"description":"Specify what to capture in an application.","properties":{"recordingType":{"type":"string","enum":["CICS","Batch","IMS"],"description":"Type of application that will be recorded."},"jclSteps":{"type":"string","description":"Provide a path to a JCL file that runs the application to be recorded."},"programs":{"type":"array","description":"Provide name of the program to capture.","items":{"type":"string"}},"transactionId":{"type":"string","description":"Provide a transaction id to capture in the recording."}},"if":{"properties":{"recordingType":{"enum":["CICS","IMS"]}}},"then":{"required":["transactionId"],"not":{"required":["jclSteps"]}},"else":{"not":{"required":["transactionId"]},"required":["jclSteps"]}},"testSourceMap":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","description":"The workspace-relative path to an application source file."},"module":{"type":"string","description":"The z/OS load module name that corresponds to the specified source file."}}},"testSourceMaps":{"type":"array","description":"Specify which application load modules correspond to application source files.","items":{"$ref":"#/definitions/testSourceMap"}},"testHostRecordingSettings":{"type":"object","additionalProperties":false,"description":"Specify host settings for the recording tool.","properties":{"applicationDbrmLibrary":{"type":"string","description":"Required if recording and replaying DB2 statements."},"cicsRegion":{"type":"string","description":"If recording a CICS application, specify a CICS region where the application is running."},"dteEngineLocation":{"type":"string","description":"If recording a batch application, specify the data set where Debug Test Engine load library is located."},"imsSubsystemId":{"type":"string","description":"If recording an IMS application, specify the subsystem id."}}},"testRecordingSettings":{"type":"object","additionalProperties":false,"description":"Specify settings for the recording application tool.","properties":{"applicationToCapture":{"$ref":"#/definitions/testApplicationToCapture"},"hostRecordingSettings":{"$ref":"#/definitions/testHostRecordingSettings"},"sourceMaps":{"$ref":"#/definitions/testSourceMaps"}}},"testSettingsItem":{"type":"object","additionalProperties":false,"description":"Test properties for a test case.","properties":{"recording":{"$ref":"#/definitions/testRecordingSettings"},"unitTest":{"$ref":"#/definitions/unitTestSettings"},"functionalTest":{"$ref":"#/definitions/functionalTestSettings"}}},"unitTestSettings":{"type":"object","additionalProperties":false,"description":"Properties to run a unit test case.","required":["procLib"],"properties":{"procLib":{"type":"array","description":"Specifies the list of Procedure libraries.","items":{"type":"string"}},"allocateWorkingDs":{"type":"boolean","description":"If this option is selected, the data set for the working file is allocated automatically with the allocation options."},"ioDataSetAllocation":{"type":"object","description":"Options to allocate a working file.","properties":{"ioSpaceUnit":{"type":"string","enum":["TRACKS","BLOCKS","CYLINDERS"],"description":"The unit of primary and secondary space to be allocated."},"ioQuant1":{"type":"integer","description":"The amount of DASD space to be used for primary space allocation (PRIMARY)."},"ioQuant2":{"type":"integer","description":"The amount of DASD space to be used for secondary space allocation (SECONDARY)."},"ioHLQ":{"type":"string","description":"The high-level qualifier for the VSAM or QSAM data files for file I/O simulation. These files are allocated when running a Unit test case."}}},"configDS":{"type":"string","description":"Runner configuration destination container."},"resultDS":{"type":"string","description":"Runner result destination container."},"userLibraries":{"type":"array","description":"The datat set of the application under test.","items":{"type":"string"}},"defaultTestCaseFolder":{"type":"string","description":"The default local folder to create the test case artifacts."},"jobcard":{"type":"string","description":"The job card to run a unit test."}}},"substitutionMapSettings":{"type":"object","additionalProperties":false,"description":"Specify settings for the functional test substitution map.","properties":{"cicsTag":{"type":"string","description":"If recording a CICS application, specify the cicsts.dse.tag from the .galasa/cps.properties file."},"imageTag":{"type":"string","description":"If recording a CICS or IMS application, specify the zos.dse.tag from the .galasa/cps.properties file."},"dbPrefix":{"type":"string","description":"If recording a CICS application, specify the Db2 DB ID that was established when the Db2 instance was created."},"dbSchema":{"type":"string","description":"If recording a CICS application, specify the db2.dse.schema.PRIMARY.name from the .galasa/cps.properties."},"loginCredentialsTag":{"type":"string","description":"If recording a CICS or IMS application, specify the zos.image.x.credentials value from the .galasa/cps.properties."},"imsTag":{"type":"string","description":"If recording an IMS application, specify the imstm.dse.tag from the .galasa/cps.properties."},"dliTag":{"type":"string","description":"If recording an IMS application, specify the dli.database.tag.{imsTag}.datastore value from the .galasa/cps.properties."}}},"galasaSettingsItem":{"type":"object","additionalProperties":false,"description":"Galasa properties for executing a functional test galasa test file","properties":{"galasaHome":{"type":"string","description":"Specify the galasa home directory on local machine"},"zos":{"$ref":"#/definitions/zosGalasaSettings"},"cicsts":{"$ref":"#/definitions/cicstsGalasaSettings"},"db2":{"$ref":"#/definitions/db2GalasaSettings"},"imstmDseTags":{"type":"array","description":"Configuration properties used by the IMS TM manager for the DSE provisioner for a specific tag","items":{"$ref":"#/definitions/imstmDseTagItemsGalasaSettings"}},"dli":{"$ref":"#/definitions/dliGalasaSettings"},"totpMfas":{"type":"array","description":"Configuration properties used by the TOTP Manager for MFA","items":{"$ref":"#/definitions/totpMfaItemsGalasaSettings"}},"dpsServer":{"$ref":"#/definitions/dpsServerGalasaSettings"},"additionalProperties":{"type":"array","description":"Specify additional properties to be added to the cps.properties file","items":{"$ref":"#/definitions/additionalPropertiesItemsGalasaSettings"}}}},"zosGalasaSettings":{"type":"object","additionalProperties":false,"description":"The configuration for a z/OS system","properties":{"dseTags":{"type":"array","description":"The configuration for a z/OS DSE tag","items":{"$ref":"#/definitions/zosDseTagItemsGalasaSettings"}},"images":{"type":"array","description":"The configuration for a z/OS image","items":{"$ref":"#/definitions/zosImageItemsGalasaSettings"}}}},"zosDseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"The configuration for a z/OS DSE tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the z/OS DSE tag"},"imageid":{"type":"string","description":"The z/OS Image ID"}}},"zosImageItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Specify the characteristics of a particular z/OS environment that your Galasa tests will target","properties":{"tag":{"type":"string","description":"User-defined identifier for the z/OS Image tag"},"ipv4Hostname":{"type":"string","description":"Hostname of the target z/OS system"},"telnet":{"$ref":"#/definitions/zosImageTelnetGalasaSettings"},"credentials":{"type":"string","description":"Credentials tag for logging onto a z/OS system"},"vtamLogon":{"type":"string","description":"A string representing the VTAM logon command"},"logonInitialText":{"type":"string","description":"This property defines the first input that will be provided to the z/OS system after a connection is established"}}},"zosImageTelnetGalasaSettings":{"type":"object","additionalProperties":false,"description":"The telnet details for the target z/OS system","properties":{"port":{"type":"integer","description":"Specify the telnet port for the target z/OS system"},"tls":{"type":"boolean","description":"Specify if TLS is enabled on the target z/OS system"}}},"cicstsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa CICS TS Manager","properties":{"dseTags":{"type":"array","description":"User-defined identifier for the CICS tag","items":{"$ref":"#/definitions/cicstsDseTagItemsGalasaSettings"}},"defaultLogonGmText":{"type":"string","description":"Property specifying text used for testing a specific CICS login good morning screen"},"provisionType":{"type":"string","description":"Provides the type of the CICS TS region for the DSE provisioner"}}},"cicstsDseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa CICS TS Manager for the specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the CICS tag"},"imageid":{"type":"string","description":"User-defined identifier for the z/OS Image tag"},"applid":{"type":"string","description":"Application Identifier of a CICS TS region for the DSE provisioner"}}},"db2GalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa Db2 Manager","properties":{"dseInstances":{"type":"array","description":"Db2 DSE Instance configuration properties used by the Galasa Db2 Manager","items":{"$ref":"#/definitions/db2DseInstanceItemsGalasaSettings"}},"schemas":{"type":"array","description":"Db2 Schema configuration properties used by the Galasa Db2 Manager","items":{"$ref":"#/definitions/db2SchemaItemsGalasaSettings"}},"instances":{"type":"array","description":"Db2 Instance configuration properties used by the Galasa Db2 Manager","items":{"$ref":"#/definitions/db2InstanceItemsGalasaSettings"}}}},"db2DseInstanceItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Db2 DSE Instance configuration properties used by the Galasa Db2 Manager","properties":{"tag":{"type":"string","description":"User-defined identifier for the z/OS Image tag"},"name":{"type":"string","description":"User-defined identifier for the Db2 tag"}}},"db2SchemaItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"This property specifies the name of the primary Db2 schema that Galasa will use when interacting with a Db2 database","properties":{"tag":{"type":"string","description":"User-defined identifier for the primary Db2 Schema"},"name":{"type":"string","description":"User-defined identifier for the Db2 schema tag"}}},"db2InstanceItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties for the Db2 instance for use within Galasa tests","properties":{"tag":{"type":"string","description":"User-defined identifier for the Db2 tag"},"url":{"type":"string","description":"Specify the JDBC connection URL for a Db2 database instance"},"credentials":{"type":"string","description":"User-defined identifier for the Db2 credentials tag"}}},"imstmDseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the IMS TM manager for the DSE provisioner for a specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the IMS tag"},"applid":{"type":"string","description":"Application Identifier of an IMS TM region for the DSE provisioner"}}},"dliGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa DLI Manager","properties":{"datastoreTags":{"type":"array","description":"User-defined identifier for the DLI Datastore tag","items":{"$ref":"#/definitions/dliDatastoreTagItemsGalasaSettings"}},"databaseTags":{"type":"array","description":"User-defined identifier for the DLI Database tag","items":{"$ref":"#/definitions/dliDatabaseTagItemsGalasaSettings"}}}},"dliDatastoreTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa DLI Manager for datastore access for a specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the DLI Datastore tag"},"name":{"type":"string","description":"Specify the Datastore name"},"server":{"type":"string","description":"Specify the hostname or IP address of the Datastore"},"port":{"type":"integer","description":"Specify the port of the Datastore"},"ssl":{"type":"boolean","description":"Specify if SSL is enabled on the Datastore"}}},"dliDatabaseTagItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the Galasa DLI Manager for database access for a specific tag","properties":{"tag":{"type":"string","description":"User-defined identifier for the DLI Database tag"},"datastore":{"type":"string","description":"User-defined identifier for the DLI datastore tag"},"name":{"type":"string","description":"Provide the name of the database"}}},"totpMfaItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used by the TOTP Manager for MFA","properties":{"tag":{"type":"string","description":"User-defined identifier for the TOTP MFA tag"},"digits":{"type":"integer","description":"The number of digits required in each generated one time password"},"digest":{"type":"string","description":"The hash algorithm used when generating each one time password"},"interval":{"type":"integer","description":"The number of seconds that each generated one time password will be valid for"}}},"dpsServerGalasaSettings":{"type":"object","additionalProperties":false,"description":"Configuration properties used to connect to Debug Profile Service","properties":{"port":{"type":"integer","description":"Specify the port of the Debug Profile Service on the remote z/OS system"},"secured":{"type":"boolean","description":"Enable a secure connection"},"host":{"type":"string","description":"Specify the hostname of the remote z/OS system"},"credentials":{"type":"string","description":"User-defined identifier for the credentials tag"}}},"additionalPropertiesItemsGalasaSettings":{"type":"object","additionalProperties":false,"description":"Additional properties to be used","properties":{"name":{"type":"string","description":"The key of the additional property"},"value":{"type":"string","description":"The value of the additional property"}}},"functionalTestSettings":{"type":"object","additionalProperties":false,"description":"Specify settings for the functional test.","properties":{"defaultTestCaseFolder":{"type":"string","description":"Specify the path to the default test case folder."},"codePages":{"type":"string","description":"Specify the code pages to be used."},"localBmsMapNames":{"type":"array","description":"Specify an array of local BMS files.","items":{"type":"string"}},"localMfsFiles":{"type":"array","description":"Specify an array of local MFS files from the mfs-maps directory to be used for generating accurate test files. Ex: sample.mfs.","items":{"type":"string"}},"localImsDbdFiles":{"type":"array","description":"Specify an array of local IMS DBD files from the config-files directory to be used for generating accurate test files. Ex: imsDbd.txt.","items":{"type":"string"}},"localDb2Config":{"type":"array","description":"Specify an array of local Db2 config files.","items":{"type":"string"}},"localCobolSourceFiles":{"type":"array","description":"Specify an array of local COBOL source code files from the config-files directory to be used for generating accurate test files. Ex: ims.cbl.","items":{"type":"string"}},"substitutionMap":{"$ref":"#/definitions/substitutionMapSettings"}}},"ZCodeScanRuleItem":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["local"],"description":"The storage type.","default":"local","examples":["local"]},"locations":{"type":"array","description":"An array of file locations. For \'local\' values can be absolute and relative filename paths using GLOB patterns.","items":{"type":"string"},"examples":["**/*.yaml","${git-rule-repo}/rule-model/**/*.yaml"]}},"required":["type","locations"]},"ZCodeScanSettings":{"type":"object","additionalProperties":false,"description":"IBM ZCodeScan settings.","properties":{"rules":{"type":"array","description":"The IBM ZCodeScan rule files are YAML files that contains a list of rules that needs to be applied on codebase.","items":{"$ref":"#/definitions/ZCodeScanRuleItem"}},"customRuleModels":{"type":"array","description":"The IBM ZCodeScan custom rule model defines custom rule domains for IBM ZCodeScan code analysis. It structures the code quality rules that can be used in a static analysis.","items":{"$ref":"#/definitions/ZCodeScanRuleItem"}},"customRuleJars":{"type":"array","description":"The IBM ZCodeScan custom rule Java JAR files. The Java code needs to be packaged into a Java jar file so that it can be consumed by IBM ZCodeScan.","items":{"$ref":"#/definitions/ZCodeScanRuleItem"}}}},"CodeCoverageSettings":{"type":"object","additionalProperties":false,"description":"Code coverage settings.","properties":{"listingOnlyPrograms":{"type":"array","description":"List of relative path names (with GLOB wildcard support) to programs that can only be viewed using the Code Coverage extension\'s LISTING view.","items":{"type":"string","pattern":"^(?!.*[\\\\\\\\/]{2,})(?!.*[<>:\\"|?])(?!\\\\.\\\\.)(?!/)([a-zA-Z0-9_\\\\-.*]+(?:[\\\\\\\\/][a-zA-Z0-9_\\\\-.*]+)*)$"},"examples":["**/src/*","src/PGM1.cbl","src/*.cob"]}}}},"anyOf":[{"$ref":"#/definitions/coreProperties"}]}');class $04802ddbf77b0972$export$20a2815e8c83febb extends $06319fbb034d54be$export$3fa3a1ffc042110d{static{this.validationFunction=$04802ddbf77b0972$export$20a2815e8c83febb.initAjvValidator()}static initAjvValidator(){let e=new($parcel$interopDefault($hsidQ$ajv))({allErrors:!0,strictTuples:!1,allowUnionTypes:!0});return $parcel$interopDefault($hsidQ$ajvformats)(e),e.compile($ed75809f53652cce$exports)}static createFromYamlString(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(e)}static createFromJsonString(e){let t="";try{let i=JSON.parse(e);return t=$hsidQ$jsyaml.dump(i),this.createFromYamlString(t)}catch(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(t,e?.message||e)}}static createFromObject(e){return this.createFromJsonString(JSON.stringify(e))}static async createFromYamlFile(e){let t="";try{t=await this.readFileWithRetry(e);let i=this.createFromYamlString(t);return i.file={path:e,type:"yaml"},i}catch(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(t,e?.message||e)}}static async createFromJsonFile(e){let t="";try{t=await this.readFileWithRetry(e);let i=this.createFromJsonString(t);return i.file={path:e,type:"json"},i}catch(e){return new $04802ddbf77b0972$export$20a2815e8c83febb(t,e?.message||e)}}static async createFromFile(e){return e?.endsWith(".yaml")||e?.endsWith(".yml")?await this.createFromYamlFile(e):e?.endsWith(".json")?await this.createFromJsonFile(e):new $04802ddbf77b0972$export$20a2815e8c83febb("","Invalid filename for reading a ZAPP file.")}static async loadFromWorkspace(e){let t=this.findZappFile(e);return t?.type==="yaml"?await this.createFromYamlFile(t.path):t?.type==="json"?await this.createFromJsonFile(t.path):new $04802ddbf77b0972$export$20a2815e8c83febb("",`No ZAPP file was found in "${e}".`)}static findZappFile(e){if(!e)return;let t=$hsidQ$path.normalize(e),i=$hsidQ$path.join(t,"zapp.yaml");if($hsidQ$fs.existsSync(i))return{path:i,type:"yaml"};let a=$hsidQ$path.join(t,"zapp.yml");if($hsidQ$fs.existsSync(a))return{path:a,type:"yaml"};let r=$hsidQ$path.join(t,"zapp.json");if($hsidQ$fs.existsSync(r))return{path:r,type:"json"}}static isZappFileName(e){return/^(zapp\.)(yml|yaml|json)$/.test(e)}getVariables(){let e=[],t=this.getAsYaml();if(t){let i=t.match(/\${.*?}/g);i&&(e=(e=[...new Set(i)]).map(e=>e.replace(/[${}]/g,"")))}return e}getAsDocument(){try{let e=this.yawn.json;if(e)return e}catch(e){this.prependErrorMessage(e?.message)}}validate(){if(this.yawn){if(this.isValid=$04802ddbf77b0972$export$20a2815e8c83febb.validationFunction(this.getAsObject()),!this.isValid){let e=$04802ddbf77b0972$export$20a2815e8c83febb.validationFunction.errors;return e?e.forEach(e=>{let t=e.message;if(e.params){let i=e.params,a=Object.keys(i).map(e=>`${e}:${i[e]}`);t=`${t}(${a})`}this.appendErrorMessage(t)}):this.appendErrorMessage("Unknown validation error."),!1}return!0}return!1}constructor(...e){super(...e),this.type="zapp"}}class $33f2606524745ccb$export$c06d94e9d38b8bae extends $b1285f501b3f0a4a$export$2941748d4d27acfc{static{this.cacheType="zapp"}static getInstance(){return this.instance||(this.instance=new $33f2606524745ccb$export$c06d94e9d38b8bae(this.cacheType)),this.instance}static resetInstance(){this.instance=void 0}static getZappDocument(e){if(!e)return;let t=this.getInstance().normalizePath(e);if(this.getInstance().documentsCache.has(t))return this.getInstance().numberDocsFound++,this.getInstance().documentsCache.get(t)}static async loadZappDocument(e,t){if(!e)return;let i=this.getInstance().normalizePath(e),a=await $04802ddbf77b0972$export$20a2815e8c83febb.createFromFile(i),r=t;return t||(r=$hsidQ$path.dirname(i)),this.getInstance().addDocument(e,r,a),this.getInstance().numberDocsAdded++,a}static removeZappDocument(e){return this.getInstance().removeDocument(e)}static clearZappDocument(e){this.getInstance().clearSchemaDocument(e)}static getZappDocumentInWorkspace(e){if(!e)return;let t=this.getInstance().normalizePath(e),i=this.getInstance().workspacesMap.get(t);if(i)return this.getZappDocument(i)}static async loadZappDocumentInWorkspace(e){let t=this.getInstance().normalizePath(e),i=$04802ddbf77b0972$export$20a2815e8c83febb.findZappFile(t);if(i){let a=await this.loadZappDocument(i.path,e);return this.getInstance().workspacesMap.set(t,i.path),a}}isValidFilename(e){return $04802ddbf77b0972$export$20a2815e8c83febb.isZappFileName(e)}static getVariablesFromAllDocs(){let e=[];for(let t of this.getInstance().documentsCache.values())t instanceof $04802ddbf77b0972$export$20a2815e8c83febb&&e.push(...t.getVariables());return e.length>1&&(e=[...new Set(e)]),e}static getCacheSize(){return this.getInstance().getCacheSize()}static getAllDocumentLocations(){return this.getInstance().getAllDocumentLocations()}static getCacheStats(){return this.getInstance().getCacheStats()}static clearCache(){this.getInstance().clearCache(),this.resetInstance()}}var $ca913c503ff973ee$exports={};$parcel$export($ca913c503ff973ee$exports,"ZappUserVariablesCache",()=>$ca913c503ff973ee$export$99d400c8aa397dfe);class $ca913c503ff973ee$export$99d400c8aa397dfe{static getInstance(){return this.instance||(this.instance=new $ca913c503ff973ee$export$99d400c8aa397dfe),this.instance}static resetInstance(){this.instance=void 0}static saveZappUserVariables(e){$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap=e,$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap.forEach((e,t)=>{if(e.includes($parcel$interopDefault($hsidQ$path).win32.sep)){let i=e.split($parcel$interopDefault($hsidQ$path).win32.sep).join($parcel$interopDefault($hsidQ$path).posix.sep);$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap.set(t,i)}})}static getZappUserVariables(){return $ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap}static clearCache(){$ca913c503ff973ee$export$99d400c8aa397dfe.getInstance().zappUserSettingsMap.clear(),this.resetInstance()}static replaceUserVariables(e){if(!e)return;let t=JSON.stringify(e),i=$ca913c503ff973ee$export$99d400c8aa397dfe.getZappUserVariables();if(!i||0===i.size)return e;let a=t.replace(/\${.*?\}/g,e=>{let t=e.slice(2,-1),a=i.get(t)??e;return t.replace(t,a)});try{return JSON.parse(a)}catch(t){return e}}constructor(){this.zappUserSettingsMap=new Map}}class $fac1dbefdcd03230$export$117dc7eeb984edf6{static getPropertyGroups(e,t){let i=[],a=$33f2606524745ccb$export$c06d94e9d38b8bae.getZappDocumentInWorkspace(e);if(a&&!a.errorMessages){let e=a.getAsDocument();if(e){let a=e.propertyGroups;a&&(i=a,t&&(i=a.filter(e=>!e.language||e.language===t)))}}return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(i)}}var $7000f33b169d3c58$exports={};$parcel$export($7000f33b169d3c58$exports,"UserBuildController",()=>$7000f33b169d3c58$export$b43c0013e41642ea);var $32042bc06eedcf31$exports={};$parcel$export($32042bc06eedcf31$exports,"ZappProfilesController",()=>$32042bc06eedcf31$export$4d46d6e73f3dbcd7);class $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getZappProfiles(e){let t=$33f2606524745ccb$export$c06d94e9d38b8bae.getZappDocumentInWorkspace(e);if(!t||t.errorMessages)return;let i=t.getAsDocument();if(i&&i.profiles&&0!==i.profiles.length)return i.profiles}static async loadZappProfiles(e){if(await $33f2606524745ccb$export$c06d94e9d38b8bae.loadZappDocumentInWorkspace(e))return this.getZappProfiles(e)}}var $42ac5850af2f6ebc$exports={};$parcel$export($42ac5850af2f6ebc$exports,"zappConstants",()=>$42ac5850af2f6ebc$export$5b17e1594a60a665);const $42ac5850af2f6ebc$export$5b17e1594a60a665={profileTypeDbb:"dbb",profileTypeRseApi:"rseapi",propertyPropertyGroups:"propertyGroups",profileTypePreprocessor:"preprocessor",profileTypeTest:"test",profileTypeGalasa:"galasa",profileTypeZCodeScan:"zcodescan",profileTypeCodeCoverage:"codecoverage"};class $7000f33b169d3c58$export$b43c0013e41642ea extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getUserBuildProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeDbb).map(e=>e.name)}static getUserBuildSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeDbb)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeDbb);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}var $ea473087bd4a8ebb$exports={};$parcel$export($ea473087bd4a8ebb$exports,"RseApiController",()=>$ea473087bd4a8ebb$export$3646e96376a215d6);class $ea473087bd4a8ebb$export$3646e96376a215d6 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getRseApiProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeRseApi).map(e=>e.name)}static onlyOneMappingsEntry(e){let t=this.getRseApiProfileNames(e);return t?.length===1}static getRseApiSettings(e){let t=this.getZappProfiles(e);if(t&&t.length>0){let e=t.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeRseApi);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static async loadRseApiSettings(e){if(await this.loadZappProfiles(e))return this.getRseApiSettings(e)}}var $619321c7228d4c17$exports={};$parcel$export($619321c7228d4c17$exports,"PreprocessorController",()=>$619321c7228d4c17$export$9dae19ebbff35912);class $619321c7228d4c17$export$9dae19ebbff35912 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getPreprocessorProfileNames(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)return i.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"language"in e&&(void 0===t||e.language===t)).map(e=>e.name)}static getPreprocessorProfileNamesBasedOnLocation(e,t,i){let a=this.getZappProfiles(e);if(a&&a.length>0)return a.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&e.location===t&&(void 0===i||e.language===i)).map(e=>e.name)}static getLocalPreprocessorSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0){let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"local"===e.location&&(void 0===t||e.language===t));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getMvsPreprocessorSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0){let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"mvs"===e.location&&(void 0===t||e.language===t));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getLocalPreprocessorProfileNamesBasedOnName(e,t,i){let a=this.getZappProfiles(e);if(a&&a.length>0){let e=a.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"local"===e.location&&e.name===t&&(void 0===i||e.language===i));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getMvsPreprocessorProfileNamesBasedOnName(e,t,i){let a=this.getZappProfiles(e);if(a&&a.length>0){let e=a.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&"mvs"===e.location&&e.name===t&&(void 0===i||e.language===i));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}static getPreprocessorProfile(e,t,i){let a=this.getZappProfiles(e);if(a&&a.length>0){let e=a.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypePreprocessor&&"location"in e&&(void 0===i||e.location===i)&&(void 0===t||e.language===t));return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e)}}}var $161ed02e8a1bf000$exports={};$parcel$export($161ed02e8a1bf000$exports,"TestController",()=>$161ed02e8a1bf000$export$eddf153237ef6277);class $161ed02e8a1bf000$export$eddf153237ef6277 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getTestProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeTest).map(e=>e.name)}static getTestSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeTest)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeTest);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}var $c261dfe50c828d02$exports={};$parcel$export($c261dfe50c828d02$exports,"GalasaController",()=>$c261dfe50c828d02$export$a930ec3beb2bdf92);class $c261dfe50c828d02$export$a930ec3beb2bdf92 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getGalasaProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeGalasa).map(e=>e.name)}static getGalasaSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeGalasa)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeGalasa);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}var $72de8f02941afa89$exports={};$parcel$export($72de8f02941afa89$exports,"ZCodeScanController",()=>$72de8f02941afa89$export$1792614a77425849);class $72de8f02941afa89$export$1792614a77425849 extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getZCodeScanProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeZCodeScan).map(e=>e.name)}static getZCodeScanSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeZCodeScan)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeZCodeScan);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}var $269f9f3f558eb092$exports={};$parcel$export($269f9f3f558eb092$exports,"CodeCoverageController",()=>$269f9f3f558eb092$export$1e684eba5d95d16b);class $269f9f3f558eb092$export$1e684eba5d95d16b extends $32042bc06eedcf31$export$4d46d6e73f3dbcd7{static getCodeCoverageProfileNames(e){let t=this.getZappProfiles(e);if(t&&t.length>0)return t.filter(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeCodeCoverage).map(e=>e.name)}static getCodeCoverageSettings(e,t){let i=this.getZappProfiles(e);if(i&&i.length>0)if(t){let e=i.find(e=>e.name===t);if(e?.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeCodeCoverage)return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e.settings)}else{let e=i.find(e=>e.type===$42ac5850af2f6ebc$export$5b17e1594a60a665.profileTypeCodeCoverage);return $ca913c503ff973ee$export$99d400c8aa397dfe.replaceUserVariables(e?.settings)}}}$parcel$exportWildcard($29ee84a662b1b8fd$exports,$fac1dbefdcd03230$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$7000f33b169d3c58$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$ea473087bd4a8ebb$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$32042bc06eedcf31$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$619321c7228d4c17$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$161ed02e8a1bf000$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$c261dfe50c828d02$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$72de8f02941afa89$exports),$parcel$exportWildcard($29ee84a662b1b8fd$exports,$269f9f3f558eb092$exports);var $4d56b609164198fa$exports={},$9e2faf2482a47e58$exports={};$parcel$exportWildcard($4d56b609164198fa$exports,$9e2faf2482a47e58$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$04802ddbf77b0972$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$33f2606524745ccb$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$42ac5850af2f6ebc$exports),$parcel$exportWildcard($4d56b609164198fa$exports,$ca913c503ff973ee$exports),$parcel$exportWildcard($f8f1f978d697847d$exports,$29ee84a662b1b8fd$exports),$parcel$exportWildcard($f8f1f978d697847d$exports,$4d56b609164198fa$exports),$parcel$exportWildcard(module.exports,$db89a39d91b9746d$exports),$parcel$exportWildcard(module.exports,$f8f1f978d697847d$exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibm/zapp-core",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "IBM ZAPP parser and core utilities",
5
5
  "publisher": "IBM",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -14,26 +14,26 @@
14
14
  "NOTICES.txt"
15
15
  ],
16
16
  "dependencies": {
17
- "ajv": "8.12.0",
18
- "ajv-formats": "2.1.1",
19
- "js-yaml": "4.1.0",
17
+ "ajv": "8.18.0",
18
+ "ajv-formats": "3.0.1",
19
+ "js-yaml": "4.1.1",
20
20
  "yawn-yaml": "1.5.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@parcel/packager-ts": "^2.15.4",
24
- "@parcel/transformer-typescript-types": "^2.15.4",
23
+ "@eslint/eslintrc": "^3.3.4",
24
+ "@eslint/js": "^9.39.0",
25
+ "@parcel/packager-ts": "^2.16.4",
26
+ "@parcel/transformer-typescript-types": "^2.16.4",
25
27
  "@types/jest": "^29.5.10",
26
28
  "@types/js-yaml": "4.0.5",
27
- "@types/node": "20.x",
29
+ "@types/node": "22.x",
28
30
  "@types/tmp": "0.2.6",
29
31
  "@types/yawn-yaml": "1.4.0",
30
- "@typescript-eslint/eslint-plugin": "^8.2.0",
31
- "@typescript-eslint/parser": "^8.2.0",
32
32
  "concurrently": "^8.2.2",
33
33
  "copyfiles": "^2.4.1",
34
- "eslint": "^8.57.0",
35
- "eslint-config-prettier": "9.1.0",
36
- "eslint-plugin-prettier": "5.2.1",
34
+ "eslint": "^9.39.2",
35
+ "eslint-config-prettier": "^10.1.8",
36
+ "eslint-plugin-prettier": "^5.5.5",
37
37
  "jest": "^29.7.0",
38
38
  "jest-cli": "^29.7.0",
39
39
  "jest-junit": "^16.0.0",
@@ -41,19 +41,19 @@
41
41
  "jest-stare": "^2.5.1",
42
42
  "json-schema-to-typescript": "10.1.0",
43
43
  "madge": "^8.0.0",
44
- "parcel": "^2.15.4",
45
- "prettier": "3.1.0",
44
+ "parcel": "^2.16.4",
45
+ "prettier": "3.8.1",
46
46
  "rimraf": "^4.1.2",
47
47
  "tmp": "0.2.5",
48
48
  "ts-jest": "^29.1.1",
49
- "typescript": "^5.3.2"
49
+ "typescript": "^5.3.2",
50
+ "typescript-eslint": "^8.54.0"
50
51
  },
51
52
  "optionalDependencies": {
52
- "@parcel/watcher-linux-x64-glibc": "^2.5.1"
53
+ "@parcel/watcher-linux-x64-glibc": "^2.5.6"
53
54
  },
54
55
  "overrides": {
55
- "semver": "^7.5.3",
56
- "word-wrap": "^1.2.4"
56
+ "diff": "^8.0.3"
57
57
  },
58
58
  "@parcel/transformer-js": {
59
59
  "inlineFS": false,
@@ -71,7 +71,7 @@
71
71
  "scripts": {
72
72
  "prebuild": "npm run build:resources",
73
73
  "build": "tsc --pretty && npm run checkDeps && npm run lintErrors",
74
- "build:resources": "rimraf resources/* ../../schema/zapp-schema-*.json && node ../../scripts/schema-version.js && copyfiles -f ../../schema/zapp-schema-*.json ./resources",
74
+ "build:resources": "rimraf --glob resources/* ../../schema/zapp-schema-*.json && node ../../scripts/schema-version.js && copyfiles -f ../../schema/zapp-schema-*.json ./resources",
75
75
  "build:version": "npm version --new-version $npm_package_version-`date '+%Y%m%d%H%M'`-`git rev-parse --short HEAD` --no-git-tag-version",
76
76
  "build:package": "npm run clean && parcel build",
77
77
  "build:test": "npm run clean && npm run build && npm run test",
@@ -79,11 +79,12 @@
79
79
  "prepublishOnly": "npm run package",
80
80
  "clean": "npm run build:resources && rimraf lib",
81
81
  "watch": "tsc --pretty --watch",
82
- "lint": "concurrently -n \"_eslint_,prettier\" \"eslint . --ext .ts\" \"prettier --check .\"",
83
- "lintErrors": "concurrently -n \"_eslint_,prettier\" \"eslint . --quiet --ext .ts\" \"prettier --check .\"",
82
+ "lint": "eslint . && npm run pretty-check",
83
+ "lintErrors": "eslint . --quiet && npm run pretty-check . ../../schema/zapp-schema.json",
84
84
  "checkDeps": "madge --extensions ts --circular ./src",
85
85
  "plotDeps": "madge --extensions ts --image ./docs/dependency-graph.svg ./src",
86
- "pretty": "prettier --write .",
86
+ "pretty-check": "prettier --check .",
87
+ "pretty": "prettier --write . ../../schema/zapp-schema.json",
87
88
  "get-version": "echo $npm_package_version",
88
89
  "generate-schema": "node ../../scripts/schema-version.js && node ./scripts/generate-zapp-interface.js",
89
90
  "test": "jest --coverage"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "title": "IBM Zapp Document",
4
- "description": "JSON schema for zapp.json and zapp.yaml files. Version 1.7.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2025. All Rights Reserved.",
4
+ "description": "JSON schema for zapp.json and zapp.yaml files. Version 1.9.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2026. All Rights Reserved.",
5
5
  "type": "object",
6
6
  "definitions": {
7
7
  "coreProperties": {
@@ -212,7 +212,7 @@
212
212
  },
213
213
  "type": {
214
214
  "type": "string",
215
- "enum": ["dbb", "rseapi", "debug", "preprocessor", "test", "galasa"],
215
+ "enum": ["dbb", "rseapi", "debug", "preprocessor", "test", "galasa", "zcodescan", "codecoverage"],
216
216
  "description": "The type of the profile.",
217
217
  "default": "dbb"
218
218
  },
@@ -354,6 +354,40 @@
354
354
  "$ref": "#/definitions/galasaSettingsItem"
355
355
  }
356
356
  }
357
+ },
358
+ {
359
+ "title": "ZCodeScan profile",
360
+ "required": ["name", "type", "settings"],
361
+ "additionalProperties": false,
362
+ "properties": {
363
+ "name": {
364
+ "type": "string"
365
+ },
366
+ "type": {
367
+ "const": "zcodescan",
368
+ "type": "string"
369
+ },
370
+ "settings": {
371
+ "$ref": "#/definitions/ZCodeScanSettings"
372
+ }
373
+ }
374
+ },
375
+ {
376
+ "title": "Code Coverage profile",
377
+ "required": ["name", "type", "settings"],
378
+ "additionalProperties": false,
379
+ "properties": {
380
+ "name": {
381
+ "type": "string"
382
+ },
383
+ "type": {
384
+ "const": "codecoverage",
385
+ "type": "string"
386
+ },
387
+ "settings": {
388
+ "$ref": "#/definitions/CodeCoverageSettings"
389
+ }
390
+ }
357
391
  }
358
392
  ]
359
393
  },
@@ -1215,7 +1249,14 @@
1215
1249
  },
1216
1250
  "localDb2Config": {
1217
1251
  "type": "array",
1218
- "description": "Specify an array of local Db2 Config files.",
1252
+ "description": "Specify an array of local Db2 config files.",
1253
+ "items": {
1254
+ "type": "string"
1255
+ }
1256
+ },
1257
+ "localCobolSourceFiles": {
1258
+ "type": "array",
1259
+ "description": "Specify an array of local COBOL source code files from the config-files directory to be used for generating accurate test files. Ex: ims.cbl.",
1219
1260
  "items": {
1220
1261
  "type": "string"
1221
1262
  }
@@ -1224,6 +1265,72 @@
1224
1265
  "$ref": "#/definitions/substitutionMapSettings"
1225
1266
  }
1226
1267
  }
1268
+ },
1269
+ "ZCodeScanRuleItem": {
1270
+ "type": "object",
1271
+ "additionalProperties": false,
1272
+ "properties": {
1273
+ "type": {
1274
+ "type": "string",
1275
+ "enum": ["local"],
1276
+ "description": "The storage type.",
1277
+ "default": "local",
1278
+ "examples": ["local"]
1279
+ },
1280
+ "locations": {
1281
+ "type": "array",
1282
+ "description": "An array of file locations. For 'local' values can be absolute and relative filename paths using GLOB patterns.",
1283
+ "items": {
1284
+ "type": "string"
1285
+ },
1286
+ "examples": ["**/*.yaml", "${git-rule-repo}/rule-model/**/*.yaml"]
1287
+ }
1288
+ },
1289
+ "required": ["type", "locations"]
1290
+ },
1291
+ "ZCodeScanSettings": {
1292
+ "type": "object",
1293
+ "additionalProperties": false,
1294
+ "description": "IBM ZCodeScan settings.",
1295
+ "properties": {
1296
+ "rules": {
1297
+ "type": "array",
1298
+ "description": "The IBM ZCodeScan rule files are YAML files that contains a list of rules that needs to be applied on codebase.",
1299
+ "items": {
1300
+ "$ref": "#/definitions/ZCodeScanRuleItem"
1301
+ }
1302
+ },
1303
+ "customRuleModels": {
1304
+ "type": "array",
1305
+ "description": "The IBM ZCodeScan custom rule model defines custom rule domains for IBM ZCodeScan code analysis. It structures the code quality rules that can be used in a static analysis.",
1306
+ "items": {
1307
+ "$ref": "#/definitions/ZCodeScanRuleItem"
1308
+ }
1309
+ },
1310
+ "customRuleJars": {
1311
+ "type": "array",
1312
+ "description": "The IBM ZCodeScan custom rule Java JAR files. The Java code needs to be packaged into a Java jar file so that it can be consumed by IBM ZCodeScan.",
1313
+ "items": {
1314
+ "$ref": "#/definitions/ZCodeScanRuleItem"
1315
+ }
1316
+ }
1317
+ }
1318
+ },
1319
+ "CodeCoverageSettings": {
1320
+ "type": "object",
1321
+ "additionalProperties": false,
1322
+ "description": "Code coverage settings.",
1323
+ "properties": {
1324
+ "listingOnlyPrograms": {
1325
+ "type": "array",
1326
+ "description": "List of relative path names (with GLOB wildcard support) to programs that can only be viewed using the Code Coverage extension's LISTING view.",
1327
+ "items": {
1328
+ "type": "string",
1329
+ "pattern": "^(?!.*[\\\\/]{2,})(?!.*[<>:\"|?])(?!\\.\\.)(?!/)([a-zA-Z0-9_\\-.*]+(?:[\\\\/][a-zA-Z0-9_\\-.*]+)*)$"
1330
+ },
1331
+ "examples": ["**/src/*", "src/PGM1.cbl", "src/*.cob"]
1332
+ }
1333
+ }
1227
1334
  }
1228
1335
  },
1229
1336
  "anyOf": [