@ts-core/oauth 3.0.18 → 3.0.19

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.
@@ -1,4 +1,5 @@
1
- import { PromiseHandler, LoggerWrapper, ILogger, TransportHttp } from "@ts-core/common";
1
+ import { PromiseHandler, ObservableData, LoggerWrapper, ILogger, TransportHttp } from "@ts-core/common";
2
+ import { Observable, Subject } from "rxjs";
2
3
  export declare abstract class OAuthBase<T = any> extends LoggerWrapper {
3
4
  protected applicationId: string;
4
5
  protected window?: Window;
@@ -10,6 +11,7 @@ export declare abstract class OAuthBase<T = any> extends LoggerWrapper {
10
11
  popUpMessageParser: IOAuthPopUpMessageParser;
11
12
  redirectUri: string;
12
13
  protected http: TransportHttp;
14
+ protected subject: Subject<ObservableData<OAuthEvent, Window>>;
13
15
  protected popUp: Window;
14
16
  protected promise: PromiseHandler<IOAuthDto>;
15
17
  protected responseType: string;
@@ -37,6 +39,9 @@ export declare abstract class OAuthBase<T = any> extends LoggerWrapper {
37
39
  protected set popUpCheckCloseTimer(value: any);
38
40
  get urlParams(): Map<string, string>;
39
41
  get state(): string;
42
+ get events(): Observable<ObservableData<OAuthEvent, Window>>;
43
+ get popUpClosed(): Observable<Window>;
44
+ get popUpOpened(): Observable<Window>;
40
45
  }
41
46
  export interface IOAuthDto {
42
47
  codeOrToken: string;
@@ -56,4 +61,8 @@ export interface IOAuthToken {
56
61
  expiresIn: number;
57
62
  accessToken: string;
58
63
  }
64
+ export declare enum OAuthEvent {
65
+ POPUP_OPENED = "POPUP_OPENED",
66
+ POPUP_CLOSED = "POPUP_CLOSED"
67
+ }
59
68
  export type IOAuthPopUpMessageParser = (event: MessageEvent) => IOAuthPopUpDto;
package/cjs/OAuthBase.js CHANGED
@@ -9,9 +9,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OAuthBase = void 0;
12
+ exports.OAuthEvent = exports.OAuthBase = void 0;
13
13
  const common_1 = require("@ts-core/common");
14
14
  const _ = require("lodash");
15
+ const rxjs_1 = require("rxjs");
15
16
  class OAuthBase extends common_1.LoggerWrapper {
16
17
  constructor(logger, applicationId, window) {
17
18
  super(logger);
@@ -24,6 +25,7 @@ class OAuthBase extends common_1.LoggerWrapper {
24
25
  };
25
26
  this.messageHandler = (event) => this.parsePopUpResult(this.popUpMessageParser(event));
26
27
  this.http = new common_1.TransportHttp(logger, { method: 'get' });
28
+ this.subject = new rxjs_1.Subject();
27
29
  this.popUpWidth = 430;
28
30
  this.popUpHeight = 520;
29
31
  this.popUpTarget = '_blank';
@@ -43,6 +45,7 @@ class OAuthBase extends common_1.LoggerWrapper {
43
45
  }
44
46
  this.promise = common_1.PromiseHandler.create();
45
47
  this.popUp = this.popUpOpen();
48
+ this.subject.next(new common_1.ObservableData(OAuthEvent.POPUP_OPENED, this.popUp));
46
49
  this.popUpFocus();
47
50
  if (this.popUpIsCheckClose) {
48
51
  this.popUpCheckCloseTimer = setInterval(this.popUpCheckClose, common_1.DateUtil.MILLISECONDS_SECOND / 10);
@@ -109,6 +112,9 @@ class OAuthBase extends common_1.LoggerWrapper {
109
112
  close() {
110
113
  this.window.removeEventListener('message', this.messageHandler, false);
111
114
  this.popUpCheckCloseTimer = null;
115
+ if (!_.isNil(this.subject)) {
116
+ this.subject.next(new common_1.ObservableData(OAuthEvent.POPUP_CLOSED, this.popUp));
117
+ }
112
118
  if (!_.isNil(this.popUp)) {
113
119
  this.popUp.close();
114
120
  this.popUp = null;
@@ -132,6 +138,10 @@ class OAuthBase extends common_1.LoggerWrapper {
132
138
  this.http.destroy();
133
139
  this.http = null;
134
140
  }
141
+ if (!_.isNil(this.subject)) {
142
+ this.subject.complete();
143
+ this.subject = null;
144
+ }
135
145
  }
136
146
  get popUpCheckCloseTimer() {
137
147
  return this._popUpCheckCloseTimer;
@@ -149,6 +159,20 @@ class OAuthBase extends common_1.LoggerWrapper {
149
159
  get state() {
150
160
  return !_.isNil(this.urlParams) ? this.urlParams.get('state') : null;
151
161
  }
162
+ get events() {
163
+ return !_.isNil(this.subject) ? this.subject.asObservable() : null;
164
+ }
165
+ get popUpClosed() {
166
+ return this.events.pipe((0, rxjs_1.filter)(item => item.type === OAuthEvent.POPUP_CLOSED), (0, rxjs_1.map)(item => item.data));
167
+ }
168
+ get popUpOpened() {
169
+ return this.events.pipe((0, rxjs_1.filter)(item => item.type === OAuthEvent.POPUP_OPENED), (0, rxjs_1.map)(item => item.data));
170
+ }
152
171
  }
153
172
  exports.OAuthBase = OAuthBase;
154
173
  OAuthBase.ERROR_WINDOW_CLOSED = 'WINDOW_CLOSED';
174
+ var OAuthEvent;
175
+ (function (OAuthEvent) {
176
+ OAuthEvent["POPUP_OPENED"] = "POPUP_OPENED";
177
+ OAuthEvent["POPUP_CLOSED"] = "POPUP_CLOSED";
178
+ })(OAuthEvent = exports.OAuthEvent || (exports.OAuthEvent = {}));
@@ -1,4 +1,5 @@
1
- import { PromiseHandler, LoggerWrapper, ILogger, TransportHttp } from "@ts-core/common";
1
+ import { PromiseHandler, ObservableData, LoggerWrapper, ILogger, TransportHttp } from "@ts-core/common";
2
+ import { Observable, Subject } from "rxjs";
2
3
  export declare abstract class OAuthBase<T = any> extends LoggerWrapper {
3
4
  protected applicationId: string;
4
5
  protected window?: Window;
@@ -10,6 +11,7 @@ export declare abstract class OAuthBase<T = any> extends LoggerWrapper {
10
11
  popUpMessageParser: IOAuthPopUpMessageParser;
11
12
  redirectUri: string;
12
13
  protected http: TransportHttp;
14
+ protected subject: Subject<ObservableData<OAuthEvent, Window>>;
13
15
  protected popUp: Window;
14
16
  protected promise: PromiseHandler<IOAuthDto>;
15
17
  protected responseType: string;
@@ -37,6 +39,9 @@ export declare abstract class OAuthBase<T = any> extends LoggerWrapper {
37
39
  protected set popUpCheckCloseTimer(value: any);
38
40
  get urlParams(): Map<string, string>;
39
41
  get state(): string;
42
+ get events(): Observable<ObservableData<OAuthEvent, Window>>;
43
+ get popUpClosed(): Observable<Window>;
44
+ get popUpOpened(): Observable<Window>;
40
45
  }
41
46
  export interface IOAuthDto {
42
47
  codeOrToken: string;
@@ -56,4 +61,8 @@ export interface IOAuthToken {
56
61
  expiresIn: number;
57
62
  accessToken: string;
58
63
  }
64
+ export declare enum OAuthEvent {
65
+ POPUP_OPENED = "POPUP_OPENED",
66
+ POPUP_CLOSED = "POPUP_CLOSED"
67
+ }
59
68
  export type IOAuthPopUpMessageParser = (event: MessageEvent) => IOAuthPopUpDto;
package/esm/OAuthBase.js CHANGED
@@ -7,8 +7,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { PromiseHandler, DateUtil, LoggerWrapper, TransportHttp, RandomUtil } from "@ts-core/common";
10
+ import { PromiseHandler, DateUtil, ObservableData, LoggerWrapper, TransportHttp, RandomUtil } from "@ts-core/common";
11
11
  import * as _ from 'lodash';
12
+ import { filter, map, Subject } from "rxjs";
12
13
  export class OAuthBase extends LoggerWrapper {
13
14
  constructor(logger, applicationId, window) {
14
15
  super(logger);
@@ -21,6 +22,7 @@ export class OAuthBase extends LoggerWrapper {
21
22
  };
22
23
  this.messageHandler = (event) => this.parsePopUpResult(this.popUpMessageParser(event));
23
24
  this.http = new TransportHttp(logger, { method: 'get' });
25
+ this.subject = new Subject();
24
26
  this.popUpWidth = 430;
25
27
  this.popUpHeight = 520;
26
28
  this.popUpTarget = '_blank';
@@ -40,6 +42,7 @@ export class OAuthBase extends LoggerWrapper {
40
42
  }
41
43
  this.promise = PromiseHandler.create();
42
44
  this.popUp = this.popUpOpen();
45
+ this.subject.next(new ObservableData(OAuthEvent.POPUP_OPENED, this.popUp));
43
46
  this.popUpFocus();
44
47
  if (this.popUpIsCheckClose) {
45
48
  this.popUpCheckCloseTimer = setInterval(this.popUpCheckClose, DateUtil.MILLISECONDS_SECOND / 10);
@@ -106,6 +109,9 @@ export class OAuthBase extends LoggerWrapper {
106
109
  close() {
107
110
  this.window.removeEventListener('message', this.messageHandler, false);
108
111
  this.popUpCheckCloseTimer = null;
112
+ if (!_.isNil(this.subject)) {
113
+ this.subject.next(new ObservableData(OAuthEvent.POPUP_CLOSED, this.popUp));
114
+ }
109
115
  if (!_.isNil(this.popUp)) {
110
116
  this.popUp.close();
111
117
  this.popUp = null;
@@ -129,6 +135,10 @@ export class OAuthBase extends LoggerWrapper {
129
135
  this.http.destroy();
130
136
  this.http = null;
131
137
  }
138
+ if (!_.isNil(this.subject)) {
139
+ this.subject.complete();
140
+ this.subject = null;
141
+ }
132
142
  }
133
143
  get popUpCheckCloseTimer() {
134
144
  return this._popUpCheckCloseTimer;
@@ -146,5 +156,19 @@ export class OAuthBase extends LoggerWrapper {
146
156
  get state() {
147
157
  return !_.isNil(this.urlParams) ? this.urlParams.get('state') : null;
148
158
  }
159
+ get events() {
160
+ return !_.isNil(this.subject) ? this.subject.asObservable() : null;
161
+ }
162
+ get popUpClosed() {
163
+ return this.events.pipe(filter(item => item.type === OAuthEvent.POPUP_CLOSED), map(item => item.data));
164
+ }
165
+ get popUpOpened() {
166
+ return this.events.pipe(filter(item => item.type === OAuthEvent.POPUP_OPENED), map(item => item.data));
167
+ }
149
168
  }
150
169
  OAuthBase.ERROR_WINDOW_CLOSED = 'WINDOW_CLOSED';
170
+ export var OAuthEvent;
171
+ (function (OAuthEvent) {
172
+ OAuthEvent["POPUP_OPENED"] = "POPUP_OPENED";
173
+ OAuthEvent["POPUP_CLOSED"] = "POPUP_CLOSED";
174
+ })(OAuthEvent || (OAuthEvent = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ts-core/oauth",
3
- "version": "3.0.18",
3
+ "version": "3.0.19",
4
4
  "description": "Classes and utils for oauth",
5
5
  "main": "./cjs/public-api.js",
6
6
  "module": "./esm/public-api.js",