@forge/manifest 13.3.0-next.1 → 13.3.0-next.10

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,59 @@
1
1
  # @forge/manifest
2
2
 
3
+ ## 13.3.0-next.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 4404f62: Update manifest definitions
8
+
9
+ ## 13.3.0-next.9
10
+
11
+ ### Patch Changes
12
+
13
+ - 3e8de63: add `manifest render` command
14
+
15
+ ## 13.3.0-next.8
16
+
17
+ ### Patch Changes
18
+
19
+ - 4b90a07: Lint target directory when using the manual packaging
20
+
21
+ ## 13.3.0-next.7
22
+
23
+ ### Patch Changes
24
+
25
+ - 89ccb1e: Update manifest definitions
26
+
27
+ ## 13.3.0-next.6
28
+
29
+ ### Patch Changes
30
+
31
+ - e7bfe5e: Removing installationTarget
32
+
33
+ ## 13.3.0-next.5
34
+
35
+ ### Minor Changes
36
+
37
+ - d1610cc: Manual runtime packaging option
38
+
39
+ ## 13.3.0-next.4
40
+
41
+ ### Patch Changes
42
+
43
+ - c3a0f20: Update manifest definitions
44
+
45
+ ## 13.3.0-next.3
46
+
47
+ ### Minor Changes
48
+
49
+ - 498fda5: Limit XCA to Confluence and Jira only for global:fullPage
50
+
51
+ ## 13.3.0-next.2
52
+
53
+ ### Minor Changes
54
+
55
+ - f01417b: Added global:fullPage module with linting for XCA
56
+
3
57
  ## 13.3.0-next.1
4
58
 
5
59
  ### Patch Changes
@@ -51,14 +51,6 @@
51
51
  "name"
52
52
  ]
53
53
  },
54
- "installationTarget": {
55
- "type": "string",
56
- "enum": [
57
- "site",
58
- "unit"
59
- ],
60
- "description": "The target of the app installation."
61
- },
62
54
  "compatibility": {
63
55
  "type": "object",
64
56
  "title": "compatibility",
@@ -320,9 +312,14 @@
320
312
  "type": "string",
321
313
  "enum": [
322
314
  "webpack",
323
- "typescript"
315
+ "typescript",
316
+ "manual@2026"
324
317
  ]
325
318
  },
319
+ "path": {
320
+ "description": "For manual packaging, path where the packaged runtime code is located.",
321
+ "type": "string"
322
+ },
326
323
  "extraFiles": {
327
324
  "description": "A list of files to include in the Forge app package.",
328
325
  "type": "array",
@@ -58,10 +58,6 @@ export interface App {
58
58
  description?: Description;
59
59
  id: Id;
60
60
  runtime: Runtime;
61
- /**
62
- * The target of the app installation.
63
- */
64
- installationTarget?: 'site' | 'unit';
65
61
  compatibility?: Compatibility;
66
62
  access?: Access;
67
63
  licensing?: Licensing;
@@ -234,7 +230,11 @@ export interface Package {
234
230
  /**
235
231
  * Bundler to use for packaging the runtime code.
236
232
  */
237
- bundler?: 'webpack' | 'typescript';
233
+ bundler?: 'webpack' | 'typescript' | 'manual@2026';
234
+ /**
235
+ * For manual packaging, path where the packaged runtime code is located.
236
+ */
237
+ path?: string;
238
238
  /**
239
239
  * A list of files to include in the Forge app package.
240
240
  */
@@ -51,14 +51,6 @@
51
51
  "name"
52
52
  ]
53
53
  },
54
- "installationTarget": {
55
- "type": "string",
56
- "enum": [
57
- "site",
58
- "unit"
59
- ],
60
- "description": "The target of the app installation."
61
- },
62
54
  "compatibility": {
63
55
  "type": "object",
64
56
  "title": "compatibility",
@@ -320,9 +312,14 @@
320
312
  "type": "string",
321
313
  "enum": [
322
314
  "webpack",
323
- "typescript"
315
+ "typescript",
316
+ "manual@2026"
324
317
  ]
325
318
  },
319
+ "path": {
320
+ "description": "For manual packaging, path where the packaged runtime code is located.",
321
+ "type": "string"
322
+ },
326
323
  "extraFiles": {
327
324
  "description": "A list of files to include in the Forge app package.",
328
325
  "type": "array",
@@ -31755,9 +31752,19 @@
31755
31752
  "type": "object",
31756
31753
  "additionalProperties": false,
31757
31754
  "required": [
31758
- "jsonRpcTransport"
31755
+ "jsonRpcTransport",
31756
+ "version"
31759
31757
  ],
31760
31758
  "properties": {
31759
+ "version": {
31760
+ "type": "string",
31761
+ "title": "version",
31762
+ "description": "The A2A protocol version this agent implements. Determines the shape of the AgentCard returned by web-triggers and the message format enforced at invocation time. Supported values: '0.3', '1.0'. This field is required. Early EAP apps deployed before this field existed may be exempt via the xls-a2a-legacy-version-exempt feature gate.",
31763
+ "enum": [
31764
+ "0.3",
31765
+ "1.0"
31766
+ ]
31767
+ },
31761
31768
  "jsonRpcTransport": {
31762
31769
  "$ref": "#/definitions/protocolEndpoint",
31763
31770
  "description": "Enables Agent2Agent protocol over JSON-RPC 2.0 transport."
@@ -31851,7 +31858,7 @@
31851
31858
  "description": "The human-readable name of the MCP server.",
31852
31859
  "type": "string",
31853
31860
  "minLength": 1,
31854
- "maxLength": 255
31861
+ "maxLength": 30
31855
31862
  },
31856
31863
  "tools": {
31857
31864
  "description": "A list of actions that will be exposed by the MCP server.",
@@ -31861,7 +31868,7 @@
31861
31868
  "uniqueItems": true,
31862
31869
  "items": {
31863
31870
  "description": "The key of an action extension in your manifest.",
31864
- "maxLength": 255,
31871
+ "maxLength": 64,
31865
31872
  "minLength": 1,
31866
31873
  "pattern": "^[a-zA-Z0-9-._]+$",
31867
31874
  "title": "ActionExtensionKey",
@@ -32905,6 +32912,263 @@
32905
32912
  ]
32906
32913
  },
32907
32914
  "minItems": 1
32915
+ },
32916
+ "global:fullPage": {
32917
+ "type": "array",
32918
+ "items": {
32919
+ "oneOf": [
32920
+ {
32921
+ "type": "object",
32922
+ "additionalProperties": false,
32923
+ "properties": {
32924
+ "title": {
32925
+ "oneOf": [
32926
+ {
32927
+ "type": "object",
32928
+ "additionalProperties": false,
32929
+ "properties": {
32930
+ "i18n": {
32931
+ "type": "string",
32932
+ "minLength": 1,
32933
+ "maxLength": 300,
32934
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
32935
+ }
32936
+ },
32937
+ "required": [
32938
+ "i18n"
32939
+ ]
32940
+ },
32941
+ {
32942
+ "type": "string",
32943
+ "minLength": 1,
32944
+ "maxLength": 255
32945
+ }
32946
+ ]
32947
+ },
32948
+ "title__i18n": {
32949
+ "type": "string",
32950
+ "minLength": 1,
32951
+ "maxLength": 300,
32952
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
32953
+ },
32954
+ "routePrefix": {
32955
+ "type": "string",
32956
+ "minLength": 1,
32957
+ "maxLength": 255,
32958
+ "pattern": "^[a-z0-9\\\\-]+$"
32959
+ },
32960
+ "icon": {
32961
+ "type": "string",
32962
+ "minLength": 1,
32963
+ "maxLength": 255
32964
+ },
32965
+ "resource": {
32966
+ "type": "string",
32967
+ "minLength": 1,
32968
+ "maxLength": 47,
32969
+ "pattern": "^[a-zA-Z0-9_\\\\-]{1,23}(/[a-zA-Z0-9_\\\\-]{1,23})?$"
32970
+ },
32971
+ "resolvedResourceEntry": {
32972
+ "type": "string",
32973
+ "minLength": 1,
32974
+ "maxLength": 64,
32975
+ "pattern": "^[a-zA-Z0-9._-]+$"
32976
+ },
32977
+ "resourceUploadId": {
32978
+ "type": "string",
32979
+ "minLength": 1,
32980
+ "maxLength": 255
32981
+ },
32982
+ "resolver": {
32983
+ "anyOf": [
32984
+ {
32985
+ "additionalProperties": false,
32986
+ "type": "object",
32987
+ "properties": {
32988
+ "function": {
32989
+ "type": "string",
32990
+ "minLength": 1,
32991
+ "maxLength": 255,
32992
+ "pattern": "^[a-zA-Z0-9-_]+$"
32993
+ }
32994
+ },
32995
+ "required": [
32996
+ "function"
32997
+ ]
32998
+ },
32999
+ {
33000
+ "additionalProperties": false,
33001
+ "type": "object",
33002
+ "properties": {
33003
+ "endpoint": {
33004
+ "type": "string",
33005
+ "minLength": 1,
33006
+ "maxLength": 255,
33007
+ "pattern": "^[a-zA-Z0-9-_]+$"
33008
+ }
33009
+ },
33010
+ "required": [
33011
+ "endpoint"
33012
+ ]
33013
+ }
33014
+ ]
33015
+ },
33016
+ "unlicensedAccess": {
33017
+ "type": "array",
33018
+ "items": {
33019
+ "type": "string",
33020
+ "enum": [
33021
+ "unlicensed",
33022
+ "anonymous"
33023
+ ]
33024
+ }
33025
+ },
33026
+ "key": {
33027
+ "$ref": "#/definitions/ModuleKeySchema"
33028
+ }
33029
+ },
33030
+ "required": [
33031
+ "resource",
33032
+ "routePrefix",
33033
+ "key"
33034
+ ]
33035
+ },
33036
+ {
33037
+ "type": "object",
33038
+ "additionalProperties": false,
33039
+ "properties": {
33040
+ "title": {
33041
+ "oneOf": [
33042
+ {
33043
+ "type": "object",
33044
+ "additionalProperties": false,
33045
+ "properties": {
33046
+ "i18n": {
33047
+ "type": "string",
33048
+ "minLength": 1,
33049
+ "maxLength": 300,
33050
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
33051
+ }
33052
+ },
33053
+ "required": [
33054
+ "i18n"
33055
+ ]
33056
+ },
33057
+ {
33058
+ "type": "string",
33059
+ "minLength": 1,
33060
+ "maxLength": 255
33061
+ }
33062
+ ]
33063
+ },
33064
+ "title__i18n": {
33065
+ "type": "string",
33066
+ "minLength": 1,
33067
+ "maxLength": 300,
33068
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
33069
+ },
33070
+ "resolver": {
33071
+ "anyOf": [
33072
+ {
33073
+ "additionalProperties": false,
33074
+ "type": "object",
33075
+ "properties": {
33076
+ "function": {
33077
+ "type": "string",
33078
+ "minLength": 1,
33079
+ "maxLength": 255,
33080
+ "pattern": "^[a-zA-Z0-9-_]+$"
33081
+ }
33082
+ },
33083
+ "required": [
33084
+ "function"
33085
+ ]
33086
+ },
33087
+ {
33088
+ "additionalProperties": false,
33089
+ "type": "object",
33090
+ "properties": {
33091
+ "endpoint": {
33092
+ "type": "string",
33093
+ "minLength": 1,
33094
+ "maxLength": 255,
33095
+ "pattern": "^[a-zA-Z0-9-_]+$"
33096
+ }
33097
+ },
33098
+ "required": [
33099
+ "endpoint"
33100
+ ]
33101
+ }
33102
+ ]
33103
+ },
33104
+ "resource": {
33105
+ "type": "string",
33106
+ "minLength": 1,
33107
+ "maxLength": 47,
33108
+ "pattern": "^[a-zA-Z0-9_\\\\-]{1,23}(/[a-zA-Z0-9_\\\\-]{1,23})?$"
33109
+ },
33110
+ "resolvedResourceEntry": {
33111
+ "type": "string",
33112
+ "minLength": 1,
33113
+ "maxLength": 64,
33114
+ "pattern": "^[a-zA-Z0-9._-]+$"
33115
+ },
33116
+ "resourceUploadId": {
33117
+ "type": "string",
33118
+ "minLength": 1,
33119
+ "maxLength": 255
33120
+ },
33121
+ "render": {
33122
+ "enum": [
33123
+ "native",
33124
+ "default"
33125
+ ],
33126
+ "type": "string",
33127
+ "default": "default"
33128
+ },
33129
+ "renderRuntimeType": {
33130
+ "enum": [
33131
+ "webworker",
33132
+ "iframe"
33133
+ ],
33134
+ "type": "string",
33135
+ "default": "iframe"
33136
+ },
33137
+ "routePrefix": {
33138
+ "type": "string",
33139
+ "minLength": 1,
33140
+ "maxLength": 255,
33141
+ "pattern": "^[a-z0-9\\\\-]+$"
33142
+ },
33143
+ "icon": {
33144
+ "type": "string",
33145
+ "minLength": 1,
33146
+ "maxLength": 255
33147
+ },
33148
+ "unlicensedAccess": {
33149
+ "type": "array",
33150
+ "items": {
33151
+ "type": "string",
33152
+ "enum": [
33153
+ "unlicensed",
33154
+ "anonymous"
33155
+ ]
33156
+ }
33157
+ },
33158
+ "key": {
33159
+ "$ref": "#/definitions/ModuleKeySchema"
33160
+ }
33161
+ },
33162
+ "required": [
33163
+ "resource",
33164
+ "routePrefix",
33165
+ "render",
33166
+ "key"
33167
+ ]
33168
+ }
33169
+ ]
33170
+ },
33171
+ "minItems": 1
32908
33172
  }
32909
33173
  },
32910
33174
  "title": "ModuleSchema",
@@ -34086,7 +34350,7 @@
34086
34350
  ]
34087
34351
  }
34088
34352
  },
34089
- "targets": {
34353
+ "placements": {
34090
34354
  "type": "array",
34091
34355
  "minItems": 1,
34092
34356
  "items": {
@@ -511,6 +511,10 @@ export type ActionExtensionKey1 = string;
511
511
  * The key for a rovo:skill module in your descriptor / manifest.
512
512
  */
513
513
  export type RovoSkillModuleKey = string;
514
+ /**
515
+ * The A2A protocol version this agent implements. Determines the shape of the AgentCard returned by web-triggers and the message format enforced at invocation time. Supported values: '0.3', '1.0'. This field is required. Early EAP apps deployed before this field existed may be exempt via the xls-a2a-legacy-version-exempt feature gate.
516
+ */
517
+ export type Version = '0.3' | '1.0';
514
518
  /**
515
519
  * The key of the endpoint that should be invoked.
516
520
  */
@@ -840,7 +844,7 @@ export type OverriddenServices = {
840
844
  export type ManifestOverrides = {
841
845
  applyTo: {
842
846
  environmentTypes?: ['DEVELOPMENT' | 'STAGING' | 'PRODUCTION', ...('DEVELOPMENT' | 'STAGING' | 'PRODUCTION')[]];
843
- targets?: [string, ...string[]];
847
+ placements?: [string, ...string[]];
844
848
  };
845
849
  value: {
846
850
  services?: OverriddenServices;
@@ -864,10 +868,6 @@ export interface App {
864
868
  description?: Description;
865
869
  id: Id;
866
870
  runtime: Runtime;
867
- /**
868
- * The target of the app installation.
869
- */
870
- installationTarget?: 'site' | 'unit';
871
871
  compatibility?: Compatibility;
872
872
  access?: Access;
873
873
  licensing?: Licensing;
@@ -1040,7 +1040,11 @@ export interface Package {
1040
1040
  /**
1041
1041
  * Bundler to use for packaging the runtime code.
1042
1042
  */
1043
- bundler?: 'webpack' | 'typescript';
1043
+ bundler?: 'webpack' | 'typescript' | 'manual@2026';
1044
+ /**
1045
+ * For manual packaging, path where the packaged runtime code is located.
1046
+ */
1047
+ path?: string;
1044
1048
  /**
1045
1049
  * A list of files to include in the Forge app package.
1046
1050
  */
@@ -26259,6 +26263,7 @@ export interface Modules {
26259
26263
  */
26260
26264
  protocols: {
26261
26265
  agent2Agent: {
26266
+ version: Version;
26262
26267
  /**
26263
26268
  * Enables Agent2Agent protocol over JSON-RPC 2.0 transport.
26264
26269
  */
@@ -26306,6 +26311,7 @@ export interface Modules {
26306
26311
  */
26307
26312
  protocols: {
26308
26313
  agent2Agent: {
26314
+ version: Version;
26309
26315
  /**
26310
26316
  * Enables Agent2Agent protocol over JSON-RPC 2.0 transport.
26311
26317
  */
@@ -27472,6 +27478,104 @@ export interface Modules {
27472
27478
  key: ModuleKeySchema;
27473
27479
  }[]
27474
27480
  ];
27481
+ 'global:fullPage'?: [
27482
+ (
27483
+ | {
27484
+ title?:
27485
+ | {
27486
+ i18n: string;
27487
+ }
27488
+ | string;
27489
+ title__i18n?: string;
27490
+ routePrefix: string;
27491
+ icon?: string;
27492
+ resource: string;
27493
+ resolvedResourceEntry?: string;
27494
+ resourceUploadId?: string;
27495
+ resolver?:
27496
+ | {
27497
+ function: string;
27498
+ }
27499
+ | {
27500
+ endpoint: string;
27501
+ };
27502
+ unlicensedAccess?: ('unlicensed' | 'anonymous')[];
27503
+ key: ModuleKeySchema;
27504
+ }
27505
+ | {
27506
+ title?:
27507
+ | {
27508
+ i18n: string;
27509
+ }
27510
+ | string;
27511
+ title__i18n?: string;
27512
+ resolver?:
27513
+ | {
27514
+ function: string;
27515
+ }
27516
+ | {
27517
+ endpoint: string;
27518
+ };
27519
+ resource: string;
27520
+ resolvedResourceEntry?: string;
27521
+ resourceUploadId?: string;
27522
+ render: 'native' | 'default';
27523
+ renderRuntimeType?: 'webworker' | 'iframe';
27524
+ routePrefix: string;
27525
+ icon?: string;
27526
+ unlicensedAccess?: ('unlicensed' | 'anonymous')[];
27527
+ key: ModuleKeySchema;
27528
+ }
27529
+ ),
27530
+ ...(
27531
+ | {
27532
+ title?:
27533
+ | {
27534
+ i18n: string;
27535
+ }
27536
+ | string;
27537
+ title__i18n?: string;
27538
+ routePrefix: string;
27539
+ icon?: string;
27540
+ resource: string;
27541
+ resolvedResourceEntry?: string;
27542
+ resourceUploadId?: string;
27543
+ resolver?:
27544
+ | {
27545
+ function: string;
27546
+ }
27547
+ | {
27548
+ endpoint: string;
27549
+ };
27550
+ unlicensedAccess?: ('unlicensed' | 'anonymous')[];
27551
+ key: ModuleKeySchema;
27552
+ }
27553
+ | {
27554
+ title?:
27555
+ | {
27556
+ i18n: string;
27557
+ }
27558
+ | string;
27559
+ title__i18n?: string;
27560
+ resolver?:
27561
+ | {
27562
+ function: string;
27563
+ }
27564
+ | {
27565
+ endpoint: string;
27566
+ };
27567
+ resource: string;
27568
+ resolvedResourceEntry?: string;
27569
+ resourceUploadId?: string;
27570
+ render: 'native' | 'default';
27571
+ renderRuntimeType?: 'webworker' | 'iframe';
27572
+ routePrefix: string;
27573
+ icon?: string;
27574
+ unlicensedAccess?: ('unlicensed' | 'anonymous')[];
27575
+ key: ModuleKeySchema;
27576
+ }
27577
+ )[]
27578
+ ];
27475
27579
  [k: string]: unknown;
27476
27580
  }
27477
27581
  export interface Payload {
@@ -203,6 +203,12 @@ export declare const errors: {
203
203
  renderMustBeNative: (keyName: string, index: number) => string;
204
204
  compatibilityRequired: () => string;
205
205
  };
206
+ globalFullPage: {
207
+ invalidRouteRegex: (pattern: string, keyName: string, index: number) => string;
208
+ propertyUniqueness: (property: string, moduleKey: string, keys: string[]) => string;
209
+ invalidIcon: (icon: string, keyName: string, index: number) => string;
210
+ compatibilityRequired: () => string;
211
+ };
206
212
  };
207
213
  resources: {
208
214
  missingResource: (folder: string, key: string) => string;
@@ -268,6 +274,7 @@ export declare const errors: {
268
274
  compatibility: {
269
275
  invalidConfluenceModuleInJira: () => string;
270
276
  invalidJiraModuleInConfluence: () => string;
277
+ invalidProduct: (product: string) => string;
271
278
  oneRequiredContext: () => string;
272
279
  };
273
280
  };
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,eAAO,MAAM,MAAM;8BACS,MAAM,KAAG,MAAM;+BACd,MAAM,EAAE,KAAG,MAAM;2BAIvB,MAAM;yBAEN,MAAM,GAAG,SAAS,QAAQ,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,KAAG,MAAM;;uBAO3E,MAAM,EAAE,EAAE,GAAG,SAAS,KAAG,MAAM;4BAI1B,MAAM,EAAE,KAAG,MAAM;mCACV,MAAM,SAAS,MAAM,mBAAmB,MAAM,KAAG,MAAM;mDAIvC,MAAM,KAAG,MAAM;4BAEtC,MAAM,EAAE,GAAG,SAAS,KAAG,MAAM;+CAIV,MAAM;6CACR,MAAM,gBAAgB,MAAM;qCAEpC,MAAM;2CACA,MAAM;6CACJ,MAAM;;;qCAGd,MAAM,SAAS,MAAM,KAAG,MAAM;4CAEvB,MAAM,SAAS,MAAM,KAAG,MAAM;0DAEhB,MAAM,YAAY,MAAM,mBAAmB,MAAM,EAAE,KAAG,MAAM;oDAIlE,MAAM,OAAO,MAAM,KAAG,MAAM;kDAE9B,MAAM,OAAO,MAAM,KAAG,MAAM;wCAEtC,MAAM,SAAS,MAAM,EAAE,KAAG,MAAM;0CAI9B,MAAM;2CAEL,MAAM,KAAG,MAAM;0CAEhB,MAAM,SAAS,MAAM,KAAG,MAAM;+CAEzB,MAAM,KAAG,MAAM;wCAEtB,MAAM,KAAG,MAAM;gCAEvB,MAAM,KAAG,MAAM;;;uCAIR,MAAM,KAAG,MAAM;0CACZ,MAAM,KAAG,MAAM;;;gCAGzB,MAAM,KAAG,MAAM;6BACpB,MAAM;+BACJ,MAAM;iCACF,MAAM,KAAG,MAAM;yCACP,MAAM,eAAe,MAAM,KAAG,MAAM;yCAEpC,MAAM,eAAe,MAAM,KAAG,MAAM;wCAErC,MAAM,cAAc,MAAM,KAAG,MAAM;yCAElC,MAAM,eAAe,MAAM,KAAG,MAAM;wCAErC,MAAM,aAAa,MAAM,KAAG,MAAM;oCAEtC,MAAM;6CACG,MAAM,KAAG,MAAM;0EAEc,MAAM,KAAG,MAAM;4DAE7B,MAAM,KAAG,MAAM;6DAEd,MAAM,KAAG,MAAM;;yCAGrC,MAAM,KAAG,MAAM;iCAEvB,MAAM,KAAG,MAAM;4CACJ,MAAM,gBAAgB,MAAM,KAAG,MAAM;sCAE3C,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,KAAG,MAAM;;;wDAIzC,MAAM,qBAAqB,MAAM,KAAG,MAAM;4CAEtD,MAAM,qBAAqB,MAAM,KAAG,MAAM;qDAEjC,MAAM,cAAc,MAAM,qBAAqB,MAAM,KAAG,MAAM;0DAEzD,MAAM,YAAY,MAAM,cAAc,MAAM,EAAE,KAAG,MAAM;;;yCAIxE,MAAM,aAAa,MAAM,QAAQ,MAAM,EAAE,KAAG,MAAM;2CAIhD,MAAM,aAAa,MAAM,QAAQ,MAAM,EAAE,KAAG,MAAM;sDAEvC,MAAM,QAAQ,MAAM,EAAE,KAAG,MAAM;8DAEvB,MAAM,aAAa,MAAM,cAAc,MAAM,KAAG,MAAM;6EAEvC,MAAM,qBAAqB,MAAM,KAAG,MAAM;yEAE9C,MAAM,qBAAqB,MAAM,KAAG,MAAM;;wCAG/E,MAAM;sDACU,MAAM,KAAG,MAAM;iDAEpB,MAAM,KAAG,MAAM;2DAEL,MAAM,KAAG,MAAM;0CAEhC,MAAM,OAAO,MAAM,KAAG,MAAM;yDAEb,MAAM,KAAG,MAAM;uEAED,MAAM,KAAG,MAAM;;;sDAIhC,MAAM,WAAW,MAAM,SAAS,MAAM,KAAG,MAAM;6CAExD,MAAM,KAAG,MAAM;;;6CAIf,MAAM,WAAW,MAAM,SAAS,MAAM,KAAG,MAAM;uCAErD,MAAM,WAAW,MAAM,SAAS,MAAM,KAAG,MAAM;;;;mCAKjD,MAAM,KAAG,MAAM;mCAEf,MAAM,KAAG,MAAM;;;qCAIb,MAAM,KAAG,MAAM;;;0CAIV,MAAM,KAAG,MAAM;;;4CAIb,MAAM,EAAE,KAAG,MAAM;;;6CAIhB,MAAM,SAAS,MAAM,KAAG,MAAM;;;yCAIlC,MAAM,WAAW,MAAM,SAAS,MAAM,KAAG,MAAM;2CAE7C,MAAM,aAAa,MAAM,QAAQ,MAAM,EAAE,KAAG,MAAM;gCAE7D,MAAM,WAAW,MAAM,SAAS,MAAM,KAAG,MAAM;;;sCAIzC,MAAM,KAAG,MAAM;0CAEX,MAAM,KAAG,MAAM;;;wCAIjB,cAAc,OAAO,MAAM,UAAU,MAAM,EAAE,KAAG,MAAM;;;mCAI3D,MAAM,EAAE,KAAG,MAAM;yDAEK,MAAM,KAAG,MAAM;;;4DAIZ,MAAM,KAAG,MAAM;qCAEtC,MAAM,KAAG,MAAM;2CAET,MAAM,KAAG,MAAM;;;oCAGtB,MAAM,KAAG,MAAM;;oCAEjB,MAAM,SAAS,MAAM,KAAG,MAAM;qCAI7B,MAAM,YAAY,MAAM,KAAG,MAAM;;;;;iCAQrC,MAAM,KAAG,MAAM;;;;8DAKc,MAAM;8DAEJ,MAAM,qBAAqB,MAAM,KAAG,MAAM;kDAEtD,MAAM,qBAAqB,MAAM,KAAG,MAAM;;;wDAIpC,MAAM,KAAG,MAAM;yCAE9B,MAAM,KAAG,MAAM;qCACnB,MAAM,KAAG,MAAM;6DACS,MAAM,KAAG,MAAM;;;oDAIxB,MAAM,aAAa,MAAM,KAAG,MAAM;0CAE5C,MAAM,KAAG,MAAM;oDAEL,MAAM,eAAe,MAAM,KAAG,MAAM;wDAEhC,MAAM,eAAe,MAAM,KAAG,MAAM;qCAEvD,MAAM,WAAW,MAAM,KAAG,MAAM;6CAExB,MAAM,KAAG,MAAM;0CAElB,MAAM,gBAAgB,MAAM,KAAG,MAAM;gDAE/B,MAAM,gBAAgB,MAAM,KAAG,MAAM;yCAE5C,MAAM,QAAQ,MAAM,KAAG,MAAM;4DAEV,MAAM,KAAG,MAAM;sDAErB,MAAM,KAAG,MAAM;4CAEzB,MAAM,KAAG,MAAM;0CACjB,MAAM,KAAG,MAAM;0CAEf,MAAM,KAAG,MAAM;sDAEH,MAAM,iBAAiB,MAAM,KAAG,MAAM;mDAEzC,MAAM,KAAG,MAAM;iDAEjB,MAAM,KAAG,MAAM;mDAEb,MAAM,KAAG,MAAM;yDAET,MAAM,KAAG,MAAM;mDAErB,MAAM,KAAG,MAAM;+CAEnB,MAAM,KAAG,MAAM;mDAEX,MAAM,KAAG,MAAM;mDAEf,MAAM,KAAG,MAAM;oDAEd,MAAM,KAAG,MAAM;qDAEd,MAAM,YAAY,MAAM,KAAG,MAAM;wDAE9B,MAAM,iBAAiB,MAAM,KAAG,MAAM;uDAEvC,MAAM,SAAS,MAAM,KAAG,MAAM;yCAE5C,MAAM,KAAG,MAAM;2CACb,MAAM,KAAG,MAAM;iDAET,MAAM,KAAG,MAAM;mCAE7B,MAAM,WAAW,MAAM,KAAG,MAAM;;;yCAI1B,MAAM,KAAG,MAAM;8CAEV,MAAM,KAAG,MAAM;yDAEJ,MAAM,aAAa,MAAM,KAAG,MAAM;;;sDAIrC,MAAM;oDAER,MAAM,SAAS,MAAM;wCAEjC,MAAM;;;6CAGD,MAAM,YAAY,MAAM,KAAG,MAAM;;;kCAI5C,MAAM,KAAG,MAAM;qCAEd,MAAM;iCACV,MAAM;;;gCAGL,MAAM,WAAW,MAAM,SAAS,MAAM,KAAG,MAAM;0CAErC,MAAM,SAAS,MAAM,KAAG,MAAM;yCAEjC,MAAM;;;;kCAIT,MAAM,OAAO,MAAM,KAAG,MAAM;iCAE7B,MAAM,KAAG,MAAM;iCACf,MAAM,OAAO,MAAM,KAAG,MAAM;oCAEzB,MAAM,OAAO,MAAM,KAAG,MAAM;gDAEhB,MAAM,KAAG,MAAM;uCAExB,MAAM,KAAG,MAAM;+BACvB,MAAM,OAAO,MAAM,KAAG,MAAM;uCAEpB,MAAM,OAAO,MAAM,KAAG,MAAM;uCAE5B,MAAM,YAAY,MAAM,OAAO,MAAM,KAAG,MAAM;sCAE/C,MAAM,OAAO,MAAM,KAAG,MAAM;wCAE1B,MAAM,OAAO,MAAM,KAAG,MAAM;kDAElB,MAAM,OAAO,MAAM,KAAG,MAAM;+CAE/B,MAAM,OAAO,MAAM,KAAG,MAAM;6CAE9B,MAAM,YAAY,MAAM,aAAa,MAAM,KAAG,MAAM;4CAErD,MAAM,KAAG,MAAM;4DAEC,MAAM,YAAY,MAAM,aAAa,MAAM,KAAG,MAAM;yDAEvD,MAAM,YAAY,MAAM,aAAa,MAAM,KAAG,MAAM;;;;;;;;kCAS3E,MAAM,UAAU,MAAM,KAAG,MAAM;gCAEjC,MAAM,KAAG,MAAM;2CAEJ,MAAM,eAAe,MAAM,KAAG,MAAM;kCAE7C,MAAM,UAAU,MAAM,KAAG,MAAM;0CAEvB,MAAM,UAAU,MAAM,KAAG,MAAM;;;uCAIpC,MAAM;uCAEJ,MAAM,KAAG,MAAM;qCAEnB,MAAM;2CAEA,MAAM;sDACK,MAAM;;6CAGjB,MAAM;;;mDAIE,MAAM,KAAG,MAAM;iDAEnB,MAAM;;;;4CAKX,MAAM,SAAS,MAAM,KAAG,MAAM;4CAE9B,MAAM,KAAG,MAAM;4CACf,MAAM,SAAS,MAAM,KAAG,MAAM;+CAE3B,MAAM,aAAa,MAAM,SAAS,MAAM,KAAG,MAAM;yCAEvD,MAAM,SAAS,MAAM,KAAG,MAAM;4CAE3B,MAAM,SAAS,MAAM,KAAG,MAAM;gDAE1B,MAAM,aAAa,MAAM,KAAG,MAAM;4CAEtC,MAAM,SAAS,MAAM,KAAG,MAAM;;;;;gCAM1C,MAAM;;;;;;;;;;0DAawB,wBAAwB,KAAG,MAAM;sDAErC,wBAAwB,KAAG,MAAM;kDAErC,wBAAwB,QAAQ,MAAM,KAAG,MAAM;mDAE9C,wBAAwB,KAAG,MAAM;mCAEjD,MAAM,KAAG,MAAM;;oDAEE,MAAM,aAAa,MAAM,KAAG,MAAM;4CAE1C,MAAM,sBAAsB,wBAAwB,YAAY,MAAM;;;;mCAKjF,MAAM;;;CAQlC,CAAC;AAEF,oBAAY,UAAU;IACpB,eAAe,2BAA2B;IAC1C,eAAe,wBAAwB;IACvC,WAAW,4BAA4B;IACvC,WAAW,+BAA+B;IAC1C,aAAa,8BAA8B;IAC3C,OAAO,0BAA0B;IACjC,cAAc,kCAAkC;IAChD,SAAS,4BAA4B;IACrC,SAAS,4BAA4B;IACrC,UAAU,wBAAwB;IAClC,GAAG,8BAA8B;CAClC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
@@ -216,6 +216,12 @@ exports.errors = {
216
216
  invalidIcon: (icon, keyName, index) => `The icon '${icon}' at index '${index}' for key '${keyName}' needs to be a defined resource of file type svg.`,
217
217
  renderMustBeNative: (keyName, index) => `The render property at index '${index}' for key '${keyName}' must be set to 'native' for global:ui modules.`,
218
218
  compatibilityRequired: () => `Apps using the global:ui module must define the app.compatibility property.`
219
+ },
220
+ globalFullPage: {
221
+ invalidRouteRegex: (pattern, keyName, index) => `The routePrefix '${pattern}' at index '${index}' for key '${keyName}' needs to be in a valid URL route between 1-255 characters and contain only URL safe characters such as: a-z, 0-9 and '\' and '-'.`,
222
+ propertyUniqueness: (property, moduleKey, keys) => `${property} should be unique across all ${moduleKey} modules. Found duplicates: ${keys.join(', ')}`,
223
+ invalidIcon: (icon, keyName, index) => `The icon '${icon}' at index '${index}' for key '${keyName}' needs to be a defined resource of file type svg.`,
224
+ compatibilityRequired: () => `Apps using the global:fullPage module must define the app.compatibility property.`
219
225
  }
220
226
  },
221
227
  resources: {
@@ -282,6 +288,7 @@ exports.errors = {
282
288
  compatibility: {
283
289
  invalidConfluenceModuleInJira: () => 'Using the module `confluence:fullPage` is invalid when the required product is Jira. Full page modules must match the required product. Use `jira:fullPage` as the module type, or change the required product to Confluence in your manifest.yml compatibility settings.',
284
290
  invalidJiraModuleInConfluence: () => 'Using the module `jira:fullPage` is invalid when the required product is Confluence. Full page modules must match the required product. Use `confluence:fullPage` as the module type, or change the required product to Jira in your manifest.yml compatibility settings.',
291
+ invalidProduct: (product) => `Invalid product '${product}' in app.compatibility. Only 'jira' and 'confluence' are supported as compatibility products for this module.`,
285
292
  oneRequiredContext: () => 'One context (Jira, Confluence, or Compass) must have `required:true` in app.compatibility.'
286
293
  }
287
294
  },
@@ -208,7 +208,8 @@ export declare enum AllModuleTypes {
208
208
  DevopsRemoteLinkInfoProvider = "devops:remoteLinkInfoProvider",
209
209
  DevopsDesignInfoProvider = "devops:designInfoProvider",
210
210
  DevopsSecurityInfoProvider = "devops:securityInfoProvider",
211
- GlobalUi = "global:ui"
211
+ GlobalUi = "global:ui",
212
+ GlobalFullPage = "global:fullPage"
212
213
  }
213
214
  export declare const SUPPORTED_MODULES: AllModuleTypes[];
214
215
  export declare const SUPPORTED_PRODUCTS_ONLY: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"module-types.d.ts","sourceRoot":"","sources":["../../src/types/module-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-types.d.ts","sourceRoot":"","sources":["../../src/types/module-types.ts"],"names":[],"mappings":"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"}
@@ -213,6 +213,7 @@ var AllModuleTypes;
213
213
  AllModuleTypes["DevopsDesignInfoProvider"] = "devops:designInfoProvider";
214
214
  AllModuleTypes["DevopsSecurityInfoProvider"] = "devops:securityInfoProvider";
215
215
  AllModuleTypes["GlobalUi"] = "global:ui";
216
+ AllModuleTypes["GlobalFullPage"] = "global:fullPage";
216
217
  })(AllModuleTypes || (exports.AllModuleTypes = AllModuleTypes = {}));
217
218
  exports.SUPPORTED_MODULES = Object.values(AllModuleTypes);
218
219
  exports.SUPPORTED_PRODUCTS_ONLY = [...new Set(exports.SUPPORTED_MODULES.map((module) => module.split(':')[0]))];
@@ -0,0 +1,4 @@
1
+ import { ManifestSchema } from '../schema/manifest';
2
+ export declare const SOURCE_DIRECTORY = "src";
3
+ export declare function getHandlersDirectory(manifest: Pick<ManifestSchema, 'app'>): string;
4
+ //# sourceMappingURL=get-handlers-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-handlers-directory.d.ts","sourceRoot":"","sources":["../../src/utils/get-handlers-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,MAAM,CAKlF"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SOURCE_DIRECTORY = void 0;
4
+ exports.getHandlersDirectory = getHandlersDirectory;
5
+ exports.SOURCE_DIRECTORY = 'src';
6
+ function getHandlersDirectory(manifest) {
7
+ if (manifest.app?.package?.bundler === 'manual@2026') {
8
+ return manifest.app?.package?.path ?? exports.SOURCE_DIRECTORY;
9
+ }
10
+ return exports.SOURCE_DIRECTORY;
11
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './get-all-modules';
2
+ export * from './get-handlers-directory';
2
3
  export * from './line-finder';
3
4
  export * from './module-key-cleaner';
4
5
  export * from './module-references';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,QAAQ,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./get-all-modules"), exports);
5
+ tslib_1.__exportStar(require("./get-handlers-directory"), exports);
5
6
  tslib_1.__exportStar(require("./line-finder"), exports);
6
7
  tslib_1.__exportStar(require("./module-key-cleaner"), exports);
7
8
  tslib_1.__exportStar(require("./module-references"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"compatibility-validator.d.ts","sourceRoot":"","sources":["../../src/validators/compatibility-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAmB,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAK3D,qBAAa,sBAAuB,YAAW,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;CA6DlG"}
1
+ {"version":3,"file":"compatibility-validator.d.ts","sourceRoot":"","sources":["../../src/validators/compatibility-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAmB,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAK3D,qBAAa,sBAAuB,YAAW,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;CAuElG"}
@@ -16,19 +16,15 @@ class CompatibilityValidator {
16
16
  const app = manifest.typedContent.app;
17
17
  const modules = manifest.typedContent.modules || {};
18
18
  const compatibility = app?.compatibility || {};
19
- const installationTarget = app?.installationTarget;
20
- const shouldCheckRequiredContext = installationTarget === undefined || installationTarget === 'site';
21
- if (shouldCheckRequiredContext) {
22
- const hasCompatibilityKeys = Object.keys(compatibility).length > 0;
23
- const requiredContexts = Object.keys(compatibility).filter((key) => compatibility[key]?.required === true);
24
- if (hasCompatibilityKeys && requiredContexts.length !== 1) {
25
- validationErrors.push({
26
- message: text_1.errors.app.compatibility.oneRequiredContext(),
27
- reference: text_2.References.SchemaError,
28
- level: 'error',
29
- ...(0, utils_1.findPosition)('compatibility', manifest.yamlContentByLine)
30
- });
31
- }
19
+ const hasCompatibilityKeys = Object.keys(compatibility).length > 0;
20
+ const requiredContexts = Object.keys(compatibility).filter((key) => compatibility[key]?.required === true);
21
+ if (hasCompatibilityKeys && requiredContexts.length !== 1) {
22
+ validationErrors.push({
23
+ message: text_1.errors.app.compatibility.oneRequiredContext(),
24
+ reference: text_2.References.SchemaError,
25
+ level: 'error',
26
+ ...(0, utils_1.findPosition)('compatibility', manifest.yamlContentByLine)
27
+ });
32
28
  }
33
29
  const isJiraPrimary = compatibility.jira?.required === true;
34
30
  const isConfluencePrimary = compatibility.confluence?.required === true;
@@ -49,6 +45,18 @@ class CompatibilityValidator {
49
45
  ...(0, utils_1.findPosition)('jira:fullPage', manifest.yamlContentByLine)
50
46
  });
51
47
  }
48
+ if (moduleKeys.some((key) => key === 'global:fullPage')) {
49
+ Object.keys(compatibility).forEach((product) => {
50
+ if (!['jira', 'confluence'].includes(product)) {
51
+ validationErrors.push({
52
+ message: text_1.errors.app.compatibility.invalidProduct(product),
53
+ reference: text_2.References.SchemaError,
54
+ level: 'error',
55
+ ...(0, utils_1.findPosition)(`${product}:`, manifest.yamlContentByLine)
56
+ });
57
+ }
58
+ });
59
+ }
52
60
  return {
53
61
  success: validationErrors.length === 0,
54
62
  manifestObject: manifest,
@@ -1 +1 @@
1
- {"version":3,"file":"modules-validator.d.ts","sourceRoot":"","sources":["../../src/validators/modules-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,wBAAwB,EAAsC,MAAM,UAAU,CAAC;AASxH,OAAO,EAEL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA2B3D,qBAAa,gBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAGzF,OAAO,CAAC,oBAAoB,CAAsE;IAE5F,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAkEpD,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,4BAA4B;IAapC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,mBAAmB;IA2E3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAkClC"}
1
+ {"version":3,"file":"modules-validator.d.ts","sourceRoot":"","sources":["../../src/validators/modules-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,wBAAwB,EAAsC,MAAM,UAAU,CAAC;AAUxH,OAAO,EAEL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA4B3D,qBAAa,gBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAGzF,OAAO,CAAC,oBAAoB,CAAsE;IAE5F,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAwEpD,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,4BAA4B;IAapC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,mBAAmB;IA2E3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAoClC"}
@@ -26,6 +26,7 @@ const validate_global_background_script_1 = require("./modules-validators/jira/v
26
26
  const automation_1 = require("./modules-validators/automation");
27
27
  const graph_1 = require("./modules-validators/graph");
28
28
  const validate_global_ui_1 = require("./modules-validators/global/validate-global-ui");
29
+ const validate_global_full_page_1 = require("./modules-validators/global/validate-global-full-page");
29
30
  class ModulesValidator {
30
31
  functionHandlerRegex = /^([\p{Alpha}\d_-]+(?:\/[\p{Alpha}\d_-]+)*)\.([\p{Alpha}\d_-]+)$/u;
31
32
  async validate(manifest) {
@@ -38,7 +39,7 @@ class ModulesValidator {
38
39
  let validationErrors = [...this.connectModuleValidation(manifest)];
39
40
  if (manifest.typedContent.modules) {
40
41
  const { typedContent: { modules, connectModules, remotes, permissions, services, providers }, yamlContentByLine, filePath } = manifest;
41
- validationErrors = validationErrors.concat(this.checkUnsupportedModules(manifest.typedContent.modules, yamlContentByLine), this.functionKeyLength(modules, yamlContentByLine), this.minimumModuleCountValidation(modules, yamlContentByLine), this.functionKeyDefinedValidation(modules, yamlContentByLine), this.endpointValidations(modules, yamlContentByLine, remotes, permissions?.scopes || [], services), this.duplicateModuleKeyValidation(modules, connectModules || {}, yamlContentByLine), this.functionHandlerValidation(modules, yamlContentByLine, filePath), (0, validate_workflow_1.validateJiraWorkflowValidator)(modules, yamlContentByLine), (0, validate_workflow_1.validateJiraWorkflowCondition)(modules, yamlContentByLine), (0, ui_modifications_1.validateUiModificationsModule)(modules, yamlContentByLine), (0, validate_full_admin_page_1.validateJiraFullAdminPage)(modules, yamlContentByLine), (0, validate_full_page_1.validateJiraFullPage)(modules, yamlContentByLine), (0, validate_full_page_module_1.validateJiraFullPageModule)(modules, yamlContentByLine), (0, validate_custom_field_1.validateJiraCustomField)(modules, yamlContentByLine), (0, confluence_1.validateConfluenceModules)(modules, yamlContentByLine), (0, bitbucket_1.validateBitbucketModules)(modules, yamlContentByLine), (0, validate_trigger_1.validateJiraTriggers)(modules, yamlContentByLine), (0, remote_1.validateRemoteModules)(modules, yamlContentByLine), (0, dataResidency_1.validateMigrationDataResidencyModule)(modules, remotes, yamlContentByLine), (0, validateModuleScopes_1.validateModuleScopes)(modules, yamlContentByLine, permissions), (0, rovo_1.validateRovoModules)(modules, (0, path_1.dirname)(filePath), yamlContentByLine), (0, automation_1.validateAutomationModules)(modules, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine), (0, validate_action_validator_1.validateJiraActionValidator)(modules, yamlContentByLine), (0, validate_global_background_script_1.validateJiraGlobalBackgroundScript)(modules, yamlContentByLine), (0, graph_1.validateGraphModules)(modules, providers, yamlContentByLine), (0, validate_global_ui_1.validateGlobalUi)(modules, manifest.typedContent.app, yamlContentByLine));
42
+ validationErrors = validationErrors.concat(this.checkUnsupportedModules(manifest.typedContent.modules, yamlContentByLine), this.functionKeyLength(modules, yamlContentByLine), this.minimumModuleCountValidation(modules, yamlContentByLine), this.functionKeyDefinedValidation(modules, yamlContentByLine), this.endpointValidations(modules, yamlContentByLine, remotes, permissions?.scopes || [], services), this.duplicateModuleKeyValidation(modules, connectModules || {}, yamlContentByLine), this.functionHandlerValidation(modules, yamlContentByLine, filePath, (0, utils_1.getHandlersDirectory)(manifest.typedContent)), (0, validate_workflow_1.validateJiraWorkflowValidator)(modules, yamlContentByLine), (0, validate_workflow_1.validateJiraWorkflowCondition)(modules, yamlContentByLine), (0, ui_modifications_1.validateUiModificationsModule)(modules, yamlContentByLine), (0, validate_full_admin_page_1.validateJiraFullAdminPage)(modules, yamlContentByLine), (0, validate_full_page_1.validateJiraFullPage)(modules, yamlContentByLine), (0, validate_full_page_module_1.validateJiraFullPageModule)(modules, yamlContentByLine), (0, validate_custom_field_1.validateJiraCustomField)(modules, yamlContentByLine), (0, confluence_1.validateConfluenceModules)(modules, yamlContentByLine), (0, bitbucket_1.validateBitbucketModules)(modules, yamlContentByLine), (0, validate_trigger_1.validateJiraTriggers)(modules, yamlContentByLine), (0, remote_1.validateRemoteModules)(modules, yamlContentByLine), (0, dataResidency_1.validateMigrationDataResidencyModule)(modules, remotes, yamlContentByLine), (0, validateModuleScopes_1.validateModuleScopes)(modules, yamlContentByLine, permissions), (0, rovo_1.validateRovoModules)(modules, (0, path_1.dirname)(filePath), yamlContentByLine), (0, automation_1.validateAutomationModules)(modules, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine), (0, validate_action_validator_1.validateJiraActionValidator)(modules, yamlContentByLine), (0, validate_global_background_script_1.validateJiraGlobalBackgroundScript)(modules, yamlContentByLine), (0, graph_1.validateGraphModules)(modules, providers, yamlContentByLine), (0, validate_global_ui_1.validateGlobalUi)(modules, manifest.typedContent.app, yamlContentByLine), (0, validate_global_full_page_1.validateGlobalFullPage)(modules, manifest.typedContent.app, yamlContentByLine));
42
43
  }
43
44
  else {
44
45
  const { typedContent: { connectModules }, yamlContentByLine } = manifest;
@@ -210,7 +211,7 @@ class ModulesValidator {
210
211
  });
211
212
  return validationErrors;
212
213
  }
213
- functionHandlerValidation(modules, yamlContentByLine, filePath) {
214
+ functionHandlerValidation(modules, yamlContentByLine, filePath, handlersDirectory) {
214
215
  const validationErrors = [];
215
216
  modules.function?.forEach((func) => {
216
217
  if (!this.functionHandlerRegex.test(func.handler)) {
@@ -224,9 +225,7 @@ class ModulesValidator {
224
225
  else {
225
226
  const matches = this.functionHandlerRegex.exec(func.handler);
226
227
  const fileName = matches ? matches[1] : undefined;
227
- const _checkFileExists = (fileName) => {
228
- return (['tsx', 'jsx', 'ts', 'js'].find((ext) => (0, fs_1.existsSync)((0, path_1.resolve)((0, path_1.dirname)(filePath), 'src', `${fileName}.${ext}`))) !== undefined);
229
- };
228
+ const _checkFileExists = (fileName) => ['tsx', 'jsx', 'ts', 'js'].some((ext) => (0, fs_1.existsSync)((0, path_1.resolve)((0, path_1.dirname)(filePath), handlersDirectory, `${fileName}.${ext}`)));
230
229
  if (!_checkFileExists(fileName)) {
231
230
  validationErrors.push({
232
231
  message: text_1.errors.modules.function.handler.fileNotExists(func.handler, fileName),
@@ -0,0 +1,4 @@
1
+ import { App, Modules } from '../../../schema/manifest';
2
+ import { ValidationError } from '../../../types';
3
+ export declare const validateGlobalFullPage: (modules: Modules, app: App, yamlContentByLine?: string[]) => ValidationError[];
4
+ //# sourceMappingURL=validate-global-full-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-global-full-page.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/global/validate-global-full-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA6DjE,eAAO,MAAM,sBAAsB,GAAI,SAAS,OAAO,EAAE,KAAK,GAAG,EAAE,oBAAoB,MAAM,EAAE,KAAG,eAAe,EAuDhH,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateGlobalFullPage = void 0;
4
+ const text_1 = require("../../../text");
5
+ const types_1 = require("../../../types");
6
+ const utils_1 = require("../../../utils");
7
+ const validateGlobalModules_1 = require("../../../utils/global/validateGlobalModules");
8
+ const ROUTE_FULL_PAGE = 'routePrefix';
9
+ const errorMessages = text_1.errors.modules.globalFullPage;
10
+ const validatePropertyUniqueness = (allModules, moduleType, property, yamlContentByLine) => {
11
+ const validationErrors = [];
12
+ const modules = allModules[moduleType] || [];
13
+ const allPropertyValues = modules.map((module) => module[property]).filter((property) => property);
14
+ const duplicatePropertyValues = allPropertyValues.filter((property, index, all) => all.indexOf(property) !== index);
15
+ if (duplicatePropertyValues.length > 0) {
16
+ const allModulesWithDuplicatedPropertyValues = modules.filter((module) => module[property] === duplicatePropertyValues[0]);
17
+ validationErrors.push({
18
+ message: errorMessages.propertyUniqueness(property, moduleType, duplicatePropertyValues),
19
+ reference: text_1.References.Modules,
20
+ level: 'error',
21
+ ...(0, utils_1.findPosition)(allModulesWithDuplicatedPropertyValues?.[0]?.key, yamlContentByLine)
22
+ });
23
+ }
24
+ return validationErrors;
25
+ };
26
+ const validateGlobalFullPage = (modules, app, yamlContentByLine) => {
27
+ const validationErrors = [];
28
+ const moduleType = types_1.AllModuleTypes.GlobalFullPage;
29
+ const globalFullPageModules = modules[moduleType] || [];
30
+ if (globalFullPageModules.length === 0) {
31
+ return validationErrors;
32
+ }
33
+ if (!app.compatibility) {
34
+ validationErrors.push({
35
+ message: errorMessages.compatibilityRequired(),
36
+ reference: text_1.References.Modules,
37
+ level: 'error',
38
+ ...(0, utils_1.findPosition)('app', yamlContentByLine)
39
+ });
40
+ }
41
+ validationErrors.push(...validatePropertyUniqueness(modules, moduleType, ROUTE_FULL_PAGE, yamlContentByLine));
42
+ globalFullPageModules.forEach((module, index) => {
43
+ validationErrors.push(...(0, validateGlobalModules_1.validateRoute)(module.key, module.routePrefix, index, errorMessages).map((error) => ({
44
+ message: error.message,
45
+ reference: text_1.References.Modules,
46
+ level: 'error',
47
+ ...(0, utils_1.findPosition)(error.moduleKey, yamlContentByLine)
48
+ })));
49
+ if (module.icon) {
50
+ validationErrors.push(...(0, validateGlobalModules_1.validateIcon)(module.key, module.icon, index, errorMessages).map((error) => ({
51
+ message: error.message,
52
+ reference: text_1.References.Modules,
53
+ level: 'error',
54
+ ...(0, utils_1.findPosition)(error.moduleKey, yamlContentByLine)
55
+ })));
56
+ }
57
+ });
58
+ return validationErrors;
59
+ };
60
+ exports.validateGlobalFullPage = validateGlobalFullPage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "13.3.0-next.1",
3
+ "version": "13.3.0-next.10",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {