@wazo/sdk 0.39.8 → 0.39.10

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.
@@ -17,6 +17,7 @@ export default class Session {
17
17
  stackUuid;
18
18
  sessionUuid;
19
19
  engineVersion;
20
+ _stackHostFromHeader;
20
21
  profile;
21
22
  expiresAt;
22
23
  authorizations;
@@ -45,12 +46,14 @@ export default class Session {
45
46
  tenantUuid: plain.data.metadata ? plain.data.metadata.tenant_uuid : undefined,
46
47
  expiresAt: new Date(`${plain.data.utc_expires_at}z`),
47
48
  stackUuid: plain.data.xivo_uuid,
49
+ // eslint-disable-next-line
50
+ stackHostFromHeader: plain._headers?.get?.('wazo-stack-host'),
48
51
  });
49
52
  }
50
53
  static newFrom(profile) {
51
54
  return newFrom(profile, Session);
52
55
  }
53
- constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, }) {
56
+ constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, stackHostFromHeader = undefined, }) {
54
57
  this.token = token;
55
58
  this.uuid = uuid;
56
59
  this.tenantUuid = tenantUuid || null;
@@ -62,6 +65,7 @@ export default class Session {
62
65
  this.refreshToken = refreshToken;
63
66
  this.sessionUuid = sessionUuid;
64
67
  this.stackUuid = stackUuid;
68
+ this._stackHostFromHeader = stackHostFromHeader;
65
69
  }
66
70
  hasExpired(date = new Date()) {
67
71
  return date >= this.expiresAt;
@@ -148,6 +152,9 @@ export default class Session {
148
152
  hasExtension(extension) {
149
153
  return this.allNumbers().some(number => number === extension);
150
154
  }
155
+ getHostFromHeader() {
156
+ return this._stackHostFromHeader;
157
+ }
151
158
  get acls() {
152
159
  console.warn('`acls` property of Session has been removed in Wazo\'s SDK, please use `acl` instead.');
153
160
  return this.acl;
@@ -3,7 +3,12 @@ import Profile from '../Profile';
3
3
  import Line from '../Line';
4
4
  describe('Session domain', () => {
5
5
  it('can parse a plain session to domain', () => {
6
+ // Can't use `new Headers` because it's not supported on node 16.
7
+ const headers = {
8
+ get: () => 'new-stack',
9
+ };
6
10
  const plain = {
11
+ _headers: headers,
7
12
  data: {
8
13
  token: 'b93ae6bd-08d7-4001-9e61-057e72bbc4b3',
9
14
  acl: ['calld.lines.*.presences.read', 'calld.switchboards.#', 'calld.transfers.*.complete.update', 'calld.transfers.*.delete', 'calld.transfers.*.read', 'calld.users.*.presences.read', 'calld.users.me.#', 'confd.infos.read', 'confd.users.me.#.read', 'confd.users.me.forwards.*.*', 'confd.users.me.funckeys.*', 'confd.users.me.funckeys.*.*', 'confd.users.me.read', 'confd.users.me.services.*.*', 'confd.users.me.update', 'dird.#.me.read', 'dird.directories.favorites.#', 'dird.directories.lookup.*.headers.read', 'dird.directories.lookup.*.read', 'dird.directories.personal.*.read', 'dird.personal.#', 'events.calls.me', 'events.chat.message.*.me', 'events.config.users.me.#', 'events.statuses.*', 'events.switchboards.#', 'events.transfers.me', 'events.users.me.#', 'events.directory.me.#', 'websocketd', 'call-logd.users.me.cdr.read'],
@@ -20,6 +25,7 @@ describe('Session domain', () => {
20
25
  xivo_user_uuid: null,
21
26
  },
22
27
  };
28
+ // @ts-ignore
23
29
  const session = Session.parse(plain);
24
30
  expect(session).toEqual(new Session({
25
31
  token: 'b93ae6bd-08d7-4001-9e61-057e72bbc4b3',
@@ -30,6 +36,7 @@ describe('Session domain', () => {
30
36
  sessionUuid: 'f14dd6d6-547c-434d-bd5c-e882b5b83b32',
31
37
  engineUuid: '6cd695d2-cdb9-4444-8b2d-27425ab85fa8',
32
38
  stackUuid: '6cd695d2-cdb9-4444-8b2d-27425ab85fa8',
39
+ stackHostFromHeader: 'new-stack',
33
40
  }));
34
41
  });
35
42
  describe('about voicemails', () => {
@@ -21,6 +21,7 @@ class Auth {
21
21
  session;
22
22
  onRefreshTokenCallback;
23
23
  onRefreshTokenCallbackError;
24
+ onHostFromHeadersCallback;
24
25
  authenticated;
25
26
  mobile;
26
27
  BACKEND_WAZO;
@@ -93,6 +94,16 @@ class Auth {
93
94
  expiration: this.expiration,
94
95
  mobile: this.mobile,
95
96
  });
97
+ // Used for Proxy Authentication
98
+ if (rawSession) {
99
+ const stackHostFromHeaders = rawSession.getHostFromHeader();
100
+ if (stackHostFromHeaders) {
101
+ this.setHost(stackHostFromHeaders);
102
+ if (this.onHostFromHeadersCallback) {
103
+ this.onHostFromHeadersCallback(stackHostFromHeaders);
104
+ }
105
+ }
106
+ }
96
107
  if (backend) {
97
108
  getApiClient().setRefreshBackend(backend);
98
109
  }
@@ -152,6 +163,9 @@ class Auth {
152
163
  this.authenticated = false;
153
164
  setFetchOptions({});
154
165
  }
166
+ setOnHostFromHeaders(callback) {
167
+ this.onHostFromHeadersCallback = callback;
168
+ }
155
169
  setOnRefreshToken(callback) {
156
170
  this.onRefreshTokenCallback = callback;
157
171
  }
@@ -4,6 +4,7 @@ import Line from './Line';
4
4
  import SipLine from './SipLine';
5
5
  import type { UUID, Token } from './types';
6
6
  export type Response = {
7
+ _headers: Headers;
7
8
  data: {
8
9
  token: Token;
9
10
  refresh_token?: Token;
@@ -53,6 +54,7 @@ type SessionArguments = {
53
54
  engineVersion?: string | null | undefined;
54
55
  engineUuid?: string | null | undefined;
55
56
  stackUuid?: string | null | undefined;
57
+ stackHostFromHeader?: string | null | undefined;
56
58
  };
57
59
  export default class Session {
58
60
  acl: string[];
@@ -64,12 +66,13 @@ export default class Session {
64
66
  stackUuid: string | null | undefined;
65
67
  sessionUuid: string | null | undefined;
66
68
  engineVersion: string | null | undefined;
69
+ _stackHostFromHeader: string | undefined | null;
67
70
  profile: Profile | null | undefined;
68
71
  expiresAt: Date;
69
72
  authorizations: Array<Authorization>;
70
73
  static parse(plain: Response): Session | null | undefined;
71
74
  static newFrom(profile: Session): any;
72
- constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, }: SessionArguments);
75
+ constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, stackHostFromHeader, }: SessionArguments);
73
76
  hasExpired(date?: Date): boolean;
74
77
  is(contact: Contact): boolean;
75
78
  using(profile: Profile): Session;
@@ -87,6 +90,7 @@ export default class Session {
87
90
  allLines(): Line[];
88
91
  allNumbers(): string[];
89
92
  hasExtension(extension: string): boolean;
93
+ getHostFromHeader(): string | null | undefined;
90
94
  get acls(): Array<string> | null | undefined;
91
95
  get engineUuid(): string | null | undefined;
92
96
  toJSON(): this & {
@@ -1 +1 @@
1
- {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/domain/Session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/domain/Session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export default class ApiRequester {
56
56
  return response.status === 204 || response.status === 201 || response.status === 200;
57
57
  }
58
58
  static defaultParser(response) {
59
- return response.json().then((data) => data);
59
+ return response.json().then((data) => ({ ...data, _headers: response.headers }));
60
60
  }
61
61
  static getQueryString(obj) {
62
62
  return Object.keys(obj).filter(key => obj[key]).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
@@ -14,6 +14,7 @@ const swarmKey = (jsrsasign_1.KEYUTIL.getKey(pubkey_1.default));
14
14
  const MINIMUM_WAZO_ENGINE_VERSION_FOR_DEFAULT_CONTEXT = '19.08';
15
15
  class Session {
16
16
  static parse(plain) {
17
+ var _a, _b;
17
18
  const token = plain.data.metadata ? plain.data.metadata.jwt : null;
18
19
  let authorizations = [];
19
20
  // Add authorizations from JWT
@@ -38,12 +39,14 @@ class Session {
38
39
  tenantUuid: plain.data.metadata ? plain.data.metadata.tenant_uuid : undefined,
39
40
  expiresAt: new Date(`${plain.data.utc_expires_at}z`),
40
41
  stackUuid: plain.data.xivo_uuid,
42
+ // eslint-disable-next-line
43
+ stackHostFromHeader: (_b = (_a = plain._headers) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, 'wazo-stack-host'),
41
44
  });
42
45
  }
43
46
  static newFrom(profile) {
44
47
  return (0, new_from_1.default)(profile, Session);
45
48
  }
46
- constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, }) {
49
+ constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, stackHostFromHeader = undefined, }) {
47
50
  this.token = token;
48
51
  this.uuid = uuid;
49
52
  this.tenantUuid = tenantUuid || null;
@@ -55,6 +58,7 @@ class Session {
55
58
  this.refreshToken = refreshToken;
56
59
  this.sessionUuid = sessionUuid;
57
60
  this.stackUuid = stackUuid;
61
+ this._stackHostFromHeader = stackHostFromHeader;
58
62
  }
59
63
  hasExpired(date = new Date()) {
60
64
  return date >= this.expiresAt;
@@ -141,6 +145,9 @@ class Session {
141
145
  hasExtension(extension) {
142
146
  return this.allNumbers().some(number => number === extension);
143
147
  }
148
+ getHostFromHeader() {
149
+ return this._stackHostFromHeader;
150
+ }
144
151
  get acls() {
145
152
  console.warn('`acls` property of Session has been removed in Wazo\'s SDK, please use `acl` instead.');
146
153
  return this.acl;
@@ -17,7 +17,12 @@ const Profile_1 = __importDefault(require("../Profile"));
17
17
  const Line_1 = __importDefault(require("../Line"));
18
18
  describe('Session domain', () => {
19
19
  it('can parse a plain session to domain', () => {
20
+ // Can't use `new Headers` because it's not supported on node 16.
21
+ const headers = {
22
+ get: () => 'new-stack',
23
+ };
20
24
  const plain = {
25
+ _headers: headers,
21
26
  data: {
22
27
  token: 'b93ae6bd-08d7-4001-9e61-057e72bbc4b3',
23
28
  acl: ['calld.lines.*.presences.read', 'calld.switchboards.#', 'calld.transfers.*.complete.update', 'calld.transfers.*.delete', 'calld.transfers.*.read', 'calld.users.*.presences.read', 'calld.users.me.#', 'confd.infos.read', 'confd.users.me.#.read', 'confd.users.me.forwards.*.*', 'confd.users.me.funckeys.*', 'confd.users.me.funckeys.*.*', 'confd.users.me.read', 'confd.users.me.services.*.*', 'confd.users.me.update', 'dird.#.me.read', 'dird.directories.favorites.#', 'dird.directories.lookup.*.headers.read', 'dird.directories.lookup.*.read', 'dird.directories.personal.*.read', 'dird.personal.#', 'events.calls.me', 'events.chat.message.*.me', 'events.config.users.me.#', 'events.statuses.*', 'events.switchboards.#', 'events.transfers.me', 'events.users.me.#', 'events.directory.me.#', 'websocketd', 'call-logd.users.me.cdr.read'],
@@ -34,6 +39,7 @@ describe('Session domain', () => {
34
39
  xivo_user_uuid: null,
35
40
  },
36
41
  };
42
+ // @ts-ignore
37
43
  const session = Session_1.default.parse(plain);
38
44
  expect(session).toEqual(new Session_1.default({
39
45
  token: 'b93ae6bd-08d7-4001-9e61-057e72bbc4b3',
@@ -44,6 +50,7 @@ describe('Session domain', () => {
44
50
  sessionUuid: 'f14dd6d6-547c-434d-bd5c-e882b5b83b32',
45
51
  engineUuid: '6cd695d2-cdb9-4444-8b2d-27425ab85fa8',
46
52
  stackUuid: '6cd695d2-cdb9-4444-8b2d-27425ab85fa8',
53
+ stackHostFromHeader: 'new-stack',
47
54
  }));
48
55
  });
49
56
  describe('about voicemails', () => {
@@ -122,6 +122,16 @@ class Auth {
122
122
  expiration: this.expiration,
123
123
  mobile: this.mobile,
124
124
  });
125
+ // Used for Proxy Authentication
126
+ if (rawSession) {
127
+ const stackHostFromHeaders = rawSession.getHostFromHeader();
128
+ if (stackHostFromHeaders) {
129
+ this.setHost(stackHostFromHeaders);
130
+ if (this.onHostFromHeadersCallback) {
131
+ this.onHostFromHeadersCallback(stackHostFromHeaders);
132
+ }
133
+ }
134
+ }
125
135
  if (backend) {
126
136
  (0, getApiClient_1.default)().setRefreshBackend(backend);
127
137
  }
@@ -191,6 +201,9 @@ class Auth {
191
201
  (0, getApiClient_1.setFetchOptions)({});
192
202
  });
193
203
  }
204
+ setOnHostFromHeaders(callback) {
205
+ this.onHostFromHeadersCallback = callback;
206
+ }
194
207
  setOnRefreshToken(callback) {
195
208
  this.onRefreshTokenCallback = callback;
196
209
  }
@@ -4,6 +4,7 @@ import Line from './Line';
4
4
  import SipLine from './SipLine';
5
5
  import type { UUID, Token } from './types';
6
6
  export type Response = {
7
+ _headers: Headers;
7
8
  data: {
8
9
  token: Token;
9
10
  refresh_token?: Token;
@@ -53,6 +54,7 @@ type SessionArguments = {
53
54
  engineVersion?: string | null | undefined;
54
55
  engineUuid?: string | null | undefined;
55
56
  stackUuid?: string | null | undefined;
57
+ stackHostFromHeader?: string | null | undefined;
56
58
  };
57
59
  export default class Session {
58
60
  acl: string[];
@@ -64,12 +66,13 @@ export default class Session {
64
66
  stackUuid: string | null | undefined;
65
67
  sessionUuid: string | null | undefined;
66
68
  engineVersion: string | null | undefined;
69
+ _stackHostFromHeader: string | undefined | null;
67
70
  profile: Profile | null | undefined;
68
71
  expiresAt: Date;
69
72
  authorizations: Array<Authorization>;
70
73
  static parse(plain: Response): Session | null | undefined;
71
74
  static newFrom(profile: Session): any;
72
- constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, }: SessionArguments);
75
+ constructor({ token, uuid, tenantUuid, profile, expiresAt, authorizations, acl, engineVersion, refreshToken, sessionUuid, stackUuid, stackHostFromHeader, }: SessionArguments);
73
76
  hasExpired(date?: Date): boolean;
74
77
  is(contact: Contact): boolean;
75
78
  using(profile: Profile): Session;
@@ -87,6 +90,7 @@ export default class Session {
87
90
  allLines(): Line[];
88
91
  allNumbers(): string[];
89
92
  hasExtension(extension: string): boolean;
93
+ getHostFromHeader(): string | null | undefined;
90
94
  get acls(): Array<string> | null | undefined;
91
95
  get engineUuid(): string | null | undefined;
92
96
  toJSON(): this & {
@@ -1 +1 @@
1
- {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/domain/Session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/domain/Session.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAS3C,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC;QACb,aAAa,CAAC,EAAE,KAAK,CAAC;QACtB,YAAY,EAAE,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAErB,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QAC1C,QAAQ,EAAE;YACR,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC;YACX,WAAW,CAAC,EAAE,IAAI,CAAC;YACnB,cAAc,CAAC,EAAE,IAAI,CAAC;YACtB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACvB,SAAS,CAAC,EAAE,IAAI,CAAC;YACjB,OAAO,CAAC,EAAE,KAAK,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC;aACZ,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,IAAI,CAAC;SAChB,GAAG,IAAI,GAAG,SAAS,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE1C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,GAAG,EAAE,MAAM,EAAE,CAAC;IAEd,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,EAAE,MAAM,CAAC;IAEd,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAExC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEhC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEtC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAErC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAEhD,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpC,SAAS,EAAE,IAAI,CAAC;IAEhB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAErC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS;IAiCzD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO;gBAInB,EACV,KAAK,EACL,IAAI,EACJ,UAAU,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,GAAG,EACH,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,mBAA+B,GAChC,EAAE,gBAAgB;IAenB,UAAU,CAAC,IAAI,GAAE,IAAiB,GAAG,OAAO;IAI5C,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAI7B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAKhC,iBAAiB;IAIjB,WAAW,IAAI,MAAM;IAIrB,oBAAoB,IAAI,OAAO;IAQ/B,WAAW,IAAI,IAAI,GAAG,IAAI,GAAG,SAAS;IAItC,cAAc,IAAI,OAAO,GAAG,IAAI,GAAG,SAAS;IAI5C,iBAAiB,IAAI,OAAO,GAAG,IAAI,GAAG,SAAS;IAI/C,cAAc,IAAI,OAAO,GAAG,IAAI,GAAG,SAAS;IAI5C,UAAU,IAAI,OAAO;IA0BrB,cAAc,IAAI,MAAM;IAWxB,mBAAmB,CAAC,OAAO,EAAE,MAAM;IAInC,aAAa,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS;IAK1C,QAAQ,IAAI,IAAI,EAAE;IAIlB,UAAU,IAAI,MAAM,EAAE;IAUtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIxC,iBAAiB;IAIjB,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAG3C;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAG1C;IAED,MAAM;;;CAOP"}
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ class ApiRequester {
56
56
  return response.status === 204 || response.status === 201 || response.status === 200;
57
57
  }
58
58
  static defaultParser(response) {
59
- return response.json().then((data) => data);
59
+ return response.json().then((data) => (Object.assign(Object.assign({}, data), { _headers: response.headers })));
60
60
  }
61
61
  static getQueryString(obj) {
62
62
  return Object.keys(obj).filter(key => obj[key]).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wazo/sdk",
3
- "version": "0.39.8",
3
+ "version": "0.39.10",
4
4
  "description": "Wazo's JavaScript Software Development Kit.",
5
5
  "main": "dist/wazo-sdk.js",
6
6
  "author": "Wazo (http://wazo.io)",
@@ -15,6 +15,7 @@ const swarmKey = <unknown>(KEYUTIL.getKey(swarmPublicKey)) as string;
15
15
  const MINIMUM_WAZO_ENGINE_VERSION_FOR_DEFAULT_CONTEXT = '19.08';
16
16
 
17
17
  export type Response = {
18
+ _headers: Headers,
18
19
  data: {
19
20
  token: Token;
20
21
  refresh_token?: Token;
@@ -69,6 +70,7 @@ type SessionArguments = {
69
70
  // Deprecated, use `stackUuid`
70
71
  engineUuid?: string | null | undefined;
71
72
  stackUuid?: string | null | undefined;
73
+ stackHostFromHeader?: string | null | undefined;
72
74
  };
73
75
 
74
76
  export default class Session {
@@ -90,6 +92,8 @@ export default class Session {
90
92
 
91
93
  engineVersion: string | null | undefined;
92
94
 
95
+ _stackHostFromHeader: string | undefined | null;
96
+
93
97
  profile: Profile | null | undefined;
94
98
 
95
99
  expiresAt: Date;
@@ -124,6 +128,8 @@ export default class Session {
124
128
  tenantUuid: plain.data.metadata ? plain.data.metadata.tenant_uuid : undefined,
125
129
  expiresAt: new Date(`${plain.data.utc_expires_at}z`),
126
130
  stackUuid: plain.data.xivo_uuid,
131
+ // eslint-disable-next-line
132
+ stackHostFromHeader: plain._headers?.get?.('wazo-stack-host'),
127
133
  });
128
134
  }
129
135
 
@@ -143,6 +149,7 @@ export default class Session {
143
149
  refreshToken,
144
150
  sessionUuid,
145
151
  stackUuid,
152
+ stackHostFromHeader = undefined,
146
153
  }: SessionArguments) {
147
154
  this.token = token;
148
155
  this.uuid = uuid;
@@ -155,6 +162,7 @@ export default class Session {
155
162
  this.refreshToken = refreshToken;
156
163
  this.sessionUuid = sessionUuid;
157
164
  this.stackUuid = stackUuid;
165
+ this._stackHostFromHeader = stackHostFromHeader;
158
166
  }
159
167
 
160
168
  hasExpired(date: Date = new Date()): boolean {
@@ -266,6 +274,10 @@ export default class Session {
266
274
  return this.allNumbers().some(number => number === extension);
267
275
  }
268
276
 
277
+ getHostFromHeader() {
278
+ return this._stackHostFromHeader;
279
+ }
280
+
269
281
  get acls(): Array<string> | null | undefined {
270
282
  console.warn('`acls` property of Session has been removed in Wazo\'s SDK, please use `acl` instead.');
271
283
  return this.acl;
@@ -4,7 +4,13 @@ import Line from '../Line';
4
4
 
5
5
  describe('Session domain', () => {
6
6
  it('can parse a plain session to domain', () => {
7
+ // Can't use `new Headers` because it's not supported on node 16.
8
+ const headers = {
9
+ get: () => 'new-stack',
10
+ };
11
+
7
12
  const plain = {
13
+ _headers: headers,
8
14
  data: {
9
15
  token: 'b93ae6bd-08d7-4001-9e61-057e72bbc4b3',
10
16
  acl: ['calld.lines.*.presences.read', 'calld.switchboards.#', 'calld.transfers.*.complete.update', 'calld.transfers.*.delete', 'calld.transfers.*.read', 'calld.users.*.presences.read', 'calld.users.me.#', 'confd.infos.read', 'confd.users.me.#.read', 'confd.users.me.forwards.*.*', 'confd.users.me.funckeys.*', 'confd.users.me.funckeys.*.*', 'confd.users.me.read', 'confd.users.me.services.*.*', 'confd.users.me.update', 'dird.#.me.read', 'dird.directories.favorites.#', 'dird.directories.lookup.*.headers.read', 'dird.directories.lookup.*.read', 'dird.directories.personal.*.read', 'dird.personal.#', 'events.calls.me', 'events.chat.message.*.me', 'events.config.users.me.#', 'events.statuses.*', 'events.switchboards.#', 'events.transfers.me', 'events.users.me.#', 'events.directory.me.#', 'websocketd', 'call-logd.users.me.cdr.read'],
@@ -21,6 +27,7 @@ describe('Session domain', () => {
21
27
  xivo_user_uuid: null,
22
28
  },
23
29
  };
30
+ // @ts-ignore
24
31
  const session = Session.parse(plain);
25
32
  expect(session).toEqual(new Session({
26
33
  token: 'b93ae6bd-08d7-4001-9e61-057e72bbc4b3',
@@ -31,6 +38,7 @@ describe('Session domain', () => {
31
38
  sessionUuid: 'f14dd6d6-547c-434d-bd5c-e882b5b83b32',
32
39
  engineUuid: '6cd695d2-cdb9-4444-8b2d-27425ab85fa8',
33
40
  stackUuid: '6cd695d2-cdb9-4444-8b2d-27425ab85fa8',
41
+ stackHostFromHeader: 'new-stack',
34
42
  }));
35
43
  });
36
44
  describe('about voicemails', () => {
@@ -82,6 +82,8 @@ class Auth implements IAuth {
82
82
 
83
83
  onRefreshTokenCallbackError: ((...args: Array<any>) => any) | null;
84
84
 
85
+ onHostFromHeadersCallback: ((...args: Array<any>) => any) | null;
86
+
85
87
  authenticated: boolean;
86
88
 
87
89
  mobile: boolean;
@@ -170,6 +172,18 @@ class Auth implements IAuth {
170
172
  mobile: this.mobile,
171
173
  });
172
174
 
175
+ // Used for Proxy Authentication
176
+ if (rawSession) {
177
+ const stackHostFromHeaders = rawSession.getHostFromHeader();
178
+ if (stackHostFromHeaders) {
179
+ this.setHost(stackHostFromHeaders);
180
+
181
+ if (this.onHostFromHeadersCallback) {
182
+ this.onHostFromHeadersCallback(stackHostFromHeaders);
183
+ }
184
+ }
185
+ }
186
+
173
187
  if (backend) {
174
188
  getApiClient().setRefreshBackend(backend);
175
189
  }
@@ -239,6 +253,10 @@ class Auth implements IAuth {
239
253
  setFetchOptions({});
240
254
  }
241
255
 
256
+ setOnHostFromHeaders(callback: (...args: Array<any>) => any) {
257
+ this.onHostFromHeadersCallback = callback;
258
+ }
259
+
242
260
  setOnRefreshToken(callback: (...args: Array<any>) => any) {
243
261
  this.onRefreshTokenCallback = callback;
244
262
  }
@@ -90,7 +90,7 @@ export default class ApiRequester {
90
90
  }
91
91
 
92
92
  static defaultParser(response: Record<string, any>) {
93
- return response.json().then((data: Record<string, any>) => data);
93
+ return response.json().then((data: Record<string, any>) => ({ ...data, _headers: response.headers }));
94
94
  }
95
95
 
96
96
  static getQueryString(obj: Record<string, any>): string {
package/lib/.DS_Store DELETED
Binary file