npm package diff

Package: @forge/util

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

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

Index: package/packages/ari/platform/index.js
===================================================================
--- package/packages/ari/platform/index.js
+++ package/packages/ari/platform/index.js
@@ -17,25 +17,28 @@
 // src/platform/index.ts
 var platform_exports = {};
 __export(platform_exports, {
   PlatformClassificationTagAri: () => PlatformClassificationTagAri,
+  PlatformCollaborationContextAri: () => PlatformCollaborationContextAri,
   PlatformIntegrationAri: () => PlatformIntegrationAri,
   PlatformLifecycleResourceAri: () => PlatformLifecycleResourceAri,
   PlatformLifecycleResourcePackageAri: () => PlatformLifecycleResourcePackageAri,
   PlatformLifecycleResourcePackageTypeAri: () => PlatformLifecycleResourcePackageTypeAri,
   PlatformOrgAri: () => PlatformOrgAri,
   PlatformOrgUserAri: () => PlatformOrgUserAri,
+  PlatformProductAri: () => PlatformProductAri,
   PlatformSecureTunnelAri: () => PlatformSecureTunnelAri,
-  PlatformSiteAri: () => PlatformSiteAri
+  PlatformSiteAri: () => PlatformSiteAri,
+  PlatformTestProvisioningEntityAri: () => PlatformTestProvisioningEntityAri
 });
 module.exports = __toCommonJS(platform_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}.`);
 }
 
@@ -55,9 +58,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}.`);
 }
@@ -290,8 +293,9 @@
 var platformClassificationTagAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformClassificationTagAriResourceOwner,
   resourceType: PlatformClassificationTagAriResourceType,
   resourceIdSlug: "{tagId}",
   resourceIdSegmentFormats: {
@@ -333,21 +337,74 @@
     };
   }
 };
 
+// src/platform/collaboration-context/types.ts
+var PlatformCollaborationContextAriResourceOwner = "platform", PlatformCollaborationContextAriResourceType = "collaboration-context";
+
+// src/platform/collaboration-context/manifest.ts
+var platformCollaborationContextAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: PlatformCollaborationContextAriResourceOwner,
+  resourceType: PlatformCollaborationContextAriResourceType,
+  resourceIdSlug: "{collaborationContextId}",
+  resourceIdSegmentFormats: {
+    collaborationContextId: /[a-zA-Z0-9\-]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/platform/collaboration-context/index.ts
+var PlatformCollaborationContextAri = class _PlatformCollaborationContextAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._collaborationContextId = opts.resourceIdSegmentValues.collaborationContextId;
+  }
+  get collaborationContextId() {
+    return this._collaborationContextId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: platformCollaborationContextAriStaticOpts.qualifier,
+      platformQualifier: platformCollaborationContextAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: platformCollaborationContextAriStaticOpts.resourceOwner,
+      resourceType: platformCollaborationContextAriStaticOpts.resourceType,
+      resourceId: `${opts.collaborationContextId}`,
+      resourceIdSegmentValues: {
+        collaborationContextId: opts.collaborationContextId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, platformCollaborationContextAriStaticOpts);
+    return new _PlatformCollaborationContextAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, platformCollaborationContextAriStaticOpts);
+    return new _PlatformCollaborationContextAri(opts);
+  }
+  getVariables() {
+    return {
+      collaborationContextId: this.collaborationContextId
+    };
+  }
+};
+
 // src/platform/integration/types.ts
 var PlatformIntegrationAriResourceOwner = "platform", PlatformIntegrationAriResourceType = "integration";
 
 // src/platform/integration/manifest.ts
 var platformIntegrationAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformIntegrationAriResourceOwner,
   resourceType: PlatformIntegrationAriResourceType,
   resourceIdSlug: "{integrationKey}",
   resourceIdSegmentFormats: {
-    integrationKey: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    integrationKey: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -392,13 +449,14 @@
 var platformLifecycleResourceAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformLifecycleResourceAriResourceOwner,
   resourceType: PlatformLifecycleResourceAriResourceType,
   resourceIdSlug: "{lifecycleResourceId}",
   resourceIdSegmentFormats: {
-    lifecycleResourceId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    lifecycleResourceId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -443,13 +501,14 @@
 var platformLifecycleResourcePackageAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformLifecycleResourcePackageAriResourceOwner,
   resourceType: PlatformLifecycleResourcePackageAriResourceType,
   resourceIdSlug: "{lifecycleResourcePackageId}",
   resourceIdSegmentFormats: {
-    lifecycleResourcePackageId: /[!a-zA-Z0-9\-_.~@:{}=]+(\/[!a-zA-Z0-9\-_.~@:{}=]+)*/
+    lifecycleResourcePackageId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -494,8 +553,9 @@
 var platformLifecycleResourcePackageTypeAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformLifecycleResourcePackageTypeAriResourceOwner,
   resourceType: PlatformLifecycleResourcePackageTypeAriResourceType,
   resourceIdSlug: "{resourcePackageTypeId}",
   resourceIdSegmentFormats: {
@@ -545,8 +605,9 @@
 var platformOrgAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformOrgAriResourceOwner,
   resourceType: PlatformOrgAriResourceType,
   resourceIdSlug: "{orgId}",
   resourceIdSegmentFormats: {
@@ -596,8 +657,9 @@
 var platformOrgUserAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformOrgUserAriResourceOwner,
   resourceType: PlatformOrgUserAriResourceType,
   resourceIdSlug: "{orgId}/{userId}",
   resourceIdSegmentFormats: {
@@ -646,16 +708,76 @@
     };
   }
 };
 
+// src/platform/product/types.ts
+var PlatformProductAriResourceOwner = "platform", PlatformProductAriResourceType = "product";
+
+// src/platform/product/manifest.ts
+var platformProductAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: PlatformProductAriResourceOwner,
+  resourceType: PlatformProductAriResourceType,
+  resourceIdSlug: "{integrationKey}/{productKey}",
+  resourceIdSegmentFormats: {
+    integrationKey: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/,
+    // eslint-disable-line no-useless-escape
+    productKey: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/platform/product/index.ts
+var PlatformProductAri = class _PlatformProductAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._integrationKey = opts.resourceIdSegmentValues.integrationKey, this._productKey = opts.resourceIdSegmentValues.productKey;
+  }
+  get integrationKey() {
+    return this._integrationKey;
+  }
+  get productKey() {
+    return this._productKey;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: platformProductAriStaticOpts.qualifier,
+      platformQualifier: platformProductAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: platformProductAriStaticOpts.resourceOwner,
+      resourceType: platformProductAriStaticOpts.resourceType,
+      resourceId: `${opts.integrationKey}/${opts.productKey}`,
+      resourceIdSegmentValues: {
+        integrationKey: opts.integrationKey,
+        productKey: opts.productKey
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, platformProductAriStaticOpts);
+    return new _PlatformProductAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, platformProductAriStaticOpts);
+    return new _PlatformProductAri(opts);
+  }
+  getVariables() {
+    return {
+      integrationKey: this.integrationKey,
+      productKey: this.productKey
+    };
+  }
+};
+
 // src/platform/secure-tunnel/types.ts
 var PlatformSecureTunnelAriResourceOwner = "platform", PlatformSecureTunnelAriResourceType = "secure-tunnel";
 
 // src/platform/secure-tunnel/manifest.ts
 var platformSecureTunnelAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformSecureTunnelAriResourceOwner,
   resourceType: PlatformSecureTunnelAriResourceType,
   resourceIdSlug: "{secureTunnelId}",
   resourceIdSegmentFormats: {
@@ -705,13 +827,14 @@
 var platformSiteAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: PlatformSiteAriResourceOwner,
   resourceType: PlatformSiteAriResourceType,
   resourceIdSlug: "{siteId}",
   resourceIdSegmentFormats: {
-    siteId: /[a-zA-Z0-9\-]+/
+    siteId: /[a-zA-Z0-9_\-.]{1,255}/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -747,16 +870,71 @@
       siteId: this.siteId
     };
   }
 };
+
+// src/platform/test-provisioning-entity/types.ts
+var PlatformTestProvisioningEntityAriResourceOwner = "platform", PlatformTestProvisioningEntityAriResourceType = "test-provisioning-entity";
+
+// src/platform/test-provisioning-entity/manifest.ts
+var platformTestProvisioningEntityAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: PlatformTestProvisioningEntityAriResourceOwner,
+  resourceType: PlatformTestProvisioningEntityAriResourceType,
+  resourceIdSlug: "{testEntityId}",
+  resourceIdSegmentFormats: {
+    testEntityId: /[!a-zA-Z0-9\-_.~@:;{}=]+(\/[!a-zA-Z0-9\-_.~@:;{}=]+)*/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/platform/test-provisioning-entity/index.ts
+var PlatformTestProvisioningEntityAri = class _PlatformTestProvisioningEntityAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._testEntityId = opts.resourceIdSegmentValues.testEntityId;
+  }
+  get testEntityId() {
+    return this._testEntityId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: platformTestProvisioningEntityAriStaticOpts.qualifier,
+      platformQualifier: platformTestProvisioningEntityAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: platformTestProvisioningEntityAriStaticOpts.resourceOwner,
+      resourceType: platformTestProvisioningEntityAriStaticOpts.resourceType,
+      resourceId: `${opts.testEntityId}`,
+      resourceIdSegmentValues: {
+        testEntityId: opts.testEntityId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, platformTestProvisioningEntityAriStaticOpts);
+    return new _PlatformTestProvisioningEntityAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, platformTestProvisioningEntityAriStaticOpts);
+    return new _PlatformTestProvisioningEntityAri(opts);
+  }
+  getVariables() {
+    return {
+      testEntityId: this.testEntityId
+    };
+  }
+};
 // Annotate the CommonJS export names for ESM import in node:
 0 && (module.exports = {
   PlatformClassificationTagAri,
+  PlatformCollaborationContextAri,
   PlatformIntegrationAri,
   PlatformLifecycleResourceAri,
   PlatformLifecycleResourcePackageAri,
   PlatformLifecycleResourcePackageTypeAri,
   PlatformOrgAri,
   PlatformOrgUserAri,
+  PlatformProductAri,
   PlatformSecureTunnelAri,
-  PlatformSiteAri
+  PlatformSiteAri,
+  PlatformTestProvisioningEntityAri
 });