@forge/manifest 13.3.0-next.7-experimental-4b981ef → 13.3.0-next.9

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,20 +1,16 @@
1
1
  # @forge/manifest
2
2
 
3
- ## 13.3.0-next.7-experimental-4b981ef
3
+ ## 13.3.0-next.9
4
4
 
5
- ### Minor Changes
5
+ ### Patch Changes
6
6
 
7
- - f01417b: Added global:fullPage module with linting for XCA
8
- - d706cd8: Add "package" property to resource manifest definition to allow custom bundling for UI Kit resources
9
- - d1610cc: Manual runtime packaging option
10
- - 498fda5: Limit XCA to Confluence and Jira only for global:fullPage
7
+ - 3e8de63: add `manifest render` command
8
+
9
+ ## 13.3.0-next.8
11
10
 
12
11
  ### Patch Changes
13
12
 
14
- - e7bfe5e: Removing installationTarget
15
- - 89ccb1e: Update manifest definitions
16
- - 39f1f15: Update manifest definitions
17
- - c3a0f20: Update manifest definitions
13
+ - 4b90a07: Lint target directory when using the manual packaging
18
14
 
19
15
  ## 13.3.0-next.7
20
16
 
@@ -34350,7 +34350,7 @@
34350
34350
  ]
34351
34351
  }
34352
34352
  },
34353
- "targets": {
34353
+ "placements": {
34354
34354
  "type": "array",
34355
34355
  "minItems": 1,
34356
34356
  "items": {
@@ -844,7 +844,7 @@ export type OverriddenServices = {
844
844
  export type ManifestOverrides = {
845
845
  applyTo: {
846
846
  environmentTypes?: ['DEVELOPMENT' | 'STAGING' | 'PRODUCTION', ...('DEVELOPMENT' | 'STAGING' | 'PRODUCTION')[]];
847
- targets?: [string, ...string[]];
847
+ placements?: [string, ...string[]];
848
848
  };
849
849
  value: {
850
850
  services?: OverriddenServices;
@@ -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":"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;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;IAmEpD,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"}
@@ -39,7 +39,7 @@ class ModulesValidator {
39
39
  let validationErrors = [...this.connectModuleValidation(manifest)];
40
40
  if (manifest.typedContent.modules) {
41
41
  const { typedContent: { modules, connectModules, remotes, permissions, services, providers }, yamlContentByLine, filePath } = manifest;
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, 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
+ 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));
43
43
  }
44
44
  else {
45
45
  const { typedContent: { connectModules }, yamlContentByLine } = manifest;
@@ -211,7 +211,7 @@ class ModulesValidator {
211
211
  });
212
212
  return validationErrors;
213
213
  }
214
- functionHandlerValidation(modules, yamlContentByLine, filePath) {
214
+ functionHandlerValidation(modules, yamlContentByLine, filePath, handlersDirectory) {
215
215
  const validationErrors = [];
216
216
  modules.function?.forEach((func) => {
217
217
  if (!this.functionHandlerRegex.test(func.handler)) {
@@ -225,9 +225,7 @@ class ModulesValidator {
225
225
  else {
226
226
  const matches = this.functionHandlerRegex.exec(func.handler);
227
227
  const fileName = matches ? matches[1] : undefined;
228
- const _checkFileExists = (fileName) => {
229
- return (['tsx', 'jsx', 'ts', 'js'].find((ext) => (0, fs_1.existsSync)((0, path_1.resolve)((0, path_1.dirname)(filePath), 'src', `${fileName}.${ext}`))) !== undefined);
230
- };
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}`)));
231
229
  if (!_checkFileExists(fileName)) {
232
230
  validationErrors.push({
233
231
  message: text_1.errors.modules.function.handler.fileNotExists(func.handler, fileName),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "13.3.0-next.7-experimental-4b981ef",
3
+ "version": "13.3.0-next.9",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {