npm package diff

Package: @forge/util

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

File: package/packages/ari/post-office/index.js

Index: package/packages/ari/post-office/index.js
===================================================================
--- package/packages/ari/post-office/index.js
+++ package/packages/ari/post-office/index.js
@@ -17,18 +17,19 @@
 // src/post-office/index.ts
 var post_office_exports = {};
 __export(post_office_exports, {
   PostOfficeMessageInstanceAri: () => PostOfficeMessageInstanceAri,
-  PostOfficeMessageTemplateAri: () => PostOfficeMessageTemplateAri
+  PostOfficeMessageTemplateAri: () => PostOfficeMessageTemplateAri,
+  PostOfficeTriggerAri: () => PostOfficeTriggerAri
 });
 module.exports = __toCommonJS(post_office_exports);
 
 // src/errors.ts
 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}.`);
 }
@@ -283,15 +284,16 @@
 var postOfficeMessageInstanceAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PostOfficeMessageInstanceAriResourceOwner,
   resourceType: PostOfficeMessageInstanceAriResourceType,
   resourceIdSlug: "{messageTemplateId}/{messageInstanceId}",
   resourceIdSegmentFormats: {
-    messageTemplateId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/,
+    messageTemplateId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
     // eslint-disable-line no-useless-escape
-    messageInstanceId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    messageInstanceId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -341,13 +343,14 @@
 var postOfficeMessageTemplateAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PostOfficeMessageTemplateAriResourceOwner,
   resourceType: PostOfficeMessageTemplateAriResourceType,
   resourceIdSlug: "{messageTemplateId}",
   resourceIdSegmentFormats: {
-    messageTemplateId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    messageTemplateId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -383,9 +386,69 @@
       messageTemplateId: this.messageTemplateId
     };
   }
 };
+
+// src/post-office/trigger/types.ts
+var PostOfficeTriggerAriResourceOwner = "post-office", PostOfficeTriggerAriResourceType = "trigger";
+
+// src/post-office/trigger/manifest.ts
+var postOfficeTriggerAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: PostOfficeTriggerAriResourceOwner,
+  resourceType: PostOfficeTriggerAriResourceType,
+  resourceIdSlug: "{messageTemplateId}/{messageIdempotencyKey}",
+  resourceIdSegmentFormats: {
+    messageTemplateId: /[a-z0-9-]{2,61}/,
+    // eslint-disable-line no-useless-escape
+    messageIdempotencyKey: /[a-zA-Z0-9_-]{8,64}/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/post-office/trigger/index.ts
+var PostOfficeTriggerAri = class _PostOfficeTriggerAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._messageTemplateId = opts.resourceIdSegmentValues.messageTemplateId, this._messageIdempotencyKey = opts.resourceIdSegmentValues.messageIdempotencyKey;
+  }
+  get messageTemplateId() {
+    return this._messageTemplateId;
+  }
+  get messageIdempotencyKey() {
+    return this._messageIdempotencyKey;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: postOfficeTriggerAriStaticOpts.qualifier,
+      platformQualifier: postOfficeTriggerAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: postOfficeTriggerAriStaticOpts.resourceOwner,
+      resourceType: postOfficeTriggerAriStaticOpts.resourceType,
+      resourceId: `${opts.messageTemplateId}/${opts.messageIdempotencyKey}`,
+      resourceIdSegmentValues: {
+        messageTemplateId: opts.messageTemplateId,
+        messageIdempotencyKey: opts.messageIdempotencyKey
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, postOfficeTriggerAriStaticOpts);
+    return new _PostOfficeTriggerAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, postOfficeTriggerAriStaticOpts);
+    return new _PostOfficeTriggerAri(opts);
+  }
+  getVariables() {
+    return {
+      messageTemplateId: this.messageTemplateId,
+      messageIdempotencyKey: this.messageIdempotencyKey
+    };
+  }
+};
 // Annotate the CommonJS export names for ESM import in node:
 0 && (module.exports = {
   PostOfficeMessageInstanceAri,
-  PostOfficeMessageTemplateAri
+  PostOfficeMessageTemplateAri,
+  PostOfficeTriggerAri
 });