dn-react-router-toolkit 0.1.10 → 0.1.12
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/auth-kit/auth_service.d.mts +1 -0
- package/dist/auth-kit/auth_service.d.ts +1 -0
- package/dist/auth-kit/auth_service.js +7 -1
- package/dist/auth-kit/auth_service.mjs +7 -1
- package/dist/auth-kit/with_auth.js +2 -34
- package/dist/auth-kit/with_auth.mjs +2 -22
- package/dist/file-kit/client/file_uploader.js +4 -0
- package/dist/file-kit/client/file_uploader.mjs +4 -0
- package/package.json +1 -1
|
@@ -20,6 +20,7 @@ declare class AuthService {
|
|
|
20
20
|
});
|
|
21
21
|
verify(request: Request): Promise<jose.JWTPayload | undefined>;
|
|
22
22
|
verifyOrRefresh(request: Request): Promise<jose.JWTPayload | undefined>;
|
|
23
|
+
getAccessTokenFromRequest(request: Request): Promise<any>;
|
|
23
24
|
getAccessTokenFromCookies(request: Request): Promise<any>;
|
|
24
25
|
getRefreshTokenFromCookies(request: Request): Promise<any>;
|
|
25
26
|
refresh(request: Request): Promise<jose.JWTPayload | undefined>;
|
|
@@ -20,6 +20,7 @@ declare class AuthService {
|
|
|
20
20
|
});
|
|
21
21
|
verify(request: Request): Promise<jose.JWTPayload | undefined>;
|
|
22
22
|
verifyOrRefresh(request: Request): Promise<jose.JWTPayload | undefined>;
|
|
23
|
+
getAccessTokenFromRequest(request: Request): Promise<any>;
|
|
23
24
|
getAccessTokenFromCookies(request: Request): Promise<any>;
|
|
24
25
|
getRefreshTokenFromCookies(request: Request): Promise<any>;
|
|
25
26
|
refresh(request: Request): Promise<jose.JWTPayload | undefined>;
|
|
@@ -68,7 +68,7 @@ var AuthService = class {
|
|
|
68
68
|
this.OBJECT_STORAGE = OBJECT_STORAGE;
|
|
69
69
|
}
|
|
70
70
|
async verify(request) {
|
|
71
|
-
const accessToken =
|
|
71
|
+
const accessToken = await this.getAccessTokenFromRequest(request);
|
|
72
72
|
if (accessToken) {
|
|
73
73
|
return this.JWT_MANAGER.verifyAccessToken(accessToken);
|
|
74
74
|
}
|
|
@@ -80,6 +80,12 @@ var AuthService = class {
|
|
|
80
80
|
}
|
|
81
81
|
return this.refresh(request);
|
|
82
82
|
}
|
|
83
|
+
async getAccessTokenFromRequest(request) {
|
|
84
|
+
if (request.headers.get("Authorization")) {
|
|
85
|
+
return request.headers.get("Authorization")?.replace("Bearer ", "");
|
|
86
|
+
}
|
|
87
|
+
return this.getAccessTokenFromCookies(request);
|
|
88
|
+
}
|
|
83
89
|
async getAccessTokenFromCookies(request) {
|
|
84
90
|
const accessToken = await ACCESS_TOKEN_COOKIE.parse(
|
|
85
91
|
request.headers.get("cookie")
|
|
@@ -30,7 +30,7 @@ var AuthService = class {
|
|
|
30
30
|
this.OBJECT_STORAGE = OBJECT_STORAGE;
|
|
31
31
|
}
|
|
32
32
|
async verify(request) {
|
|
33
|
-
const accessToken =
|
|
33
|
+
const accessToken = await this.getAccessTokenFromRequest(request);
|
|
34
34
|
if (accessToken) {
|
|
35
35
|
return this.JWT_MANAGER.verifyAccessToken(accessToken);
|
|
36
36
|
}
|
|
@@ -42,6 +42,12 @@ var AuthService = class {
|
|
|
42
42
|
}
|
|
43
43
|
return this.refresh(request);
|
|
44
44
|
}
|
|
45
|
+
async getAccessTokenFromRequest(request) {
|
|
46
|
+
if (request.headers.get("Authorization")) {
|
|
47
|
+
return request.headers.get("Authorization")?.replace("Bearer ", "");
|
|
48
|
+
}
|
|
49
|
+
return this.getAccessTokenFromCookies(request);
|
|
50
|
+
}
|
|
45
51
|
async getAccessTokenFromCookies(request) {
|
|
46
52
|
const accessToken = await ACCESS_TOKEN_COOKIE.parse(
|
|
47
53
|
request.headers.get("cookie")
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
|
|
30
20
|
// src/auth-kit/with_auth.ts
|
|
@@ -33,39 +23,17 @@ __export(with_auth_exports, {
|
|
|
33
23
|
createWithAuthHandler: () => createWithAuthHandler
|
|
34
24
|
});
|
|
35
25
|
module.exports = __toCommonJS(with_auth_exports);
|
|
36
|
-
|
|
37
|
-
// src/auth-kit/auth_service.ts
|
|
38
|
-
var import_bcryptjs = __toESM(require("bcryptjs"));
|
|
39
|
-
var import_uuid = require("uuid");
|
|
40
|
-
var import_react_router = require("react-router");
|
|
41
|
-
var ACCESS_TOKEN_KEY = "access_token";
|
|
42
|
-
var REFRESH_TOKEN_KEY = "refresh_token";
|
|
43
|
-
var ACCESS_TOKEN_COOKIE = (0, import_react_router.createCookie)(ACCESS_TOKEN_KEY, {
|
|
44
|
-
path: "/",
|
|
45
|
-
httpOnly: process.env.NODE_ENV === "production",
|
|
46
|
-
secure: process.env.NODE_ENV === "production",
|
|
47
|
-
sameSite: "strict"
|
|
48
|
-
});
|
|
49
|
-
var REFRESH_TOKEN_COOKIE = (0, import_react_router.createCookie)(REFRESH_TOKEN_KEY, {
|
|
50
|
-
path: "/",
|
|
51
|
-
httpOnly: process.env.NODE_ENV === "production",
|
|
52
|
-
secure: process.env.NODE_ENV === "production",
|
|
53
|
-
sameSite: "strict"
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// src/auth-kit/with_auth.ts
|
|
57
26
|
function createWithAuthHandler({ JWT_MANAGER, AUTH }) {
|
|
58
27
|
return function(fn) {
|
|
59
28
|
const handler = async function(arg) {
|
|
60
|
-
const
|
|
61
|
-
const accessToken = await ACCESS_TOKEN_COOKIE.parse(cookie);
|
|
29
|
+
const accessToken = await AUTH.getAccessTokenFromRequest(arg.request);
|
|
62
30
|
if (accessToken) {
|
|
63
31
|
const payload = await JWT_MANAGER.verifyAccessToken(accessToken);
|
|
64
32
|
if (payload) {
|
|
65
33
|
return fn(payload)(arg);
|
|
66
34
|
}
|
|
67
35
|
}
|
|
68
|
-
const refreshToken = await
|
|
36
|
+
const refreshToken = await AUTH.getRefreshTokenFromCookies(arg.request);
|
|
69
37
|
if (refreshToken) {
|
|
70
38
|
try {
|
|
71
39
|
const newAccessToken = await AUTH.refreshAccessToken(refreshToken);
|
|
@@ -1,35 +1,15 @@
|
|
|
1
|
-
// src/auth-kit/auth_service.ts
|
|
2
|
-
import bcryptjs from "bcryptjs";
|
|
3
|
-
import { v4 } from "uuid";
|
|
4
|
-
import { createCookie } from "react-router";
|
|
5
|
-
var ACCESS_TOKEN_KEY = "access_token";
|
|
6
|
-
var REFRESH_TOKEN_KEY = "refresh_token";
|
|
7
|
-
var ACCESS_TOKEN_COOKIE = createCookie(ACCESS_TOKEN_KEY, {
|
|
8
|
-
path: "/",
|
|
9
|
-
httpOnly: process.env.NODE_ENV === "production",
|
|
10
|
-
secure: process.env.NODE_ENV === "production",
|
|
11
|
-
sameSite: "strict"
|
|
12
|
-
});
|
|
13
|
-
var REFRESH_TOKEN_COOKIE = createCookie(REFRESH_TOKEN_KEY, {
|
|
14
|
-
path: "/",
|
|
15
|
-
httpOnly: process.env.NODE_ENV === "production",
|
|
16
|
-
secure: process.env.NODE_ENV === "production",
|
|
17
|
-
sameSite: "strict"
|
|
18
|
-
});
|
|
19
|
-
|
|
20
1
|
// src/auth-kit/with_auth.ts
|
|
21
2
|
function createWithAuthHandler({ JWT_MANAGER, AUTH }) {
|
|
22
3
|
return function(fn) {
|
|
23
4
|
const handler = async function(arg) {
|
|
24
|
-
const
|
|
25
|
-
const accessToken = await ACCESS_TOKEN_COOKIE.parse(cookie);
|
|
5
|
+
const accessToken = await AUTH.getAccessTokenFromRequest(arg.request);
|
|
26
6
|
if (accessToken) {
|
|
27
7
|
const payload = await JWT_MANAGER.verifyAccessToken(accessToken);
|
|
28
8
|
if (payload) {
|
|
29
9
|
return fn(payload)(arg);
|
|
30
10
|
}
|
|
31
11
|
}
|
|
32
|
-
const refreshToken = await
|
|
12
|
+
const refreshToken = await AUTH.getRefreshTokenFromCookies(arg.request);
|
|
33
13
|
if (refreshToken) {
|
|
34
14
|
try {
|
|
35
15
|
const newAccessToken = await AUTH.refreshAccessToken(refreshToken);
|
|
@@ -61,6 +61,9 @@ var FileUploader = class {
|
|
|
61
61
|
endpoint;
|
|
62
62
|
constructor(endpoint = "/api/files") {
|
|
63
63
|
this.endpoint = endpoint;
|
|
64
|
+
this.uploadFile = this.uploadFile.bind(this);
|
|
65
|
+
this.uploadBlob = this.uploadBlob.bind(this);
|
|
66
|
+
this.deleteFile = this.deleteFile.bind(this);
|
|
64
67
|
}
|
|
65
68
|
uploadFile(file, options = {}) {
|
|
66
69
|
return this.uploadBlob(file, file.name, options);
|
|
@@ -84,6 +87,7 @@ var FileUploader = class {
|
|
|
84
87
|
});
|
|
85
88
|
if (webpBlob) {
|
|
86
89
|
blob = webpBlob;
|
|
90
|
+
name = name.replace(/\.[^/.]+$/, "") + ".webp";
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
93
|
const { type, size } = blob;
|
|
@@ -35,6 +35,9 @@ var FileUploader = class {
|
|
|
35
35
|
endpoint;
|
|
36
36
|
constructor(endpoint = "/api/files") {
|
|
37
37
|
this.endpoint = endpoint;
|
|
38
|
+
this.uploadFile = this.uploadFile.bind(this);
|
|
39
|
+
this.uploadBlob = this.uploadBlob.bind(this);
|
|
40
|
+
this.deleteFile = this.deleteFile.bind(this);
|
|
38
41
|
}
|
|
39
42
|
uploadFile(file, options = {}) {
|
|
40
43
|
return this.uploadBlob(file, file.name, options);
|
|
@@ -58,6 +61,7 @@ var FileUploader = class {
|
|
|
58
61
|
});
|
|
59
62
|
if (webpBlob) {
|
|
60
63
|
blob = webpBlob;
|
|
64
|
+
name = name.replace(/\.[^/.]+$/, "") + ".webp";
|
|
61
65
|
}
|
|
62
66
|
}
|
|
63
67
|
const { type, size } = blob;
|