npm package diff

Package: @forge/util

Versions: 1.4.10-next.0 - 1.4.10-next.0-experimental-effab31

File: package/packages/ari/jira-software/index.js

Index: package/packages/ari/jira-software/index.js
===================================================================
--- package/packages/ari/jira-software/index.js
+++ package/packages/ari/jira-software/index.js
@@ -27,8 +27,9 @@
   JiraSoftwareColumnAri: () => JiraSoftwareColumnAri,
   JiraSoftwareCustomFilterAri: () => JiraSoftwareCustomFilterAri,
   JiraSoftwareRoleAri: () => JiraSoftwareRoleAri,
   JiraSoftwareSiteAri: () => JiraSoftwareSiteAri,
+  JiraSoftwareSprintAri: () => JiraSoftwareSprintAri,
   JiraSoftwareSwimlaneAri: () => JiraSoftwareSwimlaneAri,
   JiraSoftwareUserBoardConfigAri: () => JiraSoftwareUserBoardConfigAri,
   JiraSoftwareViewConfigAri: () => JiraSoftwareViewConfigAri
 });
@@ -38,9 +39,9 @@
 var ValidationError = class extends Error {
 };
 
 // src/core/rules/cloud-id.ts
-function validateCloudId(cloudId, format = new RegExp("^[a-zA-Z0-9\\-]*$")) {
+function validateCloudId(cloudId, format = new RegExp("^[a-zA-Z0-9_\\-.]{0,255}$")) {
   if (!cloudId.match(format))
     throw new ValidationError(`Invalid cloud ID, expected ID of format ${format}.`);
 }
 
@@ -60,9 +61,9 @@
     throw new ValidationError(`ARI must have a qualifier of 'ari'. Received: ${qualifier}`);
 }
 
 // src/core/rules/resource-id.ts
-function validateResourceId(id, format = new RegExp("[!a-zA-Z0-9\\-_.~@:{}=]+(/[!a-zA-Z0-9\\-_.~@:{}=]+)*" /* ANY_RESOURCE_ID */), key = "resourceId") {
+function validateResourceId(id, format = new RegExp("[!a-zA-Z0-9\\-_.~@:;{}=]+(/[!a-zA-Z0-9\\-_.~@:;{}=]+)*" /* ANY_RESOURCE_ID */), key = "resourceId") {
   let formatWithCarets = new RegExp(`^${format.source}$`);
   if (!id.match(formatWithCarets))
     throw new ValidationError(`Invalid ${key} - ${id}, expected ID of format ${formatWithCarets}.`);
 }
@@ -294,14 +295,15 @@
 // src/jira-software/board/manifest.ts
 var jiraSoftwareBoardAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareBoardAriResourceOwner,
   resourceType: JiraSoftwareBoardAriResourceType,
   resourceIdSlug: "{boardId}",
   resourceIdSegmentFormats: {
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -349,18 +351,19 @@
 // src/jira-software/board-feature/manifest.ts
 var jiraSoftwareBoardFeatureAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareBoardFeatureAriResourceOwner,
   resourceType: JiraSoftwareBoardFeatureAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/featureKey/{featureKey}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
-    featureKey: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    featureKey: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -418,18 +421,19 @@
 // src/jira-software/board-issue-list/manifest.ts
 var jiraSoftwareBoardIssueListAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareBoardIssueListAriResourceOwner,
   resourceType: JiraSoftwareBoardIssueListAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{issueListId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
-    issueListId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    issueListId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -487,16 +491,17 @@
 // src/jira-software/card/manifest.ts
 var jiraSoftwareCardAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareCardAriResourceOwner,
   resourceType: JiraSoftwareCardAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{cardId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     cardId: /[0-9]+/
     // eslint-disable-line no-useless-escape
   }
@@ -556,16 +561,17 @@
 // src/jira-software/card-color/manifest.ts
 var jiraSoftwareCardColorAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareCardColorAriResourceOwner,
   resourceType: JiraSoftwareCardColorAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{cardColorId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     cardColorId: /[0-9]+/
     // eslint-disable-line no-useless-escape
   }
@@ -625,16 +631,17 @@
 // src/jira-software/card-layout/manifest.ts
 var jiraSoftwareCardLayoutAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareCardLayoutAriResourceOwner,
   resourceType: JiraSoftwareCardLayoutAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{cardLayoutId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     cardLayoutId: /[a-zA-Z0-9_]+/
     // eslint-disable-line no-useless-escape
   }
@@ -694,16 +701,17 @@
 // src/jira-software/card-parent/manifest.ts
 var jiraSoftwareCardParentAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareCardParentAriResourceOwner,
   resourceType: JiraSoftwareCardParentAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{cardParentId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     cardParentId: /[0-9]+/
     // eslint-disable-line no-useless-escape
   }
@@ -763,16 +771,17 @@
 // src/jira-software/column/manifest.ts
 var jiraSoftwareColumnAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareColumnAriResourceOwner,
   resourceType: JiraSoftwareColumnAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{columnId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     columnId: /[0-9]+/
     // eslint-disable-line no-useless-escape
   }
@@ -832,18 +841,19 @@
 // src/jira-software/custom-filter/manifest.ts
 var jiraSoftwareCustomFilterAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareCustomFilterAriResourceOwner,
   resourceType: JiraSoftwareCustomFilterAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{customFilterId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
-    customFilterId: /[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}/
+    customFilterId: /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -902,13 +912,14 @@
 var jiraSoftwareRoleAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareRoleAriResourceOwner,
   resourceType: JiraSoftwareRoleAriResourceType,
   resourceIdSlug: "{roleId}",
   resourceIdSegmentFormats: {
-    roleId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    roleId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -953,13 +964,14 @@
 var jiraSoftwareSiteAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareSiteAriResourceOwner,
   resourceType: JiraSoftwareSiteAriResourceType,
   resourceIdSlug: "{siteId}",
   resourceIdSegmentFormats: {
-    siteId: /[a-zA-Z0-9\-]+/
+    siteId: /[a-zA-Z0-9_\-.]{1,255}/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -996,23 +1008,80 @@
     };
   }
 };
 
+// src/jira-software/sprint/types.ts
+var JiraSoftwareSprintAriResourceOwner = "jira-software", JiraSoftwareSprintAriResourceType = "sprint";
+
+// src/jira-software/sprint/manifest.ts
+var jiraSoftwareSprintAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: JiraSoftwareSprintAriResourceOwner,
+  resourceType: JiraSoftwareSprintAriResourceType,
+  resourceIdSlug: "{sprintId}",
+  resourceIdSegmentFormats: {
+    sprintId: /[0-9]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/jira-software/sprint/index.ts
+var JiraSoftwareSprintAri = class _JiraSoftwareSprintAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._sprintId = opts.resourceIdSegmentValues.sprintId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get sprintId() {
+    return this._sprintId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: jiraSoftwareSprintAriStaticOpts.qualifier,
+      platformQualifier: jiraSoftwareSprintAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: jiraSoftwareSprintAriStaticOpts.resourceOwner,
+      resourceType: jiraSoftwareSprintAriStaticOpts.resourceType,
+      resourceId: `${opts.sprintId}`,
+      resourceIdSegmentValues: {
+        sprintId: opts.sprintId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, jiraSoftwareSprintAriStaticOpts);
+    return new _JiraSoftwareSprintAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, jiraSoftwareSprintAriStaticOpts);
+    return new _JiraSoftwareSprintAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      sprintId: this.sprintId
+    };
+  }
+};
+
 // src/jira-software/swimlane/types.ts
 var JiraSoftwareSwimlaneAriResourceOwner = "jira-software", JiraSoftwareSwimlaneAriResourceType = "swimlane";
 
 // src/jira-software/swimlane/manifest.ts
 var jiraSoftwareSwimlaneAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareSwimlaneAriResourceOwner,
   resourceType: JiraSoftwareSwimlaneAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{swimlaneId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     swimlaneId: /[0-9]+/
     // eslint-disable-line no-useless-escape
   }
@@ -1072,16 +1141,17 @@
 // src/jira-software/user-board-config/manifest.ts
 var jiraSoftwareUserBoardConfigAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareUserBoardConfigAriResourceOwner,
   resourceType: JiraSoftwareUserBoardConfigAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -1134,16 +1204,17 @@
 // src/jira-software/view-config/manifest.ts
 var jiraSoftwareViewConfigAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
-  cloudId: new RegExp("^[a-zA-Z0-9-]+$"),
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: JiraSoftwareViewConfigAriResourceOwner,
   resourceType: JiraSoftwareViewConfigAriResourceType,
   resourceIdSlug: "activation/{activationId}/{boardId}/{viewType}",
   resourceIdSegmentFormats: {
     activationId: /[a-zA-Z0-9\-]+/,
     // eslint-disable-line no-useless-escape
-    boardId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    boardId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
     viewType: /(board|backlog|timeline)/
     // eslint-disable-line no-useless-escape
   }
@@ -1208,8 +1279,9 @@
   JiraSoftwareColumnAri,
   JiraSoftwareCustomFilterAri,
   JiraSoftwareRoleAri,
   JiraSoftwareSiteAri,
+  JiraSoftwareSprintAri,
   JiraSoftwareSwimlaneAri,
   JiraSoftwareUserBoardConfigAri,
   JiraSoftwareViewConfigAri
 });