@forge/manifest 8.4.0-next.3 → 8.4.1-experimental-f38fac9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @forge/manifest
2
2
 
3
+ ## 8.4.1-experimental-f38fac9
4
+
5
+ ### Patch Changes
6
+
7
+ - 49e01e5: Patch for nx-forge usage
8
+
9
+ ## 8.4.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 19c93e7: Update application manifest to support defining a primary product for XPA support
14
+ - 1815689: Update manifest definitions
15
+
16
+ ## 8.4.1-next.1
17
+
18
+ ### Patch Changes
19
+
20
+ - 1815689: Update manifest definitions
21
+
22
+ ## 8.4.1-next.0
23
+
24
+ ### Patch Changes
25
+
26
+ - 19c93e7: Update application manifest to support defining a primary product for XPA support
27
+
28
+ ## 8.4.0
29
+
30
+ ### Minor Changes
31
+
32
+ - e170565: Enforce no additional properties for functions
33
+
34
+ ### Patch Changes
35
+
36
+ - c599ff2: Fix: Path resolution for rovo resources
37
+ - 2ccf3f4: Update manifest definitions
38
+ - adf93f2: Adds the `appIsLicensed` display condition to Jira module schemas
39
+
3
40
  ## 8.4.0-next.3
4
41
 
5
42
  ### Minor Changes
@@ -5,6 +5,8 @@ export declare class StringResourceInterpolatorError extends ManifestInterpolato
5
5
  }
6
6
  export declare class StringResourceInterpolator implements ManifestInterpolator {
7
7
  type: InterpolatorType;
8
+ manifestPath: string;
9
+ constructor(manifestPath: string);
8
10
  interpolate(manifest: ManifestSchema): ManifestSchema;
9
11
  private fetchContentFromResourceFile;
10
12
  private getResourcePath;
@@ -1 +1 @@
1
- {"version":3,"file":"string-resource-interpolator.d.ts","sourceRoot":"","sources":["../../src/interpolator/string-resource-interpolator.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAa5G,qBAAa,+BAAgC,SAAQ,yBAAyB;gBAChE,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,0BAA2B,YAAW,oBAAoB;IACrE,IAAI,EAAE,gBAAgB,CAAoC;IAE1D,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAiBrD,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,8BAA8B;CAOvC"}
1
+ {"version":3,"file":"string-resource-interpolator.d.ts","sourceRoot":"","sources":["../../src/interpolator/string-resource-interpolator.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAa5G,qBAAa,+BAAgC,SAAQ,yBAAyB;gBAChE,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,0BAA2B,YAAW,oBAAoB;IACrE,IAAI,EAAE,gBAAgB,CAAoC;IAC1D,YAAY,EAAE,MAAM,CAAC;gBAET,YAAY,EAAE,MAAM;IAIhC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAiBrD,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,8BAA8B;CAOvC"}
@@ -19,6 +19,10 @@ class StringResourceInterpolatorError extends manifest_interpolator_1.ManifestIn
19
19
  exports.StringResourceInterpolatorError = StringResourceInterpolatorError;
20
20
  class StringResourceInterpolator {
21
21
  type = manifest_interpolator_1.InterpolatorType.STRING_RESOURCE;
22
+ manifestPath;
23
+ constructor(manifestPath) {
24
+ this.manifestPath = manifestPath;
25
+ }
22
26
  interpolate(manifest) {
23
27
  MODULE_PROPERTIES_TO_INTERPOLATE.forEach(({ moduleType, property }) => {
24
28
  const modules = manifest.modules?.[moduleType];
@@ -36,7 +40,7 @@ class StringResourceInterpolator {
36
40
  }
37
41
  fetchContentFromResourceFile(modulePropertyWithStringResource, manifest) {
38
42
  const resourcePath = this.getResourcePath(manifest, modulePropertyWithStringResource);
39
- const manifestDir = (0, path_1.dirname)(types_1.MANIFEST_FILE);
43
+ const manifestDir = (0, path_1.dirname)(this.manifestPath);
40
44
  try {
41
45
  return (0, fs_1.readFileSync)((0, path_1.resolve)(manifestDir, resourcePath), 'utf8');
42
46
  }
@@ -44,6 +44,16 @@
44
44
  "name"
45
45
  ]
46
46
  },
47
+ "primaryProduct": {
48
+ "type": "string",
49
+ "enum": [
50
+ "confluence",
51
+ "jira",
52
+ "compass"
53
+ ],
54
+ "title": "primaryProduct",
55
+ "description": "The primary product for cross-product functionality. If not set, app is not a cross-product app."
56
+ },
47
57
  "licensing": {
48
58
  "additionalProperties": false,
49
59
  "required": [
@@ -21,6 +21,10 @@ export type Snapshots = boolean;
21
21
  * Name of the runtime to use for app execution.
22
22
  */
23
23
  export type Name = 'sandbox' | 'nodejs18.x' | 'nodejs20.x' | 'nodejs22.x';
24
+ /**
25
+ * The primary product for cross-product functionality. If not set, app is not a cross-product app.
26
+ */
27
+ export type PrimaryProduct = 'confluence' | 'jira' | 'compass';
24
28
  /**
25
29
  * Whether to enable paid app licensing for production installations of this app. Default value of false.
26
30
  */
@@ -50,6 +54,7 @@ export interface App {
50
54
  description?: Description;
51
55
  id: Id;
52
56
  runtime: Runtime;
57
+ primaryProduct?: PrimaryProduct;
53
58
  licensing?: Licensing;
54
59
  features?: Features;
55
60
  connect?: Connect;
@@ -44,6 +44,16 @@
44
44
  "name"
45
45
  ]
46
46
  },
47
+ "primaryProduct": {
48
+ "type": "string",
49
+ "enum": [
50
+ "confluence",
51
+ "jira",
52
+ "compass"
53
+ ],
54
+ "title": "primaryProduct",
55
+ "description": "The primary product for cross-product functionality. If not set, app is not a cross-product app."
56
+ },
47
57
  "licensing": {
48
58
  "additionalProperties": false,
49
59
  "required": [
@@ -21,6 +21,10 @@ export type Snapshots = boolean;
21
21
  * Name of the runtime to use for app execution.
22
22
  */
23
23
  export type Name = 'sandbox' | 'nodejs18.x' | 'nodejs20.x' | 'nodejs22.x';
24
+ /**
25
+ * The primary product for cross-product functionality. If not set, app is not a cross-product app.
26
+ */
27
+ export type PrimaryProduct = 'confluence' | 'jira' | 'compass';
24
28
  /**
25
29
  * Whether to enable paid app licensing for production installations of this app. Default value of false.
26
30
  */
@@ -566,6 +570,7 @@ export interface App {
566
570
  description?: Description;
567
571
  id: Id;
568
572
  runtime: Runtime;
573
+ primaryProduct?: PrimaryProduct;
569
574
  licensing?: Licensing;
570
575
  features?: Features;
571
576
  connect?: Connect;
@@ -2,7 +2,7 @@ import { ManifestParser } from './manifest-parser';
2
2
  export declare class ManifestParserBuilder {
3
3
  private manifestInterpolatorManager;
4
4
  constructor();
5
- withInterpolators(): ManifestParserBuilder;
5
+ withInterpolators(manifestPath: string): ManifestParserBuilder;
6
6
  build(): ManifestParser;
7
7
  }
8
8
  //# sourceMappingURL=manifest-parser-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-parser-builder.d.ts","sourceRoot":"","sources":["../../src/utils/manifest-parser-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,2BAA2B,CAA8B;;IAcjE,iBAAiB,IAAI,qBAAqB;IAU1C,KAAK,IAAI,cAAc;CAGxB"}
1
+ {"version":3,"file":"manifest-parser-builder.d.ts","sourceRoot":"","sources":["../../src/utils/manifest-parser-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,2BAA2B,CAA8B;;IAcjE,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB;IAU9D,KAAK,IAAI,cAAc;CAGxB"}
@@ -10,9 +10,9 @@ class ManifestParserBuilder {
10
10
  constructor() {
11
11
  this.manifestInterpolatorManager = new manifest_interpolator_manager_1.ManifestInterpolatorManager();
12
12
  }
13
- withInterpolators() {
13
+ withInterpolators(manifestPath) {
14
14
  this.manifestInterpolatorManager.addInterpolator(new environment_variable_interpolator_1.EnvironmentVariableInterpolator(process.env));
15
- this.manifestInterpolatorManager.addInterpolator(new string_resource_interpolator_1.StringResourceInterpolator());
15
+ this.manifestInterpolatorManager.addInterpolator(new string_resource_interpolator_1.StringResourceInterpolator(manifestPath));
16
16
  return this;
17
17
  }
18
18
  build() {
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-validator.d.ts","sourceRoot":"","sources":["../../src/validators/yaml-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAIpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;IACrF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;CAiD9F"}
1
+ {"version":3,"file":"yaml-validator.d.ts","sourceRoot":"","sources":["../../src/validators/yaml-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAIpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;IACrF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;CAoD9F"}
@@ -16,7 +16,10 @@ class YamlValidator {
16
16
  }
17
17
  try {
18
18
  const content = fs_1.default.readFileSync(manifest.filePath, 'utf8');
19
- const manifestContent = new utils_1.ManifestParserBuilder().withInterpolators().build().parseManifest(content);
19
+ const manifestContent = new utils_1.ManifestParserBuilder()
20
+ .withInterpolators(manifest.filePath)
21
+ .build()
22
+ .parseManifest(content);
20
23
  return {
21
24
  success: true,
22
25
  manifestObject: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "8.4.0-next.3",
3
+ "version": "8.4.1-experimental-f38fac9",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {