@croct/sdk 0.16.0 → 0.16.1
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/constants.d.ts +2 -2
- package/constants.js +1 -1
- package/package.json +1 -1
- package/src/token/token.ts +80 -24
- package/token/token.d.ts +12 -7
- package/token/token.js +39 -9
- package/token/token.js.map +1 -1
package/constants.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const BASE_ENDPOINT_URL = "https://api.croct.io";
|
|
2
2
|
export declare const MAX_QUERY_LENGTH: number;
|
|
3
|
-
export declare const VERSION = "0.16.
|
|
4
|
-
export declare const CLIENT_LIBRARY = "Croct SDK JS v0.16.
|
|
3
|
+
export declare const VERSION = "0.16.1";
|
|
4
|
+
export declare const CLIENT_LIBRARY = "Croct SDK JS v0.16.1";
|
package/constants.js
CHANGED
|
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CLIENT_LIBRARY = exports.VERSION = exports.MAX_QUERY_LENGTH = exports.BASE_ENDPOINT_URL = void 0;
|
|
4
4
|
exports.BASE_ENDPOINT_URL = 'https://api.croct.io';
|
|
5
5
|
exports.MAX_QUERY_LENGTH = 500;
|
|
6
|
-
exports.VERSION = '0.16.
|
|
6
|
+
exports.VERSION = '0.16.1';
|
|
7
7
|
exports.CLIENT_LIBRARY = `Croct SDK JS v${exports.VERSION}`;
|
|
8
8
|
//# sourceMappingURL=constants.js.map
|
package/package.json
CHANGED
package/src/token/token.ts
CHANGED
|
@@ -4,14 +4,14 @@ import {formatCause} from '../error';
|
|
|
4
4
|
import {ApiKey} from '../apiKey';
|
|
5
5
|
import {base64UrlDecode, base64UrlEncode} from '../base64Url';
|
|
6
6
|
|
|
7
|
-
export type
|
|
7
|
+
export type TokenHeaders = {
|
|
8
8
|
typ: string,
|
|
9
9
|
alg: string,
|
|
10
10
|
kid?: string,
|
|
11
11
|
appId?: string,
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
type
|
|
14
|
+
export type TokenClaims = {
|
|
15
15
|
iss: string,
|
|
16
16
|
aud: string|string[],
|
|
17
17
|
iat: number,
|
|
@@ -20,18 +20,18 @@ type Claims = {
|
|
|
20
20
|
jti?: string,
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
export type TokenPayload = JsonObject &
|
|
23
|
+
export type TokenPayload = JsonObject & TokenClaims;
|
|
24
24
|
|
|
25
25
|
export class Token {
|
|
26
26
|
private static readonly UUID_PATTERN = /^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$/;
|
|
27
27
|
|
|
28
|
-
private readonly headers:
|
|
28
|
+
private readonly headers: TokenHeaders;
|
|
29
29
|
|
|
30
30
|
private readonly payload: TokenPayload;
|
|
31
31
|
|
|
32
32
|
private readonly signature: string;
|
|
33
33
|
|
|
34
|
-
private constructor(headers:
|
|
34
|
+
private constructor(headers: TokenHeaders, payload: TokenPayload, signature = '') {
|
|
35
35
|
this.headers = headers;
|
|
36
36
|
this.payload = payload;
|
|
37
37
|
this.signature = signature;
|
|
@@ -90,7 +90,7 @@ export class Token {
|
|
|
90
90
|
return Token.of(headers, payload, parts[2]);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
public static of(headers:
|
|
93
|
+
public static of(headers: TokenHeaders, payload: TokenPayload, signature = ''): Token {
|
|
94
94
|
try {
|
|
95
95
|
tokenSchema.validate({
|
|
96
96
|
headers: headers,
|
|
@@ -101,12 +101,12 @@ export class Token {
|
|
|
101
101
|
throw new Error(`The token is invalid: ${formatCause(violation)}`);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
return new Token(headers as
|
|
104
|
+
return new Token(headers as TokenHeaders, payload as TokenPayload, signature as string);
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
public async signedWith(apiKey: ApiKey): Promise<Token> {
|
|
108
108
|
const keyId = await apiKey.getIdentifierHash();
|
|
109
|
-
const headers:
|
|
109
|
+
const headers: TokenHeaders = {
|
|
110
110
|
...this.headers,
|
|
111
111
|
kid: keyId,
|
|
112
112
|
alg: apiKey.getSigningAlgorithm(),
|
|
@@ -145,22 +145,7 @@ export class Token {
|
|
|
145
145
|
return this.headers.kid === await apiKey.getIdentifierHash();
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
public
|
|
149
|
-
if (tokenId === '' || !Token.UUID_PATTERN.test(tokenId)) {
|
|
150
|
-
throw new Error('The token ID must be a valid UUID.');
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return new Token(
|
|
154
|
-
this.headers,
|
|
155
|
-
{
|
|
156
|
-
...this.payload,
|
|
157
|
-
jti: tokenId,
|
|
158
|
-
},
|
|
159
|
-
this.signature,
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
public getHeaders(): Headers {
|
|
148
|
+
public getHeaders(): TokenHeaders {
|
|
164
149
|
return {...this.headers};
|
|
165
150
|
}
|
|
166
151
|
|
|
@@ -212,6 +197,77 @@ export class Token {
|
|
|
212
197
|
return this.payload.iss;
|
|
213
198
|
}
|
|
214
199
|
|
|
200
|
+
public withTokenId(tokenId: string): Token {
|
|
201
|
+
if (tokenId === '' || !Token.UUID_PATTERN.test(tokenId)) {
|
|
202
|
+
throw new Error('The token ID must be a valid UUID.');
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return new Token(
|
|
206
|
+
this.headers,
|
|
207
|
+
{
|
|
208
|
+
...this.payload,
|
|
209
|
+
jti: tokenId,
|
|
210
|
+
},
|
|
211
|
+
this.signature,
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
public withDuration(duration: number, now: number = Math.floor(Date.now() / 1000)): Token {
|
|
216
|
+
return new Token(
|
|
217
|
+
this.headers,
|
|
218
|
+
{
|
|
219
|
+
...this.payload,
|
|
220
|
+
iat: now,
|
|
221
|
+
exp: now + duration,
|
|
222
|
+
},
|
|
223
|
+
this.signature,
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
public withAddedHeaders(headers: Partial<TokenHeaders>): Token {
|
|
228
|
+
return this.withHeaders({
|
|
229
|
+
...this.headers,
|
|
230
|
+
...Object.fromEntries(
|
|
231
|
+
Object.entries(headers)
|
|
232
|
+
.filter(([, value]) => value !== undefined),
|
|
233
|
+
),
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
public withAddedClaims(claims: Partial<TokenClaims>): Token {
|
|
238
|
+
return this.withPayload({
|
|
239
|
+
...this.payload,
|
|
240
|
+
...Object.fromEntries(
|
|
241
|
+
Object.entries(claims)
|
|
242
|
+
.filter(([, value]) => value !== undefined),
|
|
243
|
+
),
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
public withHeaders(headers: TokenHeaders): Token {
|
|
248
|
+
return new Token(
|
|
249
|
+
headers,
|
|
250
|
+
this.payload,
|
|
251
|
+
this.signature,
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
public withPayload(payload: TokenPayload): Token {
|
|
256
|
+
return new Token(
|
|
257
|
+
this.headers,
|
|
258
|
+
payload,
|
|
259
|
+
this.signature,
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
public withSignature(signature: string): Token {
|
|
264
|
+
return new Token(
|
|
265
|
+
this.headers,
|
|
266
|
+
this.payload,
|
|
267
|
+
signature,
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
|
|
215
271
|
public toJSON(): string {
|
|
216
272
|
return this.toString();
|
|
217
273
|
}
|
package/token/token.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { JsonObject } from '@croct/json';
|
|
2
2
|
import { ApiKey } from '../apiKey';
|
|
3
|
-
export type
|
|
3
|
+
export type TokenHeaders = {
|
|
4
4
|
typ: string;
|
|
5
5
|
alg: string;
|
|
6
6
|
kid?: string;
|
|
7
7
|
appId?: string;
|
|
8
8
|
};
|
|
9
|
-
type
|
|
9
|
+
export type TokenClaims = {
|
|
10
10
|
iss: string;
|
|
11
11
|
aud: string | string[];
|
|
12
12
|
iat: number;
|
|
@@ -14,7 +14,7 @@ type Claims = {
|
|
|
14
14
|
sub?: string;
|
|
15
15
|
jti?: string;
|
|
16
16
|
};
|
|
17
|
-
export type TokenPayload = JsonObject &
|
|
17
|
+
export type TokenPayload = JsonObject & TokenClaims;
|
|
18
18
|
export declare class Token {
|
|
19
19
|
private static readonly UUID_PATTERN;
|
|
20
20
|
private readonly headers;
|
|
@@ -23,7 +23,7 @@ export declare class Token {
|
|
|
23
23
|
private constructor();
|
|
24
24
|
static issue(appId: string, subject?: string | null, timestamp?: number): Token;
|
|
25
25
|
static parse(token: string): Token;
|
|
26
|
-
static of(headers:
|
|
26
|
+
static of(headers: TokenHeaders, payload: TokenPayload, signature?: string): Token;
|
|
27
27
|
signedWith(apiKey: ApiKey): Promise<Token>;
|
|
28
28
|
isSigned(): boolean;
|
|
29
29
|
isSubject(subject: string): boolean;
|
|
@@ -31,8 +31,7 @@ export declare class Token {
|
|
|
31
31
|
isValidNow(now?: number): boolean;
|
|
32
32
|
isNewerThan(token: Token): boolean;
|
|
33
33
|
matchesKeyId(apiKey: ApiKey): Promise<boolean>;
|
|
34
|
-
|
|
35
|
-
getHeaders(): Headers;
|
|
34
|
+
getHeaders(): TokenHeaders;
|
|
36
35
|
getPayload(): TokenPayload;
|
|
37
36
|
getSignature(): string;
|
|
38
37
|
getApplicationId(): string | null;
|
|
@@ -45,6 +44,13 @@ export declare class Token {
|
|
|
45
44
|
getTokenId(): string | null;
|
|
46
45
|
getAudience(): string | string[];
|
|
47
46
|
getIssuer(): string;
|
|
47
|
+
withTokenId(tokenId: string): Token;
|
|
48
|
+
withDuration(duration: number, now?: number): Token;
|
|
49
|
+
withAddedHeaders(headers: Partial<TokenHeaders>): Token;
|
|
50
|
+
withAddedClaims(claims: Partial<TokenClaims>): Token;
|
|
51
|
+
withHeaders(headers: TokenHeaders): Token;
|
|
52
|
+
withPayload(payload: TokenPayload): Token;
|
|
53
|
+
withSignature(signature: string): Token;
|
|
48
54
|
toJSON(): string;
|
|
49
55
|
toString(): string;
|
|
50
56
|
}
|
|
@@ -59,4 +65,3 @@ export declare class FixedTokenProvider implements TokenProvider {
|
|
|
59
65
|
constructor(token: Token | null);
|
|
60
66
|
getToken(): Token | null;
|
|
61
67
|
}
|
|
62
|
-
export {};
|
package/token/token.js
CHANGED
|
@@ -92,15 +92,6 @@ class Token {
|
|
|
92
92
|
async matchesKeyId(apiKey) {
|
|
93
93
|
return this.headers.kid === await apiKey.getIdentifierHash();
|
|
94
94
|
}
|
|
95
|
-
withTokenId(tokenId) {
|
|
96
|
-
if (tokenId === '' || !Token.UUID_PATTERN.test(tokenId)) {
|
|
97
|
-
throw new Error('The token ID must be a valid UUID.');
|
|
98
|
-
}
|
|
99
|
-
return new Token(this.headers, {
|
|
100
|
-
...this.payload,
|
|
101
|
-
jti: tokenId,
|
|
102
|
-
}, this.signature);
|
|
103
|
-
}
|
|
104
95
|
getHeaders() {
|
|
105
96
|
return { ...this.headers };
|
|
106
97
|
}
|
|
@@ -145,6 +136,45 @@ class Token {
|
|
|
145
136
|
getIssuer() {
|
|
146
137
|
return this.payload.iss;
|
|
147
138
|
}
|
|
139
|
+
withTokenId(tokenId) {
|
|
140
|
+
if (tokenId === '' || !Token.UUID_PATTERN.test(tokenId)) {
|
|
141
|
+
throw new Error('The token ID must be a valid UUID.');
|
|
142
|
+
}
|
|
143
|
+
return new Token(this.headers, {
|
|
144
|
+
...this.payload,
|
|
145
|
+
jti: tokenId,
|
|
146
|
+
}, this.signature);
|
|
147
|
+
}
|
|
148
|
+
withDuration(duration, now = Math.floor(Date.now() / 1000)) {
|
|
149
|
+
return new Token(this.headers, {
|
|
150
|
+
...this.payload,
|
|
151
|
+
iat: now,
|
|
152
|
+
exp: now + duration,
|
|
153
|
+
}, this.signature);
|
|
154
|
+
}
|
|
155
|
+
withAddedHeaders(headers) {
|
|
156
|
+
return this.withHeaders({
|
|
157
|
+
...this.headers,
|
|
158
|
+
...Object.fromEntries(Object.entries(headers)
|
|
159
|
+
.filter(([, value]) => value !== undefined)),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
withAddedClaims(claims) {
|
|
163
|
+
return this.withPayload({
|
|
164
|
+
...this.payload,
|
|
165
|
+
...Object.fromEntries(Object.entries(claims)
|
|
166
|
+
.filter(([, value]) => value !== undefined)),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
withHeaders(headers) {
|
|
170
|
+
return new Token(headers, this.payload, this.signature);
|
|
171
|
+
}
|
|
172
|
+
withPayload(payload) {
|
|
173
|
+
return new Token(this.headers, payload, this.signature);
|
|
174
|
+
}
|
|
175
|
+
withSignature(signature) {
|
|
176
|
+
return new Token(this.headers, this.payload, signature);
|
|
177
|
+
}
|
|
148
178
|
toJSON() {
|
|
149
179
|
return this.toString();
|
|
150
180
|
}
|
package/token/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token/token.ts"],"names":[],"mappings":";;;AACA,sCAAsC;AACtC,oCAAqC;AAErC,4CAA8D;AAoB9D,MAAa,KAAK;IASd,YAAoB,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token/token.ts"],"names":[],"mappings":"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"}
|