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
});