npm package diff

Package: @forge/util

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

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

Index: package/packages/ari/ecosystem/index.js
===================================================================
--- package/packages/ari/ecosystem/index.js
+++ package/packages/ari/ecosystem/index.js
@@ -19,21 +19,23 @@
 __export(ecosystem_exports, {
   EcosystemAppAri: () => EcosystemAppAri,
   EcosystemAppEnvironmentVersionAri: () => EcosystemAppEnvironmentVersionAri,
   EcosystemConnectAppAri: () => EcosystemConnectAppAri,
+  EcosystemConnectModuleAri: () => EcosystemConnectModuleAri,
   EcosystemEnvironmentAri: () => EcosystemEnvironmentAri,
   EcosystemExtensionAri: () => EcosystemExtensionAri,
   EcosystemExtensionGroupAri: () => EcosystemExtensionGroupAri,
-  EcosystemInstallationAri: () => EcosystemInstallationAri
+  EcosystemInstallationAri: () => EcosystemInstallationAri,
+  EcosystemInstallationLinkAri: () => EcosystemInstallationLinkAri
 });
 module.exports = __toCommonJS(ecosystem_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}.`);
 }
 
@@ -53,9 +55,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}.`);
 }
@@ -288,8 +290,9 @@
 var ecosystemAppAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemAppAriResourceOwner,
   resourceType: EcosystemAppAriResourceType,
   resourceIdSlug: "{appId}",
   resourceIdSegmentFormats: {
@@ -339,8 +342,9 @@
 var ecosystemAppEnvironmentVersionAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemAppEnvironmentVersionAriResourceOwner,
   resourceType: EcosystemAppEnvironmentVersionAriResourceType,
   resourceIdSlug: "{appId}/{environmentId}/{versionId}",
   resourceIdSegmentFormats: {
@@ -404,8 +408,9 @@
 var ecosystemConnectAppAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemConnectAppAriResourceOwner,
   resourceType: EcosystemConnectAppAriResourceType,
   resourceIdSlug: "{appKey}",
   resourceIdSegmentFormats: {
@@ -447,16 +452,76 @@
     };
   }
 };
 
+// src/ecosystem/connect-module/types.ts
+var EcosystemConnectModuleAriResourceOwner = "ecosystem", EcosystemConnectModuleAriResourceType = "connect-module";
+
+// src/ecosystem/connect-module/manifest.ts
+var ecosystemConnectModuleAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: EcosystemConnectModuleAriResourceOwner,
+  resourceType: EcosystemConnectModuleAriResourceType,
+  resourceIdSlug: "{appKey}/{moduleKey}",
+  resourceIdSegmentFormats: {
+    appKey: /[a-zA-Z0-9-._]+/,
+    // eslint-disable-line no-useless-escape
+    moduleKey: /[a-zA-Z0-9-]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/ecosystem/connect-module/index.ts
+var EcosystemConnectModuleAri = class _EcosystemConnectModuleAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._appKey = opts.resourceIdSegmentValues.appKey, this._moduleKey = opts.resourceIdSegmentValues.moduleKey;
+  }
+  get appKey() {
+    return this._appKey;
+  }
+  get moduleKey() {
+    return this._moduleKey;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: ecosystemConnectModuleAriStaticOpts.qualifier,
+      platformQualifier: ecosystemConnectModuleAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: ecosystemConnectModuleAriStaticOpts.resourceOwner,
+      resourceType: ecosystemConnectModuleAriStaticOpts.resourceType,
+      resourceId: `${opts.appKey}/${opts.moduleKey}`,
+      resourceIdSegmentValues: {
+        appKey: opts.appKey,
+        moduleKey: opts.moduleKey
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, ecosystemConnectModuleAriStaticOpts);
+    return new _EcosystemConnectModuleAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, ecosystemConnectModuleAriStaticOpts);
+    return new _EcosystemConnectModuleAri(opts);
+  }
+  getVariables() {
+    return {
+      appKey: this.appKey,
+      moduleKey: this.moduleKey
+    };
+  }
+};
+
 // src/ecosystem/environment/types.ts
 var EcosystemEnvironmentAriResourceOwner = "ecosystem", EcosystemEnvironmentAriResourceType = "environment";
 
 // src/ecosystem/environment/manifest.ts
 var ecosystemEnvironmentAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemEnvironmentAriResourceOwner,
   resourceType: EcosystemEnvironmentAriResourceType,
   resourceIdSlug: "{appId}/{environmentId}",
   resourceIdSegmentFormats: {
@@ -513,8 +578,9 @@
 var ecosystemExtensionAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemExtensionAriResourceOwner,
   resourceType: EcosystemExtensionAriResourceType,
   resourceIdSlug: "{appId}/{environmentId}/{groupId}/{extensionKey}",
   resourceIdSegmentFormats: {
@@ -585,8 +651,9 @@
 var ecosystemExtensionGroupAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemExtensionGroupAriResourceOwner,
   resourceType: EcosystemExtensionGroupAriResourceType,
   resourceIdSlug: "{appId}/{environmentId}/{groupId}",
   resourceIdSegmentFormats: {
@@ -650,8 +717,9 @@
 var ecosystemInstallationAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: EcosystemInstallationAriResourceOwner,
   resourceType: EcosystemInstallationAriResourceType,
   resourceIdSlug: "{installationId}",
   resourceIdSegmentFormats: {
@@ -692,14 +760,75 @@
       installationId: this.installationId
     };
   }
 };
+
+// src/ecosystem/installation-link/types.ts
+var EcosystemInstallationLinkAriResourceOwner = "ecosystem", EcosystemInstallationLinkAriResourceType = "installation-link";
+
+// src/ecosystem/installation-link/manifest.ts
+var ecosystemInstallationLinkAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: EcosystemInstallationLinkAriResourceOwner,
+  resourceType: EcosystemInstallationLinkAriResourceType,
+  resourceIdSlug: "{installationId}/{installationLinkId}",
+  resourceIdSegmentFormats: {
+    installationId: /[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}/,
+    // eslint-disable-line no-useless-escape
+    installationLinkId: /[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/ecosystem/installation-link/index.ts
+var EcosystemInstallationLinkAri = class _EcosystemInstallationLinkAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._installationId = opts.resourceIdSegmentValues.installationId, this._installationLinkId = opts.resourceIdSegmentValues.installationLinkId;
+  }
+  get installationId() {
+    return this._installationId;
+  }
+  get installationLinkId() {
+    return this._installationLinkId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: ecosystemInstallationLinkAriStaticOpts.qualifier,
+      platformQualifier: ecosystemInstallationLinkAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: ecosystemInstallationLinkAriStaticOpts.resourceOwner,
+      resourceType: ecosystemInstallationLinkAriStaticOpts.resourceType,
+      resourceId: `${opts.installationId}/${opts.installationLinkId}`,
+      resourceIdSegmentValues: {
+        installationId: opts.installationId,
+        installationLinkId: opts.installationLinkId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, ecosystemInstallationLinkAriStaticOpts);
+    return new _EcosystemInstallationLinkAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, ecosystemInstallationLinkAriStaticOpts);
+    return new _EcosystemInstallationLinkAri(opts);
+  }
+  getVariables() {
+    return {
+      installationId: this.installationId,
+      installationLinkId: this.installationLinkId
+    };
+  }
+};
 // Annotate the CommonJS export names for ESM import in node:
 0 && (module.exports = {
   EcosystemAppAri,
   EcosystemAppEnvironmentVersionAri,
   EcosystemConnectAppAri,
+  EcosystemConnectModuleAri,
   EcosystemEnvironmentAri,
   EcosystemExtensionAri,
   EcosystemExtensionGroupAri,
-  EcosystemInstallationAri
+  EcosystemInstallationAri,
+  EcosystemInstallationLinkAri
 });