UNPKG

forge-server-utils

Version:

Tools for accessing Autodesk Forge APIs from Node.js apps and from browser.

2 lines 310 kB
/*! For license information please see forge-server-utils.js.LICENSE.txt */ var forge;(()=>{var t={8482:function(t,e,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(t,e,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]}),o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&n(e,t,r);return o(e,t),e},a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.AuthenticationClient=void 0;const s=i(r(7735)),c=a(r(7218)),u="authentication/v1";e.AuthenticationClient=class{get clientId(){return this.client_id}constructor(t,e,r="https://developer.api.autodesk.com"){this.client_id=t,this.client_secret=e,this.host=r,this._cached={}}async post(t,e){return c.default.post(this.host+"/"+u+"/"+t,s.stringify(e))}authenticate(t,e=!1){const r="two-legged/"+t.join("/");if(!e&&r in this._cached){const t=this._cached[r];if(t.expires_at>Date.now())return t.promise.then((e=>({access_token:e,expires_in:Math.floor((t.expires_at-Date.now())/1e3)})))}const n={client_id:this.client_id,client_secret:this.client_secret,grant_type:"client_credentials",scope:t.join(" ")},o=this._cached[r]={expires_at:Number.MAX_VALUE,promise:this.post("authenticate",n).then((t=>{const{data:e}=t;return this._cached[r].expires_at=Date.now()+1e3*e.expires_in,e.access_token}))};return o.promise.then((t=>({access_token:t,expires_in:Math.floor((o.expires_at-Date.now())/1e3)})))}getAuthorizeRedirect(t,e){return`${this.host}/${u}/authorize?response_type=code&client_id=${this.client_id}&redirect_uri=${e}&scope=${t.join(" ")}`}async getToken(t,e){const r={client_id:this.client_id,client_secret:this.client_secret,grant_type:"authorization_code",code:t,redirect_uri:e};return(await this.post("gettoken",r)).data}async refreshToken(t,e){const r={client_id:this.client_id,client_secret:this.client_secret,grant_type:"refresh_token",refresh_token:e,scope:t.join(" ")};return(await this.post("refreshtoken",r)).data}async getUserProfile(t){const e={headers:{Authorization:"Bearer "+t}};return(await c.default.get(this.host+"/userprofile/v1/users/@me",e)).data}}},1755:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BIM360Client=e.ResourceType=void 0;const n=r(9494),o=r(9494),i=["data:read","account:read"],a=["data:create","data:write"];var s;!function(t){t.Folders="folders",t.Items="items"}(s||(e.ResourceType=s={}));class c extends o.ForgeClient{constructor(t,e,r){super("",t,e,r)}async listHubs(t){const e={"Content-Type":"application/vnd.api+json"};t&&(e["x-user-id"]=t);let r=await this.get("project/v1/hubs",e,i),n=r.data;for(;r.links&&r.links.next;)r=await this.get(r.links.next.href,e,i),n=n.concat(r.data);return n.map((t=>Object.assign(t.attributes,{id:t.id})))}async getHubDetails(t,e){const r={"Content-Type":"application/vnd.api+json"};e&&(r["x-user-id"]=e);const n=await this.get(`project/v1/hubs/${encodeURIComponent(t)}`,r,i);return Object.assign(n.data.attributes,{id:n.data.id})}async listProjects(t,e){const r={"Content-Type":"application/vnd.api+json"};e&&(r["x-user-id"]=e);let n=await this.get(`project/v1/hubs/${encodeURIComponent(t)}/projects`,r,i),o=n.data;for(;n.links&&n.links.next;)n=await this.get(n.links.next.href,r,i),o=o.concat(n.data);return o.map((t=>Object.assign(t.attributes,{id:t.id})))}async getProjectDetails(t,e,r){const n={"Content-Type":"application/vnd.api+json"};r&&(n["x-user-id"]=r);const o=await this.get(`project/v1/hubs/${encodeURIComponent(t)}/projects/${encodeURIComponent(e)}`,n,i);return Object.assign(o.data.attributes,{id:o.data.id})}async listTopFolders(t,e,r){const n={};r&&(n["x-user-id"]=r);let o=await this.get(`project/v1/hubs/${encodeURIComponent(t)}/projects/${encodeURIComponent(e)}/topFolders`,n,i),a=o.data;for(;o.links&&o.links.next;)o=await this.get(o.links.next.href,n,i),a=a.concat(o.data);return a.map((t=>Object.assign(t.attributes,{id:t.id})))}async createStorageLocation(t,e,r,n,o){const i={"Content-Type":"application/vnd.api+json"};o&&(i["x-user-id"]=o);const s={jsonapi:{version:"1.0"},data:{type:"objects",attributes:{name:e},relationships:{target:{data:{type:r,id:n}}}}},c=await this.post(`data/v1/projects/${encodeURIComponent(t)}/storage`,s,i,a);return Object.assign(c.data.id,{id:c.data.id})}async listContents(t,e,r){const n={};r&&(n["x-user-id"]=r);let o=await this.get(`data/v1/projects/${encodeURIComponent(t)}/folders/${encodeURIComponent(e)}/contents`,n,i),a=o.data;for(;o.links&&o.links.next;)o=await this.get(o.links.next.href,n,i),a=a.concat(o.data);return a.map((t=>Object.assign(t.attributes,{id:t.id,type:t.type})))}async getFolder(t,e,r){const n={};r&&(n["x-user-id"]=r);let o=await this.get(`data/v1/projects/${encodeURIComponent(t)}/folders/${encodeURIComponent(e)}`,n,i);return Object.assign(o.data.attributes,{id:o.data.id})}async getItemDetails(t,e,r){var n,o,a,s,c,u,l,p,f,y,d,h,g;const b={};r&&(b["x-user-id"]=r);let m=await this.get(`data/v1/projects/${encodeURIComponent(t)}/items/${encodeURIComponent(e)}`,b,i);if(m.included&&m.included.length>0){const t=m.included[0];return Object.assign(m.data.attributes,{id:m.data.id,type:m.data.type,folder:null===(a=null===(o=null===(n=m.data.relationships)||void 0===n?void 0:n.parent)||void 0===o?void 0:o.data)||void 0===a?void 0:a.id,derivative:null===(u=null===(c=null===(s=null==t?void 0:t.relationships)||void 0===s?void 0:s.derivatives)||void 0===c?void 0:c.data)||void 0===u?void 0:u.id,storage:null===(f=null===(p=null===(l=null==t?void 0:t.relationships)||void 0===l?void 0:l.storage)||void 0===p?void 0:p.data)||void 0===f?void 0:f.id,versionNumber:null===(y=null==t?void 0:t.attributes)||void 0===y?void 0:y.versionNumber})}return Object.assign(m.data.attributes,{id:m.data.id,type:m.data.type,folder:null===(g=null===(h=null===(d=m.data.relationships)||void 0===d?void 0:d.parent)||void 0===h?void 0:h.data)||void 0===g?void 0:g.id})}async listVersions(t,e,r){const n={"Content-Type":"application/vnd.api+json"};r&&(n["x-user-id"]=r);let o=await this.get(`data/v1/projects/${encodeURIComponent(t)}/items/${encodeURIComponent(e)}/versions`,n,i),a=o.data;for(;o.links&&o.links.next;)o=await this.get(o.links.next.href,n,i),a=a.concat(o.data);return a.map((t=>{var e,r,n,o,i,a;return Object.assign(t.attributes,{id:t.id,type:t.type,derivative:null===(n=null===(r=null===(e=null==t?void 0:t.relationships)||void 0===e?void 0:e.derivatives)||void 0===r?void 0:r.data)||void 0===n?void 0:n.id,storage:null===(a=null===(i=null===(o=null==t?void 0:t.relationships)||void 0===o?void 0:o.storage)||void 0===i?void 0:i.data)||void 0===a?void 0:a.id})}))}async getTipVersion(t,e,r){const n={};return r&&(n["x-user-id"]=r),(await this.get(`data/v1/projects/${encodeURIComponent(t)}/items/${encodeURIComponent(e)}/tip`,n,i)).data}async getVersionDetails(t,e,r,n){const o={};return n&&(o["x-user-id"]=n),(await this.get(`data/v1/projects/${encodeURIComponent(t)}/versions/${encodeURIComponent(r)}`,o,i)).data}async createVersion(t,e,r,n,o){const i={"Content-Type":"application/vnd.api+json"};o&&(i["x-user-id"]=o);const s={jsonapi:{version:"1.0"},data:{type:"items",attributes:{displayName:e,extension:{type:"items:autodesk.bim360:File",version:"1.0"}},relationships:{tip:{data:{type:"versions",id:"1"}},parent:{data:{type:"folders",id:r}}}},included:[{type:"versions",id:"1",attributes:{name:e,extension:{type:"versions:autodesk.bim360:File",version:"1.0"}},relationships:{storage:{data:{type:"objects",id:n}}}}]},c=await this.post(`data/v1/projects/${encodeURIComponent(t)}/items`,s,i,a);return 1===c.included.length?Object.assign(c.included[0].id,{id:c.included[0].id,type:"versions"}):null}async createNextVersion(t,e,r,n,o,i){const s={"Content-Type":"application/vnd.api+json"};i&&(s["x-user-id"]=i);const c={jsonapi:{version:"1.0"},data:{type:"versions",attributes:{name:e,extension:{type:"versions:autodesk.bim360:File",version:"1.0"}},relationships:{item:{data:{type:"items",id:r}},storage:{data:{type:"objects",id:n}},refs:{data:o.map((function(t){return{type:"versions",id:t,meta:{refType:"xrefs",direction:"from",extension:{type:"xrefs:autodesk.core:Xref",version:"1.1",data:{nestedType:"overlay"}}}}}))}}}},u=await this.post(`data/v1/projects/${encodeURIComponent(t)}/versions`,c,s,a);return Object.assign(u.data.id,{id:u.data.id})}async getIssueContainerID(t,e){var r,n,o,a;return null===(a=null===(o=null===(n=null===(r=(await this.get(`project/v1/hubs/${encodeURIComponent(t)}/projects/${encodeURIComponent(e)}`,{"Content-Type":"application/vnd.api+json"},i)).data)||void 0===r?void 0:r.relationships)||void 0===n?void 0:n.issues)||void 0===o?void 0:o.data)||void 0===a?void 0:a.id}async listIssues(t,e,r){const n={"Content-Type":"application/vnd.api+json"};let o=r?`issues/v1/containers/${encodeURIComponent(t)}/quality-issues?page[limit]=${r.limit}&page[offset]=${r.offset}`:`issues/v1/containers/${encodeURIComponent(t)}/quality-issues?page[limit]=64`;e&&(e.status&&(o+="&filter[status]="+e.status),e.owner&&(o+="&filter[owner]="+e.owner),e.target_urn&&(o+="&filter[target_urn]="+e.target_urn),e.due_date&&(o+="&filter[due_date]="+(Array.isArray(e.due_date)?e.due_date[0].toISOString()+"..."+e.due_date[1].toISOString():e.due_date.toISOString())),e.synced_after&&(o+="&filter[synced_after]="+e.synced_after.toISOString()),e.created_at&&(o+="&filter[created_at]="+(Array.isArray(e.created_at)?e.created_at[0].toISOString()+"..."+e.created_at[1].toISOString():e.created_at.toISOString())),e.created_by&&(o+="&filter[created_by]="+e.created_by),e.assigned_to&&(o+="&filter[assigned_to]="+e.assigned_to),e.ng_issue_type_id&&(o+="&filter[ng_issue_type_id]="+e.ng_issue_type_id),e.ng_issue_subtype_id&&(o+="&filter[ng_issue_subtype_id]="+e.ng_issue_subtype_id));let a=await this.get(o,n,i),s=a.data;if(!r)for(;a.links&&a.links.next;)a=await this.get(a.links.next.href,n,i),s=s.concat(a.data);return s.map((t=>Object.assign(t.attributes,{id:t.id})))}async getIssueDetails(t,e){const r=await this.get(`issues/v1/containers/${encodeURIComponent(t)}/quality-issues/${encodeURIComponent(e)}`,{"Content-Type":"application/vnd.api+json"},i);return Object.assign(r.data.attributes,{id:r.data.id})}async createIssue(t,e){const r={data:{type:"quality_issues",attributes:e}},n=await this.post(`issues/v1/containers/${encodeURIComponent(t)}/quality-issues`,r,{"Content-Type":"application/vnd.api+json"},a);return Object.assign(n.data.attributes,{id:n.data.id})}async updateIssue(t,e,r){const n={data:{type:"quality_issues",id:e,attributes:r}},o=await this.patch(`issues/v1/containers/${encodeURIComponent(t)}/quality-issues/${encodeURIComponent(e)}`,n,{"Content-Type":"application/vnd.api+json"},a);return Object.assign(o.data.attributes,{id:o.data.id})}async listIssueComments(t,e,r){const n={"Content-Type":"application/vnd.api+json"},o=r?`issues/v1/containers/${encodeURIComponent(t)}/quality-issues/${encodeURIComponent(e)}/comments?page[limit]=${r.limit}&page[offset]=${r.offset}`:`issues/v1/containers/${encodeURIComponent(t)}/quality-issues/${encodeURIComponent(e)}/comments?page[limit]=64`;let a=await this.get(o,n,i),s=a.data;if(!r)for(;a.links&&a.links.next;)a=await this.get(a.links.next.href,n,i),s=s.concat(a.data);return s.map((t=>Object.assign(t.attributes,{id:t.id})))}async createIssueComment(t,e,r){const n={data:{type:"comments",attributes:{issue_id:e,body:r}}},o=await this.post(`issues/v1/containers/${encodeURIComponent(t)}/comments`,n,{"Content-Type":"application/vnd.api+json"},a);return Object.assign(o.data.attributes,{id:o.data.id})}async listIssueAttachments(t,e,r){const n={"Content-Type":"application/vnd.api+json"},o=r?`issues/v1/containers/${encodeURIComponent(t)}/quality-issues/${encodeURIComponent(e)}/attachments?page[limit]=${r.limit}&page[offset]=${r.offset}`:`issues/v1/containers/${encodeURIComponent(t)}/quality-issues/${encodeURIComponent(e)}/attachments?page[limit]=64`;let a=await this.get(o,n,i),s=a.data;if(!r)for(;a.links&&a.links.next;)a=await this.get(a.links.next.href,n,i),s=s.concat(a.data);return s.map((t=>Object.assign(t.attributes,{id:t.id})))}async createIssueAttachment(t,e){const r={data:{type:"attachments",attributes:e}},n=await this.post(`issues/v1/containers/${encodeURIComponent(t)}/attachments`,r,{"Content-Type":"application/vnd.api+json"},a);return Object.assign(n.data.attributes,{id:n.data.id})}async listIssueRootCauses(t,e){const r=e?`issues/v1/containers/${encodeURIComponent(t)}/root-causes?page[limit]=${e.limit}&page[offset]=${e.offset}`:`issues/v1/containers/${encodeURIComponent(t)}/root-causes?page[limit]=64`;return(await this.get(r,{"Content-Type":"application/vnd.api+json"},i)).data.map((t=>Object.assign(t.attributes,{id:t.id})))}async listIssueTypes(t,e){const r={"Content-Type":"application/vnd.api+json"};let n=await this.get(`issues/v1/containers/${encodeURIComponent(t)}/ng-issue-types?limit=64${e?"&include=subtypes":""}`,r,i),o=n.results;for(;n.pagination&&n.pagination.offset+n.pagination.limit<n.pagination.totalResults;)n=await this.get(`issues/v1/containers/${encodeURIComponent(t)}/ng-issue-types?offset=${n.pagination.offset+n.pagination.limit}&limit=64${e?"&include=subtypes":""}`,r,i),o=o.concat(n.results);return o}async listIssueAttributeDefinitions(t){const e={};let r=await this.get(`issues/v2/containers/${encodeURIComponent(t)}/issue-attribute-definitions?limit=64`,e,i),n=r.results;for(;r.pagination&&r.pagination.offset+r.pagination.limit<r.pagination.totalResults;)r=await this.get(`issues/v2/containers/${encodeURIComponent(t)}/issue-attribute-definitions?offset=${r.pagination.offset+r.pagination.limit}&limit=64`,e,i),n=n.concat(r.results);return n}async listIssueAttributeMappings(t){const e={};let r=await this.get(`issues/v2/containers/${encodeURIComponent(t)}/issue-attribute-mappings?limit=64`,e,i),n=r.results;for(;r.pagination&&r.pagination.offset+r.pagination.limit<r.pagination.totalResults;)r=await this.get(`issues/v2/containers/${encodeURIComponent(t)}/issue-attribute-mappings?offset=${r.pagination.offset+r.pagination.limit}&limit=64`,e,i),n=n.concat(r.results);return n}async listUsers(t,e){let r=this.region===n.Region.US?`hq/v1/accounts/${encodeURIComponent(t)}/users`:`hq/v1/regions/eu/accounts/${encodeURIComponent(t)}/users`;if(e){r+="/search?limit=64";for(const t of Object.keys(e))r+=`&${t}=${e[t]}`}else r+="?limit=64";let o=[],a=0,s=await this.get(r,{},i);for(;s.length;)o=o.concat(s),a+=64,s=await this.get(r+`&offset=${a}`,{},i);return o}async getUserDetails(t,e){const r=this.region===n.Region.US?`hq/v1/accounts/${encodeURIComponent(t)}/users/${encodeURIComponent(e)}`:`hq/v1/regions/eu/accounts/${encodeURIComponent(t)}/users/${encodeURIComponent(e)}`;return await this.get(r,{},i)}async getLocationContainerID(t,e){var r,n,o,a;return null===(a=null===(o=null===(n=null===(r=(await this.get(`project/v1/hubs/${encodeURIComponent(t)}/projects/${encodeURIComponent(e)}`,{"Content-Type":"application/vnd.api+json"},i)).data)||void 0===r?void 0:r.relationships)||void 0===n?void 0:n.locations)||void 0===o?void 0:o.data)||void 0===a?void 0:a.id}async listLocationNodes(t,e){const r={},n="default",o=e?`bim360/locations/v2/containers/${encodeURIComponent(t)}/trees/${encodeURIComponent(n)}/nodes?offset=${e.offset}&limit=${e.limit}`:`bim360/locations/v2/containers/${encodeURIComponent(t)}/trees/${encodeURIComponent(n)}/nodes?limit=64`;let a=await this.get(o,r,i),s=a.results;if(!e)for(;a.pagination&&a.pagination.offset+a.pagination.limit<a.pagination.totalResults;)a=await this.get(`bim360/locations/v2/containers/${encodeURIComponent(t)}/trees/${encodeURIComponent(n)}/nodes?offset=${a.pagination.offset+a.pagination.limit}&limit=64`,r,i),s=s.concat(a.results);return s}}e.BIM360Client=c},9494:function(t,e,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(t,e,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]}),o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&n(e,t,r);return o(e,t),e},a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ForgeClient=e.Region=e.DefaultHost=e.sleep=void 0;const s=a(r(7218)),c=i(r(4655)),u=r(8482),l=Number.MAX_SAFE_INTEGER,p=Number.MAX_SAFE_INTEGER;var f;e.sleep=function(t){return new Promise((function(e){setTimeout(e,t)}))},e.DefaultHost="https://developer.api.autodesk.com",function(t){t.US="US",t.EMEA="EMEA"}(f||(e.Region=f={})),e.ForgeClient=class{constructor(t,r,n,o){if("client_id"in r&&"client_secret"in r)this.auth=new u.AuthenticationClient(r.client_id,r.client_secret,n);else{if(!("token"in r))throw new Error("Authentication parameters missing or incorrect.");this.token=r.token}this.root=t,this.host=n||e.DefaultHost,this.region=o||f.US,this.axios=s.default.create({baseURL:this.host+"/"+this.root+"/",maxContentLength:l,maxBodyLength:p}),this.axios.defaults.raxConfig={instance:this.axios},c.attach(this.axios)}reset(t,r,n){if(void 0!==t)if("client_id"in t&&"client_secret"in t)this.auth=new u.AuthenticationClient(t.client_id,t.client_secret,r);else{if(!("token"in t))throw new Error("Authentication parameters missing or incorrect.");this.token=t.token}void 0!==r&&(this.host=r||e.DefaultHost),void 0!==n&&(this.region=n||f.US),this.axios=s.default.create({baseURL:this.host+"/"+this.root+"/"})}async setAuthorization(t,e){if(t.headers=t.headers||{},this.auth){const r=await this.auth.authenticate(e);t.headers.Authorization="Bearer "+r.access_token}else t.headers.Authorization="Bearer "+this.token}async fetch(t){return this.axios.request(t)}async get(t,e={},r){const n={headers:e};return await this.setAuthorization(n,r),(await this.axios.get(t,n)).data}async getBuffer(t,e={},r){const n={headers:e,responseType:"arraybuffer"};return await this.setAuthorization(n,r),(await this.axios.get(t,n)).data}async getStream(t,e={},r){const n={headers:e,responseType:"stream"};return await this.setAuthorization(n,r),(await this.axios.get(t,n)).data}async post(t,e,r={},n){const o={headers:r};return await this.setAuthorization(o,n),(await this.axios.post(t,e,o)).data}async put(t,e,r={},n){const o={headers:r};return await this.setAuthorization(o,n),(await this.axios.put(t,e,o)).data}async patch(t,e,r={},n){const o={headers:r};return await this.setAuthorization(o,n),(await this.axios.patch(t,e,o)).data}async delete(t,e={},r){const n={headers:e};return await this.setAuthorization(n,r),(await this.axios.delete(t,n)).data}}},8684:(t,e,r)=>{"use strict";var n=r(5108),o=r(8764).Buffer;Object.defineProperty(e,"__esModule",{value:!0}),e.DataManagementClient=e.DataRetentionPolicy=void 0;const i=r(9494),a=["bucket:read","data:read"],s=["bucket:create","bucket:delete","data:write"];var c;!function(t){t.Transient="transient",t.Temporary="temporary",t.Persistent="persistent"}(c||(e.DataRetentionPolicy=c={}));class u extends i.ForgeClient{constructor(t,e,r){super("oss/v2",t,e,r)}async*_pager(t,e){let r=await this.get(`${t}${-1===t.indexOf("?")?"?":"&"}limit=${e}`,{},a);for(yield r.items;r.next;){const n=new URL(r.next).searchParams.get("startAt")||"";r=await this.get(`${t}${-1===t.indexOf("?")?"?":"&"}startAt=${encodeURIComponent(n)}&limit=${e}`,{},a),yield r.items}}async _collect(t){let e=await this.get(t,{},a),r=e.items;for(;e.next;){const n=new URL(e.next).searchParams.get("startAt")||"";e=await this.get(`${t}${-1===t.indexOf("?")?"?":"&"}startAt=${encodeURIComponent(n)}`,{},a),r=r.concat(e.items)}return r}async*iterateBuckets(t=16){for await(const e of this._pager(`buckets?region=${this.region}`,t))yield e}async listBuckets(){return this._collect(`buckets?region=${this.region}`)}async getBucketDetails(t){return this.get(`buckets/${t}/details`,{},a)}async createBucket(t,e){const r={bucketKey:t,policyKey:e};return this.post("buckets",r,{"x-ads-region":this.region},s)}async*iterateObjects(t,e=16,r){let n=`buckets/${t}/objects`;r&&(n+="?beginsWith="+r);for await(const t of this._pager(n,e))yield t}async listObjects(t,e){let r=`buckets/${t}/objects`;return e&&(r+="?beginsWith="+encodeURIComponent(e)),this._collect(r)}async getUploadUrls(t,e,r=1,n=1,o){let i=`buckets/${t}/objects/${encodeURIComponent(e)}/signeds3upload?parts=${r}&firstPart=${n}`;return o&&(i+=`&uploadKey=${o}`),this.get(i,{"Content-Type":"application/json"},s)}async completeUpload(t,e,r,n){const o={"Content-Type":"application/json"};return n&&(o["x-ads-meta-Content-Type"]=n),this.post(`buckets/${t}/objects/${encodeURIComponent(e)}/signeds3upload`,{uploadKey:r},o,s)}async uploadObject(t,e,r,o){var i;n.assert(r.byteLength>0);const a=5<<20,s=Math.ceil(r.byteLength/a);let c,u=0,l=0,p=[];for(;u<s;){const n=r.slice(u*a,Math.min((u+1)*a,r.byteLength));for(;;){if(0===p.length){const r=await this.getUploadUrls(t,e,Math.min(s-u,25),u+1,c);p=r.urls.slice(),c=r.uploadKey}const r=p.shift();try{await this.axios.put(r,n);break}catch(t){if(403!==(null===(i=t.response)||void 0===i?void 0:i.status))throw t;p=[]}}u++,l+=n.byteLength,(null==o?void 0:o.progress)&&o.progress(l,r.byteLength)}return this.completeUpload(t,e,c,null==o?void 0:o.contentType)}async uploadObjectStream(t,e,r,n){var i;let a,s=0,c=0,u=[];for await(const l of async function*(t,e){let r=o.alloc(10485760),n=0;for await(const o of t)o.copy(r,n),n+=o.byteLength,n>=e&&(yield r.slice(0,n),n=0);n>0&&(yield r.slice(0,n))}(r,5242880)){for(;;){if(0===u.length){const r=await this.getUploadUrls(t,e,25,s+1,a);u=r.urls.slice(),a=r.uploadKey}const r=u.shift();try{await this.axios.put(r,l);break}catch(t){if(403!==(null===(i=t.response)||void 0===i?void 0:i.status))throw t;u=[]}}s++,c+=l.byteLength,(null==n?void 0:n.progress)&&n.progress(c,void 0)}return this.completeUpload(t,e,a,null==n?void 0:n.contentType)}async getDownloadUrl(t,e,r=!0){const n=`buckets/${t}/objects/${encodeURIComponent(e)}/signeds3download?useCdn=${r}`;return this.get(n,{"Content-Type":"application/json"},a)}async downloadObject(t,e,r){const n=await this.getDownloadUrl(t,e);if("complete"!==n.status)throw new Error("File not available for download yet.");return(await this.axios.get(n.url,{responseType:"arraybuffer",onDownloadProgress:t=>{const e=t.event.response.length,n=parseInt(t.event.responseHeaders["Content-Length"]);(null==r?void 0:r.progress)&&r.progress(e,n)}})).data}async downloadObjectStream(t,e,r){const n=await this.getDownloadUrl(t,e);if("complete"!==n.status)throw new Error("File not available for download yet.");return(await this.axios.get(n.url,{responseType:"stream",onDownloadProgress:t=>{const e=t.event.response.length,n=parseInt(t.event.responseHeaders["Content-Length"]);(null==r?void 0:r.progress)&&r.progress(e,n)}})).data}async uploadObjectResumable(t,e,r,o,i,a,c="application/stream"){n.warn("This method is deprecated and will be removed in future versions.");const u={Authorization:"","Content-Type":c,"Content-Length":r.byteLength.toString(),"Content-Range":`bytes ${o}-${o+r.byteLength-1}/${i}`,"Session-Id":a};return this.put(`buckets/${t}/objects/${encodeURIComponent(e)}/resumable`,r,u,s)}async uploadObjectStreamResumable(t,e,r,o,i,a,c,u="application/stream"){n.warn("This method is deprecated and will be removed in future versions.");const l={Authorization:"","Content-Type":u,"Content-Length":o.toString(),"Content-Range":`bytes ${i}-${i+o-1}/${a}`,"Session-Id":c};return this.put(`buckets/${t}/objects/${encodeURIComponent(e)}/resumable`,r,l,s)}async getResumableUploadStatus(t,e,r){n.warn("This method is deprecated and will be removed in future versions.");const o={method:"GET",url:`buckets/${t}/objects/${encodeURIComponent(e)}/status/${r}`,headers:{Authorization:""}};await this.setAuthorization(o,a);const i=(await this.fetch(o)).headers.range||"",s=i.match(/^bytes=(\d+-\d+(,\d+-\d+)*)$/);if(s)return s[1].split(",").map((t=>{const e=t.split("-");return{start:parseInt(e[0]),end:parseInt(e[1])}}));throw new Error("Unexpected range format: "+i)}async copyObject(t,e,r){return this.put(`buckets/${t}/objects/${encodeURIComponent(e)}/copyto/${encodeURIComponent(r)}`,null,{},s)}async getObjectDetails(t,e){return this.get(`buckets/${t}/objects/${encodeURIComponent(e)}/details`,{},a)}async createSignedUrl(t,e,r="readwrite",n=!0){return this.post(`buckets/${t}/objects/${encodeURIComponent(e)}/signed?access=${r}&useCdn=${n}`,{},{},s)}async deleteObject(t,e){return this.delete(`buckets/${t}/objects/${encodeURIComponent(e)}`,{},s)}async deleteBucket(t){return this.delete(`buckets/${t}`,{},s)}}e.DataManagementClient=u},5334:function(t,e,r){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.DesignAutomationClient=e.DesignAutomationID=e.DesignAutomationRegion=void 0;const o=n(r(6230)),i=r(9494),a=["code:all"];var s;!function(t){t.US_WEST="us-west",t.US_EAST="us-east"}(s||(e.DesignAutomationRegion=s={}));class c{static parse(t){const e=t.match(/^([a-zA-Z0-9_]+)\.([a-zA-Z0-9_]+)\+([\$a-zA-Z0-9_]+)$/);return e?new c(e[1],e[2],e[3]):null}constructor(t,e,r){this.owner=t,this.id=e,this.alias=r}toString(){return`${this.owner}.${this.id}+${this.alias}`}}e.DesignAutomationID=c;class u extends i.ForgeClient{constructor(t,e,r,n){super(`da/${n||s.US_EAST}/v3`,t,e)}reset(t,e,r,n){this.root=`da/${n||s.US_EAST}/v3`,super.reset(t,e)}async*_pager(t,e){let r=await this.get(t,{},e);for(yield r.data;r.paginationToken;)r=await this.get(`${t}?page=${r.paginationToken}`,{},e),yield r.data}async _collect(t,e){let r=await this.get(t,{},e),n=r.data;for(;r.paginationToken;)r=await this.get(`${t}?page=${r.paginationToken}`,{},e),n=n.concat(r.data);return n}async getNickname(){return this.get("forgeapps/me",{},a)}async setNickname(t){return this.patch("forgeapps/me",{nickname:t},{"Content-Type":"application/json"},a)}async deleteNickname(){return this.delete("forgeapps/me",{},a)}async*iterateEngines(){for await(const t of this._pager("engines",a))yield t}async listEngines(){return this._collect("engines",a)}async getEngine(t){return this.get(`engines/${t}`,{},a)}async*iterateAppBundles(){for await(const t of this._pager("appbundles",a))yield t}async listAppBundles(){return this._collect("appbundles",a)}async getAppBundle(t){return this.get(`appbundles/${t}`,{},a)}async getAppBundleVersion(t,e){return this.get(`appbundles/${t}/versions/${e}`,{},a)}async createAppBundle(t,e,r,n){const o={id:t,engine:e};return r&&(o.settings=r),n&&(o.description=n),this.post("appbundles",o,{},a)}async updateAppBundle(t,e,r,n){const o={engine:e};return r&&(o.settings=r),n&&(o.description=n),this.post(`appbundles/${t}/versions`,o,{},a)}uploadAppBundleArchive(t,e){const r=t.uploadParameters.formData,n=new o.default;return n.append("key",r.key),n.append("policy",r.policy),n.append("content-type",r["content-type"]),n.append("success_action_status",r.success_action_status),n.append("success_action_redirect",r.success_action_redirect),n.append("x-amz-signature",r["x-amz-signature"]),n.append("x-amz-credential",r["x-amz-credential"]),n.append("x-amz-algorithm",r["x-amz-algorithm"]),n.append("x-amz-date",r["x-amz-date"]),n.append("x-amz-server-side-encryption",r["x-amz-server-side-encryption"]),n.append("x-amz-security-token",r["x-amz-security-token"]),n.append("file",e),new Promise((function(e,r){n.submit(t.uploadParameters.endpointURL,(function(t,n){t?r(t):e({})}))}))}async*iterateAppBundleAliases(t){for await(const e of this._pager(`appbundles/${t}/aliases`,a))yield e}async listAppBundleAliases(t){return this._collect(`appbundles/${t}/aliases`,a)}async*iterateAppBundleVersions(t){for await(const e of this._pager(`appbundles/${t}/versions`,a))yield e}async listAppBundleVersions(t){return this._collect(`appbundles/${t}/versions`,a)}async createAppBundleAlias(t,e,r,n){const o={id:e,version:r};return n&&(o.receiver=n),this.post(`appbundles/${t}/aliases`,o,{},a)}async updateAppBundleAlias(t,e,r,n){const o={version:r};return n&&(o.receiver=n),this.patch(`appbundles/${t}/aliases/${e}`,o,{},a)}async deleteAppBundle(t){return this.delete(`appbundles/${t}`,{},a)}async deleteAppBundleAlias(t,e){return this.delete(`appbundles/${t}/aliases/${e}`,{},a)}async deleteAppBundleVersion(t,e){return this.delete(`appbundles/${t}/versions/${e}`,{},a)}async*iterateActivities(){for await(const t of this._pager("activities",a))yield t}async listActivities(){return this._collect("activities",a)}async getActivity(t){return this.get(`activities/${t}`,{},a)}async getActivityVersion(t,e){return this.get(`activities/${t}/versions/${e}`,{},a)}async createActivity(t,e,r,n,o,i,s){if(!this.auth)throw new Error("Cannot create activity without client ID.");const c={id:t,engine:e,commandLine:Array.isArray(r)?r:[r]};return n&&(c.appbundles=Array.isArray(n)?n:[n]),o&&(c.parameters=o),i&&(c.settings=i),s&&(c.description=s),this.post("activities",c,{},a)}async updateActivity(t,e,r,n,o,i,s){if(!this.auth)throw new Error("Cannot create activity without client ID.");const c={engine:e,commandLine:Array.isArray(r)?r:[r]};return n&&(c.appbundles=Array.isArray(n)?n:[n]),o&&(c.parameters=o),i&&(c.settings=i),s&&(c.description=s),this.post(`activities/${t}/versions`,c,{},a)}async*iterateActivityAliases(t){for await(const e of this._pager(`activities/${t}/aliases`,a))yield e}async listActivityAliases(t){return this._collect(`activities/${t}/aliases`,a)}async*iterateActivityVersions(t){for await(const e of this._pager(`activities/${t}/versions`,a))yield e}async listActivityVersions(t){return this._collect(`activities/${t}/versions`,a)}async createActivityAlias(t,e,r,n){const o={id:e,version:r};return n&&(o.receiver=n),this.post(`activities/${t}/aliases`,o,{},a)}async updateActivityAlias(t,e,r,n){const o={version:r};return n&&(o.receiver=n),this.patch(`activities/${t}/aliases/${e}`,o,{},a)}async deleteActivity(t){return this.delete(`activities/${t}`,{},a)}async deleteActivityAlias(t,e){return this.delete(`activities/${t}/aliases/${e}`,{},a)}async deleteActivityVersion(t,e){return this.delete(`activities/${t}/versions/${e}`,{},a)}async getWorkItem(t){return this.get(`workitems/${t}`,{},a)}async createWorkItem(t,e,r,n){const o={activityId:t};return e&&(o.arguments=e),r&&(o.signatures=r),n&&(o.limitProcessingTimeSec=n),this.post("workitems",o,{},a)}async deleteWorkItem(t){return this.delete(`workitems/${t}`,{},a)}}e.DesignAutomationClient=u},5590:function(t,e,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(t,e,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]}),o=this&&this.__exportStar||function(t,e){for(var r in t)"default"===r||Object.prototype.hasOwnProperty.call(e,r)||n(e,t,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.ForgeClient=void 0,o(r(8482),e),o(r(8684),e),o(r(4494),e),o(r(1755),e),o(r(5334),e),o(r(7960),e),o(r(5976),e);var i=r(9494);Object.defineProperty(e,"ForgeClient",{enumerable:!0,get:function(){return i.ForgeClient}})},4494:(t,e,r)=>{"use strict";var n=r(8764).Buffer;Object.defineProperty(e,"__esModule",{value:!0}),e.ModelDerivativeClient=e.ManifestHelper=e.ThumbnailSize=e.urnify=void 0;const o=r(2830),i=r(9494),a=t=>null==t,s="modelderivative/v2",c=["data:read"],u=["data:read","data:write","data:create"],l=5e3;var p;e.urnify=function(t){return n.from(t).toString("base64").replace(/=/g,"")},function(t){t[t.Small=100]="Small",t[t.Medium=200]="Medium",t[t.Large=400]="Large"}(p||(e.ThumbnailSize=p={})),e.ManifestHelper=class{constructor(t){this.manifest=t}search(t){let e=[];return this.traverse((r=>(!a(t.guid)&&r.guid!==t.guid||!a(t.type)&&r.type!==t.type||!a(t.role)&&r.role!==t.role||e.push(r),!0))),e}traverse(t){function e(t,r){if(r(t)&&t.children)for(const n of t.children)e(n,r)}for(const r of this.manifest.derivatives)if(r.children)for(const n of r.children)e(n,t)}};class f extends i.ForgeClient{constructor(t,e,r){super(s,t,e,r)}getUrl(t){return new URL(this.host+"/"+s+"/"+t)}async formats(){return(await this.get("designdata/formats",{},c)).formats}async submitJob(t,e,r,n,o,i){const a={input:{urn:t},output:{formats:e,destination:{region:this.region}}};r&&(a.input.compressedUrn=!0,a.input.rootFilename=r),o&&(a.misc={workflow:o},i&&(a.misc.workflowAttribute=i));const s={};return n&&(s["x-ads-force"]="true"),this.post("designdata/job",a,s,u)}async getManifest(t){return this.get(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/manifest`:`designdata/${t}/manifest`,{},c)}async deleteManifest(t){return this.delete(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/manifest`:`designdata/${t}/manifest`,{},u)}async getDerivativeDownloadUrl(t,e){const r=this.region===i.Region.EMEA?`regions/eu/designdata/${t}/manifest/${e}/signedcookies`:`designdata/${t}/manifest/${e}/signedcookies`,n={};await this.setAuthorization(n,c);const o=await this.axios.get(r,n),a={etag:o.data.etag,size:o.data.size,url:o.data.url,"content-type":o.data["content-type"],expiration:o.data.expiration,cookies:{}};if(!o||!o.headers||!o.headers["set-cookie"])return a;for(const t of o.headers["set-cookie"]){const e=t.split(";"),[r,n]=e[0].trim().split("=");a.cookies[r]=n}return a}async getDerivative(t,e){const r=await this.getDerivativeDownloadUrl(t,e);return(await this.axios.get(r.url,{responseType:"arraybuffer",decompress:!1,headers:{Cookie:Object.keys(r.cookies).map((t=>`${t}=${r.cookies[t]}`)).join(";")}})).data}async getDerivativeStream(t,e){const r=await this.getDerivativeDownloadUrl(t,e);return(await this.axios.get(r.url,{responseType:"stream",decompress:!1})).data}getDerivativeChunked(t,e,r=1<<24){const n=this;return o.Readable.from(async function*(){const o=await n.getDerivativeDownloadUrl(t,e),i=o.size;let a=await n.axios.head(o.url),s=0;for(;s<i;){const t=Math.min(r,i-s);a=await n.axios.get(o.url,{responseType:"arraybuffer",decompress:!1,headers:{Range:`bytes=${s}-${s+t-1}`}}),yield a.data,s+=t}}())}async getMetadata(t){return this.get(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/metadata`:`designdata/${t}/metadata`,{},c)}async getMetadataStream(t){return this.getStream(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/metadata`:`designdata/${t}/metadata`,{},c)}async getViewableTree(t,e,r,n,o=!0,a){const s=this.getUrl(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/metadata/${e}`:`designdata/${t}/metadata/${e}`);r&&s.searchParams.append("forceget","true"),n&&s.searchParams.append("objectid",n.toString()),a&&n&&s.searchParams.append("level","1");const u={};await this.setAuthorization(u,c);let p=await this.axios.get(s.toString(),u);for(;202===p.status&&o;)await(0,i.sleep)(l),await this.setAuthorization(u,c),p=await this.axios.get(s.toString(),u);return p.data}async getViewableTreeStream(t,e,r,n,o=!0){const a=this.getUrl(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/metadata/${e}`:`designdata/${t}/metadata/${e}`);r&&a.searchParams.append("forceget","true"),n&&a.searchParams.append("objectid",n.toString());const s={responseType:"stream"};await this.setAuthorization(s,c);let u=await this.axios.get(a.toString(),s);for(;202===u.status&&o;)await(0,i.sleep)(l),await this.setAuthorization(s,c),u=await this.axios.get(a.toString(),s);return u.data}async getViewableProperties(t,e,r,n,o=!0){const a=this.getUrl(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/metadata/${e}/properties`:`designdata/${t}/metadata/${e}/properties`);r&&a.searchParams.append("forceget","true"),n&&a.searchParams.append("objectid",n.toString());const s={};await this.setAuthorization(s,c);let u=await this.axios.get(a.toString(),s);for(;202===u.status&&o;)await(0,i.sleep)(l),await this.setAuthorization(s,c),u=await this.axios.get(a.toString(),s);return u.data}async getViewablePropertiesStream(t,e,r,n,o=!0){const a=this.getUrl(this.region===i.Region.EMEA?`regions/eu/designdata/${t}/metadata/${e}/properties`:`designdata/${t}/metadata/${e}/properties`);r&&a.searchParams.append("forceget","true"),n&&a.searchParams.append("objectid",n.toString());const s={responseType:"stream"};await this.setAuthorization(s,c);let u=await this.axios.get(a.toString(),s);for(;202===u.status&&o;)await(0,i.sleep)(l),await this.setAuthorization(s,c),u=await this.axios.get(a.toString(),s);return u.data}async getThumbnail(t,e=p.Medium){const r=this.region===i.Region.EMEA?`regions/eu/designdata/${t}/thumbnail`:`designdata/${t}/thumbnail`;return this.getBuffer(r+"?width="+e,{},c)}async getThumbnailStream(t,e=p.Medium){const r=this.region===i.Region.EMEA?`regions/eu/designdata/${t}/thumbnail`:`designdata/${t}/thumbnail`;return this.getStream(r+"?width="+e,{},c)}}e.ModelDerivativeClient=f},5976:function(t,e,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(t,e,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]}),o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&n(e,t,r);return o(e,t),e},a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.RealityCaptureClient=e.SceneType=e.OutputFormat=e.GpsType=e.FileType=e.EngineVersion=void 0;const s=a(r(6230)),c=i(r(7735)),u=r(9494),l=["data:read"],p=["data:write"];var f,y,d,h,g;!function(t){t.VersionOne="1.0",t.VersionTwo="2.0",t.VersionThree="3.0"}(f||(e.EngineVersion=f={})),function(t){t.Image="image",t.Survey="survey"}(y||(e.FileType=y={})),function(t){t.Regular="regular",t.Precise="precise"}(d||(e.GpsType=d={})),function(t){t.RecapPhotoMesh="rcm",t.RecapPointCloud="rcs",t.WavefrontObject="obj",t.FBXExchangeFormat="fbx",t.OrthoPhotoElevationMap="ortho",t.QualityReport="report"}(h||(e.OutputFormat=h={})),function(t){t.Aerial="aerial",t.Object="object"}(g||(e.SceneType=g={}));class b extends u.ForgeClient{constructor(t,e){super("photo-to-3d/v1/",t,e)}async createPhotoScene(t){const e={scenename:t.scenename};if(t.callback&&(e.callback=t.callback),t.format&&(e.format=t.format),t.scenetype&&(e.scenetype=t.scenetype),"object"!==t.scenetype&&t.gpstype&&(e.gpstype=t.gpstype),t.hubprojectid&&t.hubfolderid&&(e.hubprojectid=t.hubprojectid,e.hubfolderid=t.hubfolderid),t.version&&(e.version=t.version),"object"!==t.scenetype&&t.metadataname&&t.metadatavalue&&t.metadataname.length>0&&t.metadatavalue.length>0&&t.metadataname.length===t.metadatavalue.length)for(let r=0;r<t.metadataname.length;r++)e[`metadataname[${r}]`]=t.metadataname[r],e[`metadatavalue[${r}]`]=t.metadatavalue[r];return this.post("photoscene",c.stringify(e),{"Content-Type":"application/x-www-form-urlencoded"},p)}async addImages(t,e,r){const n=new s.default;n.append("photosceneid",t),n.append("type",e);for(let t=0;t<r.length;t++)n.append(`file[${t}]`,r[t]);return this.post("file",n,{"Content-Type":"multipart/form-data"},p)}async addImageURLs(t,e,r){const n={photosceneid:t,type:e};for(let t=0;t<r.length;t++)n[`file[${t}]`]=r[t];return this.post("file",c.stringify(n),{"Content-Type":"application/x-www-form-urlencoded"},p)}async processPhotoScene(t){return this.post(`photoscene/${t}`,{},{"Content-Type":"application/x-www-form-urlencoded"},p)}async getPhotoSceneProgress(t){return this.get(`photoscene/${t}/progress`,{},l)}async getPhotoScene(t,e){return this.get(`photoscene/${t}?format=${e}`,{},l)}async cancelPhotoScene(t){return this.post(`photoscene/${t}/cancel`,{},{"Content-Type":"application/x-www-form-urlencoded"},p)}async deletePhotoScene(t){return this.delete(`photoscene/${t}`,{"Content-Type":"application/x-www-form-urlencoded"},p)}}e.RealityCaptureClient=b},7960:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebhooksClient=e.webhookEventScopes=e.webhookSystemEvents=e.WebhookStatus=e.WebhookEvent=e.WebhookSystem=void 0;const n=r(9494),o=["data:read"],i=["data:read","data:write"];var a,s,c;!function(t){t.Data="data",t.Derivative="derivative",t.RevitCloudWorksharing="adsk.c4r",t.FusionLifecycle="adsk.flc.production"}(a||(e.WebhookSystem=a={})),function(t){t.DataVersionAdded="dm.version.added",t.DataVersionModified="dm.version.modified",t.DataVersionDeleted="dm.version.deleted",t.DataVersionMoved="dm.version.moved",t.DataVersionCopied="dm.version.copied",t.DataFolderAdded="dm.folder.added",t.DataFolderModified="dm.folder.modified",t.DataFolderDeleted="dm.folder.deleted",t.DataFolderMoved="dm.folder.moved",t.DataFolderCopied="dm.folder.copied",t.DerivativeExtractionFinished="extraction.finished",t.DerivativeExtractionUpdated="extraction.updated",t.RevitModelPublish="model.publish",t.RevitModelSync="model.sync",t.FusionItemClone="item.clone",t.FusionItemCreate="item.create",t.FusionItemLock="item.lock",t.FusionItemRelease="item.release",t.FusionItemUnlock="item.unlock",t.FusionItemUpdate="item.update",t.FusionWorkflowTransition="workflow.transition"}(s||(e.WebhookEvent=s={})),function(t){t.Active="active",t.Inactive="inactive"}(c||(e.WebhookStatus=c={})),e.webhookSystemEvents=function(t){switch(t){case a.Data:return[s.DataFolderAdded,s.DataFolderCopied,s.DataFolderDeleted,s.DataFolderModified,s.DataFolderMoved,s.DataVersionAdded,s.DataVersionCopied,s.DataVersionDeleted,s.DataVersionModified,s.DataVersionMoved];case a.Derivative:return[s.DerivativeExtractionUpdated,s.DerivativeExtractionFinished];case a.FusionLifecycle:return[s.FusionItemClone,s.FusionItemCreate,s.FusionItemLock,s.FusionItemRelease,s.FusionItemUnlock,s.FusionItemUpdate,s.FusionWorkflowTransition];case a.RevitCloudWorksharing:return[s.RevitModelPublish,s.RevitModelSync]}},e.webhookEventScopes=function(t){switch(t){case s.DataVersionAdded:case s.DataVersionModified:case s.DataVersionDeleted:case s.DataVersionMoved:case s.DataVersionCopied:case s.DataFolderAdded:case s.DataFolderModified:case s.DataFolderDeleted:case s.DataFolderMoved:case s.DataFolderCopied:return["folder"];case s.DerivativeExtractionFinished:case s.DerivativeExtractionUpdated:return["workflow"];case s.RevitModelPublish:case s.RevitModelSync:return["folder"];case s.FusionItemClone:case s.FusionItemCreate:case s.FusionItemLock:case s.FusionItemRelease:case s.FusionItemUnlock:case s.FusionItemUpdate:return["workspace"];case s.FusionWorkflowTransition:return["workflow.transition"]}};class u extends n.ForgeClient{constructor(t,e,r){super("webhooks/v1",t,e,r)}async*_pager(t){let e=await this.get(t,{},o);for(yield e.data;e.links&&e.links.next;){const r=new URL(e.links.next).searchParams.get("pageState")||"";e=await this.get(`${t}${-1===t.indexOf("?")?"?":"&"}pageState=${r}`,{},o),yield e.data}}async _collect(t){let e=await this.get(t,{},o),r=e.data;for(;e.links&&e.links.next;){const n=new URL(e.links.next).searchParams.get("pageState")||"";e=await this.get(`${t}${-1===t.indexOf("?")?"?":"&"}pageState=${n}`,{},o),r=r.concat(e.items)}return r}async*iterateHooks(t,e){let r=`hooks?region=${this.region}`;t&&e?r=`systems/${t}/events/${e}/`+r:t&&(r=`systems/${t}/`+r);for await(const t of this._pager(r))yield t}async listHooks(t,e){let r=`hooks?region=${this.region}`;return t&&e?r=`systems/${t}/events/${e}/`+r:t&&(r=`systems/${t}/`+r),this._collect(r)}async getHookDetails(t,e,r){return await this.get(`systems/${t}/events/${e}/hooks/${r}?region=${this.region}`,{},o)}async createHook(t,e,r){const n=e?`systems/${t}/events/${e}/hooks?region=${this.region}`:`systems/${t}/hooks?region=${this.region}`,o={};await this.setAuthorization(o,i);const a=await this.axios.post(n,r,o);if(a.data.hooks)return a.data.hooks;{const t=(a.headers.location||a.headers.Location).split("/");return t[t.length-1]}}async updateHook(t,e,r,n){await this.patch(`systems/${t}/events/${e}/hooks/${r}?region=${this.region}`,n,{},i)}async deleteHook(t,e,r){await this.delete(`systems/${t}/events/${e}/hooks/${r}?region=${this.region}`,{},i)}}e.WebhooksClient=u},9282:(t,e,r)=>{"use strict";var n=r(4155),o=r(5108);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,(void 0,o=function(t,e){if("object"!==i(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(n.key),"symbol"===i(o)?o:String(o)),n)}var o}function s(t,e,r){return e&&a(t.prototype,e),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}var c,u,l=r(2136).codes,p=l.ERR_AMBIGUOUS_ARGUMENT,f=l.ERR_INVALID_ARG_TYPE,y=l.ERR_INVALID_ARG_VALUE,d=l.ERR_INVALID_RETURN_VALUE,h=l.ERR_MISSING_ARGS,g=r(5961),b=r(9539).inspect,m=r(9539).types,v=m.isPromise,w=m.isRegExp,A=r(1950)(),S=r(5624)(),E=r(1924)("RegExp.prototype.test");function O(){var t=r(9158);c=t.isDeepEqual,u=t.isDeepStrictEqual}new Map;var P=!1,R=t.exports=I,j={};function _(t){if(t.message instanceof Error)throw t.message;throw new g(t)}function x(t,e,r,n){if(!r){var o=!1;if(0===e)o=!0,n="No value argument passed to `assert.ok()`";else if(n instanceof Error)throw n;var i=new g({actual:r,expected:!0,message:n,operator:"==",stackStartFn:t});throw i.generatedMessage=o,i}}function I(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];x.apply(void 0,[I,e.length].concat(e))}R.fail=function t(e,r,i,a,s){var c,u=arguments.length;if(0===u?c="Failed":1===u?(i=e,e=void 0):(!1===P&&(P=!0,(n.emitWarning?n.emitWarning:o.warn.bind(o))("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")),2===u&&(a="!=")),i instanceof Error)throw i;var l={actual:e,expected:r,operator:void 0===a?"fail":a,stackStartFn:s||t};void 0!==i&&(l.message=i);var p=new g(l);throw c&&(p.message=c,p.generatedMessage=!0),p},R.AssertionError=g,R.ok=I,R.equal=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");e!=r&&_({actual:e,expected:r,message:n,operator:"==",stackStartFn:t})},R.notEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");e==r&&_({actual:e,expected:r,message:n,operator:"!=",stackStartFn:t})},R.deepEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===c&&O(),c(e,r)||_({actual:e,expected:r,message:n,operator:"deepEqual",stackStartFn:t})},R.notDeepEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===c&&O(),c(e,r)&&_({actual:e,expected:r,message:n,operator:"notDeepEqual",stackStartFn:t})},R.deepStrictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===c&&O(),u(e,r)||_({actual:e,expected:r,message:n,operator:"deepStrictEqual",stackStartFn:t})},R.notDeepStrictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===c&&O(),u(e,r)&&_({actual:e,expected:r,message:n,operator:"notDeepStrictEqual",stackStartFn:t})},R.strictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");S(e,r)||_({actual:e,expected:r,message:n,operator:"strictEqual",stackStartFn:t})},R.notStrictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");S(e,r)&&_({actual:e,expected:r,message:n,operator:"notStrictEqual",stackStartFn:t})};var U=s((function t(e,r,n){var o=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),r.forEach((function(t){t in e&&(void 0!==n&&"string"==typeof n[t]&&w(e[t])&&E(e[t],n[t])?o[t]=n[t]:o[t]=e[t])}))}));function T(t,e,r,n){if("function"!=typeof e){if(w(e))return E(e,t);if(2===arguments.length)throw new f("expected",["Function","RegExp"],e);if("object"!==i(t)||null===t){var o=new g({actual:t,expected:e,message:r,operator:"deepStrictEqual",stackStartFn:n});throw o.operator=n.name,o}var a=Object.keys(e);if(e instanceof Error)a.push("name","message");else if(0===a.length)throw new y("error",e,"may not be an empty object");return void 0===c&&O(),a.forEach((function(o){"string"==typeof t[o]&&w(e[o])&&E(e[o],t[o])||function(t,e,r,n,o,i){if(!(r in t)||!u(t[r],e[r])){if(!n){var a=new U(t,o),s=new U(e,o,t),c=new g({actual:a,expected:s,operator:"deepStrictEqual",stackStartFn:i});throw c.actual=t,c.expected=e,c.operator=i.name,c}_({actual:t,expected:e,message:n,operator:i.name,stackStartFn:i})}}(t,e,o,r,a,n)})),!0}return void 0!==e.prototype&&t instanceof e||!Error.isPrototypeOf(e)&&!0===e.call({},t)}function F(t){if("function"!=typeof t)throw new f("fn","Function",t);try{t()}catch(t){return t}return j}function k(t){return v(t)||null!==t&&"object"===i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function C(t){return Promise.resolve().then((function(){var e;if("function"==typeof t){if(!k(e=t()))throw new d("instance of Promise","promise