@rc-ex/core 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +4 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +7 -1
- package/samples.md +0 -8926
package/lib/index.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ import Scim from './paths/Scim';
|
|
|
6
6
|
import SdkExtension from './SdkExtension';
|
|
7
7
|
import Analytics from './paths/Analytics';
|
|
8
8
|
import { RestRequestConfig, RestResponse, RingCentralInterface, RestMethod, RestOptions } from './types';
|
|
9
|
+
declare type JwtFlowOptions = {
|
|
10
|
+
jwt: string;
|
|
11
|
+
};
|
|
9
12
|
declare type PasswordFlowOptions = {
|
|
10
13
|
username: string;
|
|
11
14
|
extension?: string;
|
|
@@ -40,7 +43,7 @@ declare class RingCentral implements RingCentralInterface {
|
|
|
40
43
|
put<T>(endpoint: string, content?: {}, queryParams?: {}, config?: RestRequestConfig): Promise<RestResponse<T>>;
|
|
41
44
|
patch<T>(endpoint: string, content: {}, queryParams?: {}, config?: RestRequestConfig): Promise<RestResponse<T>>;
|
|
42
45
|
getToken(getTokenRequest: GetTokenRequest): Promise<TokenInfo>;
|
|
43
|
-
authorize(options: PasswordFlowOptions | AuthCodeFlowOptions): Promise<TokenInfo>;
|
|
46
|
+
authorize(options: PasswordFlowOptions | AuthCodeFlowOptions | JwtFlowOptions): Promise<TokenInfo>;
|
|
44
47
|
/**
|
|
45
48
|
* Each time you call token endpoint using this flow a new client session starts.
|
|
46
49
|
* It is associated with the issued token pair: access token and refresh token, returned in response to this request.
|
package/lib/index.js
CHANGED
|
@@ -72,6 +72,10 @@ class RingCentral {
|
|
|
72
72
|
// PKCE: https://medium.com/ringcentral-developers/use-authorization-code-pkce-for-ringcentral-api-in-client-app-e9108f04b5f0
|
|
73
73
|
getTokenRequest.code_verifier = options.code_verifier;
|
|
74
74
|
}
|
|
75
|
+
else if ('jwt' in options) {
|
|
76
|
+
getTokenRequest.grant_type = 'urn:ietf:params:oauth:grant-type:jwt-bearer';
|
|
77
|
+
getTokenRequest.assertion = options.jwt;
|
|
78
|
+
}
|
|
75
79
|
else {
|
|
76
80
|
throw new Error('Unsupported authorization flow');
|
|
77
81
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAG1B,8DAAsC;AACtC,wDAAgC;AAEhC,kEAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rc-ex/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Core for ringcentral-extensible project",
|
|
5
5
|
"author": "Tyler Liu <tyler.liu@ringcentral.com>",
|
|
6
6
|
"homepage": "https://github.com/ringcentral/ringcentral-extensible/tree/master/packages/core",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"dotenv-override-true": "^6.2.2",
|
|
28
28
|
"ringcentral-code-generator": "^0.5.1",
|
|
29
|
-
"ts-node": "^10.
|
|
29
|
+
"ts-node": "^10.9.1"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"generate": "ts-node -r dotenv-override-true/config code-generator.ts"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "0b6419f4422695bbbd4de58fb20fdd5398ca8271"
|
|
35
35
|
}
|
package/src/index.ts
CHANGED
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
RestOptions,
|
|
12
12
|
} from './types';
|
|
13
13
|
|
|
14
|
+
type JwtFlowOptions = {
|
|
15
|
+
jwt: string;
|
|
16
|
+
};
|
|
14
17
|
type PasswordFlowOptions = {
|
|
15
18
|
username: string;
|
|
16
19
|
extension?: string;
|
|
@@ -145,7 +148,7 @@ class RingCentral implements RingCentralInterface {
|
|
|
145
148
|
}
|
|
146
149
|
|
|
147
150
|
async authorize(
|
|
148
|
-
options: PasswordFlowOptions | AuthCodeFlowOptions,
|
|
151
|
+
options: PasswordFlowOptions | AuthCodeFlowOptions | JwtFlowOptions,
|
|
149
152
|
): Promise<TokenInfo> {
|
|
150
153
|
const getTokenRequest: GetTokenRequest = {};
|
|
151
154
|
if ('username' in options) {
|
|
@@ -159,6 +162,9 @@ class RingCentral implements RingCentralInterface {
|
|
|
159
162
|
getTokenRequest.redirect_uri = options.redirect_uri;
|
|
160
163
|
// PKCE: https://medium.com/ringcentral-developers/use-authorization-code-pkce-for-ringcentral-api-in-client-app-e9108f04b5f0
|
|
161
164
|
getTokenRequest.code_verifier = options.code_verifier;
|
|
165
|
+
} else if ('jwt' in options) {
|
|
166
|
+
getTokenRequest.grant_type = 'urn:ietf:params:oauth:grant-type:jwt-bearer';
|
|
167
|
+
getTokenRequest.assertion = options.jwt;
|
|
162
168
|
} else {
|
|
163
169
|
throw new Error('Unsupported authorization flow');
|
|
164
170
|
}
|