@itwin/access-control-client 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MIT License
2
2
 
3
- Copyright © 2022 Bentley Systems, Incorporated. All rights reserved.
3
+ Copyright © 2022-2023 Bentley Systems, Incorporated. All rights reserved.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAuBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAenH;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
1
+ {"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAuBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAgBnH;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
@@ -55,6 +55,7 @@ class BaseClient {
55
55
  headers: {
56
56
  "authorization": accessTokenString,
57
57
  "content-type": "application/json",
58
+ "accept": "application/vnd.bentley.itwin-platform.v1+json",
58
59
  },
59
60
  validateStatus(status) {
60
61
  return status < 500; // Resolve only if the status code is less than 500
@@ -1 +1 @@
1
- {"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":";;;AAUA,iCAA0B;AAG1B,MAAa,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAG,GAAG,KAAK,SAAS,EAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;aAAM;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;aAC9B;SACF;IACH,CAAC;IAED;;;;;QAKI;IACM,KAAK,CAAC,qBAAqB,CACnC,WAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAU,EACV,QAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,cAAc,CAAC,CAAC;YAE7C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBAClH,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACJ,6DAA6D;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU;QAC5F,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,mDAAmD;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;QAII;IACM,cAAc,CAAC,QAA+B;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,WAAW,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,WAAW,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1C;QAED,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA3FD,gCA2FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { Method } from \"axios\";\r\nimport type { AxiosRequestConfig } from \"axios\";\r\nimport axios from \"axios\";\r\nimport type { AccessControlAPIResponse, AccessControlQueryArg} from \"../accessControlTypes\";\r\n\r\nexport class BaseClient {\r\n protected _baseUrl: string = \"https://api.bentley.com/accesscontrol/itwins\";\r\n\r\n public constructor(url?: string) {\r\n if(url !== undefined){\r\n this._baseUrl = url;\r\n } else {\r\n const urlPrefix = process.env.IMJS_URL_PREFIX;\r\n if (urlPrefix) {\r\n const baseUrl = new URL(this._baseUrl);\r\n baseUrl.hostname = urlPrefix + baseUrl.hostname;\r\n this._baseUrl = baseUrl.href;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sends a basic API request\r\n * @param accessTokenString The client access token string\r\n * @param method The method type of the request (ex. GET, POST, DELETE, etc)\r\n * @param url The url of the request\r\n */\r\n protected async sendGenericAPIRequest(\r\n accessToken: AccessToken,\r\n method: Method,\r\n url: string,\r\n data?: any,\r\n property?: string\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data);\r\n\r\n try {\r\n const response = await axios(requestOptions);\r\n\r\n return {\r\n status: response.status,\r\n data: response.data.error || response.data === \"\" ? undefined : property ? response.data[property] : response.data,\r\n error: response.data.error,\r\n };\r\n } catch (err) {\r\n return {\r\n status: 500,\r\n error: {\r\n code: \"InternalServerError\",\r\n message:\r\n \"An internal exception happened while calling iTwins Service\",\r\n },\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Build the request methods, headers, and other options\r\n * @param accessTokenString The client access token string\r\n */\r\n protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any): AxiosRequestConfig {\r\n return {\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n \"authorization\": accessTokenString,\r\n \"content-type\": \"application/json\",\r\n },\r\n validateStatus(status) {\r\n return status < 500; // Resolve only if the status code is less than 500\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Build a query to be appended to a URL\r\n * @param queryArg Object container queryable properties\r\n * @returns query string with AccessControlQueryArg applied, which should be appended to a url\r\n */\r\n protected getQueryString(queryArg: AccessControlQueryArg): string {\r\n let queryString = \"\";\r\n\r\n if (queryArg.top) {\r\n queryString += `&$top=${queryArg.top}`;\r\n }\r\n\r\n if (queryArg.skip) {\r\n queryString += `&$skip=${queryArg.skip}`;\r\n }\r\n\r\n // trim & from start of string\r\n queryString.replace(/^&+/, \"\");\r\n\r\n return queryString;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":";;;AAUA,iCAA0B;AAG1B,MAAa,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAG,GAAG,KAAK,SAAS,EAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;aAAM;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;aAC9B;SACF;IACH,CAAC;IAED;;;;;QAKI;IACM,KAAK,CAAC,qBAAqB,CACnC,WAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAU,EACV,QAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,cAAc,CAAC,CAAC;YAE7C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBAClH,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACJ,6DAA6D;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU;QAC5F,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,gDAAgD;aAC3D;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,mDAAmD;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;QAII;IACM,cAAc,CAAC,QAA+B;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,WAAW,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,WAAW,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1C;QAED,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA5FD,gCA4FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { Method } from \"axios\";\r\nimport type { AxiosRequestConfig } from \"axios\";\r\nimport axios from \"axios\";\r\nimport type { AccessControlAPIResponse, AccessControlQueryArg} from \"../accessControlTypes\";\r\n\r\nexport class BaseClient {\r\n protected _baseUrl: string = \"https://api.bentley.com/accesscontrol/itwins\";\r\n\r\n public constructor(url?: string) {\r\n if(url !== undefined){\r\n this._baseUrl = url;\r\n } else {\r\n const urlPrefix = process.env.IMJS_URL_PREFIX;\r\n if (urlPrefix) {\r\n const baseUrl = new URL(this._baseUrl);\r\n baseUrl.hostname = urlPrefix + baseUrl.hostname;\r\n this._baseUrl = baseUrl.href;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sends a basic API request\r\n * @param accessTokenString The client access token string\r\n * @param method The method type of the request (ex. GET, POST, DELETE, etc)\r\n * @param url The url of the request\r\n */\r\n protected async sendGenericAPIRequest(\r\n accessToken: AccessToken,\r\n method: Method,\r\n url: string,\r\n data?: any,\r\n property?: string\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data);\r\n\r\n try {\r\n const response = await axios(requestOptions);\r\n\r\n return {\r\n status: response.status,\r\n data: response.data.error || response.data === \"\" ? undefined : property ? response.data[property] : response.data,\r\n error: response.data.error,\r\n };\r\n } catch (err) {\r\n return {\r\n status: 500,\r\n error: {\r\n code: \"InternalServerError\",\r\n message:\r\n \"An internal exception happened while calling iTwins Service\",\r\n },\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Build the request methods, headers, and other options\r\n * @param accessTokenString The client access token string\r\n */\r\n protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any): AxiosRequestConfig {\r\n return {\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n \"authorization\": accessTokenString,\r\n \"content-type\": \"application/json\",\r\n \"accept\": \"application/vnd.bentley.itwin-platform.v1+json\",\r\n },\r\n validateStatus(status) {\r\n return status < 500; // Resolve only if the status code is less than 500\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Build a query to be appended to a URL\r\n * @param queryArg Object container queryable properties\r\n * @returns query string with AccessControlQueryArg applied, which should be appended to a url\r\n */\r\n protected getQueryString(queryArg: AccessControlQueryArg): string {\r\n let queryString = \"\";\r\n\r\n if (queryArg.top) {\r\n queryString += `&$top=${queryArg.top}`;\r\n }\r\n\r\n if (queryArg.skip) {\r\n queryString += `&$skip=${queryArg.skip}`;\r\n }\r\n\r\n // trim & from start of string\r\n queryString.replace(/^&+/, \"\");\r\n\r\n return queryString;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAuBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAenH;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
1
+ {"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAuBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,kBAAkB;IAgBnH;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
@@ -52,6 +52,7 @@ export class BaseClient {
52
52
  headers: {
53
53
  "authorization": accessTokenString,
54
54
  "content-type": "application/json",
55
+ "accept": "application/vnd.bentley.itwin-platform.v1+json",
55
56
  },
56
57
  validateStatus(status) {
57
58
  return status < 500; // Resolve only if the status code is less than 500
@@ -1 +1 @@
1
- {"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAG,GAAG,KAAK,SAAS,EAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;aAAM;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;aAC9B;SACF;IACH,CAAC;IAED;;;;;QAKI;IACM,KAAK,CAAC,qBAAqB,CACnC,WAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAU,EACV,QAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YAE7C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBAClH,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACJ,6DAA6D;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU;QAC5F,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,mDAAmD;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;QAII;IACM,cAAc,CAAC,QAA+B;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,WAAW,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,WAAW,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1C;QAED,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { Method } from \"axios\";\r\nimport type { AxiosRequestConfig } from \"axios\";\r\nimport axios from \"axios\";\r\nimport type { AccessControlAPIResponse, AccessControlQueryArg} from \"../accessControlTypes\";\r\n\r\nexport class BaseClient {\r\n protected _baseUrl: string = \"https://api.bentley.com/accesscontrol/itwins\";\r\n\r\n public constructor(url?: string) {\r\n if(url !== undefined){\r\n this._baseUrl = url;\r\n } else {\r\n const urlPrefix = process.env.IMJS_URL_PREFIX;\r\n if (urlPrefix) {\r\n const baseUrl = new URL(this._baseUrl);\r\n baseUrl.hostname = urlPrefix + baseUrl.hostname;\r\n this._baseUrl = baseUrl.href;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sends a basic API request\r\n * @param accessTokenString The client access token string\r\n * @param method The method type of the request (ex. GET, POST, DELETE, etc)\r\n * @param url The url of the request\r\n */\r\n protected async sendGenericAPIRequest(\r\n accessToken: AccessToken,\r\n method: Method,\r\n url: string,\r\n data?: any,\r\n property?: string\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data);\r\n\r\n try {\r\n const response = await axios(requestOptions);\r\n\r\n return {\r\n status: response.status,\r\n data: response.data.error || response.data === \"\" ? undefined : property ? response.data[property] : response.data,\r\n error: response.data.error,\r\n };\r\n } catch (err) {\r\n return {\r\n status: 500,\r\n error: {\r\n code: \"InternalServerError\",\r\n message:\r\n \"An internal exception happened while calling iTwins Service\",\r\n },\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Build the request methods, headers, and other options\r\n * @param accessTokenString The client access token string\r\n */\r\n protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any): AxiosRequestConfig {\r\n return {\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n \"authorization\": accessTokenString,\r\n \"content-type\": \"application/json\",\r\n },\r\n validateStatus(status) {\r\n return status < 500; // Resolve only if the status code is less than 500\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Build a query to be appended to a URL\r\n * @param queryArg Object container queryable properties\r\n * @returns query string with AccessControlQueryArg applied, which should be appended to a url\r\n */\r\n protected getQueryString(queryArg: AccessControlQueryArg): string {\r\n let queryString = \"\";\r\n\r\n if (queryArg.top) {\r\n queryString += `&$top=${queryArg.top}`;\r\n }\r\n\r\n if (queryArg.skip) {\r\n queryString += `&$skip=${queryArg.skip}`;\r\n }\r\n\r\n // trim & from start of string\r\n queryString.replace(/^&+/, \"\");\r\n\r\n return queryString;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAG,GAAG,KAAK,SAAS,EAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;aAAM;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;aAC9B;SACF;IACH,CAAC;IAED;;;;;QAKI;IACM,KAAK,CAAC,qBAAqB,CACnC,WAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAU,EACV,QAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YAE7C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBAClH,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACJ,6DAA6D;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU;QAC5F,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,gDAAgD;aAC3D;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,mDAAmD;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;QAII;IACM,cAAc,CAAC,QAA+B;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,WAAW,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,WAAW,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1C;QAED,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { Method } from \"axios\";\r\nimport type { AxiosRequestConfig } from \"axios\";\r\nimport axios from \"axios\";\r\nimport type { AccessControlAPIResponse, AccessControlQueryArg} from \"../accessControlTypes\";\r\n\r\nexport class BaseClient {\r\n protected _baseUrl: string = \"https://api.bentley.com/accesscontrol/itwins\";\r\n\r\n public constructor(url?: string) {\r\n if(url !== undefined){\r\n this._baseUrl = url;\r\n } else {\r\n const urlPrefix = process.env.IMJS_URL_PREFIX;\r\n if (urlPrefix) {\r\n const baseUrl = new URL(this._baseUrl);\r\n baseUrl.hostname = urlPrefix + baseUrl.hostname;\r\n this._baseUrl = baseUrl.href;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sends a basic API request\r\n * @param accessTokenString The client access token string\r\n * @param method The method type of the request (ex. GET, POST, DELETE, etc)\r\n * @param url The url of the request\r\n */\r\n protected async sendGenericAPIRequest(\r\n accessToken: AccessToken,\r\n method: Method,\r\n url: string,\r\n data?: any,\r\n property?: string\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data);\r\n\r\n try {\r\n const response = await axios(requestOptions);\r\n\r\n return {\r\n status: response.status,\r\n data: response.data.error || response.data === \"\" ? undefined : property ? response.data[property] : response.data,\r\n error: response.data.error,\r\n };\r\n } catch (err) {\r\n return {\r\n status: 500,\r\n error: {\r\n code: \"InternalServerError\",\r\n message:\r\n \"An internal exception happened while calling iTwins Service\",\r\n },\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Build the request methods, headers, and other options\r\n * @param accessTokenString The client access token string\r\n */\r\n protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any): AxiosRequestConfig {\r\n return {\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n \"authorization\": accessTokenString,\r\n \"content-type\": \"application/json\",\r\n \"accept\": \"application/vnd.bentley.itwin-platform.v1+json\",\r\n },\r\n validateStatus(status) {\r\n return status < 500; // Resolve only if the status code is less than 500\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Build a query to be appended to a URL\r\n * @param queryArg Object container queryable properties\r\n * @returns query string with AccessControlQueryArg applied, which should be appended to a url\r\n */\r\n protected getQueryString(queryArg: AccessControlQueryArg): string {\r\n let queryString = \"\";\r\n\r\n if (queryArg.top) {\r\n queryString += `&$top=${queryArg.top}`;\r\n }\r\n\r\n if (queryArg.skip) {\r\n queryString += `&$skip=${queryArg.skip}`;\r\n }\r\n\r\n // trim & from start of string\r\n queryString.replace(/^&+/, \"\");\r\n\r\n return queryString;\r\n }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/access-control-client",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Access control client for the iTwin platform",
5
5
  "main": "lib/cjs/access-control-client.js",
6
6
  "module": "lib/esm/access-control-client.js",