phx-uikit 1.0.224 → 1.0.226

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