@forge/manifest 10.4.0-next.2 → 10.4.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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @forge/manifest
2
2
 
3
+ ## 10.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7e13ccd: Add support for multi-service tunnelling
8
+ - 17dfed4: Add validation for experimental `jira:actionValidator` module
9
+ - 2a0dadd: Remove Node18 runtime
10
+
11
+ ### Patch Changes
12
+
13
+ - acb3247: Update Typing for JiraActionValidatorModule
14
+ - d3b9bde: Update manifest definitions
15
+
16
+ ## 10.4.0-next.3
17
+
18
+ ### Minor Changes
19
+
20
+ - 7e13ccd: Add support for multi-service tunnelling
21
+
3
22
  ## 10.4.0-next.2
4
23
 
5
24
  ### Patch Changes
package/out/index.d.ts CHANGED
@@ -8,6 +8,6 @@ export * from './text';
8
8
  export * from './types';
9
9
  export * from './utils';
10
10
  export * from './validators';
11
- export { Modules, ManifestSchema, App, Resources, Permissions, Remotes, Fetch, Providers, Backend, Frames, Navigation, Images, Media, Scripts1, Styles1, Scopes, Content1, Fonts, Translations, ForgeSupportedLocaleCode } from './schema/manifest';
11
+ export { Modules, ManifestSchema, App, Resources, Permissions, Remotes, Fetch, Providers, Backend, Frames, Navigation, Images, Media, Services, Scripts1, Styles1, Scopes, Content1, Fonts, Translations, ForgeSupportedLocaleCode } from './schema/manifest';
12
12
  export declare const validate: (basic?: boolean, manifest?: string | undefined) => Promise<ManifestValidationResult<ManifestSchema | BasicManifestSchema>>;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAmB,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,cAAc,EACd,GAAG,EACH,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,QAAQ,+BAET,MAAM,GAAG,SAAS,KAC3B,QAAQ,yBAAyB,cAAc,GAAG,mBAAmB,CAAC,CAInD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAmB,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,cAAc,EACd,GAAG,EACH,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,QAAQ,+BAET,MAAM,GAAG,SAAS,KAC3B,QAAQ,yBAAyB,cAAc,GAAG,mBAAmB,CAAC,CAInD,CAAC"}
@@ -14754,6 +14754,65 @@
14754
14754
  },
14755
14755
  "minItems": 1
14756
14756
  },
14757
+ "jira:actionValidator": {
14758
+ "type": "array",
14759
+ "items": {
14760
+ "type": "object",
14761
+ "properties": {
14762
+ "action": {
14763
+ "type": "string",
14764
+ "enum": [
14765
+ "workItemTypeChanged"
14766
+ ]
14767
+ },
14768
+ "expression": {
14769
+ "type": "string"
14770
+ },
14771
+ "errorMessage": {
14772
+ "anyOf": [
14773
+ {
14774
+ "additionalProperties": false,
14775
+ "type": "object",
14776
+ "properties": {
14777
+ "i18n": {
14778
+ "type": "string",
14779
+ "minLength": 1,
14780
+ "maxLength": 300,
14781
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
14782
+ }
14783
+ },
14784
+ "required": [
14785
+ "i18n"
14786
+ ]
14787
+ },
14788
+ {
14789
+ "type": "string"
14790
+ }
14791
+ ]
14792
+ },
14793
+ "errorMessage__i18n": {
14794
+ "type": "string",
14795
+ "minLength": 1,
14796
+ "maxLength": 300,
14797
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
14798
+ },
14799
+ "key": {
14800
+ "$ref": "#/definitions/ModuleKeySchema"
14801
+ }
14802
+ },
14803
+ "required": [
14804
+ "action",
14805
+ "expression",
14806
+ "key"
14807
+ ],
14808
+ "not": {
14809
+ "required": [
14810
+ "unlicensedAccess"
14811
+ ]
14812
+ }
14813
+ },
14814
+ "minItems": 1
14815
+ },
14757
14816
  "compass:adminPage": {
14758
14817
  "type": "array",
14759
14818
  "items": {
@@ -27044,7 +27103,12 @@
27044
27103
  "atlassian:pull-request",
27045
27104
  "atlassian:video",
27046
27105
  "atlassian:work-item",
27047
- "atlassian:worker"
27106
+ "atlassian:worker",
27107
+ "atlassian:dashboard",
27108
+ "atlassian:test",
27109
+ "atlassian:test-execution",
27110
+ "atlassian:test-plan",
27111
+ "atlassian:test-run"
27048
27112
  ],
27049
27113
  "minLength": 1,
27050
27114
  "maxLength": 255
@@ -27090,12 +27154,24 @@
27090
27154
  "formConfiguration": {
27091
27155
  "type": "object",
27092
27156
  "properties": {
27093
- "properties": {
27157
+ "form": {
27094
27158
  "type": "array",
27095
27159
  "minItems": 1,
27160
+ "maxItems": 5,
27096
27161
  "items": {
27097
- "$ref": "#/definitions/ConnectionProperty"
27098
- }
27162
+ "$ref": "#/definitions/FormSection"
27163
+ },
27164
+ "description": "Form properties to capture from Admin user (rendered in order)."
27165
+ },
27166
+ "instructions": {
27167
+ "type": "array",
27168
+ "items": {
27169
+ "type": "string"
27170
+ },
27171
+ "minItems": 1,
27172
+ "maxItems": 10,
27173
+ "description": "Instructions displayed to the admin at the top of the form.",
27174
+ "title": "instructions"
27099
27175
  },
27100
27176
  "validateConnection": {
27101
27177
  "type": "object",
@@ -27126,7 +27202,7 @@
27126
27202
  },
27127
27203
  "additionalProperties": false,
27128
27204
  "required": [
27129
- "properties",
27205
+ "form",
27130
27206
  "validateConnection"
27131
27207
  ]
27132
27208
  },
@@ -27144,6 +27220,9 @@
27144
27220
  ]
27145
27221
  }
27146
27222
  },
27223
+ "required": [
27224
+ "onConnectionChange"
27225
+ ],
27147
27226
  "additionalProperties": false
27148
27227
  },
27149
27228
  "key": {
@@ -28234,6 +28313,19 @@
28234
28313
  }
28235
28314
  }
28236
28315
  },
28316
+ "ServiceTunnelSchema": {
28317
+ "type": "object",
28318
+ "additionalProperties": false,
28319
+ "required": [
28320
+ "port"
28321
+ ],
28322
+ "properties": {
28323
+ "port": {
28324
+ "type": "number",
28325
+ "description": "The port of the service where tunnel requests should be sent"
28326
+ }
28327
+ }
28328
+ },
28237
28329
  "ServicesSchema": {
28238
28330
  "type": "array",
28239
28331
  "additionalProperties": false,
@@ -28259,6 +28351,10 @@
28259
28351
  "scaling": {
28260
28352
  "$ref": "#/definitions/ServiceScalingSchema",
28261
28353
  "title": "scaling"
28354
+ },
28355
+ "tunnel": {
28356
+ "$ref": "#/definitions/ServiceTunnelSchema",
28357
+ "title": "tunnel"
28262
28358
  }
28263
28359
  }
28264
28360
  }
@@ -31112,40 +31208,29 @@
31112
31208
  "minLength": 1,
31113
31209
  "pattern": "^[a-zA-Z0-9-._]+$"
31114
31210
  },
31115
- "ConnectionProperty": {
31211
+ "FormProperty": {
31116
31212
  "type": "object",
31117
31213
  "properties": {
31118
31214
  "key": {
31119
31215
  "type": "string",
31120
- "description": "The key identifying the connection property."
31216
+ "description": "The key identifying the form property."
31121
31217
  },
31122
31218
  "label": {
31123
- "type": "object",
31124
- "properties": {
31125
- "defaultMessage": {
31126
- "type": "string",
31127
- "description": "The default message for the field label."
31128
- },
31129
- "description": {
31130
- "type": "string",
31131
- "description": "A description of the field label."
31132
- }
31133
- },
31134
- "required": [
31135
- "defaultMessage",
31136
- "description"
31137
- ],
31138
- "additionalProperties": false
31219
+ "type": "string",
31220
+ "description": "Label displayed to the admin."
31221
+ },
31222
+ "placeholder": {
31223
+ "type": "string",
31224
+ "description": "Placeholder text displayed to the admin."
31139
31225
  },
31140
31226
  "type": {
31141
31227
  "type": "string",
31142
31228
  "enum": [
31143
31229
  "string",
31144
31230
  "number",
31145
- "boolean",
31146
- "textArea"
31231
+ "boolean"
31147
31232
  ],
31148
- "description": "The type of the connection property."
31233
+ "description": "The type of the property."
31149
31234
  },
31150
31235
  "isRequired": {
31151
31236
  "type": "boolean",
@@ -31154,6 +31239,10 @@
31154
31239
  "isSensitive": {
31155
31240
  "type": "boolean",
31156
31241
  "description": "Whether the property is sensitive. (default: false)"
31242
+ },
31243
+ "hideInEditView": {
31244
+ "type": "boolean",
31245
+ "description": "Whether the property is hidden in the edit view. (default: false)"
31157
31246
  }
31158
31247
  },
31159
31248
  "required": [
@@ -31162,6 +31251,47 @@
31162
31251
  "type"
31163
31252
  ],
31164
31253
  "additionalProperties": false
31254
+ },
31255
+ "FormSection": {
31256
+ "type": "object",
31257
+ "properties": {
31258
+ "key": {
31259
+ "type": "string",
31260
+ "description": "The key identifying the form property section."
31261
+ },
31262
+ "type": {
31263
+ "type": "string",
31264
+ "enum": [
31265
+ "header"
31266
+ ],
31267
+ "description": "The type of the section."
31268
+ },
31269
+ "title": {
31270
+ "type": "string",
31271
+ "description": "The title of the section."
31272
+ },
31273
+ "description": {
31274
+ "type": "string",
31275
+ "description": "The description of the section."
31276
+ },
31277
+ "properties": {
31278
+ "type": "array",
31279
+ "items": {
31280
+ "$ref": "#/definitions/FormProperty"
31281
+ },
31282
+ "minItems": 1,
31283
+ "maxItems": 10,
31284
+ "description": "The properties of the section."
31285
+ }
31286
+ },
31287
+ "required": [
31288
+ "key",
31289
+ "type",
31290
+ "title",
31291
+ "description",
31292
+ "properties"
31293
+ ],
31294
+ "additionalProperties": false
31165
31295
  }
31166
31296
  },
31167
31297
  "additionalProperties": false,
@@ -684,6 +684,20 @@ export type ExtensionKey10 = string;
684
684
  * A key referencing authentication provider. This will be utilised to authenticate end-users and match with external users.
685
685
  */
686
686
  export type UserAuthProvider = string;
687
+ /**
688
+ * Instructions displayed to the admin at the top of the form.
689
+ */
690
+ export type Instructions =
691
+ | [string]
692
+ | [string, string]
693
+ | [string, string, string]
694
+ | [string, string, string, string]
695
+ | [string, string, string, string, string]
696
+ | [string, string, string, string, string, string]
697
+ | [string, string, string, string, string, string, string]
698
+ | [string, string, string, string, string, string, string, string]
699
+ | [string, string, string, string, string, string, string, string, string]
700
+ | [string, string, string, string, string, string, string, string, string, string];
687
701
  /**
688
702
  * The key for an extension in CaaS. That means that this is a reference to another extension in your descriptor / manifest.
689
703
  */
@@ -806,6 +820,7 @@ export type Services = {
806
820
  key: string;
807
821
  containers: Containers;
808
822
  scaling?: Scaling;
823
+ tunnel?: Tunnel;
809
824
  }[];
810
825
 
811
826
  export interface ManifestSchema {
@@ -18029,6 +18044,32 @@ export interface Modules {
18029
18044
  key: ModuleKeySchema;
18030
18045
  }[]
18031
18046
  ];
18047
+ 'jira:actionValidator'?: [
18048
+ {
18049
+ action: 'workItemTypeChanged';
18050
+ expression: string;
18051
+ errorMessage?:
18052
+ | {
18053
+ i18n: string;
18054
+ }
18055
+ | string;
18056
+ errorMessage__i18n?: string;
18057
+ key: ModuleKeySchema;
18058
+ [k: string]: unknown;
18059
+ },
18060
+ ...{
18061
+ action: 'workItemTypeChanged';
18062
+ expression: string;
18063
+ errorMessage?:
18064
+ | {
18065
+ i18n: string;
18066
+ }
18067
+ | string;
18068
+ errorMessage__i18n?: string;
18069
+ key: ModuleKeySchema;
18070
+ [k: string]: unknown;
18071
+ }[]
18072
+ ];
18032
18073
  'compass:adminPage'?: [
18033
18074
  (
18034
18075
  | {
@@ -23295,6 +23336,11 @@ export interface Modules {
23295
23336
  | 'atlassian:video'
23296
23337
  | 'atlassian:work-item'
23297
23338
  | 'atlassian:worker'
23339
+ | 'atlassian:dashboard'
23340
+ | 'atlassian:test'
23341
+ | 'atlassian:test-execution'
23342
+ | 'atlassian:test-plan'
23343
+ | 'atlassian:test-run'
23298
23344
  ),
23299
23345
  ...(
23300
23346
  | 'atlassian:document'
@@ -23319,6 +23365,11 @@ export interface Modules {
23319
23365
  | 'atlassian:video'
23320
23366
  | 'atlassian:work-item'
23321
23367
  | 'atlassian:worker'
23368
+ | 'atlassian:dashboard'
23369
+ | 'atlassian:test'
23370
+ | 'atlassian:test-execution'
23371
+ | 'atlassian:test-plan'
23372
+ | 'atlassian:test-run'
23322
23373
  )[]
23323
23374
  ];
23324
23375
  orchestration?: {
@@ -23331,7 +23382,16 @@ export interface Modules {
23331
23382
  };
23332
23383
  datasource?: {
23333
23384
  formConfiguration?: {
23334
- properties: [ConnectionProperty, ...ConnectionProperty[]];
23385
+ /**
23386
+ * Form properties to capture from Admin user (rendered in order).
23387
+ */
23388
+ form:
23389
+ | [FormSection]
23390
+ | [FormSection, FormSection]
23391
+ | [FormSection, FormSection, FormSection]
23392
+ | [FormSection, FormSection, FormSection, FormSection]
23393
+ | [FormSection, FormSection, FormSection, FormSection, FormSection];
23394
+ instructions?: Instructions;
23335
23395
  validateConnection: {
23336
23396
  function: ExtensionKey11;
23337
23397
  [k: string]: unknown;
@@ -23341,7 +23401,7 @@ export interface Modules {
23341
23401
  [k: string]: unknown;
23342
23402
  };
23343
23403
  };
23344
- onConnectionChange?: {
23404
+ onConnectionChange: {
23345
23405
  function: ExtensionKey13;
23346
23406
  [k: string]: unknown;
23347
23407
  };
@@ -23391,6 +23451,11 @@ export interface Modules {
23391
23451
  | 'atlassian:video'
23392
23452
  | 'atlassian:work-item'
23393
23453
  | 'atlassian:worker'
23454
+ | 'atlassian:dashboard'
23455
+ | 'atlassian:test'
23456
+ | 'atlassian:test-execution'
23457
+ | 'atlassian:test-plan'
23458
+ | 'atlassian:test-run'
23394
23459
  ),
23395
23460
  ...(
23396
23461
  | 'atlassian:document'
@@ -23415,6 +23480,11 @@ export interface Modules {
23415
23480
  | 'atlassian:video'
23416
23481
  | 'atlassian:work-item'
23417
23482
  | 'atlassian:worker'
23483
+ | 'atlassian:dashboard'
23484
+ | 'atlassian:test'
23485
+ | 'atlassian:test-execution'
23486
+ | 'atlassian:test-plan'
23487
+ | 'atlassian:test-run'
23418
23488
  )[]
23419
23489
  ];
23420
23490
  orchestration?: {
@@ -23427,7 +23497,16 @@ export interface Modules {
23427
23497
  };
23428
23498
  datasource?: {
23429
23499
  formConfiguration?: {
23430
- properties: [ConnectionProperty, ...ConnectionProperty[]];
23500
+ /**
23501
+ * Form properties to capture from Admin user (rendered in order).
23502
+ */
23503
+ form:
23504
+ | [FormSection]
23505
+ | [FormSection, FormSection]
23506
+ | [FormSection, FormSection, FormSection]
23507
+ | [FormSection, FormSection, FormSection, FormSection]
23508
+ | [FormSection, FormSection, FormSection, FormSection, FormSection];
23509
+ instructions?: Instructions;
23431
23510
  validateConnection: {
23432
23511
  function: ExtensionKey11;
23433
23512
  [k: string]: unknown;
@@ -23437,7 +23516,7 @@ export interface Modules {
23437
23516
  [k: string]: unknown;
23438
23517
  };
23439
23518
  };
23440
- onConnectionChange?: {
23519
+ onConnectionChange: {
23441
23520
  function: ExtensionKey13;
23442
23521
  [k: string]: unknown;
23443
23522
  };
@@ -72616,25 +72695,76 @@ export interface I18NProperty105 {
72616
72695
  i18n?: string;
72617
72696
  [k: string]: unknown;
72618
72697
  }
72619
- export interface ConnectionProperty {
72698
+ export interface FormSection {
72620
72699
  /**
72621
- * The key identifying the connection property.
72700
+ * The key identifying the form property section.
72622
72701
  */
72623
72702
  key: string;
72624
- label: {
72625
- /**
72626
- * The default message for the field label.
72627
- */
72628
- defaultMessage: string;
72629
- /**
72630
- * A description of the field label.
72631
- */
72632
- description: string;
72633
- };
72634
72703
  /**
72635
- * The type of the connection property.
72704
+ * The type of the section.
72705
+ */
72706
+ type: 'header';
72707
+ /**
72708
+ * The title of the section.
72636
72709
  */
72637
- type: 'string' | 'number' | 'boolean' | 'textArea';
72710
+ title: string;
72711
+ /**
72712
+ * The description of the section.
72713
+ */
72714
+ description: string;
72715
+ /**
72716
+ * The properties of the section.
72717
+ */
72718
+ properties:
72719
+ | [FormProperty]
72720
+ | [FormProperty, FormProperty]
72721
+ | [FormProperty, FormProperty, FormProperty]
72722
+ | [FormProperty, FormProperty, FormProperty, FormProperty]
72723
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72724
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72725
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72726
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72727
+ | [
72728
+ FormProperty,
72729
+ FormProperty,
72730
+ FormProperty,
72731
+ FormProperty,
72732
+ FormProperty,
72733
+ FormProperty,
72734
+ FormProperty,
72735
+ FormProperty,
72736
+ FormProperty
72737
+ ]
72738
+ | [
72739
+ FormProperty,
72740
+ FormProperty,
72741
+ FormProperty,
72742
+ FormProperty,
72743
+ FormProperty,
72744
+ FormProperty,
72745
+ FormProperty,
72746
+ FormProperty,
72747
+ FormProperty,
72748
+ FormProperty
72749
+ ];
72750
+ }
72751
+ export interface FormProperty {
72752
+ /**
72753
+ * The key identifying the form property.
72754
+ */
72755
+ key: string;
72756
+ /**
72757
+ * Label displayed to the admin.
72758
+ */
72759
+ label: string;
72760
+ /**
72761
+ * Placeholder text displayed to the admin.
72762
+ */
72763
+ placeholder?: string;
72764
+ /**
72765
+ * The type of the property.
72766
+ */
72767
+ type: 'string' | 'number' | 'boolean';
72638
72768
  /**
72639
72769
  * Whether the property is required. (default: false)
72640
72770
  */
@@ -72643,6 +72773,10 @@ export interface ConnectionProperty {
72643
72773
  * Whether the property is sensitive. (default: false)
72644
72774
  */
72645
72775
  isSensitive?: boolean;
72776
+ /**
72777
+ * Whether the property is hidden in the edit view. (default: false)
72778
+ */
72779
+ hideInEditView?: boolean;
72646
72780
  }
72647
72781
  export interface Permissions {
72648
72782
  scopes?: Scopes;
@@ -73025,3 +73159,9 @@ export interface Scaling {
73025
73159
  */
73026
73160
  max?: number;
73027
73161
  }
73162
+ export interface Tunnel {
73163
+ /**
73164
+ * The port of the service where tunnel requests should be sent
73165
+ */
73166
+ port: number;
73167
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "10.4.0-next.2",
3
+ "version": "10.4.0",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {