@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 +37 -0
- package/out/interpolator/string-resource-interpolator.d.ts +2 -0
- package/out/interpolator/string-resource-interpolator.d.ts.map +1 -1
- package/out/interpolator/string-resource-interpolator.js +5 -1
- package/out/schema/basic-manifest-schema.json +10 -0
- package/out/schema/basic-manifest.d.ts +5 -0
- package/out/schema/manifest-schema.json +10 -0
- package/out/schema/manifest.d.ts +5 -0
- package/out/utils/manifest-parser-builder.d.ts +1 -1
- package/out/utils/manifest-parser-builder.d.ts.map +1 -1
- package/out/utils/manifest-parser-builder.js +2 -2
- package/out/validators/yaml-validator.d.ts.map +1 -1
- package/out/validators/yaml-validator.js +4 -1
- package/package.json +1 -1
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;
|
|
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)(
|
|
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": [
|
package/out/schema/manifest.d.ts
CHANGED
|
@@ -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,
|
|
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;
|
|
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()
|
|
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: {
|