@point3/logto-module 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/__tests__/m2m-client.spec.js +16 -14
- package/dist/client/__tests__/m2m-client.spec.js.map +1 -1
- package/dist/client/__tests__/oauth-client.spec.js +17 -15
- package/dist/client/__tests__/oauth-client.spec.js.map +1 -1
- package/dist/client/config.js +7 -4
- package/dist/client/config.js.map +1 -1
- package/dist/client/index.js +21 -5
- package/dist/client/index.js.map +1 -1
- package/dist/client/logto-login-session.js +23 -17
- package/dist/client/logto-login-session.js.map +1 -1
- package/dist/client/m2m-client.js +33 -29
- package/dist/client/m2m-client.js.map +1 -1
- package/dist/client/oauth-client.js +32 -26
- package/dist/client/oauth-client.js.map +1 -1
- package/dist/client/types.js +17 -10
- package/dist/client/types.js.map +1 -1
- package/dist/errors.js +19 -8
- package/dist/errors.js.map +1 -1
- package/dist/index.js +40 -4
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts +1 -1
- package/dist/module.js +25 -20
- package/dist/module.js.map +1 -1
- package/dist/stateless/decorator.js +7 -4
- package/dist/stateless/decorator.js.map +1 -1
- package/dist/stateless/guard.js +56 -20
- package/dist/stateless/guard.js.map +1 -1
- package/dist/stateless/guard.spec.js +24 -22
- package/dist/stateless/guard.spec.js.map +1 -1
- package/dist/stateless/index.js +18 -2
- package/dist/stateless/index.js.map +1 -1
- package/dist/token/access-token.js +5 -1
- package/dist/token/access-token.js.map +1 -1
- package/dist/token/index.js +18 -2
- package/dist/token/index.js.map +1 -1
- package/dist/token/verifier.js +18 -15
- package/dist/token/verifier.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/module.ts +4 -1
- package/package.json +1 -1
- package/tsconfig.json +1 -2
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testing_1 = require("@nestjs/testing");
|
|
4
|
+
const config_1 = require("@nestjs/config");
|
|
5
|
+
const point3_common_tool_1 = require("point3-common-tool");
|
|
6
|
+
const __1 = require("..");
|
|
7
|
+
const token_1 = require("../../token");
|
|
8
|
+
const common_1 = require("@nestjs/common");
|
|
7
9
|
describe('M2mclient를 이용한 Logto API 테스트', () => {
|
|
8
10
|
let m2mClient;
|
|
9
11
|
let testUser;
|
|
10
12
|
let testUserId = 'bead71jr45u1';
|
|
11
13
|
let testRoleId = '0fwcgs8okjy7lav216sb3';
|
|
12
14
|
beforeAll(async () => {
|
|
13
|
-
const module = await Test.createTestingModule({
|
|
15
|
+
const module = await testing_1.Test.createTestingModule({
|
|
14
16
|
imports: [
|
|
15
|
-
ConfigModule.forRoot({
|
|
17
|
+
config_1.ConfigModule.forRoot({
|
|
16
18
|
envFilePath: `env/.env.${process.env.NODE_ENV}`,
|
|
17
19
|
isGlobal: true,
|
|
18
20
|
})
|
|
19
21
|
],
|
|
20
22
|
providers: [
|
|
21
23
|
{
|
|
22
|
-
provide: LogtoTokenVerifierToken,
|
|
23
|
-
useClass: LogtoTokenVerifier
|
|
24
|
+
provide: token_1.LogtoTokenVerifierToken,
|
|
25
|
+
useClass: token_1.LogtoTokenVerifier
|
|
24
26
|
},
|
|
25
27
|
{
|
|
26
|
-
provide: LogtoLoggerServiceToken,
|
|
27
|
-
useClass: ConsoleLogger
|
|
28
|
+
provide: __1.LogtoLoggerServiceToken,
|
|
29
|
+
useClass: common_1.ConsoleLogger
|
|
28
30
|
}
|
|
29
31
|
],
|
|
30
32
|
}).compile();
|
|
31
|
-
m2mClient = module.get(LogtoM2MClientToken);
|
|
33
|
+
m2mClient = module.get(__1.LogtoM2MClientToken);
|
|
32
34
|
const randomNumber = Math.floor(1000 + Math.random() * 9000);
|
|
33
35
|
testUser = {
|
|
34
|
-
username: p3Values.Guid.create('test').toString().replace(/-/g, '_'),
|
|
36
|
+
username: point3_common_tool_1.p3Values.Guid.create('test').toString().replace(/-/g, '_'),
|
|
35
37
|
name: 'test' + randomNumber,
|
|
36
38
|
primaryEmail: 'test' + randomNumber + '@test.com',
|
|
37
39
|
password: 'test123',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"m2m-client.spec.js","sourceRoot":"","sources":["../../../client/__tests__/m2m-client.spec.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"m2m-client.spec.js","sourceRoot":"","sources":["../../../client/__tests__/m2m-client.spec.ts"],"names":[],"mappings":";;AACA,6CAAsD;AACtD,2CAA8C;AAC9C,2DAA8C;AAE9C,0BAA6F;AAC7F,uCAA0E;AAC1E,2CAA+C;AAE/C,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,IAAI,SAAyB,CAAC;IAC9B,IAAI,QAAoB,CAAC;IACzB,IAAI,UAAU,GAAY,cAAc,CAAC;IACzC,IAAI,UAAU,GAAY,uBAAuB,CAAC;IAClD,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAkB,MAAM,cAAI,CAAC,mBAAmB,CAAC;YACzD,OAAO,EAAE;gBACL,qBAAY,CAAC,OAAO,CAAC;oBACjB,WAAW,EAAE,YAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC/C,QAAQ,EAAE,IAAI;iBACjB,CAAC;aACL;YACD,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,+BAAuB;oBAChC,QAAQ,EAAE,0BAAkB;iBAC/B;gBACD;oBACI,OAAO,EAAE,2BAAuB;oBAChC,QAAQ,EAAE,sBAAa;iBAC1B;aACJ;SACJ,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,GAAG,MAAM,CAAC,GAAG,CAAiB,uBAAmB,CAAC,CAAC;QAG5D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7D,QAAQ,GAAG;YACP,QAAQ,EAAE,6BAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YACpE,IAAI,EAAE,MAAM,GAAG,YAAY;YAC3B,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW;YACjD,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,SAAS,GAAG,YAAY;SACzC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,UAAU,GAAG,MAAM,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACnB,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACtB,MAAM,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testing_1 = require("@nestjs/testing");
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const config_1 = require("@nestjs/config");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const token_1 = require("../../token");
|
|
6
8
|
describe('OAuthClient', () => {
|
|
7
9
|
let oauthClient;
|
|
8
10
|
beforeEach(async () => {
|
|
9
|
-
const testingModule = await Test.createTestingModule({
|
|
11
|
+
const testingModule = await testing_1.Test.createTestingModule({
|
|
10
12
|
imports: [
|
|
11
|
-
ConfigModule.forRoot({
|
|
13
|
+
config_1.ConfigModule.forRoot({
|
|
12
14
|
envFilePath: `env/.env.${process.env.NODE_ENV}`,
|
|
13
15
|
isGlobal: true,
|
|
14
16
|
}),
|
|
15
17
|
],
|
|
16
18
|
providers: [
|
|
17
19
|
{
|
|
18
|
-
provide: LogtoLoggerServiceToken,
|
|
19
|
-
useClass: ConsoleLogger
|
|
20
|
+
provide: __1.LogtoLoggerServiceToken,
|
|
21
|
+
useClass: common_1.ConsoleLogger
|
|
20
22
|
},
|
|
21
23
|
{
|
|
22
|
-
provide: OAuthClientToken,
|
|
23
|
-
useClass: OAuthClient
|
|
24
|
+
provide: __1.OAuthClientToken,
|
|
25
|
+
useClass: __1.OAuthClient
|
|
24
26
|
},
|
|
25
27
|
{
|
|
26
|
-
provide: LogtoTokenVerifierToken,
|
|
27
|
-
useClass: LogtoTokenVerifier
|
|
28
|
+
provide: token_1.LogtoTokenVerifierToken,
|
|
29
|
+
useClass: token_1.LogtoTokenVerifier
|
|
28
30
|
}
|
|
29
31
|
],
|
|
30
32
|
}).compile();
|
|
31
|
-
oauthClient = testingModule.get(OAuthClientToken);
|
|
33
|
+
oauthClient = testingModule.get(__1.OAuthClientToken);
|
|
32
34
|
});
|
|
33
35
|
it('로그인/ 회원가입을 위한 로그인 페이지 요청 URI 생성', () => {
|
|
34
|
-
const uri = oauthClient.getSignInURI(SignInType.Admin);
|
|
36
|
+
const uri = oauthClient.getSignInURI(__1.SignInType.Admin);
|
|
35
37
|
expect(uri).toContain('prompt=login');
|
|
36
38
|
});
|
|
37
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client.spec.js","sourceRoot":"","sources":["../../../client/__tests__/oauth-client.spec.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"oauth-client.spec.js","sourceRoot":"","sources":["../../../client/__tests__/oauth-client.spec.ts"],"names":[],"mappings":";;AAAA,6CAAuC;AACvC,0BAAwF;AACxF,2CAA8C;AAC9C,2CAA+C;AAC/C,uCAA0E;AAE1E,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,IAAI,WAAwB,CAAC;IAE7B,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,aAAa,GAAG,MAAM,cAAI,CAAC,mBAAmB,CAAC;YACjD,OAAO,EAAE;gBACL,qBAAY,CAAC,OAAO,CAAC;oBACnB,WAAW,EAAE,YAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC/C,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH;YACH,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,2BAAuB;oBAChC,QAAQ,EAAE,sBAAa;iBAC1B;gBACD;oBACI,OAAO,EAAE,oBAAgB;oBACzB,QAAQ,EAAE,eAAW;iBACxB;gBACD;oBACI,OAAO,EAAE,+BAAuB;oBAChC,QAAQ,EAAE,0BAAkB;iBAC/B;aACJ;SACJ,CAAC,CAAC,OAAO,EAAE,CAAC;QAEb,WAAW,GAAG,aAAa,CAAC,GAAG,CAAc,oBAAgB,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAEvC,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,cAAU,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/dist/client/config.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrantType = exports.Prompt = void 0;
|
|
4
|
+
var Prompt;
|
|
2
5
|
(function (Prompt) {
|
|
3
6
|
Prompt["None"] = "none";
|
|
4
7
|
Prompt["Consent"] = "consent";
|
|
5
8
|
Prompt["Login"] = "login";
|
|
6
|
-
})(Prompt || (Prompt = {}));
|
|
7
|
-
|
|
9
|
+
})(Prompt || (exports.Prompt = Prompt = {}));
|
|
10
|
+
var GrantType;
|
|
8
11
|
(function (GrantType) {
|
|
9
12
|
GrantType["AuthorizationCode"] = "authorization_code";
|
|
10
13
|
GrantType["ClientCredentials"] = "client_credentials";
|
|
11
14
|
GrantType["RefreshToken"] = "refresh_token";
|
|
12
|
-
})(GrantType || (GrantType = {}));
|
|
15
|
+
})(GrantType || (exports.GrantType = GrantType = {}));
|
|
13
16
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../client/config.ts"],"names":[],"mappings":"AA4DA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../client/config.ts"],"names":[],"mappings":";;;AA4DA,IAAY,MAIX;AAJD,WAAY,MAAM;IACd,uBAAa,CAAA;IACb,6BAAmB,CAAA;IACnB,yBAAe,CAAA;AACnB,CAAC,EAJW,MAAM,sBAAN,MAAM,QAIjB;AAUD,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,qDAAwC,CAAA;IACxC,qDAAwC,CAAA;IACxC,2CAA8B,CAAA;AAClC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./config"), exports);
|
|
18
|
+
__exportStar(require("./m2m-client"), exports);
|
|
19
|
+
__exportStar(require("./oauth-client"), exports);
|
|
20
|
+
__exportStar(require("./logto-login-session"), exports);
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
6
22
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,iDAA+B;AAC/B,wDAAsC;AACtC,0CAAwB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -10,23 +11,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
13
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.LogtoLoginSession = exports.LogtoLoginSessionToken = void 0;
|
|
19
|
+
const common_1 = require("@nestjs/common");
|
|
20
|
+
const config_1 = require("@nestjs/config");
|
|
21
|
+
const axios_1 = __importDefault(require("axios"));
|
|
22
|
+
const oauth_client_1 = require("./oauth-client");
|
|
23
|
+
const types_1 = require("./types");
|
|
24
|
+
exports.LogtoLoginSessionToken = Symbol.for("LogtoLoginSession");
|
|
19
25
|
let LogtoLoginSession = class LogtoLoginSession {
|
|
20
26
|
constructor(logger, configService, oauthClient) {
|
|
21
27
|
this.logger = logger;
|
|
22
28
|
this.configService = configService;
|
|
23
29
|
this.oauthClient = oauthClient;
|
|
24
30
|
const baseURL = this.configService.get("LOGTO_M2M_API_URL");
|
|
25
|
-
this.apiRestTemplate = new LogtoOAuthRESTTemplate(this.logger, baseURL);
|
|
31
|
+
this.apiRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, baseURL);
|
|
26
32
|
}
|
|
27
33
|
async createSignInSession(signInType) {
|
|
28
34
|
const { uri, state } = this.oauthClient.getSignInURI(signInType);
|
|
29
|
-
const response = await
|
|
35
|
+
const response = await axios_1.default.get(uri, {
|
|
30
36
|
maxRedirects: 0,
|
|
31
37
|
validateStatus: (status) => status >= 200 && status <= 400,
|
|
32
38
|
withCredentials: true,
|
|
@@ -89,7 +95,7 @@ let LogtoLoginSession = class LogtoLoginSession {
|
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
97
|
async redirectToConsent(redirectTo, cookie) {
|
|
92
|
-
const response = await
|
|
98
|
+
const response = await axios_1.default.get(redirectTo, {
|
|
93
99
|
maxRedirects: 0,
|
|
94
100
|
validateStatus: (status) => status >= 200 && status <= 400,
|
|
95
101
|
withCredentials: true,
|
|
@@ -110,13 +116,13 @@ let LogtoLoginSession = class LogtoLoginSession {
|
|
|
110
116
|
}
|
|
111
117
|
}
|
|
112
118
|
};
|
|
113
|
-
LogtoLoginSession =
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
__param(
|
|
117
|
-
__param(
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
exports.LogtoLoginSession = LogtoLoginSession;
|
|
120
|
+
exports.LogtoLoginSession = LogtoLoginSession = __decorate([
|
|
121
|
+
(0, common_1.Injectable)(),
|
|
122
|
+
__param(0, (0, common_1.Inject)(types_1.LogtoLoggerServiceToken)),
|
|
123
|
+
__param(1, (0, common_1.Inject)(config_1.ConfigService)),
|
|
124
|
+
__param(2, (0, common_1.Inject)(oauth_client_1.OAuthClientToken)),
|
|
125
|
+
__metadata("design:paramtypes", [Object, config_1.ConfigService,
|
|
126
|
+
oauth_client_1.OAuthClient])
|
|
120
127
|
], LogtoLoginSession);
|
|
121
|
-
export { LogtoLoginSession };
|
|
122
128
|
//# sourceMappingURL=logto-login-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logto-login-session.js","sourceRoot":"","sources":["../../client/logto-login-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logto-login-session.js","sourceRoot":"","sources":["../../client/logto-login-session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,2CAA+C;AAC/C,kDAA6C;AAG7C,iDAIwB;AAExB,mCAGiB;AAGJ,QAAA,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAoB/D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAa1B,YAEqB,MAAqB,EAGrB,aAA4B,EAG5B,WAAwB;QANxB,WAAM,GAAN,MAAM,CAAe;QAGrB,kBAAa,GAAb,aAAa,CAAe;QAG5B,gBAAW,GAAX,WAAW,CAAa;QAGzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,mBAAmB,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,GAAG,IAAI,8BAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAUM,KAAK,CAAC,mBAAmB,CAC5B,UAAsB;QAEtB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClC,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;YAC1D,eAAe,EAAE,IAAI;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAWM,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACxC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC3C,aAAa,EACb,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAC9B;gBACI,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,MAAM;iBACjB;gBACD,eAAe,EAAE,IAAI;aACxB,CACJ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAUM,KAAK,CAAC,oBAAoB,CAC7B,MAAc,EACd,GAMC;QAED,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAC5C,mCAAmC,EACnC;gBACI,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACzB,EACD;gBACI,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3B,eAAe,EAAE,IAAI;aACxB,CACJ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAUM,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,cAAsB;QACxD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAC5C,4BAA4B,EAC5B,EAAE,cAAc,EAAE,EAClB;gBACI,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3B,eAAe,EAAE,IAAI;aACxB,CACJ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IASM,KAAK,CAAC,MAAM,CAAC,MAAc;QAC9B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAC5C,oBAAoB,EACpB,EAAE,EACF;gBACI,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3B,eAAe,EAAE,IAAI;aACxB,CACJ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAWM,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,MAAc;QAC7D,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,UAAU,EAAE;YACzC,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;YAC1D,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;SAC9B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IASM,KAAK,CAAC,OAAO,CAAC,MAAc;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAC5C,sBAAsB,EACtB,EAAE,EACF;gBACI,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3B,eAAe,EAAE,IAAI;aACxB,CACJ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ,CAAA;AAzMY,8CAAiB;4BAAjB,iBAAiB;IAlB7B,IAAA,mBAAU,GAAE;IAgCJ,WAAA,IAAA,eAAM,EAAC,+BAAuB,CAAC,CAAA;IAG/B,WAAA,IAAA,eAAM,EAAC,sBAAa,CAAC,CAAA;IAGrB,WAAA,IAAA,eAAM,EAAC,+BAAgB,CAAC,CAAA;6CAFO,sBAAa;QAGf,0BAAW;GArBpC,iBAAiB,CAyM7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -10,14 +11,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
13
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.LogtoM2MClient = exports.LogtoM2MClientToken = void 0;
|
|
16
|
+
exports.generatePhoneNumberWithCountryCode = generatePhoneNumberWithCountryCode;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const config_1 = require("@nestjs/config");
|
|
19
|
+
const config_2 = require("./config");
|
|
20
|
+
const token_1 = require("../token");
|
|
21
|
+
const types_1 = require("./types");
|
|
22
|
+
const point3_common_tool_1 = require("point3-common-tool");
|
|
23
|
+
const errors_1 = require("../errors");
|
|
24
|
+
exports.LogtoM2MClientToken = Symbol.for("LogtoM2MClient");
|
|
21
25
|
let LogtoM2MClient = class LogtoM2MClient {
|
|
22
26
|
constructor(configService, tokenVerifier, logger) {
|
|
23
27
|
this.configService = configService;
|
|
@@ -29,11 +33,11 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
29
33
|
appSecret: this.configService.get('LOGTO_M2M_CLIENT_SECRET'),
|
|
30
34
|
scopes: ['all'],
|
|
31
35
|
resources: [this.configService.get('LOGTO_M2M_RESOURCE')],
|
|
32
|
-
grantType: GrantType.ClientCredentials,
|
|
36
|
+
grantType: config_2.GrantType.ClientCredentials,
|
|
33
37
|
};
|
|
34
|
-
this.authRestTemplate = new LogtoOAuthRESTTemplate(this.logger, this.logtoConfig.endpoint);
|
|
38
|
+
this.authRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, this.logtoConfig.endpoint);
|
|
35
39
|
this.authRestTemplate.setBasic(this.logtoConfig.appId, this.logtoConfig.appSecret);
|
|
36
|
-
this.apiRestTemplate = new LogtoOAuthRESTTemplate(this.logger, this.configService.get('LOGTO_M2M_API_URL'));
|
|
40
|
+
this.apiRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, this.configService.get('LOGTO_M2M_API_URL'));
|
|
37
41
|
}
|
|
38
42
|
async fetchAccessToken() {
|
|
39
43
|
const params = new URLSearchParams();
|
|
@@ -45,7 +49,7 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
45
49
|
});
|
|
46
50
|
const { access_token, expires_in } = response.data;
|
|
47
51
|
const payload = await this.tokenVerifier.verifyToken(access_token);
|
|
48
|
-
this.accessToken = new AccessToken(payload.sub, access_token, expires_in);
|
|
52
|
+
this.accessToken = new token_1.AccessToken(payload.sub, access_token, expires_in);
|
|
49
53
|
this.apiRestTemplate.setBearer(access_token);
|
|
50
54
|
}
|
|
51
55
|
async getAccessToken() {
|
|
@@ -74,7 +78,7 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
74
78
|
type: role.type,
|
|
75
79
|
};
|
|
76
80
|
const response = await this.apiRestTemplate.post('/roles', body);
|
|
77
|
-
if (response instanceof axiosAdapter.ValidationError) {
|
|
81
|
+
if (response instanceof point3_common_tool_1.axiosAdapter.ValidationError) {
|
|
78
82
|
if (response.code === 'role.name_in_use') {
|
|
79
83
|
this.logger.error(`이미 존재하는 역할: ${response.code}`, this.constructor.name);
|
|
80
84
|
return this.getRoleByName(role.name);
|
|
@@ -92,12 +96,12 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
92
96
|
async createUser(user) {
|
|
93
97
|
await this.getAccessToken();
|
|
94
98
|
if (user.username && user.primaryEmail && user.password && user.primaryPhone && user.name) {
|
|
95
|
-
user.passwordAlgorithm = user.passwordAlgorithm ?? LogtoPasswordAlgorithm.Argon2i;
|
|
99
|
+
user.passwordAlgorithm = user.passwordAlgorithm ?? types_1.LogtoPasswordAlgorithm.Argon2i;
|
|
96
100
|
const response = await this.apiRestTemplate.post('/users', user);
|
|
97
101
|
return response.data.id;
|
|
98
102
|
}
|
|
99
103
|
this.logger.error(`필수 필드 누락`, this.constructor.name);
|
|
100
|
-
throw new UserMissingRequiredFieldsError();
|
|
104
|
+
throw new errors_1.UserMissingRequiredFieldsError();
|
|
101
105
|
}
|
|
102
106
|
async updateUserClientInfo(userId, clientId) {
|
|
103
107
|
await this.getAccessToken();
|
|
@@ -125,11 +129,11 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
125
129
|
}
|
|
126
130
|
if (logtoUsers.length === 0) {
|
|
127
131
|
this.logger.error(`사용자 없음: email=${email}, phone=${phone}`, this.constructor.name);
|
|
128
|
-
throw new UserNotFoundError(email, phone);
|
|
132
|
+
throw new errors_1.UserNotFoundError(email, phone);
|
|
129
133
|
}
|
|
130
134
|
this.logger.error(`여러 사용자 발견: email=${email}, phone=${phone}`, this.constructor.name);
|
|
131
135
|
this.logger.error(JSON.stringify(logtoUsers), this.constructor.name);
|
|
132
|
-
throw new MultipleUsersFoundError(email, phone);
|
|
136
|
+
throw new errors_1.MultipleUsersFoundError(email, phone);
|
|
133
137
|
}
|
|
134
138
|
async getUserByUsername(username) {
|
|
135
139
|
await this.getAccessToken();
|
|
@@ -155,7 +159,7 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
155
159
|
}
|
|
156
160
|
async sendVerificationCode(identifier) {
|
|
157
161
|
await this.getAccessToken();
|
|
158
|
-
const method = identifier instanceof VerificationMethodType.email
|
|
162
|
+
const method = identifier instanceof types_1.VerificationMethodType.email
|
|
159
163
|
? "email"
|
|
160
164
|
: "phone";
|
|
161
165
|
await this.apiRestTemplate.post('/verification-codes', {
|
|
@@ -164,7 +168,7 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
164
168
|
}
|
|
165
169
|
async verifyCode(identifier, code) {
|
|
166
170
|
await this.getAccessToken();
|
|
167
|
-
const method = identifier instanceof VerificationMethodType.email
|
|
171
|
+
const method = identifier instanceof types_1.VerificationMethodType.email
|
|
168
172
|
? 'email'
|
|
169
173
|
: 'phone';
|
|
170
174
|
await this.apiRestTemplate.post(`/verification-codes/verify`, {
|
|
@@ -178,17 +182,17 @@ let LogtoM2MClient = class LogtoM2MClient {
|
|
|
178
182
|
return response.data;
|
|
179
183
|
}
|
|
180
184
|
};
|
|
181
|
-
LogtoM2MClient =
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
__param(
|
|
186
|
-
__param(
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
exports.LogtoM2MClient = LogtoM2MClient;
|
|
186
|
+
exports.LogtoM2MClient = LogtoM2MClient = __decorate([
|
|
187
|
+
(0, common_1.Global)(),
|
|
188
|
+
(0, common_1.Injectable)(),
|
|
189
|
+
__param(0, (0, common_1.Inject)(config_1.ConfigService)),
|
|
190
|
+
__param(1, (0, common_1.Inject)(token_1.LogtoTokenVerifierToken)),
|
|
191
|
+
__param(2, (0, common_1.Inject)(types_1.LogtoLoggerServiceToken)),
|
|
192
|
+
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
193
|
+
token_1.LogtoTokenVerifier, Object])
|
|
189
194
|
], LogtoM2MClient);
|
|
190
|
-
|
|
191
|
-
export function generatePhoneNumberWithCountryCode(countryCode, phoneNumber) {
|
|
195
|
+
function generatePhoneNumberWithCountryCode(countryCode, phoneNumber) {
|
|
192
196
|
if (phoneNumber.startsWith('0')) {
|
|
193
197
|
phoneNumber = phoneNumber.slice(1);
|
|
194
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"m2m-client.js","sourceRoot":"","sources":["../../client/m2m-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"m2m-client.js","sourceRoot":"","sources":["../../client/m2m-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -10,16 +11,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
13
|
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
13
17
|
var OAuthClient_1;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.SignInType = exports.OAuthClient = exports.OAuthClientToken = void 0;
|
|
20
|
+
const common_1 = require("@nestjs/common");
|
|
21
|
+
const axios_1 = __importDefault(require("axios"));
|
|
22
|
+
const config_1 = require("./config");
|
|
23
|
+
const config_2 = require("@nestjs/config");
|
|
24
|
+
const point3_common_tool_1 = require("point3-common-tool");
|
|
25
|
+
const errors_1 = require("../errors");
|
|
26
|
+
const types_1 = require("./types");
|
|
27
|
+
const Gulid = point3_common_tool_1.p3Values.Gulid;
|
|
28
|
+
exports.OAuthClientToken = "OAuthClient";
|
|
23
29
|
let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
24
30
|
constructor(configService, logger) {
|
|
25
31
|
this.configService = configService;
|
|
@@ -32,9 +38,9 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
32
38
|
scopes: this.configService.get("LOGTO_SCOPES").split(","),
|
|
33
39
|
prompt: this.configService.get("LOGTO_PROMPT"),
|
|
34
40
|
redirectUri: this.configService.get("LOGTO_REDIRECT_URI"),
|
|
35
|
-
grantType: GrantType.AuthorizationCode,
|
|
41
|
+
grantType: config_1.GrantType.AuthorizationCode,
|
|
36
42
|
};
|
|
37
|
-
this.logtoRestTemplate = new LogtoOAuthRESTTemplate(logger, this.logtoConfig.endpoint);
|
|
43
|
+
this.logtoRestTemplate = new types_1.LogtoOAuthRESTTemplate(logger, this.logtoConfig.endpoint);
|
|
38
44
|
this.logtoRestTemplate.setBasic(this.logtoConfig.appId, this.logtoConfig.appSecret);
|
|
39
45
|
}
|
|
40
46
|
getSignInURI(signInType) {
|
|
@@ -63,7 +69,7 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
63
69
|
return { uri: uri.toString(), state: state.toString() };
|
|
64
70
|
}
|
|
65
71
|
catch (error) {
|
|
66
|
-
throw new SignInUriGenerationError(signInType);
|
|
72
|
+
throw new errors_1.SignInUriGenerationError(signInType);
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
async getSignOutURI() {
|
|
@@ -74,7 +80,7 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
74
80
|
return uri.toString();
|
|
75
81
|
}
|
|
76
82
|
catch (error) {
|
|
77
|
-
throw new SignOutUriGenerationError();
|
|
83
|
+
throw new errors_1.SignOutUriGenerationError();
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
86
|
async fetchTokenByAuthorizationCode(code) {
|
|
@@ -92,12 +98,12 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
92
98
|
};
|
|
93
99
|
}
|
|
94
100
|
catch (error) {
|
|
95
|
-
throw new AuthorizationCodeTokenFetchError(code);
|
|
101
|
+
throw new errors_1.AuthorizationCodeTokenFetchError(code);
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
async revokeToken(token) {
|
|
99
105
|
try {
|
|
100
|
-
const response = await
|
|
106
|
+
const response = await axios_1.default.post(`${this.logtoConfig.endpoint}/token/revoke`, new URLSearchParams({
|
|
101
107
|
token: token,
|
|
102
108
|
client_id: this.logtoConfig.appId,
|
|
103
109
|
}).toString(), {
|
|
@@ -105,25 +111,25 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
105
111
|
});
|
|
106
112
|
if (response.status === 200)
|
|
107
113
|
return;
|
|
108
|
-
throw new TokenRevocationFailedError();
|
|
114
|
+
throw new errors_1.TokenRevocationFailedError();
|
|
109
115
|
}
|
|
110
116
|
catch (error) {
|
|
111
|
-
throw new TokenRevocationFailedError();
|
|
117
|
+
throw new errors_1.TokenRevocationFailedError();
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
};
|
|
121
|
+
exports.OAuthClient = OAuthClient;
|
|
115
122
|
OAuthClient.prefix = "signin";
|
|
116
|
-
OAuthClient = OAuthClient_1 = __decorate([
|
|
117
|
-
Global(),
|
|
118
|
-
Injectable(),
|
|
119
|
-
__param(0, Inject(ConfigService)),
|
|
120
|
-
__param(1, Inject(LogtoLoggerServiceToken)),
|
|
121
|
-
__metadata("design:paramtypes", [ConfigService, Object])
|
|
123
|
+
exports.OAuthClient = OAuthClient = OAuthClient_1 = __decorate([
|
|
124
|
+
(0, common_1.Global)(),
|
|
125
|
+
(0, common_1.Injectable)(),
|
|
126
|
+
__param(0, (0, common_1.Inject)(config_2.ConfigService)),
|
|
127
|
+
__param(1, (0, common_1.Inject)(types_1.LogtoLoggerServiceToken)),
|
|
128
|
+
__metadata("design:paramtypes", [config_2.ConfigService, Object])
|
|
122
129
|
], OAuthClient);
|
|
123
|
-
|
|
124
|
-
export var SignInType;
|
|
130
|
+
var SignInType;
|
|
125
131
|
(function (SignInType) {
|
|
126
132
|
SignInType["Admin"] = "admin";
|
|
127
133
|
SignInType["Dashboard"] = "dashboard";
|
|
128
|
-
})(SignInType || (SignInType = {}));
|
|
134
|
+
})(SignInType || (exports.SignInType = SignInType = {}));
|
|
129
135
|
//# sourceMappingURL=oauth-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../../client/oauth-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../../client/oauth-client.ts"],"names":[],"mappings":"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"}
|