phx-uikit 1.0.223 → 1.0.225

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,23 +1,24 @@
1
1
  "use strict";
2
+ // axios.ts
2
3
  exports.__esModule = true;
3
4
  exports.PHXAxiosInstance = void 0;
4
5
  var tslib_1 = require("tslib");
5
6
  var axios_1 = tslib_1.__importDefault(require("axios"));
6
- var async_lock_1 = tslib_1.__importDefault(require("async-lock"));
7
7
  var read_env_config_1 = require("./read-env-config");
8
8
  var constants_1 = require("./utils/constants");
9
9
  var saveCookiesClient_1 = tslib_1.__importDefault(require("./components/Func/saveCookiesClient"));
10
10
  var getCookieSession_1 = tslib_1.__importDefault(require("./components/Func/getCookieSession"));
11
11
  var headers_1 = require("next/headers");
12
- var lock = new async_lock_1["default"]();
12
+ // 2) Biến toàn cục giữ promise đang chờ của /refresh-token
13
+ var refreshTokenPromise = null;
13
14
  var publicUrl = (0, read_env_config_1.getEnv)('NEXT_PUBLIC_API_GATEWAY', process.env.NEXT_PUBLIC_API_GATEWAY);
14
- var internalUrl = (0, read_env_config_1.getEnv)('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL);
15
+ // const internalUrl = getEnv('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL)
15
16
  var isServer = typeof window === 'undefined';
16
17
  var PHXAxiosInstance = axios_1["default"].create({
17
18
  baseURL: publicUrl
18
19
  });
19
20
  exports.PHXAxiosInstance = PHXAxiosInstance;
20
- // Lấy header (cookie + origin) khi chạy SSR
21
+ // Lấy đủ headers (cookie + origin) khi SSR
21
22
  var getAuthHeaders = function () {
22
23
  if (!isServer)
23
24
  return {};
@@ -34,10 +35,10 @@ var getAuthHeaders = function () {
34
35
  hostname: (0, headers_1.headers)().get('origin') || undefined
35
36
  };
36
37
  };
37
- // Lưu lại refresh token từ header của response (chỉ SSR)
38
- var saveRefreshTokenServer = function (response) {
38
+ // Lưu refresh_token vào cookie SSR
39
+ var saveRefreshTokenServer = function (res) {
39
40
  var _a;
40
- var setCookieHeader = ((_a = response.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
41
+ var setCookieHeader = ((_a = res.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
41
42
  var match = setCookieHeader.match(/refresh_token=([^;]+)/);
42
43
  var refreshToken = (match === null || match === void 0 ? void 0 : match[1]) || '';
43
44
  (0, headers_1.cookies)().set(constants_1.COOKIE_REFRESH_TOKEN, refreshToken, {
@@ -48,82 +49,63 @@ var saveRefreshTokenServer = function (response) {
48
49
  expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
49
50
  });
50
51
  };
51
- // Gọi API refresh-token, đồng bộ hoá với AsyncLock
52
+ // Hàm refresh-token với promise-caching
52
53
  var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
53
54
  return tslib_1.__generator(this, function (_a) {
54
- return [2 /*return*/, lock.acquire('refresh_token', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
55
- var url, response, newToken, updatedSession, err_1;
56
- return tslib_1.__generator(this, function (_a) {
57
- switch (_a.label) {
58
- case 0:
59
- _a.trys.push([0, 2, , 3]);
60
- url = "".concat(isServer ? (0, headers_1.headers)().get('origin') : '', "/api/authenticate/refresh-token");
61
- return [4 /*yield*/, axios_1["default"].post(url, {}, { headers: getAuthHeaders() })];
62
- case 1:
63
- response = _a.sent();
64
- newToken = response.data.token;
65
- updatedSession = (0, getCookieSession_1["default"])();
66
- (0, saveCookiesClient_1["default"])({
67
- value: tslib_1.__assign(tslib_1.__assign({}, updatedSession), { access_token: newToken })
68
- });
69
- // Lưu refresh token SSR nếu cần
70
- if (isServer)
71
- saveRefreshTokenServer(response);
72
- return [2 /*return*/, newToken];
73
- case 2:
74
- err_1 = _a.sent();
75
- if (!isServer) {
76
- window.location.href = constants_1.loginPage;
77
- }
78
- throw err_1;
79
- case 3: return [2 /*return*/];
80
- }
81
- });
82
- }); })];
83
- });
84
- }); };
85
- // Request interceptor: luôn thêm Authorization nếu có access_token
86
- PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
87
- var session, token, err_2, fresh;
88
- var _a;
89
- return tslib_1.__generator(this, function (_b) {
90
- switch (_b.label) {
91
- case 0:
92
- session = (0, getCookieSession_1["default"])();
93
- token = session === null || session === void 0 ? void 0 : session.access_token;
94
- if (!token) return [3 /*break*/, 7];
95
- config.headers = config.headers || {};
96
- config.headers.Authorization = "Bearer ".concat(token);
97
- if (!isServer) return [3 /*break*/, 7];
98
- _b.label = 1;
99
- case 1:
100
- _b.trys.push([1, 3, , 7]);
101
- return [4 /*yield*/, axios_1["default"].post("".concat(internalUrl, "/authen/authenticate"), {}, { headers: tslib_1.__assign({ Authorization: "Bearer ".concat(token) }, getAuthHeaders()) })];
102
- case 2:
103
- _b.sent();
104
- return [3 /*break*/, 7];
105
- case 3:
106
- err_2 = _b.sent();
107
- if (!(((_a = err_2.response) === null || _a === void 0 ? void 0 : _a.status) === 401)) return [3 /*break*/, 5];
108
- return [4 /*yield*/, refreshAccessToken()];
109
- case 4:
110
- fresh = _b.sent();
111
- config.headers.Authorization = "Bearer ".concat(fresh);
112
- return [3 /*break*/, 6];
113
- case 5: throw err_2;
114
- case 6: return [3 /*break*/, 7];
115
- case 7: return [2 /*return*/, config];
55
+ if (refreshTokenPromise) {
56
+ // Nếu đang 1 lần gọi chưa xong, chờ nó và return kết quả
57
+ return [2 /*return*/, refreshTokenPromise];
116
58
  }
59
+ refreshTokenPromise = (function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
60
+ var url, response, newToken, updatedSession, err_1;
61
+ return tslib_1.__generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0:
64
+ _a.trys.push([0, 2, 3, 4]);
65
+ url = "".concat(isServer ? (0, headers_1.headers)().get('origin') : '', "/api/authenticate/refresh-token");
66
+ return [4 /*yield*/, axios_1["default"].post(url, {}, { headers: getAuthHeaders() })];
67
+ case 1:
68
+ response = _a.sent();
69
+ newToken = response.data.token;
70
+ updatedSession = (0, getCookieSession_1["default"])();
71
+ (0, saveCookiesClient_1["default"])({ value: tslib_1.__assign(tslib_1.__assign({}, updatedSession), { access_token: newToken }) });
72
+ // Lưu refresh_token SSR nếu cần
73
+ if (isServer)
74
+ saveRefreshTokenServer(response);
75
+ return [2 /*return*/, newToken];
76
+ case 2:
77
+ err_1 = _a.sent();
78
+ if (!isServer)
79
+ window.location.href = constants_1.loginPage;
80
+ throw err_1;
81
+ case 3:
82
+ // Clear để lần sau có thể gọi lại khi token expire thêm
83
+ refreshTokenPromise = null;
84
+ return [7 /*endfinally*/];
85
+ case 4: return [2 /*return*/];
86
+ }
87
+ });
88
+ }); })();
89
+ return [2 /*return*/, refreshTokenPromise];
117
90
  });
118
- }); });
119
- // Response interceptor: bắt 401, gọi refresh retry
91
+ }); };
92
+ // --- CHỈ request interceptor: chỉ add header, không catch 401 ---
93
+ PHXAxiosInstance.interceptors.request.use(function (config) {
94
+ var session = (0, getCookieSession_1["default"])();
95
+ var token = session === null || session === void 0 ? void 0 : session.access_token;
96
+ if (token) {
97
+ config.headers = config.headers || {};
98
+ config.headers.Authorization = "Bearer ".concat(token);
99
+ }
100
+ return config;
101
+ });
102
+ // --- Response interceptor: bắt 401, refresh, retry với token mới ---
120
103
  PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
121
104
  var originalRequest, newToken, e_1;
122
105
  var _a;
123
106
  return tslib_1.__generator(this, function (_b) {
124
107
  switch (_b.label) {
125
108
  case 0:
126
- console.log('errorerror', error);
127
109
  originalRequest = error.config;
128
110
  if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
129
111
  originalRequest._retry = true;
@@ -1 +1 @@
1
- {"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
+ // axios.ts
1
2
  import { __assign, __awaiter, __generator } from "tslib";
2
3
  import axios from 'axios';
3
- import AsyncLock from 'async-lock';
4
4
  import { getEnv } from './read-env-config';
5
5
  import { COOKIE_REFRESH_TOKEN, loginPage } from './utils/constants';
6
6
  import saveCookiesClient from './components/Func/saveCookiesClient';
7
7
  import PHXFuncGetCookieSession from './components/Func/getCookieSession';
8
8
  import { cookies, headers } from 'next/headers';
9
- var lock = new AsyncLock();
9
+ // 2) Biến toàn cục giữ promise đang chờ của /refresh-token
10
+ var refreshTokenPromise = null;
10
11
  var publicUrl = getEnv('NEXT_PUBLIC_API_GATEWAY', process.env.NEXT_PUBLIC_API_GATEWAY);
11
- var internalUrl = getEnv('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL);
12
+ // const internalUrl = getEnv('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL)
12
13
  var isServer = typeof window === 'undefined';
13
14
  var PHXAxiosInstance = axios.create({
14
15
  baseURL: publicUrl
15
16
  });
16
- // Lấy header (cookie + origin) khi chạy SSR
17
+ // Lấy đủ headers (cookie + origin) khi SSR
17
18
  var getAuthHeaders = function () {
18
19
  if (!isServer)
19
20
  return {};
@@ -30,10 +31,10 @@ var getAuthHeaders = function () {
30
31
  hostname: headers().get('origin') || undefined
31
32
  };
32
33
  };
33
- // Lưu lại refresh token từ header của response (chỉ SSR)
34
- var saveRefreshTokenServer = function (response) {
34
+ // Lưu refresh_token vào cookie SSR
35
+ var saveRefreshTokenServer = function (res) {
35
36
  var _a;
36
- var setCookieHeader = ((_a = response.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
37
+ var setCookieHeader = ((_a = res.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
37
38
  var match = setCookieHeader.match(/refresh_token=([^;]+)/);
38
39
  var refreshToken = (match === null || match === void 0 ? void 0 : match[1]) || '';
39
40
  cookies().set(COOKIE_REFRESH_TOKEN, refreshToken, {
@@ -44,82 +45,63 @@ var saveRefreshTokenServer = function (response) {
44
45
  expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
45
46
  });
46
47
  };
47
- // Gọi API refresh-token, đồng bộ hoá với AsyncLock
48
+ // Hàm refresh-token với promise-caching
48
49
  var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0, function () {
49
50
  return __generator(this, function (_a) {
50
- return [2 /*return*/, lock.acquire('refresh_token', function () { return __awaiter(void 0, void 0, void 0, function () {
51
- var url, response, newToken, updatedSession, err_1;
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
54
- case 0:
55
- _a.trys.push([0, 2, , 3]);
56
- url = "".concat(isServer ? headers().get('origin') : '', "/api/authenticate/refresh-token");
57
- return [4 /*yield*/, axios.post(url, {}, { headers: getAuthHeaders() })];
58
- case 1:
59
- response = _a.sent();
60
- newToken = response.data.token;
61
- updatedSession = PHXFuncGetCookieSession();
62
- saveCookiesClient({
63
- value: __assign(__assign({}, updatedSession), { access_token: newToken })
64
- });
65
- // Lưu refresh token SSR nếu cần
66
- if (isServer)
67
- saveRefreshTokenServer(response);
68
- return [2 /*return*/, newToken];
69
- case 2:
70
- err_1 = _a.sent();
71
- if (!isServer) {
72
- window.location.href = loginPage;
73
- }
74
- throw err_1;
75
- case 3: return [2 /*return*/];
76
- }
77
- });
78
- }); })];
79
- });
80
- }); };
81
- // Request interceptor: luôn thêm Authorization nếu có access_token
82
- PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(void 0, void 0, void 0, function () {
83
- var session, token, err_2, fresh;
84
- var _a;
85
- return __generator(this, function (_b) {
86
- switch (_b.label) {
87
- case 0:
88
- session = PHXFuncGetCookieSession();
89
- token = session === null || session === void 0 ? void 0 : session.access_token;
90
- if (!token) return [3 /*break*/, 7];
91
- config.headers = config.headers || {};
92
- config.headers.Authorization = "Bearer ".concat(token);
93
- if (!isServer) return [3 /*break*/, 7];
94
- _b.label = 1;
95
- case 1:
96
- _b.trys.push([1, 3, , 7]);
97
- return [4 /*yield*/, axios.post("".concat(internalUrl, "/authen/authenticate"), {}, { headers: __assign({ Authorization: "Bearer ".concat(token) }, getAuthHeaders()) })];
98
- case 2:
99
- _b.sent();
100
- return [3 /*break*/, 7];
101
- case 3:
102
- err_2 = _b.sent();
103
- if (!(((_a = err_2.response) === null || _a === void 0 ? void 0 : _a.status) === 401)) return [3 /*break*/, 5];
104
- return [4 /*yield*/, refreshAccessToken()];
105
- case 4:
106
- fresh = _b.sent();
107
- config.headers.Authorization = "Bearer ".concat(fresh);
108
- return [3 /*break*/, 6];
109
- case 5: throw err_2;
110
- case 6: return [3 /*break*/, 7];
111
- case 7: return [2 /*return*/, config];
51
+ if (refreshTokenPromise) {
52
+ // Nếu đang 1 lần gọi chưa xong, chờ nó và return kết quả
53
+ return [2 /*return*/, refreshTokenPromise];
112
54
  }
55
+ refreshTokenPromise = (function () { return __awaiter(void 0, void 0, void 0, function () {
56
+ var url, response, newToken, updatedSession, err_1;
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ _a.trys.push([0, 2, 3, 4]);
61
+ url = "".concat(isServer ? headers().get('origin') : '', "/api/authenticate/refresh-token");
62
+ return [4 /*yield*/, axios.post(url, {}, { headers: getAuthHeaders() })];
63
+ case 1:
64
+ response = _a.sent();
65
+ newToken = response.data.token;
66
+ updatedSession = PHXFuncGetCookieSession();
67
+ saveCookiesClient({ value: __assign(__assign({}, updatedSession), { access_token: newToken }) });
68
+ // Lưu refresh_token SSR nếu cần
69
+ if (isServer)
70
+ saveRefreshTokenServer(response);
71
+ return [2 /*return*/, newToken];
72
+ case 2:
73
+ err_1 = _a.sent();
74
+ if (!isServer)
75
+ window.location.href = loginPage;
76
+ throw err_1;
77
+ case 3:
78
+ // Clear để lần sau có thể gọi lại khi token expire thêm
79
+ refreshTokenPromise = null;
80
+ return [7 /*endfinally*/];
81
+ case 4: return [2 /*return*/];
82
+ }
83
+ });
84
+ }); })();
85
+ return [2 /*return*/, refreshTokenPromise];
113
86
  });
114
- }); });
115
- // Response interceptor: bắt 401, gọi refresh retry
87
+ }); };
88
+ // --- CHỈ request interceptor: chỉ add header, không catch 401 ---
89
+ PHXAxiosInstance.interceptors.request.use(function (config) {
90
+ var session = PHXFuncGetCookieSession();
91
+ var token = session === null || session === void 0 ? void 0 : session.access_token;
92
+ if (token) {
93
+ config.headers = config.headers || {};
94
+ config.headers.Authorization = "Bearer ".concat(token);
95
+ }
96
+ return config;
97
+ });
98
+ // --- Response interceptor: bắt 401, refresh, retry với token mới ---
116
99
  PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
117
100
  var originalRequest, newToken, e_1;
118
101
  var _a;
119
102
  return __generator(this, function (_b) {
120
103
  switch (_b.label) {
121
104
  case 0:
122
- console.log('errorerror', error);
123
105
  originalRequest = error.config;
124
106
  if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
125
107
  originalRequest._retry = true;
@@ -1 +1 @@
1
- {"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phx-uikit",
3
- "version": "1.0.223",
3
+ "version": "1.0.225",
4
4
  "description": "PHX REACT",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",