npm package diff

Package: @forge/util

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

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

Index: package/packages/ari/loom/index.js
===================================================================
--- package/packages/ari/loom/index.js
+++ package/packages/ari/loom/index.js
@@ -16,18 +16,26 @@
 
 // src/loom/index.ts
 var loom_exports = {};
 __export(loom_exports, {
-  LoomSiteAri: () => LoomSiteAri
+  LoomCommentAri: () => LoomCommentAri,
+  LoomFolderAri: () => LoomFolderAri,
+  LoomMeetingAri: () => LoomMeetingAri,
+  LoomMeetingRecurrenceAri: () => LoomMeetingRecurrenceAri,
+  LoomSiteAri: () => LoomSiteAri,
+  LoomSpaceAri: () => LoomSpaceAri,
+  LoomStandaloneWorkspaceAri: () => LoomStandaloneWorkspaceAri,
+  LoomVideoAri: () => LoomVideoAri,
+  LoomWorkspaceAri: () => LoomWorkspaceAri
 });
 module.exports = __toCommonJS(loom_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}.`);
 }
 
@@ -47,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}.`);
 }
@@ -274,21 +282,274 @@
     return AnyAri.parse(this.toString());
   }
 };
 
+// src/loom/comment/types.ts
+var LoomCommentAriResourceOwner = "loom", LoomCommentAriResourceType = "comment";
+
+// src/loom/comment/manifest.ts
+var loomCommentAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomCommentAriResourceOwner,
+  resourceType: LoomCommentAriResourceType,
+  resourceIdSlug: "activation/{activationId}/{commentId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/,
+    // eslint-disable-line no-useless-escape
+    commentId: /[0-9]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/comment/index.ts
+var LoomCommentAri = class _LoomCommentAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId, this._commentId = opts.resourceIdSegmentValues.commentId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  get commentId() {
+    return this._commentId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomCommentAriStaticOpts.qualifier,
+      platformQualifier: loomCommentAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomCommentAriStaticOpts.resourceOwner,
+      resourceType: loomCommentAriStaticOpts.resourceType,
+      resourceId: `activation/${opts.activationId}/${opts.commentId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId,
+        commentId: opts.commentId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomCommentAriStaticOpts);
+    return new _LoomCommentAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomCommentAriStaticOpts);
+    return new _LoomCommentAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId,
+      commentId: this.commentId
+    };
+  }
+};
+
+// src/loom/folder/types.ts
+var LoomFolderAriResourceOwner = "loom", LoomFolderAriResourceType = "folder";
+
+// src/loom/folder/manifest.ts
+var loomFolderAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomFolderAriResourceOwner,
+  resourceType: LoomFolderAriResourceType,
+  resourceIdSlug: "activation/{activationId}/{folderId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/,
+    // eslint-disable-line no-useless-escape
+    folderId: /[a-f0-9]{32}/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/folder/index.ts
+var LoomFolderAri = class _LoomFolderAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId, this._folderId = opts.resourceIdSegmentValues.folderId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  get folderId() {
+    return this._folderId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomFolderAriStaticOpts.qualifier,
+      platformQualifier: loomFolderAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomFolderAriStaticOpts.resourceOwner,
+      resourceType: loomFolderAriStaticOpts.resourceType,
+      resourceId: `activation/${opts.activationId}/${opts.folderId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId,
+        folderId: opts.folderId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomFolderAriStaticOpts);
+    return new _LoomFolderAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomFolderAriStaticOpts);
+    return new _LoomFolderAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId,
+      folderId: this.folderId
+    };
+  }
+};
+
+// src/loom/meeting/types.ts
+var LoomMeetingAriResourceOwner = "loom", LoomMeetingAriResourceType = "meeting";
+
+// src/loom/meeting/manifest.ts
+var loomMeetingAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomMeetingAriResourceOwner,
+  resourceType: LoomMeetingAriResourceType,
+  resourceIdSlug: "activation/{activationId}/{meetingId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/,
+    // eslint-disable-line no-useless-escape
+    meetingId: /[0-9]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/meeting/index.ts
+var LoomMeetingAri = class _LoomMeetingAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId, this._meetingId = opts.resourceIdSegmentValues.meetingId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  get meetingId() {
+    return this._meetingId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomMeetingAriStaticOpts.qualifier,
+      platformQualifier: loomMeetingAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomMeetingAriStaticOpts.resourceOwner,
+      resourceType: loomMeetingAriStaticOpts.resourceType,
+      resourceId: `activation/${opts.activationId}/${opts.meetingId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId,
+        meetingId: opts.meetingId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomMeetingAriStaticOpts);
+    return new _LoomMeetingAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomMeetingAriStaticOpts);
+    return new _LoomMeetingAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId,
+      meetingId: this.meetingId
+    };
+  }
+};
+
+// src/loom/meeting-recurrence/types.ts
+var LoomMeetingRecurrenceAriResourceOwner = "loom", LoomMeetingRecurrenceAriResourceType = "meeting-recurrence";
+
+// src/loom/meeting-recurrence/manifest.ts
+var loomMeetingRecurrenceAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomMeetingRecurrenceAriResourceOwner,
+  resourceType: LoomMeetingRecurrenceAriResourceType,
+  resourceIdSlug: "activation/{activationId}/{meetingRecurrenceId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/,
+    // eslint-disable-line no-useless-escape
+    meetingRecurrenceId: /[0-9]:[\w=-]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/meeting-recurrence/index.ts
+var LoomMeetingRecurrenceAri = class _LoomMeetingRecurrenceAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId, this._meetingRecurrenceId = opts.resourceIdSegmentValues.meetingRecurrenceId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  get meetingRecurrenceId() {
+    return this._meetingRecurrenceId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomMeetingRecurrenceAriStaticOpts.qualifier,
+      platformQualifier: loomMeetingRecurrenceAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomMeetingRecurrenceAriStaticOpts.resourceOwner,
+      resourceType: loomMeetingRecurrenceAriStaticOpts.resourceType,
+      resourceId: `activation/${opts.activationId}/${opts.meetingRecurrenceId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId,
+        meetingRecurrenceId: opts.meetingRecurrenceId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomMeetingRecurrenceAriStaticOpts);
+    return new _LoomMeetingRecurrenceAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomMeetingRecurrenceAriStaticOpts);
+    return new _LoomMeetingRecurrenceAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId,
+      meetingRecurrenceId: this.meetingRecurrenceId
+    };
+  }
+};
+
 // src/loom/site/types.ts
 var LoomSiteAriResourceOwner = "loom", LoomSiteAriResourceType = "site";
 
 // src/loom/site/manifest.ts
 var loomSiteAriStaticOpts = {
   qualifier: "ari",
   platformQualifier: "cloud",
   cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
   resourceOwner: LoomSiteAriResourceOwner,
   resourceType: LoomSiteAriResourceType,
   resourceIdSlug: "{siteId}",
   resourceIdSegmentFormats: {
-    siteId: /[a-zA-Z0-9\-]+/
+    siteId: /[a-zA-Z0-9_\-.]{1,255}/
     // eslint-disable-line no-useless-escape
   }
 };
 
@@ -324,8 +585,250 @@
       siteId: this.siteId
     };
   }
 };
+
+// src/loom/space/types.ts
+var LoomSpaceAriResourceOwner = "loom", LoomSpaceAriResourceType = "space";
+
+// src/loom/space/manifest.ts
+var loomSpaceAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomSpaceAriResourceOwner,
+  resourceType: LoomSpaceAriResourceType,
+  resourceIdSlug: "activation/{activationId}/{spaceId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/,
+    // eslint-disable-line no-useless-escape
+    spaceId: /[0-9]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/space/index.ts
+var LoomSpaceAri = class _LoomSpaceAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId, this._spaceId = opts.resourceIdSegmentValues.spaceId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  get spaceId() {
+    return this._spaceId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomSpaceAriStaticOpts.qualifier,
+      platformQualifier: loomSpaceAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomSpaceAriStaticOpts.resourceOwner,
+      resourceType: loomSpaceAriStaticOpts.resourceType,
+      resourceId: `activation/${opts.activationId}/${opts.spaceId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId,
+        spaceId: opts.spaceId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomSpaceAriStaticOpts);
+    return new _LoomSpaceAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomSpaceAriStaticOpts);
+    return new _LoomSpaceAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId,
+      spaceId: this.spaceId
+    };
+  }
+};
+
+// src/loom/standalone-workspace/types.ts
+var LoomStandaloneWorkspaceAriResourceOwner = "loom", LoomStandaloneWorkspaceAriResourceType = "standalone-workspace";
+
+// src/loom/standalone-workspace/manifest.ts
+var loomStandaloneWorkspaceAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomStandaloneWorkspaceAriResourceOwner,
+  resourceType: LoomStandaloneWorkspaceAriResourceType,
+  resourceIdSlug: "{workspaceId}",
+  resourceIdSegmentFormats: {
+    workspaceId: /(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/standalone-workspace/index.ts
+var LoomStandaloneWorkspaceAri = class _LoomStandaloneWorkspaceAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._workspaceId = opts.resourceIdSegmentValues.workspaceId;
+  }
+  get workspaceId() {
+    return this._workspaceId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomStandaloneWorkspaceAriStaticOpts.qualifier,
+      platformQualifier: loomStandaloneWorkspaceAriStaticOpts.platformQualifier,
+      cloudId: void 0,
+      resourceOwner: loomStandaloneWorkspaceAriStaticOpts.resourceOwner,
+      resourceType: loomStandaloneWorkspaceAriStaticOpts.resourceType,
+      resourceId: `${opts.workspaceId}`,
+      resourceIdSegmentValues: {
+        workspaceId: opts.workspaceId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomStandaloneWorkspaceAriStaticOpts);
+    return new _LoomStandaloneWorkspaceAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomStandaloneWorkspaceAriStaticOpts);
+    return new _LoomStandaloneWorkspaceAri(opts);
+  }
+  getVariables() {
+    return {
+      workspaceId: this.workspaceId
+    };
+  }
+};
+
+// src/loom/video/types.ts
+var LoomVideoAriResourceOwner = "loom", LoomVideoAriResourceType = "video";
+
+// src/loom/video/manifest.ts
+var loomVideoAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomVideoAriResourceOwner,
+  resourceType: LoomVideoAriResourceType,
+  resourceIdSlug: "activation/{activationId}/{videoId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/,
+    // eslint-disable-line no-useless-escape
+    videoId: /[a-fA-F0-9]{32}/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/video/index.ts
+var LoomVideoAri = class _LoomVideoAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId, this._videoId = opts.resourceIdSegmentValues.videoId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  get videoId() {
+    return this._videoId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomVideoAriStaticOpts.qualifier,
+      platformQualifier: loomVideoAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomVideoAriStaticOpts.resourceOwner,
+      resourceType: loomVideoAriStaticOpts.resourceType,
+      resourceId: `activation/${opts.activationId}/${opts.videoId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId,
+        videoId: opts.videoId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomVideoAriStaticOpts);
+    return new _LoomVideoAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomVideoAriStaticOpts);
+    return new _LoomVideoAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId,
+      videoId: this.videoId
+    };
+  }
+};
+
+// src/loom/workspace/types.ts
+var LoomWorkspaceAriResourceOwner = "loom", LoomWorkspaceAriResourceType = "workspace";
+
+// src/loom/workspace/manifest.ts
+var loomWorkspaceAriStaticOpts = {
+  qualifier: "ari",
+  platformQualifier: "cloud",
+  cloudId: new RegExp("^[a-zA-Z0-9_\\-.]{1,255}$"),
+  // eslint-disable-line no-useless-escape
+  resourceOwner: LoomWorkspaceAriResourceOwner,
+  resourceType: LoomWorkspaceAriResourceType,
+  resourceIdSlug: "{activationId}",
+  resourceIdSegmentFormats: {
+    activationId: /[a-zA-Z0-9\-]+/
+    // eslint-disable-line no-useless-escape
+  }
+};
+
+// src/loom/workspace/index.ts
+var LoomWorkspaceAri = class _LoomWorkspaceAri extends RegisteredAri {
+  constructor(opts) {
+    super(opts);
+    this._siteId = opts.cloudId || "", this._activationId = opts.resourceIdSegmentValues.activationId;
+  }
+  get siteId() {
+    return this._siteId;
+  }
+  get activationId() {
+    return this._activationId;
+  }
+  static create(opts) {
+    let derivedOpts = {
+      qualifier: loomWorkspaceAriStaticOpts.qualifier,
+      platformQualifier: loomWorkspaceAriStaticOpts.platformQualifier,
+      cloudId: opts.siteId,
+      resourceOwner: loomWorkspaceAriStaticOpts.resourceOwner,
+      resourceType: loomWorkspaceAriStaticOpts.resourceType,
+      resourceId: `${opts.activationId}`,
+      resourceIdSegmentValues: {
+        activationId: opts.activationId
+      }
+    }, ariOpts = AriParser.fromOpts(derivedOpts, loomWorkspaceAriStaticOpts);
+    return new _LoomWorkspaceAri(ariOpts);
+  }
+  static parse(maybeAri) {
+    let opts = AriParser.fromString(maybeAri, loomWorkspaceAriStaticOpts);
+    return new _LoomWorkspaceAri(opts);
+  }
+  getVariables() {
+    return {
+      siteId: this.siteId,
+      activationId: this.activationId
+    };
+  }
+};
 // Annotate the CommonJS export names for ESM import in node:
 0 && (module.exports = {
-  LoomSiteAri
+  LoomCommentAri,
+  LoomFolderAri,
+  LoomMeetingAri,
+  LoomMeetingRecurrenceAri,
+  LoomSiteAri,
+  LoomSpaceAri,
+  LoomStandaloneWorkspaceAri,
+  LoomVideoAri,
+  LoomWorkspaceAri
 });