@forge/manifest 8.1.0 → 8.2.0-next.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,17 @@
1
1
  # @forge/manifest
2
2
 
3
+ ## 8.2.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - df04fc6: Added command pallete module
8
+ - 94c1eda: Add warning for un-necessary usage of egress permissions
9
+
10
+ ### Patch Changes
11
+
12
+ - 08e248c: jira:command - add property to i18n test
13
+ - c01ab1f: Update manifest definitions
14
+
3
15
  ## 8.1.0
4
16
 
5
17
  ### Minor Changes
@@ -12975,6 +12975,115 @@
12975
12975
  },
12976
12976
  "minItems": 1
12977
12977
  },
12978
+ "jira:command": {
12979
+ "type": "array",
12980
+ "items": {
12981
+ "additionalProperties": false,
12982
+ "type": "object",
12983
+ "properties": {
12984
+ "title": {
12985
+ "anyOf": [
12986
+ {
12987
+ "type": "string",
12988
+ "minLength": 1,
12989
+ "maxLength": 255
12990
+ },
12991
+ {
12992
+ "additionalProperties": false,
12993
+ "type": "object",
12994
+ "properties": {
12995
+ "i18n": {
12996
+ "type": "string",
12997
+ "minLength": 1,
12998
+ "maxLength": 300,
12999
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
13000
+ }
13001
+ },
13002
+ "required": [
13003
+ "i18n"
13004
+ ]
13005
+ }
13006
+ ]
13007
+ },
13008
+ "title__i18n": {
13009
+ "type": "string",
13010
+ "minLength": 1,
13011
+ "maxLength": 300,
13012
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
13013
+ },
13014
+ "icon": {
13015
+ "minLength": 1,
13016
+ "maxLength": 255,
13017
+ "type": "string"
13018
+ },
13019
+ "shortcut": {
13020
+ "type": "string"
13021
+ },
13022
+ "keywords": {
13023
+ "type": "array",
13024
+ "items": {
13025
+ "type": "string"
13026
+ }
13027
+ },
13028
+ "target": {
13029
+ "anyOf": [
13030
+ {
13031
+ "type": "object",
13032
+ "properties": {
13033
+ "page": {
13034
+ "type": "string"
13035
+ }
13036
+ },
13037
+ "required": [
13038
+ "page"
13039
+ ]
13040
+ },
13041
+ {
13042
+ "type": "object",
13043
+ "properties": {
13044
+ "resource": {
13045
+ "type": "string",
13046
+ "minLength": 1,
13047
+ "maxLength": 23,
13048
+ "pattern": "^[a-zA-Z0-9_\\-]+$"
13049
+ },
13050
+ "render": {
13051
+ "default": "default",
13052
+ "enum": [
13053
+ "default",
13054
+ "native"
13055
+ ],
13056
+ "type": "string"
13057
+ }
13058
+ },
13059
+ "required": [
13060
+ "resource"
13061
+ ]
13062
+ }
13063
+ ]
13064
+ },
13065
+ "resourceUploadId": {
13066
+ "type": "string",
13067
+ "minLength": 1,
13068
+ "maxLength": 255
13069
+ },
13070
+ "key": {
13071
+ "$ref": "#/definitions/ModuleKeySchema"
13072
+ }
13073
+ },
13074
+ "required": [
13075
+ "target",
13076
+ "title",
13077
+ "key"
13078
+ ],
13079
+ "not": {
13080
+ "required": [
13081
+ "unlicensedAccess"
13082
+ ]
13083
+ }
13084
+ },
13085
+ "minItems": 1
13086
+ },
12978
13087
  "jira:boardAction": {
12979
13088
  "type": "array",
12980
13089
  "items": {
@@ -6693,6 +6693,54 @@ export interface Modules {
6693
6693
  key: ModuleKeySchema;
6694
6694
  }[]
6695
6695
  ];
6696
+ 'jira:command'?: [
6697
+ {
6698
+ title:
6699
+ | string
6700
+ | {
6701
+ i18n: string;
6702
+ };
6703
+ title__i18n?: string;
6704
+ icon?: string;
6705
+ shortcut?: string;
6706
+ keywords?: string[];
6707
+ target:
6708
+ | {
6709
+ page: string;
6710
+ [k: string]: unknown;
6711
+ }
6712
+ | {
6713
+ resource: string;
6714
+ render?: 'default' | 'native';
6715
+ [k: string]: unknown;
6716
+ };
6717
+ resourceUploadId?: string;
6718
+ key: ModuleKeySchema;
6719
+ },
6720
+ ...{
6721
+ title:
6722
+ | string
6723
+ | {
6724
+ i18n: string;
6725
+ };
6726
+ title__i18n?: string;
6727
+ icon?: string;
6728
+ shortcut?: string;
6729
+ keywords?: string[];
6730
+ target:
6731
+ | {
6732
+ page: string;
6733
+ [k: string]: unknown;
6734
+ }
6735
+ | {
6736
+ resource: string;
6737
+ render?: 'default' | 'native';
6738
+ [k: string]: unknown;
6739
+ };
6740
+ resourceUploadId?: string;
6741
+ key: ModuleKeySchema;
6742
+ }[]
6743
+ ];
6696
6744
  'jira:boardAction'?: [
6697
6745
  {
6698
6746
  icon?: string;
@@ -47,6 +47,7 @@ export declare enum AllModuleTypes {
47
47
  JiraPersonalSettingsPage = "jira:personalSettingsPage",
48
48
  JiraBoardAction = "jira:boardAction",
49
49
  JiraSprintAction = "jira:sprintAction",
50
+ JiraCommand = "jira:command",
50
51
  CompassAdminPage = "compass:adminPage",
51
52
  CompassComponentPage = "compass:componentPage",
52
53
  CompassGlobalPage = "compass:globalPage",
@@ -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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"}
@@ -51,6 +51,7 @@ var AllModuleTypes;
51
51
  AllModuleTypes["JiraPersonalSettingsPage"] = "jira:personalSettingsPage";
52
52
  AllModuleTypes["JiraBoardAction"] = "jira:boardAction";
53
53
  AllModuleTypes["JiraSprintAction"] = "jira:sprintAction";
54
+ AllModuleTypes["JiraCommand"] = "jira:command";
54
55
  AllModuleTypes["CompassAdminPage"] = "compass:adminPage";
55
56
  AllModuleTypes["CompassComponentPage"] = "compass:componentPage";
56
57
  AllModuleTypes["CompassGlobalPage"] = "compass:globalPage";
@@ -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;AAGxH,OAAO,EAAkB,cAAc,EAAqC,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAoB3D,qBAAa,gBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAEzF,OAAO,CAAC,oBAAoB,CAA0C;IAEhE,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IA2DpD,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;IA2G3B,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;AAGxH,OAAO,EAAkB,cAAc,EAAqC,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAqB3D,qBAAa,gBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAEzF,OAAO,CAAC,oBAAoB,CAA0C;IAEhE,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IA4DpD,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;IA2G3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAkClC"}
@@ -19,6 +19,7 @@ const validate_workflow_1 = require("./modules-validators/jira/validate-workflow
19
19
  const validate_full_page_1 = require("./modules-validators/jira/validate-full-page");
20
20
  const validate_custom_field_1 = require("./modules-validators/jira/validate-custom-field");
21
21
  const validate_trigger_1 = require("./modules-validators/jira/validate-trigger");
22
+ const validate_command_1 = require("./modules-validators/jira/validate-command");
22
23
  class ModulesValidator {
23
24
  functionHandlerRegex = /^([a-zA-Z0-9-_]+)\.([a-zA-Z0-9-_]+)$/;
24
25
  async validate(manifest) {
@@ -31,7 +32,7 @@ class ModulesValidator {
31
32
  let validationErrors = [...this.connectModuleValidation(manifest)];
32
33
  if (manifest.typedContent.modules) {
33
34
  const { typedContent: { modules, connectModules, remotes, permissions }, yamlContentByLine, filePath } = manifest;
34
- 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 || []), 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_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, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine));
35
+ 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 || []), 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_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, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine));
35
36
  }
36
37
  else {
37
38
  const { typedContent: { connectModules }, yamlContentByLine } = manifest;
@@ -0,0 +1,4 @@
1
+ import { Modules } from '../../../schema/manifest';
2
+ import { ValidationError } from '../../../types';
3
+ export declare const validateJiraCommandModule: (modules: Modules, yamlContentByLine?: string[]) => ValidationError[];
4
+ //# sourceMappingURL=validate-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,yBAAyB,YAAa,OAAO,sBAAsB,MAAM,EAAE,KAAG,eAAe,EAiBzG,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateJiraCommandModule = void 0;
4
+ const validate_module_key_references_1 = require("./validate-module-key-references");
5
+ const validateJiraCommandModule = (modules, yamlContentByLine) => {
6
+ if (!modules['jira:command'])
7
+ return [];
8
+ const keyReferences = modules['jira:command']
9
+ .filter((module) => 'page' in module.target)
10
+ .map((module) => {
11
+ return { moduleKey: module.key, referencedModuleKey: module.target.page };
12
+ });
13
+ if (keyReferences?.length === 0)
14
+ return [];
15
+ return (0, validate_module_key_references_1.validateModuleReferences)(modules, ['jira:globalPage', 'jira:adminPage', 'jira:projectPage', 'jira:projectSettingsPage'], keyReferences, yamlContentByLine);
16
+ };
17
+ exports.validateJiraCommandModule = validateJiraCommandModule;
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from '../../../types';
2
+ import { Modules } from '../../../schema/manifest';
3
+ export declare const ALLOWED_REFERENCED_MODULE_TYPES: readonly ["jira:adminPage", "jira:globalPage", "jira:projectPage", "jira:projectSettingsPage"];
4
+ export declare const validateModuleReferences: (modules: Modules, expectedTypes: Array<(typeof ALLOWED_REFERENCED_MODULE_TYPES)[number]>, keyReferences: {
5
+ moduleKey: string;
6
+ referencedModuleKey: string;
7
+ }[], yamlContentByLine?: string[]) => ValidationError[];
8
+ //# sourceMappingURL=validate-module-key-references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-module-key-references.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-module-key-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,eAAO,MAAM,+BAA+B,gGAKlC,CAAC;AA8BX,eAAO,MAAM,wBAAwB,YAC1B,OAAO,iBACD,MAAM,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC,iBACvD;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,EAAE,sBAC/C,MAAM,EAAE,KAC3B,eAAe,EAcjB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateModuleReferences = exports.ALLOWED_REFERENCED_MODULE_TYPES = void 0;
4
+ const text_1 = require("../../../text");
5
+ const utils_1 = require("../../../utils");
6
+ exports.ALLOWED_REFERENCED_MODULE_TYPES = [
7
+ 'jira:adminPage',
8
+ 'jira:globalPage',
9
+ 'jira:projectPage',
10
+ 'jira:projectSettingsPage'
11
+ ];
12
+ const validateModuleLink = ({ key, modulesOfValidType, referencedModuleKey, yamlContentByLine, validReferencedModuleTypes }) => {
13
+ const validReferencedModuleExists = modulesOfValidType.some((m) => referencedModuleKey === m.key);
14
+ if (validReferencedModuleExists) {
15
+ return [];
16
+ }
17
+ return [
18
+ {
19
+ message: `Module with key ${referencedModuleKey} does not exist or is not ${validReferencedModuleTypes.length > 1 ? 'one of the allowed types:' : 'of the allowed type'} ${validReferencedModuleTypes.join(', ')}`,
20
+ reference: text_1.References.Modules,
21
+ level: 'error',
22
+ ...(0, utils_1.findPosition)(key, yamlContentByLine)
23
+ }
24
+ ];
25
+ };
26
+ const validateModuleReferences = (modules, expectedTypes, keyReferences, yamlContentByLine) => {
27
+ const modulesOfValidType = expectedTypes.flatMap((expectedType) => {
28
+ return modules[expectedType]?.map((module) => ({ key: module.key })) || [];
29
+ });
30
+ return keyReferences.flatMap((keyReference) => validateModuleLink({
31
+ key: keyReference.moduleKey,
32
+ modulesOfValidType,
33
+ referencedModuleKey: keyReference.referencedModuleKey,
34
+ validReferencedModuleTypes: expectedTypes,
35
+ yamlContentByLine
36
+ }));
37
+ };
38
+ exports.validateModuleReferences = validateModuleReferences;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-timetrackingprovider-module.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-timetrackingprovider-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA+BjD,eAAO,MAAM,8BAA8B,YAAa,OAAO,sBAAsB,MAAM,EAAE,KAAG,eAAe,EAuB9G,CAAC"}
1
+ {"version":3,"file":"validate-timetrackingprovider-module.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-timetrackingprovider-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,eAAO,MAAM,8BAA8B,YAAa,OAAO,sBAAsB,MAAM,EAAE,KAAG,eAAe,EAY9G,CAAC"}
@@ -1,37 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateJiraTimeTrackingModule = void 0;
4
- const text_1 = require("../../../text");
5
- const utils_1 = require("../../../utils");
6
- const validateModuleLink = ({ key, modulesOfValidType, referencedModuleKey, yamlContentByLine, validReferencedModuleType }) => {
7
- if (modulesOfValidType.find((m) => referencedModuleKey === m.key)) {
8
- return [];
9
- }
10
- return [
11
- {
12
- message: `Module with key ${referencedModuleKey} does not exist or is not of the allowed type ${validReferencedModuleType}`,
13
- reference: text_1.References.Modules,
14
- level: 'error',
15
- ...(0, utils_1.findPosition)(key, yamlContentByLine)
16
- }
17
- ];
18
- };
4
+ const validate_module_key_references_1 = require("./validate-module-key-references");
19
5
  const validateJiraTimeTrackingModule = (modules, yamlContentByLine) => {
20
- const validationErrors = [];
21
- modules['jira:timeTrackingProvider']?.forEach((module) => {
22
- const adminPage = module?.adminPage;
23
- if (adminPage) {
24
- const expectedType = 'jira:adminPage';
25
- const modulesOfValidType = modules[expectedType]?.map((mod) => ({ key: mod.key })) || [];
26
- validationErrors.push(...validateModuleLink({
27
- key: module.key,
28
- modulesOfValidType,
29
- referencedModuleKey: adminPage,
30
- validReferencedModuleType: expectedType,
31
- yamlContentByLine
32
- }));
33
- }
6
+ if (!modules['jira:timeTrackingProvider'])
7
+ return [];
8
+ const keyReferences = modules['jira:timeTrackingProvider']
9
+ .filter((module) => 'adminPage' in module)
10
+ .map((module) => {
11
+ return { moduleKey: module.key, referencedModuleKey: module.adminPage };
34
12
  });
35
- return validationErrors;
13
+ if (keyReferences?.length === 0)
14
+ return [];
15
+ return (0, validate_module_key_references_1.validateModuleReferences)(modules, ['jira:adminPage'], keyReferences, yamlContentByLine);
36
16
  };
37
17
  exports.validateJiraTimeTrackingModule = validateJiraTimeTrackingModule;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "8.1.0",
3
+ "version": "8.2.0-next.0",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {