npm package diff

Package: @forge/util

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

File: package/packages/ari/automation/index.js

Index: package/packages/ari/automation/index.js
===================================================================
--- package/packages/ari/automation/index.js
+++ package/packages/ari/automation/index.js
@@ -16,8 +16,9 @@
 
 // src/automation/index.ts
 var automation_exports = {};
 __export(automation_exports, {
+  AutomationAutomationRuleAri: () => AutomationAutomationRuleAri,
   AutomationRoleAri: () => AutomationRoleAri,
   AutomationRuleAri: () => AutomationRuleAri
 });
 module.exports = __toCommonJS(automation_exports);
@@ -26,9 +27,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}.`);
 }
 
@@ -48,9 +49,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}.`);
 }
@@ -275,21 +276,81 @@
     return AnyAri.parse(this.toString());
   }
 };
 
+// src/automation/automation-rule/types.ts
+var AutomationAutomationRuleAriResourceOwner = "automation", AutomationAutomationRuleAriResourceType = "automation-rule";
+
+// src/automation/automation-rule/manifest.ts
+var automationAutomationRuleAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: AutomationAutomationRuleAriResourceOwner,
+  resourceType: AutomationAutomationRuleAriResourceType,
+  resourceIdSlug: "{ruleId}/partition/{partitionId}",
+  resourceIdSegmentFormats: {
+    ruleId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
+    // eslint-disable-line no-useless-escape
+    partitionId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/automation/automation-rule/index.ts
+var AutomationAutomationRuleAri = class _AutomationAutomationRuleAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._ruleId = opts.resourceIdSegmentValues.ruleId, this._partitionId = opts.resourceIdSegmentValues.partitionId;
+  }
+  get ruleId() {
+    return this._ruleId;
+  }
+  get partitionId() {
+    return this._partitionId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: automationAutomationRuleAriStaticOpts.qualifier,
+      platformQualifier: automationAutomationRuleAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: automationAutomationRuleAriStaticOpts.resourceOwner,
+      resourceType: automationAutomationRuleAriStaticOpts.resourceType,
+      resourceId: `${opts.ruleId}/partition/${opts.partitionId}`,
+      resourceIdSegmentValues: {
+        ruleId: opts.ruleId,
+        partitionId: opts.partitionId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, automationAutomationRuleAriStaticOpts);
+    return new _AutomationAutomationRuleAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, automationAutomationRuleAriStaticOpts);
+    return new _AutomationAutomationRuleAri(opts);
+  }
+  getVariables() {
+    return {
+      ruleId: this.ruleId,
+      partitionId: this.partitionId
+    };
+  }
+};
+
 // src/automation/role/types.ts
 var AutomationRoleAriResourceOwner = "automation", AutomationRoleAriResourceType = "role";
 
 // src/automation/role/manifest.ts
 var automationRoleAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: AutomationRoleAriResourceOwner,
   resourceType: AutomationRoleAriResourceType,
   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
   }
 };
 
@@ -334,8 +395,9 @@
 var automationRuleAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: AutomationRuleAriResourceOwner,
   resourceType: AutomationRuleAriResourceType,
   resourceIdSlug: "{ruleId}",
   resourceIdSegmentFormats: {
@@ -378,7 +440,8 @@
   }
 };
 // Annotate the CommonJS export names for ESM import in node:
 0 && (module.exports = {
+  AutomationAutomationRuleAri,
   AutomationRoleAri,
   AutomationRuleAri
 });