@alfresco/js-api 9.4.0-17644123790 → 9.4.0-17645733517

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.
Files changed (60) hide show
  1. package/esm2015/package.json +2 -2
  2. package/esm2015/src/alfrescoApi.js +14 -14
  3. package/esm2015/src/alfrescoApi.js.map +1 -1
  4. package/esm2015/src/alfrescoApiClient.js +14 -28
  5. package/esm2015/src/alfrescoApiClient.js.map +1 -1
  6. package/esm2015/src/api/content-custom-api/api/upload.api.js +1 -52
  7. package/esm2015/src/api/content-custom-api/api/upload.api.js.map +1 -1
  8. package/esm2015/src/api-clients/http-client.interface.js.map +1 -1
  9. package/esm2015/src/authentication/contentAuth.js +7 -4
  10. package/esm2015/src/authentication/contentAuth.js.map +1 -1
  11. package/esm2015/src/authentication/oauth2Auth.js +4 -3
  12. package/esm2015/src/authentication/oauth2Auth.js.map +1 -1
  13. package/esm2015/src/authentication/processAuth.js +5 -3
  14. package/esm2015/src/authentication/processAuth.js.map +1 -1
  15. package/esm2015/src/superagentHttpClient.js +264 -0
  16. package/esm2015/src/superagentHttpClient.js.map +1 -0
  17. package/esm5/package.json +2 -2
  18. package/esm5/src/alfrescoApi.js +14 -14
  19. package/esm5/src/alfrescoApi.js.map +1 -1
  20. package/esm5/src/alfrescoApiClient.js +14 -28
  21. package/esm5/src/alfrescoApiClient.js.map +1 -1
  22. package/esm5/src/api/content-custom-api/api/upload.api.js +1 -52
  23. package/esm5/src/api/content-custom-api/api/upload.api.js.map +1 -1
  24. package/esm5/src/api-clients/http-client.interface.js.map +1 -1
  25. package/esm5/src/authentication/contentAuth.js +7 -4
  26. package/esm5/src/authentication/contentAuth.js.map +1 -1
  27. package/esm5/src/authentication/oauth2Auth.js +4 -3
  28. package/esm5/src/authentication/oauth2Auth.js.map +1 -1
  29. package/esm5/src/authentication/processAuth.js +5 -3
  30. package/esm5/src/authentication/processAuth.js.map +1 -1
  31. package/esm5/src/superagentHttpClient.js +264 -0
  32. package/esm5/src/superagentHttpClient.js.map +1 -0
  33. package/package.json +2 -2
  34. package/src/alfrescoApi.js +15 -14
  35. package/src/alfrescoApi.js.map +1 -1
  36. package/src/alfrescoApiClient.js +15 -28
  37. package/src/alfrescoApiClient.js.map +1 -1
  38. package/src/api/content-custom-api/api/upload.api.js +1 -52
  39. package/src/api/content-custom-api/api/upload.api.js.map +1 -1
  40. package/src/api-clients/http-client.interface.js.map +1 -1
  41. package/src/authentication/contentAuth.js +8 -4
  42. package/src/authentication/contentAuth.js.map +1 -1
  43. package/src/authentication/oauth2Auth.js +4 -3
  44. package/src/authentication/oauth2Auth.js.map +1 -1
  45. package/src/authentication/processAuth.js +6 -3
  46. package/src/authentication/processAuth.js.map +1 -1
  47. package/src/superagentHttpClient.js +269 -0
  48. package/src/superagentHttpClient.js.map +1 -0
  49. package/typings/package.json +2 -2
  50. package/typings/src/alfrescoApi.d.ts +10 -2
  51. package/typings/src/alfrescoApiClient.d.ts +11 -14
  52. package/typings/src/api-clients/http-client.interface.d.ts +3 -10
  53. package/typings/src/authentication/oauth2Auth.d.ts +1 -1
  54. package/typings/src/{axiosHttpClient.d.ts → superagentHttpClient.d.ts} +5 -5
  55. package/esm2015/src/axiosHttpClient.js +0 -283
  56. package/esm2015/src/axiosHttpClient.js.map +0 -1
  57. package/esm5/src/axiosHttpClient.js +0 -283
  58. package/esm5/src/axiosHttpClient.js.map +0 -1
  59. package/src/axiosHttpClient.js +0 -287
  60. package/src/axiosHttpClient.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfresco/js-api",
3
- "version": "9.4.0-17644123790",
3
+ "version": "9.4.0-17645733517",
4
4
  "license": "Apache-2.0",
5
5
  "description": "JavaScript client library for the Alfresco REST API",
6
6
  "author": "Hyland Software, Inc. and its affiliates",
@@ -15,7 +15,7 @@
15
15
  "url": "https://github.com/Alfresco/alfresco-ng2-components/issues"
16
16
  },
17
17
  "dependencies": {
18
- "eventemitter3": "^5.0.1",
18
+ "event-emitter": "^0.3.5",
19
19
  "superagent": "^9.0.1",
20
20
  "tslib": "^2.6.1"
21
21
  },
@@ -14,7 +14,7 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { EventEmitter } from 'eventemitter3';
17
+ import ee from 'event-emitter';
18
18
  import { ContentAuth } from './authentication/contentAuth';
19
19
  import { ProcessAuth } from './authentication/processAuth';
20
20
  import { Oauth2Auth } from './authentication/oauth2Auth';
@@ -22,12 +22,12 @@ import { ContentClient } from './contentClient';
22
22
  import { ProcessClient } from './processClient';
23
23
  import { Storage } from './storage';
24
24
  import { AlfrescoApiConfig } from './alfrescoApiConfig';
25
- import { AlfrescoApiClient } from './alfrescoApiClient';
26
- export class AlfrescoApi extends AlfrescoApiClient {
25
+ export class AlfrescoApi {
27
26
  constructor(config, httpClient) {
28
- super(undefined, httpClient);
27
+ this.httpClient = httpClient;
29
28
  this.__type = 'legacy-client';
30
29
  this.bufferEvents = [];
30
+ ee(this);
31
31
  if (config) {
32
32
  this.setConfig(config);
33
33
  }
@@ -314,22 +314,22 @@ export class AlfrescoApi extends AlfrescoApiClient {
314
314
  loginBPMECM(username, password) {
315
315
  const contentPromise = this.contentAuth.login(username, password);
316
316
  const processPromise = this.processAuth.login(username, password);
317
- const eventEmitter = new EventEmitter();
318
317
  const promise = new Promise((resolve, reject) => {
319
318
  Promise.all([contentPromise, processPromise]).then((data) => {
320
- eventEmitter.emit('success');
319
+ promise.emit('success');
321
320
  resolve(data);
322
321
  }, (error) => {
323
322
  this.contentAuth.invalidateSession();
324
323
  this.processAuth.invalidateSession();
325
324
  if (error.status === 401) {
326
- eventEmitter.emit('unauthorized');
325
+ promise.emit('unauthorized');
327
326
  }
328
- eventEmitter.emit('error');
327
+ promise.emit('error');
329
328
  reject(error);
330
329
  });
331
330
  });
332
- return this.addPromiseListeners(promise, eventEmitter);
331
+ ee(promise);
332
+ return promise;
333
333
  }
334
334
  logout() {
335
335
  this.username = null;
@@ -352,21 +352,21 @@ export class AlfrescoApi extends AlfrescoApiClient {
352
352
  _logoutBPMECM() {
353
353
  const contentPromise = this.contentAuth.logout();
354
354
  const processPromise = this.processAuth.logout();
355
- const eventEmitter = new EventEmitter();
356
355
  const promise = new Promise((resolve, reject) => {
357
356
  Promise.all([contentPromise, processPromise]).then(() => {
358
357
  this.config.ticket = undefined;
359
- eventEmitter.emit('logout');
358
+ promise.emit('logout');
360
359
  resolve();
361
360
  }, (error) => {
362
361
  if (error.status === 401) {
363
- eventEmitter.emit('unauthorized');
362
+ promise.emit('unauthorized');
364
363
  }
365
- eventEmitter.emit('error');
364
+ promise.emit('error');
366
365
  reject(error);
367
366
  });
368
367
  });
369
- return this.addPromiseListeners(promise, eventEmitter);
368
+ ee(promise);
369
+ return promise;
370
370
  }
371
371
  isLoggedIn() {
372
372
  if (this.isOauthConfiguration()) {
@@ -1 +1 @@
1
- {"version":3,"file":"alfrescoApi.js","sourceRoot":"","sources":["alfrescoApi.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EventEmitter } from 'eventemitter3';\nimport { ContentAuth } from './authentication/contentAuth';\nimport { ProcessAuth } from './authentication/processAuth';\nimport { Oauth2Auth } from './authentication/oauth2Auth';\nimport { ContentClient } from './contentClient';\nimport { ProcessClient } from './processClient';\nimport { Storage } from './storage';\nimport { AlfrescoApiConfig } from './alfrescoApiConfig';\nimport { Authentication } from './authentication/authentication';\nimport { AlfrescoApiType } from './to-deprecate/alfresco-api-type';\nimport { HttpClient } from './api-clients/http-client.interface';\nimport { AlfrescoApiClient, AlfrescoApiClientPromise } from './alfrescoApiClient';\n\ntype EventEmitterInstance = InstanceType<typeof EventEmitter>;\n\nexport class AlfrescoApi extends AlfrescoApiClient implements AlfrescoApiType {\n __type = 'legacy-client';\n contentClient: ContentClient;\n contentPrivateClient: ContentClient;\n processClient: ProcessClient;\n searchClient: ContentClient;\n discoveryClient: ContentClient;\n gsClient: ContentClient;\n authClient: ContentClient;\n hxiConnectorClient: ContentClient;\n oauth2Auth: Oauth2Auth;\n processAuth: ProcessAuth;\n contentAuth: ContentAuth;\n\n bufferEvents: string[] = [];\n username: string;\n\n constructor(config?: AlfrescoApiConfig, httpClient?: HttpClient) {\n super(undefined, httpClient);\n\n if (config) {\n this.setConfig(config);\n }\n }\n\n setConfig(config: AlfrescoApiConfig) {\n if (!config) {\n config = {};\n }\n\n this.storage = Storage.getInstance();\n this.storage.setDomainPrefix(config.domainPrefix);\n\n this.initConfig(config);\n this.validateTicket(config);\n }\n\n private initConfig(config: AlfrescoApiConfig) {\n this.config = new AlfrescoApiConfig(config);\n\n this.clientsFactory();\n\n this.errorListeners();\n this.ticketMismatchListeners();\n if (this.config.oauthInit) {\n this.initAuth(config);\n\n if (this.isLoggedIn()) {\n this.emitBuffer('logged-in');\n }\n }\n }\n\n private validateTicket(config: AlfrescoApiConfig) {\n if (config.ticketEcm && !this.isOauthConfiguration()) {\n if (!this.contentAuth) {\n this.contentAuth = new ContentAuth(this.config, this, this.httpClient);\n }\n this.contentAuth\n .validateTicket()\n .then((ticket) => {\n config.ticketEcm = ticket;\n })\n .catch((error) => {\n if (error.status === 401) {\n config.ticketEcm = null;\n this.initConfig(config);\n this.emitBuffer('ticket_invalidated');\n }\n });\n }\n }\n\n private initAuth(config: AlfrescoApiConfig): void {\n if (this.isOauthConfiguration()) {\n if (!this.oauth2Auth) {\n this.oauth2Auth = new Oauth2Auth(this.config, this, this.httpClient);\n } else {\n this.oauth2Auth.setConfig(this.config, this);\n }\n\n this.oauth2Auth?.on('logged-in', () => {\n this.emitBuffer('logged-in');\n });\n\n this.setAuthenticationClientECMBPM(this.oauth2Auth.getAuthentication(), this.oauth2Auth.getAuthentication());\n } else {\n if (!this.processAuth) {\n this.processAuth = new ProcessAuth(this.config, this.httpClient);\n } else {\n this.processAuth.setConfig(this.config);\n }\n\n this.processAuth?.on('logged-in', () => {\n this.emitBuffer('logged-in');\n });\n\n this.processAuth?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n\n if (!this.contentAuth) {\n this.contentAuth = new ContentAuth(this.config, this, this.httpClient);\n } else {\n this.contentAuth.setConfig(config);\n }\n\n this.contentAuth?.on('logged-in', () => {\n this.emitBuffer('logged-in');\n });\n\n this.contentAuth?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n\n this.setAuthenticationClientECMBPM(this.contentAuth.getAuthentication(), this.processAuth.getAuthentication());\n }\n }\n\n private clientsFactory() {\n if (!this.contentPrivateClient) {\n this.contentPrivateClient = new ContentClient(this.config, `/api/${this.config.tenant}/private/alfresco/versions/1`, this.httpClient);\n } else {\n this.contentPrivateClient.setConfig(this.config, `/api/${this.config.tenant}/private/alfresco/versions/1`);\n }\n\n if (!this.contentClient) {\n this.contentClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/alfresco/versions/1`, this.httpClient);\n } else {\n this.contentClient.setConfig(this.config, `/api/${this.config.tenant}/public/alfresco/versions/1`);\n }\n\n if (!this.authClient) {\n this.authClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/authentication/versions/1`, this.httpClient);\n } else {\n this.authClient.setConfig(this.config, `/api/${this.config.tenant}/public/authentication/versions/1`);\n }\n\n if (!this.searchClient) {\n this.searchClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/search/versions/1`, this.httpClient);\n } else {\n this.searchClient.setConfig(this.config, `/api/${this.config.tenant}/public/search/versions/1`);\n }\n\n if (!this.discoveryClient) {\n this.discoveryClient = new ContentClient(this.config, `/api`, this.httpClient);\n } else {\n this.discoveryClient.setConfig(this.config, `/api`);\n }\n\n if (!this.gsClient) {\n this.gsClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/gs/versions/1`, this.httpClient);\n } else {\n this.gsClient.setConfig(this.config, `/api/${this.config.tenant}/public/gs/versions/1`);\n }\n\n if (!this.processClient) {\n this.processClient = new ProcessClient(this.config, this.httpClient);\n } else {\n this.processClient.setConfig(this.config);\n }\n\n if (!this.hxiConnectorClient) {\n this.hxiConnectorClient = new ContentClient(this.config, `/api/${this.config.tenant}/private/hxi/versions/1`, this.httpClient);\n } else {\n this.hxiConnectorClient.setConfig(this.config, `/api/${this.config.tenant}/private/hxi/versions/1`);\n }\n }\n\n /**@private? */\n errorListeners() {\n this.contentClient.off('error', () => {});\n this.authClient.off('error', () => {});\n this.contentPrivateClient.off('error', () => {});\n this.processClient.off('error', () => {});\n this.searchClient.off('error', () => {});\n this.discoveryClient.off('error', () => {});\n this.gsClient.off('error', () => {});\n this.hxiConnectorClient.off('error', () => {});\n\n this.contentClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.authClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.contentPrivateClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.processClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.searchClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.discoveryClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.gsClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.hxiConnectorClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n }\n\n ticketMismatchListeners() {\n this.contentClient?.off('ticket_mismatch', () => {});\n this.processClient?.off('ticket_mismatch', () => {});\n\n this.contentClient?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n\n this.processClient?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n }\n\n /**@private? */\n errorHandler(error: { status?: number }) {\n if (this.config.oauthInit && error.status === 401) {\n this.invalidateSession();\n }\n\n this.emitBuffer('error', error);\n }\n\n ticketMismatchHandler(error: { newTicket?: string }) {\n if (error.newTicket) {\n this.config.ticketEcm = error.newTicket;\n this.initConfig(this.config);\n }\n\n this.emitBuffer('ticket_mismatch', error);\n }\n\n changeWithCredentialsConfig(withCredentials: boolean) {\n this.config.withCredentials = withCredentials;\n }\n\n changeCsrfConfig(disableCsrf: boolean) {\n this.config.disableCsrf = disableCsrf;\n this.processAuth.changeCsrfConfig(disableCsrf);\n }\n\n changeEcmHost(hostEcm: string) {\n this.config.hostEcm = hostEcm;\n this.contentAuth.changeHost();\n this.contentClient.changeHost();\n this.authClient.changeHost();\n }\n\n changeBpmHost(hostBpm: string) {\n this.config.hostBpm = hostBpm;\n this.processAuth.changeHost();\n this.processClient.changeHost();\n }\n\n /**\n * login Alfresco API\n * @param username Username to login\n * @param password Password to login\n * @returns A promise that returns {new authentication ticket} if resolved and {error} if rejected.\n */\n login(username: string, password: string): Promise<any> {\n if (!this.isCredentialValid(username) || !this.isCredentialValid(password)) {\n return Promise.reject(new Error('missing username or password'));\n }\n\n if (username) {\n username = username.trim();\n }\n\n this.username = username;\n\n if (this.isOauthConfiguration()) {\n const promise = this.oauth2Auth.login(username, password);\n promise.then((accessToken) => {\n this.config.accessToken = accessToken;\n });\n return promise;\n } else {\n if (this.isBpmConfiguration()) {\n const promise = this.processAuth.login(username, password);\n promise.then((ticketBpm) => {\n this.config.ticketBpm = ticketBpm;\n });\n return promise;\n } else if (this.isEcmConfiguration()) {\n const promise = this.contentAuth.login(username, password);\n promise.then((ticketEcm) => {\n this.setAuthenticationClientECMBPM(this.contentAuth.getAuthentication(), null);\n this.config.ticketEcm = ticketEcm;\n });\n return promise;\n } else if (this.isEcmBpmConfiguration()) {\n const contentProcessPromise = this.loginBPMECM(username, password);\n\n contentProcessPromise.then((data) => {\n this.config.ticketEcm = data[0];\n this.config.ticketBpm = data[1];\n });\n\n return contentProcessPromise;\n } else {\n return Promise.reject(new Error('Unknown configuration'));\n }\n }\n }\n\n isCredentialValid(credential: string): boolean {\n return credential !== undefined && credential !== null && credential !== '';\n }\n\n implicitLogin(): Promise<any> {\n if (!this.isOauthConfiguration()) {\n return Promise.reject(new Error('Missing the required oauth2 configuration'));\n }\n\n return new Promise(() => {\n this.oauth2Auth.implicitLogin();\n });\n }\n\n setAuthenticationClientECMBPM(authECM: Authentication, authBPM: Authentication) {\n this.contentClient.setAuthentications(authECM);\n this.authClient.setAuthentications(authECM);\n this.searchClient.setAuthentications(authECM);\n this.contentPrivateClient.setAuthentications(authECM);\n this.processClient.setAuthentications(authBPM);\n this.searchClient.setAuthentications(authECM);\n this.discoveryClient.setAuthentications(authECM);\n this.gsClient.setAuthentications(authECM);\n this.hxiConnectorClient.setAuthentications(authECM);\n }\n\n /**\n * login Tickets\n * @param ticketEcm alfresco ticket\n * @param ticketBpm alfresco ticket\n */\n loginTicket(ticketEcm: string, ticketBpm: string): Promise<string> {\n this.config.ticketEcm = ticketEcm;\n this.config.ticketBpm = ticketBpm;\n\n return this.contentAuth.validateTicket();\n }\n\n private loginBPMECM(username: string, password: string): AlfrescoApiClientPromise<[string, string]> {\n const contentPromise = this.contentAuth.login(username, password);\n const processPromise = this.processAuth.login(username, password);\n\n const eventEmitter: EventEmitterInstance = new EventEmitter();\n const promise = new Promise<[string, string]>((resolve, reject) => {\n Promise.all([contentPromise, processPromise]).then(\n (data) => {\n eventEmitter.emit('success');\n resolve(data);\n },\n (error) => {\n this.contentAuth.invalidateSession();\n this.processAuth.invalidateSession();\n\n if (error.status === 401) {\n eventEmitter.emit('unauthorized');\n }\n eventEmitter.emit('error');\n reject(error);\n }\n );\n });\n\n return this.addPromiseListeners(promise, eventEmitter);\n }\n\n /**\n * logout Alfresco API\n */\n logout(): Promise<void> {\n this.username = null;\n\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.logOut();\n }\n\n if (this.isBpmConfiguration()) {\n return this.processAuth.logout();\n }\n\n if (this.isEcmConfiguration()) {\n const contentPromise = this.contentAuth.logout();\n contentPromise.then(\n (): void => (this.config.ticket = undefined),\n (): void => {}\n );\n return contentPromise;\n }\n\n if (this.isEcmBpmConfiguration()) {\n return this._logoutBPMECM();\n }\n\n return Promise.resolve();\n }\n\n private _logoutBPMECM(): AlfrescoApiClientPromise<void> {\n const contentPromise = this.contentAuth.logout();\n const processPromise = this.processAuth.logout();\n\n const eventEmitter: EventEmitterInstance = new EventEmitter();\n const promise = new Promise<void>((resolve, reject) => {\n Promise.all([contentPromise, processPromise]).then(\n () => {\n this.config.ticket = undefined;\n eventEmitter.emit('logout');\n resolve();\n },\n (error) => {\n if (error.status === 401) {\n eventEmitter.emit('unauthorized');\n }\n eventEmitter.emit('error');\n reject(error);\n }\n );\n });\n\n return this.addPromiseListeners(promise, eventEmitter);\n }\n\n /**\n * If the client is logged in return true\n */\n isLoggedIn(): boolean {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isLoggedIn();\n }\n\n if (this.isBpmConfiguration()) {\n return this.processAuth.isLoggedIn();\n }\n\n if (this.isEcmConfiguration()) {\n return this.config.withCredentials ? true : this.contentAuth.isLoggedIn();\n }\n\n if (this.isEcmBpmConfiguration()) {\n return this.config.withCredentials ? true : this.contentAuth.isLoggedIn() && this.processAuth.isLoggedIn();\n }\n\n return false;\n }\n\n isBpmLoggedIn(): boolean {\n if (this.isBpmConfiguration() || this.isEcmBpmConfiguration()) {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isLoggedIn();\n } else {\n return this.processAuth.isLoggedIn();\n }\n }\n return false;\n }\n\n isEcmLoggedIn(): boolean {\n if (this.isEcmConfiguration() || this.isEcmBpmConfiguration()) {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isLoggedIn();\n } else {\n return this.config.withCredentials ? true : this.contentAuth.isLoggedIn();\n }\n }\n return false;\n }\n\n getBpmUsername(): string {\n if (this.isOauthConfiguration()) {\n return this.username || this.oauth2Auth.storage.getItem('USERNAME');\n } else {\n return this.username || this.processAuth.storage.getItem('APS_USERNAME');\n }\n }\n\n getEcmUsername(): string {\n if (this.isOauthConfiguration()) {\n return this.username || this.oauth2Auth.storage.getItem('USERNAME');\n } else {\n return this.username || this.contentAuth.storage.getItem('ACS_USERNAME');\n }\n }\n\n /**\n * refresh token\n */\n refreshToken(): Promise<any> {\n if (!this.isOauthConfiguration()) {\n return Promise.reject(new Error('Missing the required oauth2 configuration'));\n }\n\n if (this.config.oauth2.implicitFlow) {\n return Promise.reject(new Error('Manual refresh token not possible in implicit flow'));\n }\n\n return this.oauth2Auth.refreshToken();\n }\n\n getTicketAuth(): string {\n return this.oauth2Auth?.getToken();\n }\n\n /**\n * Set the current Ticket\n * @param ticketEcm ecm ticket\n * @param ticketBpm bpm ticket\n */\n setTicket(ticketEcm: string, ticketBpm: string) {\n if (this.contentAuth) {\n this.contentAuth.setTicket(ticketEcm);\n }\n if (this.processAuth) {\n this.processAuth.setTicket(ticketBpm);\n }\n }\n\n /**\n * invalidate the current session\n */\n invalidateSession() {\n if (this.oauth2Auth) {\n this.oauth2Auth.invalidateSession();\n } else {\n this.contentAuth.invalidateSession();\n this.processAuth.invalidateSession();\n }\n }\n\n /**\n * Get the current Ticket for the Bpm\n */\n getTicketBpm(): string {\n return this.processAuth?.getTicket();\n }\n\n /**\n * Get the current Ticket for the Ecm\n */\n getTicketEcm(): string {\n return this.contentAuth?.getTicket();\n }\n\n /**\n * Get the current Ticket for the Ecm and BPM\n */\n getTicket(): [string, string] {\n return [this.contentAuth.getTicket(), this.processAuth.getTicket()];\n }\n\n isBpmConfiguration(): boolean {\n return this.config.provider && this.config.provider.toUpperCase() === 'BPM';\n }\n\n isEcmConfiguration(): boolean {\n return this.config.provider && this.config.provider.toUpperCase() === 'ECM';\n }\n\n isOauthConfiguration(): boolean {\n return this.config.authType === 'OAUTH';\n }\n\n isPublicUrl(): boolean {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isPublicUrl();\n }\n return false;\n }\n\n isEcmBpmConfiguration(): boolean {\n return this.config.provider && this.config.provider.toUpperCase() === 'ALL';\n }\n\n private emitBuffer(event: string, callback?: any): void {\n this.emit(event, callback);\n this.bufferEvents.push(event);\n }\n\n reply(event: string, callback?: any): void {\n if (this.bufferEvents.indexOf(event) >= 0) {\n // eslint-disable-next-line prefer-rest-params\n Function.prototype.apply.call(callback, this, arguments);\n } else {\n this.on(event, callback);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"alfrescoApi.js","sourceRoot":"","sources":["alfrescoApi.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ee, { EmitterMethod, Emitter } from 'event-emitter';\nimport { ContentAuth } from './authentication/contentAuth';\nimport { ProcessAuth } from './authentication/processAuth';\nimport { Oauth2Auth } from './authentication/oauth2Auth';\nimport { ContentClient } from './contentClient';\nimport { ProcessClient } from './processClient';\nimport { Storage } from './storage';\nimport { AlfrescoApiConfig } from './alfrescoApiConfig';\nimport { Authentication } from './authentication/authentication';\nimport { AlfrescoApiType } from './to-deprecate/alfresco-api-type';\nimport { HttpClient } from './api-clients/http-client.interface';\n\nexport class AlfrescoApi implements Emitter, AlfrescoApiType {\n __type = 'legacy-client';\n storage: Storage;\n config: AlfrescoApiConfig;\n contentClient: ContentClient;\n contentPrivateClient: ContentClient;\n processClient: ProcessClient;\n searchClient: ContentClient;\n discoveryClient: ContentClient;\n gsClient: ContentClient;\n authClient: ContentClient;\n hxiConnectorClient: ContentClient;\n oauth2Auth: Oauth2Auth;\n processAuth: ProcessAuth;\n contentAuth: ContentAuth;\n\n on: EmitterMethod;\n off: EmitterMethod;\n once: EmitterMethod;\n\n bufferEvents: string[] = [];\n\n emit: (type: string, ...args: any[]) => void;\n\n username: string;\n\n constructor(\n config?: AlfrescoApiConfig,\n public httpClient?: HttpClient\n ) {\n ee(this);\n\n if (config) {\n this.setConfig(config);\n }\n }\n\n setConfig(config: AlfrescoApiConfig) {\n if (!config) {\n config = {};\n }\n\n this.storage = Storage.getInstance();\n this.storage.setDomainPrefix(config.domainPrefix);\n\n this.initConfig(config);\n this.validateTicket(config);\n }\n\n private initConfig(config: AlfrescoApiConfig) {\n this.config = new AlfrescoApiConfig(config);\n\n this.clientsFactory();\n\n this.errorListeners();\n this.ticketMismatchListeners();\n if (this.config.oauthInit) {\n this.initAuth(config);\n\n if (this.isLoggedIn()) {\n this.emitBuffer('logged-in');\n }\n }\n }\n\n private validateTicket(config: AlfrescoApiConfig) {\n if (config.ticketEcm && !this.isOauthConfiguration()) {\n if (!this.contentAuth) {\n this.contentAuth = new ContentAuth(this.config, this, this.httpClient);\n }\n this.contentAuth\n .validateTicket()\n .then((ticket) => {\n config.ticketEcm = ticket;\n })\n .catch((error) => {\n if (error.status === 401) {\n config.ticketEcm = null;\n this.initConfig(config);\n this.emitBuffer('ticket_invalidated');\n }\n });\n }\n }\n\n private initAuth(config: AlfrescoApiConfig): void {\n if (this.isOauthConfiguration()) {\n if (!this.oauth2Auth) {\n this.oauth2Auth = new Oauth2Auth(this.config, this, this.httpClient);\n } else {\n this.oauth2Auth.setConfig(this.config, this);\n }\n\n this.oauth2Auth?.on('logged-in', () => {\n this.emitBuffer('logged-in');\n });\n\n this.setAuthenticationClientECMBPM(this.oauth2Auth.getAuthentication(), this.oauth2Auth.getAuthentication());\n } else {\n if (!this.processAuth) {\n this.processAuth = new ProcessAuth(this.config, this.httpClient);\n } else {\n this.processAuth.setConfig(this.config);\n }\n\n this.processAuth?.on('logged-in', () => {\n this.emitBuffer('logged-in');\n });\n\n this.processAuth?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n\n if (!this.contentAuth) {\n this.contentAuth = new ContentAuth(this.config, this, this.httpClient);\n } else {\n this.contentAuth.setConfig(config);\n }\n\n this.contentAuth?.on('logged-in', () => {\n this.emitBuffer('logged-in');\n });\n\n this.contentAuth?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n\n this.setAuthenticationClientECMBPM(this.contentAuth.getAuthentication(), this.processAuth.getAuthentication());\n }\n }\n\n private clientsFactory() {\n if (!this.contentPrivateClient) {\n this.contentPrivateClient = new ContentClient(this.config, `/api/${this.config.tenant}/private/alfresco/versions/1`, this.httpClient);\n } else {\n this.contentPrivateClient.setConfig(this.config, `/api/${this.config.tenant}/private/alfresco/versions/1`);\n }\n\n if (!this.contentClient) {\n this.contentClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/alfresco/versions/1`, this.httpClient);\n } else {\n this.contentClient.setConfig(this.config, `/api/${this.config.tenant}/public/alfresco/versions/1`);\n }\n\n if (!this.authClient) {\n this.authClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/authentication/versions/1`, this.httpClient);\n } else {\n this.authClient.setConfig(this.config, `/api/${this.config.tenant}/public/authentication/versions/1`);\n }\n\n if (!this.searchClient) {\n this.searchClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/search/versions/1`, this.httpClient);\n } else {\n this.searchClient.setConfig(this.config, `/api/${this.config.tenant}/public/search/versions/1`);\n }\n\n if (!this.discoveryClient) {\n this.discoveryClient = new ContentClient(this.config, `/api`, this.httpClient);\n } else {\n this.discoveryClient.setConfig(this.config, `/api`);\n }\n\n if (!this.gsClient) {\n this.gsClient = new ContentClient(this.config, `/api/${this.config.tenant}/public/gs/versions/1`, this.httpClient);\n } else {\n this.gsClient.setConfig(this.config, `/api/${this.config.tenant}/public/gs/versions/1`);\n }\n\n if (!this.processClient) {\n this.processClient = new ProcessClient(this.config, this.httpClient);\n } else {\n this.processClient.setConfig(this.config);\n }\n\n if (!this.hxiConnectorClient) {\n this.hxiConnectorClient = new ContentClient(this.config, `/api/${this.config.tenant}/private/hxi/versions/1`, this.httpClient);\n } else {\n this.hxiConnectorClient.setConfig(this.config, `/api/${this.config.tenant}/private/hxi/versions/1`);\n }\n }\n\n /**@private? */\n errorListeners() {\n this.contentClient.off('error', () => {});\n this.authClient.off('error', () => {});\n this.contentPrivateClient.off('error', () => {});\n this.processClient.off('error', () => {});\n this.searchClient.off('error', () => {});\n this.discoveryClient.off('error', () => {});\n this.gsClient.off('error', () => {});\n this.hxiConnectorClient.off('error', () => {});\n\n this.contentClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.authClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.contentPrivateClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.processClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.searchClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.discoveryClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.gsClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n\n this.hxiConnectorClient.on('error', (error: any) => {\n this.errorHandler(error);\n });\n }\n\n ticketMismatchListeners() {\n this.contentClient?.off('ticket_mismatch', () => {});\n this.processClient?.off('ticket_mismatch', () => {});\n\n this.contentClient?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n\n this.processClient?.on('ticket_mismatch', (error: any) => {\n this.ticketMismatchHandler(error);\n });\n }\n\n /**@private? */\n errorHandler(error: { status?: number }) {\n if (this.config.oauthInit && error.status === 401) {\n this.invalidateSession();\n }\n\n this.emitBuffer('error', error);\n }\n\n ticketMismatchHandler(error: { newTicket?: string }) {\n if (error.newTicket) {\n this.config.ticketEcm = error.newTicket;\n this.initConfig(this.config);\n }\n\n this.emitBuffer('ticket_mismatch', error);\n }\n\n changeWithCredentialsConfig(withCredentials: boolean) {\n this.config.withCredentials = withCredentials;\n }\n\n changeCsrfConfig(disableCsrf: boolean) {\n this.config.disableCsrf = disableCsrf;\n this.processAuth.changeCsrfConfig(disableCsrf);\n }\n\n changeEcmHost(hostEcm: string) {\n this.config.hostEcm = hostEcm;\n this.contentAuth.changeHost();\n this.contentClient.changeHost();\n this.authClient.changeHost();\n }\n\n changeBpmHost(hostBpm: string) {\n this.config.hostBpm = hostBpm;\n this.processAuth.changeHost();\n this.processClient.changeHost();\n }\n\n /**\n * login Alfresco API\n * @param username Username to login\n * @param password Password to login\n * @returns A promise that returns {new authentication ticket} if resolved and {error} if rejected.\n */\n login(username: string, password: string): Promise<any> {\n if (!this.isCredentialValid(username) || !this.isCredentialValid(password)) {\n return Promise.reject(new Error('missing username or password'));\n }\n\n if (username) {\n username = username.trim();\n }\n\n this.username = username;\n\n if (this.isOauthConfiguration()) {\n const promise = this.oauth2Auth.login(username, password);\n promise.then((accessToken) => {\n this.config.accessToken = accessToken;\n });\n return promise;\n } else {\n if (this.isBpmConfiguration()) {\n const promise = this.processAuth.login(username, password);\n promise.then((ticketBpm) => {\n this.config.ticketBpm = ticketBpm;\n });\n return promise;\n } else if (this.isEcmConfiguration()) {\n const promise = this.contentAuth.login(username, password);\n promise.then((ticketEcm) => {\n this.setAuthenticationClientECMBPM(this.contentAuth.getAuthentication(), null);\n this.config.ticketEcm = ticketEcm;\n });\n return promise;\n } else if (this.isEcmBpmConfiguration()) {\n const contentProcessPromise = this.loginBPMECM(username, password);\n\n contentProcessPromise.then((data) => {\n this.config.ticketEcm = data[0];\n this.config.ticketBpm = data[1];\n });\n\n return contentProcessPromise;\n } else {\n return Promise.reject(new Error('Unknown configuration'));\n }\n }\n }\n\n isCredentialValid(credential: string): boolean {\n return credential !== undefined && credential !== null && credential !== '';\n }\n\n implicitLogin(): Promise<any> {\n if (!this.isOauthConfiguration()) {\n return Promise.reject(new Error('Missing the required oauth2 configuration'));\n }\n\n return new Promise(() => {\n this.oauth2Auth.implicitLogin();\n });\n }\n\n setAuthenticationClientECMBPM(authECM: Authentication, authBPM: Authentication) {\n this.contentClient.setAuthentications(authECM);\n this.authClient.setAuthentications(authECM);\n this.searchClient.setAuthentications(authECM);\n this.contentPrivateClient.setAuthentications(authECM);\n this.processClient.setAuthentications(authBPM);\n this.searchClient.setAuthentications(authECM);\n this.discoveryClient.setAuthentications(authECM);\n this.gsClient.setAuthentications(authECM);\n this.hxiConnectorClient.setAuthentications(authECM);\n }\n\n /**\n * login Tickets\n * @param ticketEcm alfresco ticket\n * @param ticketBpm alfresco ticket\n */\n loginTicket(ticketEcm: string, ticketBpm: string): Promise<string> {\n this.config.ticketEcm = ticketEcm;\n this.config.ticketBpm = ticketBpm;\n\n return this.contentAuth.validateTicket();\n }\n\n private loginBPMECM(username: string, password: string): Promise<[string, string]> {\n const contentPromise = this.contentAuth.login(username, password);\n const processPromise = this.processAuth.login(username, password);\n\n const promise: any = new Promise<[string, string]>((resolve, reject) => {\n Promise.all([contentPromise, processPromise]).then(\n (data) => {\n promise.emit('success');\n resolve(data);\n },\n (error) => {\n this.contentAuth.invalidateSession();\n this.processAuth.invalidateSession();\n\n if (error.status === 401) {\n promise.emit('unauthorized');\n }\n promise.emit('error');\n reject(error);\n }\n );\n });\n\n ee(promise); // jshint ignore:line\n return promise;\n }\n\n /**\n * logout Alfresco API\n */\n logout(): Promise<void> {\n this.username = null;\n\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.logOut();\n }\n\n if (this.isBpmConfiguration()) {\n return this.processAuth.logout();\n }\n\n if (this.isEcmConfiguration()) {\n const contentPromise = this.contentAuth.logout();\n contentPromise.then(\n (): void => (this.config.ticket = undefined),\n (): void => {}\n );\n return contentPromise;\n }\n\n if (this.isEcmBpmConfiguration()) {\n return this._logoutBPMECM();\n }\n\n return Promise.resolve();\n }\n\n private _logoutBPMECM(): Promise<void> {\n const contentPromise = this.contentAuth.logout();\n const processPromise = this.processAuth.logout();\n\n const promise: any = new Promise<void>((resolve, reject) => {\n Promise.all([contentPromise, processPromise]).then(\n () => {\n this.config.ticket = undefined;\n promise.emit('logout');\n resolve();\n },\n (error) => {\n if (error.status === 401) {\n promise.emit('unauthorized');\n }\n promise.emit('error');\n reject(error);\n }\n );\n });\n\n ee(promise); // jshint ignore:line\n return promise;\n }\n\n /**\n * If the client is logged in return true\n */\n isLoggedIn(): boolean {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isLoggedIn();\n }\n\n if (this.isBpmConfiguration()) {\n return this.processAuth.isLoggedIn();\n }\n\n if (this.isEcmConfiguration()) {\n return this.config.withCredentials ? true : this.contentAuth.isLoggedIn();\n }\n\n if (this.isEcmBpmConfiguration()) {\n return this.config.withCredentials ? true : this.contentAuth.isLoggedIn() && this.processAuth.isLoggedIn();\n }\n\n return false;\n }\n\n isBpmLoggedIn(): boolean {\n if (this.isBpmConfiguration() || this.isEcmBpmConfiguration()) {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isLoggedIn();\n } else {\n return this.processAuth.isLoggedIn();\n }\n }\n return false;\n }\n\n isEcmLoggedIn(): boolean {\n if (this.isEcmConfiguration() || this.isEcmBpmConfiguration()) {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isLoggedIn();\n } else {\n return this.config.withCredentials ? true : this.contentAuth.isLoggedIn();\n }\n }\n return false;\n }\n\n getBpmUsername(): string {\n if (this.isOauthConfiguration()) {\n return this.username || this.oauth2Auth.storage.getItem('USERNAME');\n } else {\n return this.username || this.processAuth.storage.getItem('APS_USERNAME');\n }\n }\n\n getEcmUsername(): string {\n if (this.isOauthConfiguration()) {\n return this.username || this.oauth2Auth.storage.getItem('USERNAME');\n } else {\n return this.username || this.contentAuth.storage.getItem('ACS_USERNAME');\n }\n }\n\n /**\n * refresh token\n */\n refreshToken(): Promise<any> {\n if (!this.isOauthConfiguration()) {\n return Promise.reject(new Error('Missing the required oauth2 configuration'));\n }\n\n if (this.config.oauth2.implicitFlow) {\n return Promise.reject(new Error('Manual refresh token not possible in implicit flow'));\n }\n\n return this.oauth2Auth.refreshToken();\n }\n\n getTicketAuth(): string {\n return this.oauth2Auth?.getToken();\n }\n\n /**\n * Set the current Ticket\n * @param ticketEcm ecm ticket\n * @param ticketBpm bpm ticket\n */\n setTicket(ticketEcm: string, ticketBpm: string) {\n if (this.contentAuth) {\n this.contentAuth.setTicket(ticketEcm);\n }\n if (this.processAuth) {\n this.processAuth.setTicket(ticketBpm);\n }\n }\n\n /**\n * invalidate the current session\n */\n invalidateSession() {\n if (this.oauth2Auth) {\n this.oauth2Auth.invalidateSession();\n } else {\n this.contentAuth.invalidateSession();\n this.processAuth.invalidateSession();\n }\n }\n\n /**\n * Get the current Ticket for the Bpm\n */\n getTicketBpm(): string {\n return this.processAuth?.getTicket();\n }\n\n /**\n * Get the current Ticket for the Ecm\n */\n getTicketEcm(): string {\n return this.contentAuth?.getTicket();\n }\n\n /**\n * Get the current Ticket for the Ecm and BPM\n */\n getTicket(): [string, string] {\n return [this.contentAuth.getTicket(), this.processAuth.getTicket()];\n }\n\n isBpmConfiguration(): boolean {\n return this.config.provider && this.config.provider.toUpperCase() === 'BPM';\n }\n\n isEcmConfiguration(): boolean {\n return this.config.provider && this.config.provider.toUpperCase() === 'ECM';\n }\n\n isOauthConfiguration(): boolean {\n return this.config.authType === 'OAUTH';\n }\n\n isPublicUrl(): boolean {\n if (this.isOauthConfiguration()) {\n return this.oauth2Auth.isPublicUrl();\n }\n return false;\n }\n\n isEcmBpmConfiguration(): boolean {\n return this.config.provider && this.config.provider.toUpperCase() === 'ALL';\n }\n\n private emitBuffer(event: string, callback?: any): void {\n this.emit(event, callback);\n this.bufferEvents.push(event);\n }\n\n reply(event: string, callback?: any): void {\n if (this.bufferEvents.indexOf(event) >= 0) {\n // eslint-disable-next-line prefer-rest-params\n Function.prototype.apply.call(callback, this, arguments);\n } else {\n this.on(event, callback);\n }\n }\n}\n"]}
@@ -14,10 +14,10 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { EventEmitter } from 'eventemitter3';
17
+ import ee from 'event-emitter';
18
+ import { SuperagentHttpClient } from './superagentHttpClient';
18
19
  import { paramToString } from './utils';
19
20
  import { Storage } from './storage';
20
- import { AxiosHttpClient } from './axiosHttpClient';
21
21
  export function buildCollectionParam(param, collectionFormat) {
22
22
  if (!param) {
23
23
  return null;
@@ -39,7 +39,6 @@ export function buildCollectionParam(param, collectionFormat) {
39
39
  }
40
40
  export class AlfrescoApiClient {
41
41
  constructor(host, httpClient) {
42
- this.eventEmitter = new EventEmitter();
43
42
  this.basePath = '';
44
43
  this.authentications = {
45
44
  basicAuth: {
@@ -54,22 +53,8 @@ export class AlfrescoApiClient {
54
53
  };
55
54
  this.host = host;
56
55
  this.storage = Storage.getInstance();
57
- this.httpClient = httpClient || new AxiosHttpClient();
58
- }
59
- on(event, fn, context) {
60
- this.eventEmitter.on(event, fn, context);
61
- return this;
62
- }
63
- off(event, fn, context) {
64
- this.eventEmitter.off(event, fn, context);
65
- return this;
66
- }
67
- once(event, fn, context) {
68
- this.eventEmitter.once(event, fn, context);
69
- return this;
70
- }
71
- emit(event, ...args) {
72
- return this.eventEmitter.emit(event, ...args);
56
+ this.httpClient = httpClient || new SuperagentHttpClient();
57
+ ee(this);
73
58
  }
74
59
  request(options) {
75
60
  return this.buildRequestCall(this.basePath, options, this.httpClient.request.bind(this.httpClient));
@@ -222,7 +207,7 @@ export class AlfrescoApiClient {
222
207
  };
223
208
  return {
224
209
  apiClientEmitter,
225
- eventEmitter: new EventEmitter()
210
+ eventEmitter: ee({})
226
211
  };
227
212
  }
228
213
  getRequestOptionsWithAcceptAndContentType(options) {
@@ -247,19 +232,20 @@ export class AlfrescoApiClient {
247
232
  }
248
233
  addPromiseListeners(promise, eventEmitter) {
249
234
  return Object.assign(promise, {
250
- on(event, fn, context) {
251
- eventEmitter.on(event, fn, context);
235
+ on() {
236
+ eventEmitter.on.apply(eventEmitter, arguments);
252
237
  return this;
253
238
  },
254
- once(event, fn, context) {
255
- eventEmitter.once(event, fn, context);
239
+ once() {
240
+ eventEmitter.once.apply(eventEmitter, arguments);
256
241
  return this;
257
242
  },
258
- emit(event, ...args) {
259
- return eventEmitter.emit(event, ...args);
243
+ emit() {
244
+ eventEmitter.emit.apply(eventEmitter, arguments);
245
+ return this;
260
246
  },
261
- off(event, fn, context) {
262
- eventEmitter.off(event, fn, context);
247
+ off() {
248
+ eventEmitter.off.apply(eventEmitter, arguments);
263
249
  return this;
264
250
  }
265
251
  });
@@ -1 +1 @@
1
- {"version":3,"file":"alfrescoApiClient.js","sourceRoot":"","sources":["alfrescoApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EventEmitter } from 'eventemitter3';\nimport { AlfrescoApiConfig } from './alfrescoApiConfig';\nimport { Authentication } from './authentication/authentication';\n\nimport { Emitters, HttpClient, LegacyHttpClient, RequestOptions, SecurityOptions } from './api-clients/http-client.interface';\nimport { paramToString } from './utils';\nimport { Storage } from './storage';\nimport { AxiosHttpClient } from './axiosHttpClient';\n\ndeclare const Buffer: any;\n\ntype EventEmitterInstance = InstanceType<typeof EventEmitter>;\n\nexport type AlfrescoApiClientPromise<T = any> = Promise<T> & {\n on: <K extends string | symbol>(event: K, fn: (...args: any[]) => void, context?: any) => AlfrescoApiClientPromise<T>;\n off: <K extends string | symbol>(event: K, fn?: (...args: any[]) => void, context?: any) => AlfrescoApiClientPromise<T>;\n once: <K extends string | symbol>(event: K, fn: (...args: any[]) => void, context?: any) => AlfrescoApiClientPromise<T>;\n emit: <K extends string | symbol>(event: K, ...args: any[]) => boolean;\n abort?: () => void;\n};\n\n/**\n * Builds a string representation of an array-type actual parameter, according to the given collection format.\n * @param param An array parameter.\n * @param collectionFormat The array element separator strategy.\n * @returns A string representation of the supplied collection, using the specified delimiter. Returns\n * <code>param</code> as is if <code>collectionFormat</code> is <code>multi</code>.\n */\nexport function buildCollectionParam(param: string[], collectionFormat: string): string | any[] {\n if (!param) {\n return null;\n }\n\n switch (collectionFormat) {\n case 'csv':\n return param.map(paramToString).join(',');\n case 'ssv':\n return param.map(paramToString).join(' ');\n case 'tsv':\n return param.map(paramToString).join('\\t');\n case 'pipes':\n return param.map(paramToString).join('|');\n case 'multi':\n // return the array directly as SuperAgent will handle it as expected\n return param.map(paramToString);\n default:\n throw new Error('Unknown collection format: ' + collectionFormat);\n }\n}\n\nexport class AlfrescoApiClient implements LegacyHttpClient {\n private eventEmitter = new EventEmitter();\n\n storage: Storage;\n host: string;\n className: string;\n config: AlfrescoApiConfig;\n url: string;\n /**\n * The base URL against which to resolve every API call's (relative) path.\n */\n basePath = '';\n\n /**\n * The authentication methods to be included for all API calls.\n */\n authentications: Authentication = {\n basicAuth: {\n ticket: ''\n },\n type: 'basic'\n };\n /**\n * The default HTTP headers to be included for all API calls.\n */\n defaultHeaders = {};\n\n /**\n * The default HTTP timeout for all API calls.\n */\n timeout: number | { deadline?: number; response?: number } = undefined;\n\n contentTypes = {\n JSON: ['application/json']\n };\n\n httpClient: HttpClient;\n\n constructor(host?: string, httpClient?: HttpClient) {\n this.host = host;\n this.storage = Storage.getInstance();\n // fallback for backward compatibility\n this.httpClient = httpClient || new AxiosHttpClient();\n }\n\n // EventEmitter delegation methods\n on<K extends string | symbol>(event: K, fn: (...args: any[]) => void, context?: any): this {\n this.eventEmitter.on(event, fn, context);\n return this;\n }\n\n off<K extends string | symbol>(event: K, fn?: (...args: any[]) => void, context?: any): this {\n this.eventEmitter.off(event, fn, context);\n return this;\n }\n\n once<K extends string | symbol>(event: K, fn: (...args: any[]) => void, context?: any): this {\n this.eventEmitter.once(event, fn, context);\n return this;\n }\n\n emit<K extends string | symbol>(event: K, ...args: any[]): boolean {\n return this.eventEmitter.emit(event, ...args);\n }\n\n request<T = any>(options: RequestOptions): Promise<T> {\n return this.buildRequestCall(this.basePath, options, this.httpClient.request.bind(this.httpClient));\n }\n\n post<T = any>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall(url, options, this.httpClient.post.bind(this.httpClient));\n }\n\n put<T = any>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall(url, options, this.httpClient.put.bind(this.httpClient));\n }\n\n get<T = any>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall(url, options, this.httpClient.get.bind(this.httpClient));\n }\n\n delete<T = void>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall<T>(url, options, this.httpClient.delete.bind(this.httpClient));\n }\n\n callApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string,\n url?: string\n ): AlfrescoApiClientPromise<any> {\n const callApiUrl = url ?? this.getCallApiUrl({ contextRoot, path, pathParams });\n\n const options: RequestOptions = {\n path,\n httpMethod,\n pathParams,\n queryParams,\n headerParams,\n formParams,\n bodyParam,\n contentTypes,\n accepts,\n returnType,\n contextRoot,\n responseType,\n url\n };\n\n return this.buildRequestCall(callApiUrl, options, this.httpClient.request.bind(this.httpClient));\n }\n\n callCustomApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string\n ): AlfrescoApiClientPromise<any> {\n const customApiUrl = AlfrescoApiClient.buildUrl(path, '', pathParams);\n const options: RequestOptions = {\n path,\n httpMethod,\n pathParams,\n queryParams,\n headerParams,\n formParams,\n bodyParam,\n contentTypes,\n accepts,\n returnType,\n contextRoot,\n responseType\n };\n\n return this.buildRequestCall(customApiUrl, options, this.httpClient.request.bind(this.httpClient));\n }\n\n isCsrfEnabled(): boolean {\n if (this.config) {\n return !this.config.disableCsrf;\n } else {\n return true;\n }\n }\n\n isBpmRequest(): boolean {\n return this.className === 'ProcessAuth' || this.className === 'ProcessClient';\n }\n\n basicAuth(username: string, password: string): string {\n const str = username + ':' + password;\n\n let base64;\n\n if (typeof Buffer === 'function') {\n base64 = Buffer.from(str, 'binary').toString('base64');\n } else {\n base64 = btoa(str);\n }\n\n return 'Basic ' + base64;\n }\n\n isWithCredentials(): boolean {\n return !!this.config?.withCredentials;\n }\n\n getAlfTicket(ticket: string): string {\n const ticketParam = this.isWithCredentials() ? '&ticket=' : '&alf_ticket=';\n\n if (ticket) {\n return ticketParam + ticket;\n } else {\n const ticketConfig = this.config.ticketEcm;\n const ticketStorage = this.storage.getItem('ticket-ECM');\n\n if (ticketConfig && ticketStorage && ticketConfig !== ticketStorage) {\n this.emit('ticket_mismatch', { newTicket: ticketStorage });\n return ticketParam + ticketStorage;\n } else if (ticketConfig) {\n return ticketParam + ticketConfig;\n } else if (ticketStorage) {\n return ticketParam + ticketStorage;\n }\n }\n\n return '';\n }\n\n /**\n * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders\n * with parameter values\n */\n private static buildUrl(basePath: string, path: string, pathParams: any): string {\n if (path && path !== '' && !path.match(/^\\//)) {\n path = '/' + path;\n }\n const url = basePath + path;\n\n return AlfrescoApiClient.addParamsToUrl(url, pathParams);\n }\n\n private static addParamsToUrl(path: string, pathParams: any) {\n return path.replace(/\\{([\\w-]+)}/g, (fullMatch, key) => {\n let value;\n\n if (Object.prototype.hasOwnProperty.call(pathParams, key)) {\n value = paramToString(pathParams[key]);\n } else {\n value = fullMatch;\n }\n\n return encodeURIComponent(value);\n });\n }\n\n private getCallApiUrl({ contextRoot, path, pathParams }: { contextRoot?: string; path: string; pathParams?: any }): string {\n const basePath = contextRoot ? `${this.host}/${contextRoot}` : this.basePath;\n\n return AlfrescoApiClient.buildUrl(basePath, path, pathParams);\n }\n\n private buildRequestCall<T = any>(\n url: string,\n options: RequestOptions,\n httpCall: (url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters) => Promise<T>\n ): AlfrescoApiClientPromise<T> {\n const security = this.getSecurityOptions();\n const emitters = this.getEventEmitters();\n const httpRequestOptions = this.getRequestOptionsWithAcceptAndContentType(options);\n const promise = httpCall(url, httpRequestOptions, security, emitters);\n\n return this.addPromiseListeners(promise, emitters.eventEmitter);\n }\n\n private getSecurityOptions(): SecurityOptions {\n return {\n isBpmRequest: this.isBpmRequest(),\n enableCsrf: this.isCsrfEnabled(),\n withCredentials: this.isWithCredentials(),\n authentications: this.authentications,\n defaultHeaders: this.defaultHeaders\n };\n }\n\n private getEventEmitters(): Emitters {\n const apiClientEmitter = {\n on: this.on.bind(this),\n off: this.off.bind(this),\n once: this.once.bind(this),\n emit: this.emit.bind(this)\n };\n\n return {\n apiClientEmitter,\n eventEmitter: new EventEmitter()\n };\n }\n\n private getRequestOptionsWithAcceptAndContentType(options: RequestOptions): RequestOptions {\n const contentType = AlfrescoApiClient.jsonPreferredMime(options.contentTypes);\n const accept = AlfrescoApiClient.jsonPreferredMime(options.accepts);\n\n return {\n ...options,\n contentType,\n accept\n };\n }\n\n /**\n * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.\n * @param contentTypes content types\n * @returns The chosen content type, preferring JSON.\n */\n private static jsonPreferredMime(contentTypes: readonly string[]): string {\n if (!contentTypes?.length) {\n return 'application/json';\n }\n\n for (const item of contentTypes) {\n if (AlfrescoApiClient.isJsonMime(item)) {\n return item;\n }\n }\n return contentTypes[0];\n }\n\n /**\n * Checks whether the given content type represents JSON.<br>\n *\n * JSON content type examples:<br>\n * <ul>\n * <li>application/json</li>\n * <li>application/json; charset=UTF8</li>\n * <li>APPLICATION/JSON</li>\n * </ul>\n * @param contentType The MIME content type to check.\n * @returns <code>true</code> if <code>contentType</code> represents JSON, otherwise <code>false</code>.\n */\n private static isJsonMime(contentType: string): boolean {\n return Boolean(contentType?.match(/^application\\/json(;.*)?$/i));\n }\n\n addPromiseListeners<T = any>(promise: Promise<T>, eventEmitter: EventEmitterInstance): AlfrescoApiClientPromise<T> {\n return Object.assign(promise, {\n on<K extends string | symbol>(event: K, fn: (...args: any[]) => void, context?: any): AlfrescoApiClientPromise<T> {\n eventEmitter.on(event, fn, context);\n return this as AlfrescoApiClientPromise<T>;\n },\n once<K extends string | symbol>(event: K, fn: (...args: any[]) => void, context?: any): AlfrescoApiClientPromise<T> {\n eventEmitter.once(event, fn, context);\n return this as AlfrescoApiClientPromise<T>;\n },\n emit<K extends string | symbol>(event: K, ...args: any[]): boolean {\n return eventEmitter.emit(event, ...args);\n },\n off<K extends string | symbol>(event: K, fn?: (...args: any[]) => void, context?: any): AlfrescoApiClientPromise<T> {\n eventEmitter.off(event, fn, context);\n return this as AlfrescoApiClientPromise<T>;\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"alfrescoApiClient.js","sourceRoot":"","sources":["alfrescoApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ee from 'event-emitter';\nimport { AlfrescoApiConfig } from './alfrescoApiConfig';\nimport { Authentication } from './authentication/authentication';\nimport { SuperagentHttpClient } from './superagentHttpClient';\nimport { Emitters, HttpClient, LegacyHttpClient, RequestOptions, SecurityOptions } from './api-clients/http-client.interface';\nimport { paramToString } from './utils';\nimport { Storage } from './storage';\n\ndeclare const Buffer: any;\n\nexport type AlfrescoApiClientPromise<T = any> = Promise<T> & {\n on: ee.EmitterMethod;\n off: ee.EmitterMethod;\n once: ee.EmitterMethod;\n emit: (type: string, ...args: any[]) => void;\n abort?: () => void;\n};\n\n/**\n * Builds a string representation of an array-type actual parameter, according to the given collection format.\n * @param param An array parameter.\n * @param collectionFormat The array element separator strategy.\n * @returns A string representation of the supplied collection, using the specified delimiter. Returns\n * <code>param</code> as is if <code>collectionFormat</code> is <code>multi</code>.\n */\nexport function buildCollectionParam(param: string[], collectionFormat: string): string | any[] {\n if (!param) {\n return null;\n }\n\n switch (collectionFormat) {\n case 'csv':\n return param.map(paramToString).join(',');\n case 'ssv':\n return param.map(paramToString).join(' ');\n case 'tsv':\n return param.map(paramToString).join('\\t');\n case 'pipes':\n return param.map(paramToString).join('|');\n case 'multi':\n // return the array directly as SuperAgent will handle it as expected\n return param.map(paramToString);\n default:\n throw new Error('Unknown collection format: ' + collectionFormat);\n }\n}\n\nexport class AlfrescoApiClient implements ee.Emitter, LegacyHttpClient {\n on: ee.EmitterMethod;\n off: ee.EmitterMethod;\n once: ee.EmitterMethod;\n emit: (type: string, ...args: any[]) => void;\n\n storage: Storage;\n host: string;\n className: string;\n config: AlfrescoApiConfig;\n url: string;\n /**\n * The base URL against which to resolve every API call's (relative) path.\n */\n basePath = '';\n\n /**\n * The authentication methods to be included for all API calls.\n */\n authentications: Authentication = {\n basicAuth: {\n ticket: ''\n },\n type: 'basic'\n };\n /**\n * The default HTTP headers to be included for all API calls.\n */\n defaultHeaders = {};\n\n /**\n * The default HTTP timeout for all API calls.\n */\n timeout: number | { deadline?: number; response?: number } = undefined;\n\n contentTypes = {\n JSON: ['application/json']\n };\n\n httpClient: HttpClient;\n\n constructor(host?: string, httpClient?: HttpClient) {\n this.host = host;\n\n this.storage = Storage.getInstance();\n\n // fallback for backward compatibility\n this.httpClient = httpClient || new SuperagentHttpClient();\n\n ee(this);\n }\n\n request<T = any>(options: RequestOptions): Promise<T> {\n return this.buildRequestCall(this.basePath, options, this.httpClient.request.bind(this.httpClient));\n }\n\n post<T = any>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall(url, options, this.httpClient.post.bind(this.httpClient));\n }\n\n put<T = any>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall(url, options, this.httpClient.put.bind(this.httpClient));\n }\n\n get<T = any>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall(url, options, this.httpClient.get.bind(this.httpClient));\n }\n\n delete<T = void>(options: RequestOptions): AlfrescoApiClientPromise<T> {\n const url = this.getCallApiUrl(options);\n return this.buildRequestCall<T>(url, options, this.httpClient.delete.bind(this.httpClient));\n }\n\n callApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string,\n url?: string\n ): AlfrescoApiClientPromise<any> {\n const callApiUrl = url ?? this.getCallApiUrl({ contextRoot, path, pathParams });\n\n const options: RequestOptions = {\n path,\n httpMethod,\n pathParams,\n queryParams,\n headerParams,\n formParams,\n bodyParam,\n contentTypes,\n accepts,\n returnType,\n contextRoot,\n responseType,\n url\n };\n\n return this.buildRequestCall(callApiUrl, options, this.httpClient.request.bind(this.httpClient));\n }\n\n callCustomApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string\n ): AlfrescoApiClientPromise<any> {\n const customApiUrl = AlfrescoApiClient.buildUrl(path, '', pathParams);\n const options: RequestOptions = {\n path,\n httpMethod,\n pathParams,\n queryParams,\n headerParams,\n formParams,\n bodyParam,\n contentTypes,\n accepts,\n returnType,\n contextRoot,\n responseType\n };\n\n return this.buildRequestCall(customApiUrl, options, this.httpClient.request.bind(this.httpClient));\n }\n\n isCsrfEnabled(): boolean {\n if (this.config) {\n return !this.config.disableCsrf;\n } else {\n return true;\n }\n }\n\n isBpmRequest(): boolean {\n return this.className === 'ProcessAuth' || this.className === 'ProcessClient';\n }\n\n basicAuth(username: string, password: string): string {\n const str = username + ':' + password;\n\n let base64;\n\n if (typeof Buffer === 'function') {\n base64 = Buffer.from(str, 'binary').toString('base64');\n } else {\n base64 = btoa(str);\n }\n\n return 'Basic ' + base64;\n }\n\n isWithCredentials(): boolean {\n return !!this.config?.withCredentials;\n }\n\n getAlfTicket(ticket: string): string {\n const ticketParam = this.isWithCredentials() ? '&ticket=' : '&alf_ticket=';\n\n if (ticket) {\n return ticketParam + ticket;\n } else {\n const ticketConfig = this.config.ticketEcm;\n const ticketStorage = this.storage.getItem('ticket-ECM');\n\n if (ticketConfig && ticketStorage && ticketConfig !== ticketStorage) {\n this.emit('ticket_mismatch', { newTicket: ticketStorage });\n return ticketParam + ticketStorage;\n } else if (ticketConfig) {\n return ticketParam + ticketConfig;\n } else if (ticketStorage) {\n return ticketParam + ticketStorage;\n }\n }\n\n return '';\n }\n\n /**\n * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders\n * with parameter values\n */\n private static buildUrl(basePath: string, path: string, pathParams: any): string {\n if (path && path !== '' && !path.match(/^\\//)) {\n path = '/' + path;\n }\n const url = basePath + path;\n\n return AlfrescoApiClient.addParamsToUrl(url, pathParams);\n }\n\n private static addParamsToUrl(path: string, pathParams: any) {\n return path.replace(/\\{([\\w-]+)}/g, (fullMatch, key) => {\n let value;\n\n if (Object.prototype.hasOwnProperty.call(pathParams, key)) {\n value = paramToString(pathParams[key]);\n } else {\n value = fullMatch;\n }\n\n return encodeURIComponent(value);\n });\n }\n\n private getCallApiUrl({ contextRoot, path, pathParams }: { contextRoot?: string; path: string; pathParams?: any }): string {\n const basePath = contextRoot ? `${this.host}/${contextRoot}` : this.basePath;\n\n return AlfrescoApiClient.buildUrl(basePath, path, pathParams);\n }\n\n private buildRequestCall<T = any>(\n url: string,\n options: RequestOptions,\n httpCall: (url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters) => Promise<T>\n ): AlfrescoApiClientPromise<T> {\n const security = this.getSecurityOptions();\n const emitters = this.getEventEmitters();\n const httpRequestOptions = this.getRequestOptionsWithAcceptAndContentType(options);\n const promise = httpCall(url, httpRequestOptions, security, emitters);\n\n return this.addPromiseListeners(promise, emitters.eventEmitter);\n }\n\n private getSecurityOptions(): SecurityOptions {\n return {\n isBpmRequest: this.isBpmRequest(),\n enableCsrf: this.isCsrfEnabled(),\n withCredentials: this.isWithCredentials(),\n authentications: this.authentications,\n defaultHeaders: this.defaultHeaders\n };\n }\n\n private getEventEmitters(): Emitters {\n const apiClientEmitter = {\n on: this.on.bind(this),\n off: this.off.bind(this),\n once: this.once.bind(this),\n emit: this.emit.bind(this)\n };\n\n return {\n apiClientEmitter,\n eventEmitter: ee({})\n };\n }\n\n private getRequestOptionsWithAcceptAndContentType(options: RequestOptions): RequestOptions {\n const contentType = AlfrescoApiClient.jsonPreferredMime(options.contentTypes);\n const accept = AlfrescoApiClient.jsonPreferredMime(options.accepts);\n\n return {\n ...options,\n contentType,\n accept\n };\n }\n\n /**\n * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.\n * @param contentTypes content types\n * @returns The chosen content type, preferring JSON.\n */\n private static jsonPreferredMime(contentTypes: readonly string[]): string {\n if (!contentTypes?.length) {\n return 'application/json';\n }\n\n for (const item of contentTypes) {\n if (AlfrescoApiClient.isJsonMime(item)) {\n return item;\n }\n }\n return contentTypes[0];\n }\n\n /**\n * Checks whether the given content type represents JSON.<br>\n *\n * JSON content type examples:<br>\n * <ul>\n * <li>application/json</li>\n * <li>application/json; charset=UTF8</li>\n * <li>APPLICATION/JSON</li>\n * </ul>\n * @param contentType The MIME content type to check.\n * @returns <code>true</code> if <code>contentType</code> represents JSON, otherwise <code>false</code>.\n */\n private static isJsonMime(contentType: string): boolean {\n return Boolean(contentType?.match(/^application\\/json(;.*)?$/i));\n }\n\n private addPromiseListeners<T = any>(promise: Promise<T>, eventEmitter: ee.Emitter): AlfrescoApiClientPromise<T> {\n return Object.assign(promise, {\n on() {\n // eslint-disable-next-line prefer-spread,prefer-rest-params\n eventEmitter.on.apply(eventEmitter, arguments);\n return this;\n },\n once() {\n // eslint-disable-next-line prefer-spread,prefer-rest-params\n eventEmitter.once.apply(eventEmitter, arguments);\n return this;\n },\n emit() {\n // eslint-disable-next-line prefer-spread,prefer-rest-params\n eventEmitter.emit.apply(eventEmitter, arguments);\n return this;\n },\n off() {\n // eslint-disable-next-line prefer-spread,prefer-rest-params\n eventEmitter.off.apply(eventEmitter, arguments);\n return this;\n }\n });\n }\n}\n"]}
@@ -32,58 +32,7 @@ export class UploadApi extends NodesApi {
32
32
  formParam.name = opts.name;
33
33
  }
34
34
  formParam = Object.assign(formParam, opts);
35
- const originalPromise = this.createNode(rootFolderId, nodeBody, opts, formParam);
36
- let isAborted = false;
37
- let abortReject;
38
- const abortablePromise = new Promise((resolve, reject) => {
39
- abortReject = reject;
40
- if (isAborted) {
41
- reject(new Error('Upload aborted'));
42
- return;
43
- }
44
- setTimeout(() => {
45
- if (!isAborted && typeof abortablePromise.emit === 'function') {
46
- abortablePromise.emit('progress', { loaded: 25, total: 100 });
47
- }
48
- }, 10);
49
- setTimeout(() => {
50
- if (!isAborted && typeof abortablePromise.emit === 'function') {
51
- abortablePromise.emit('progress', { loaded: 50, total: 100 });
52
- }
53
- }, 50);
54
- originalPromise
55
- .then((result) => {
56
- if (!isAborted) {
57
- if (typeof abortablePromise.emit === 'function') {
58
- abortablePromise.emit('progress', { loaded: 100, total: 100 });
59
- }
60
- resolve(result);
61
- }
62
- })
63
- .catch((error) => {
64
- if (!isAborted) {
65
- reject(error);
66
- }
67
- });
68
- });
69
- Object.setPrototypeOf(abortablePromise, Object.getPrototypeOf(originalPromise));
70
- Object.getOwnPropertyNames(originalPromise).forEach((key) => {
71
- if (key !== 'then' && key !== 'catch' && key !== 'finally') {
72
- abortablePromise[key] = originalPromise[key];
73
- }
74
- });
75
- abortablePromise.abort = () => {
76
- if (!isAborted) {
77
- isAborted = true;
78
- if (typeof abortablePromise.emit === 'function') {
79
- abortablePromise.emit('abort');
80
- }
81
- if (abortReject) {
82
- abortReject(new Error('Upload aborted'));
83
- }
84
- }
85
- };
86
- return abortablePromise;
35
+ return this.createNode(rootFolderId, nodeBody, opts, formParam);
87
36
  }
88
37
  }
89
38
  //# sourceMappingURL=../../../../../../../../lib/js-api/src/api/content-custom-api/api/upload.api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload.api.js","sourceRoot":"","sources":["upload.api.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NodesApi } from '../../content-rest-api/api/nodes.api';\nimport { NodeBodyCreate, NodeEntry, CreateNodeOpts } from '../../content-rest-api';\n\nexport interface UploadFileOpts extends CreateNodeOpts {\n name?: string;\n renditions?: string;\n}\n\nexport class UploadApi extends NodesApi {\n uploadFile(\n fileDefinition: any,\n relativePath?: string,\n rootFolderId?: string,\n nodeBody?: NodeBodyCreate,\n opts?: UploadFileOpts\n ): Promise<NodeEntry | any> {\n rootFolderId = rootFolderId || '-root-';\n opts = opts || {};\n\n const nodeBodyRequired = {\n name: fileDefinition.name,\n nodeType: 'cm:content',\n relativePath: relativePath ?? null\n };\n\n nodeBody = Object.assign(nodeBodyRequired, nodeBody);\n\n let formParam = Object.assign({}, nodeBody.properties || {});\n formParam.filedata = fileDefinition;\n formParam.relativePath = relativePath;\n if (opts.name) {\n formParam.name = opts.name;\n }\n\n formParam = Object.assign(formParam, opts);\n\n const originalPromise = this.createNode(rootFolderId, nodeBody, opts, formParam);\n\n let isAborted = false;\n let abortReject: (reason?: any) => void;\n\n // Create a new promise that can be aborted\n const abortablePromise = new Promise((resolve, reject) => {\n abortReject = reject;\n\n if (isAborted) {\n reject(new Error('Upload aborted'));\n return;\n }\n\n setTimeout(() => {\n if (!isAborted && typeof (abortablePromise as any).emit === 'function') {\n (abortablePromise as any).emit('progress', { loaded: 25, total: 100 });\n }\n }, 10);\n\n setTimeout(() => {\n if (!isAborted && typeof (abortablePromise as any).emit === 'function') {\n (abortablePromise as any).emit('progress', { loaded: 50, total: 100 });\n }\n }, 50);\n\n originalPromise\n .then((result) => {\n if (!isAborted) {\n if (typeof (abortablePromise as any).emit === 'function') {\n (abortablePromise as any).emit('progress', { loaded: 100, total: 100 });\n }\n resolve(result);\n }\n })\n .catch((error) => {\n if (!isAborted) {\n reject(error);\n }\n });\n });\n\n Object.setPrototypeOf(abortablePromise, Object.getPrototypeOf(originalPromise));\n Object.getOwnPropertyNames(originalPromise).forEach((key) => {\n if (key !== 'then' && key !== 'catch' && key !== 'finally') {\n (abortablePromise as any)[key] = (originalPromise as any)[key];\n }\n });\n\n (abortablePromise as any).abort = () => {\n if (!isAborted) {\n isAborted = true;\n\n if (typeof (abortablePromise as any).emit === 'function') {\n (abortablePromise as any).emit('abort');\n }\n\n if (abortReject) {\n abortReject(new Error('Upload aborted'));\n }\n }\n };\n\n return abortablePromise;\n }\n}\n"]}
1
+ {"version":3,"file":"upload.api.js","sourceRoot":"","sources":["upload.api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQhE,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACnC,UAAU,CAAC,cAAmB,EAAE,YAAqB,EAAE,YAAqB,EAAE,QAAyB,EAAE,IAAqB;QAC1H,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC;QACxC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAElB,MAAM,gBAAgB,GAAG;YACrB,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,YAAY;YACtB,YAAY,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI;SACrC,CAAC;QAEF,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAErD,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC7D,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC;QACpC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,CAAC;QAED,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;CACJ","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NodesApi } from '../../content-rest-api/api/nodes.api';\nimport { NodeBodyCreate, NodeEntry, CreateNodeOpts } from '../../content-rest-api';\n\nexport interface UploadFileOpts extends CreateNodeOpts {\n name?: string;\n renditions?: string;\n}\n\nexport class UploadApi extends NodesApi {\n uploadFile(fileDefinition: any, relativePath?: string, rootFolderId?: string, nodeBody?: NodeBodyCreate, opts?: UploadFileOpts): Promise<NodeEntry | any> {\n rootFolderId = rootFolderId || '-root-';\n opts = opts || {};\n\n const nodeBodyRequired = {\n name: fileDefinition.name,\n nodeType: 'cm:content',\n relativePath: relativePath ?? null\n };\n\n nodeBody = Object.assign(nodeBodyRequired, nodeBody);\n\n let formParam = Object.assign({}, nodeBody.properties || {});\n formParam.filedata = fileDefinition;\n formParam.relativePath = relativePath;\n if (opts.name) {\n formParam.name = opts.name;\n }\n\n formParam = Object.assign(formParam, opts);\n\n return this.createNode(rootFolderId, nodeBody, opts, formParam);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.interface.js","sourceRoot":"","sources":["http-client.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Authentication } from '../authentication/authentication';\nimport { EventEmitter } from 'eventemitter3';\n\ntype EventEmitterInstance = InstanceType<typeof EventEmitter>;\n\nexport interface RequestOptions {\n path: string;\n httpMethod?: string;\n pathParams?: any;\n queryParams?: any;\n headerParams?: any;\n formParams?: any;\n bodyParam?: any;\n contentTypes?: string[];\n accepts?: string[];\n returnType?: any;\n contextRoot?: string;\n responseType?: string;\n url?: string;\n readonly accept?: string;\n readonly contentType?: string;\n}\n\nexport interface HttpClientConfig {\n contextRoot?: string;\n host?: string; // Should be mandatory but can't make it because of AlfrescoApiConfig incompatibility 😕\n servicePath?: string; // Should be mandatory but can't make it because of AlfrescoApiConfig incompatibility 😕\n}\n\nexport interface LegacyHttpClient {\n basePath: string;\n config: HttpClientConfig;\n\n request<T = any>(options: RequestOptions): Promise<T>;\n post<T = any>(options: RequestOptions): Promise<T>;\n put<T = any>(options: RequestOptions): Promise<T>;\n get<T = any>(options: RequestOptions): Promise<T>;\n delete<T = void>(options: RequestOptions): Promise<T>;\n /** @deprecated */\n callApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string,\n url?: string\n ): Promise<any>;\n /** @deprecated */\n callCustomApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string\n ): Promise<any>;\n}\n\nexport interface SecurityOptions {\n readonly isBpmRequest: boolean;\n readonly enableCsrf?: boolean;\n readonly withCredentials?: boolean;\n readonly authentications: Authentication;\n readonly defaultHeaders: Record<string, string>;\n}\n\nexport interface Emitters {\n readonly eventEmitter: EventEmitterInstance;\n readonly apiClientEmitter: {\n on: EventEmitterInstance['on'];\n off: EventEmitterInstance['off'];\n once: EventEmitterInstance['once'];\n emit: EventEmitterInstance['emit'];\n };\n}\n\nexport interface HttpClient {\n request<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n post<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n put<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n get<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n delete<T = void>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n}\n"]}
1
+ {"version":3,"file":"http-client.interface.js","sourceRoot":"","sources":["http-client.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Authentication } from '../authentication/authentication';\nimport { Emitter } from 'event-emitter';\n\nexport interface RequestOptions {\n path: string;\n httpMethod?: string;\n pathParams?: any;\n queryParams?: any;\n headerParams?: any;\n formParams?: any;\n bodyParam?: any;\n contentTypes?: string[];\n accepts?: string[];\n returnType?: any;\n contextRoot?: string;\n responseType?: string;\n url?: string;\n readonly accept?: string;\n readonly contentType?: string;\n}\n\nexport interface HttpClientConfig {\n contextRoot?: string;\n host?: string; // Should be mandatory but can't make it because of AlfrescoApiConfig incompatibility 😕\n servicePath?: string; // Should be mandatory but can't make it because of AlfrescoApiConfig incompatibility 😕\n}\n\nexport interface LegacyHttpClient {\n basePath: string;\n config: HttpClientConfig;\n\n request<T = any>(options: RequestOptions): Promise<T>;\n post<T = any>(options: RequestOptions): Promise<T>;\n put<T = any>(options: RequestOptions): Promise<T>;\n get<T = any>(options: RequestOptions): Promise<T>;\n delete<T = void>(options: RequestOptions): Promise<T>;\n /** @deprecated */\n callApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string,\n url?: string\n ): Promise<any>;\n /** @deprecated */\n callCustomApi(\n path: string,\n httpMethod: string,\n pathParams?: any,\n queryParams?: any,\n headerParams?: any,\n formParams?: any,\n bodyParam?: any,\n contentTypes?: string[],\n accepts?: string[],\n returnType?: any,\n contextRoot?: string,\n responseType?: string\n ): Promise<any>;\n}\n\nexport interface SecurityOptions {\n readonly isBpmRequest: boolean;\n readonly enableCsrf?: boolean;\n readonly withCredentials?: boolean;\n readonly authentications: Authentication;\n readonly defaultHeaders: Record<string, string>;\n}\n\nexport interface Emitters {\n readonly eventEmitter: Emitter;\n readonly apiClientEmitter: Emitter;\n}\n\nexport interface HttpClient {\n request<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n post<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n put<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n get<T = any>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n delete<T = void>(url: string, options: RequestOptions, security: SecurityOptions, emitters: Emitters): Promise<T>;\n}\n"]}