@cyberskill/shared 1.166.0 → 1.168.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/README.md +1 -1
- package/dist/_tsup-dts-rollup.d.cts +21 -0
- package/dist/_tsup-dts-rollup.d.ts +21 -0
- package/dist/node/cli/cli.util.cjs +1 -1
- package/dist/node/cli/cli.util.js +1 -1
- package/dist/node/cli/index.cjs +1 -1
- package/dist/node/cli/index.js +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/mongo/index.cjs +1 -1
- package/dist/node/mongo/index.js +1 -1
- package/dist/node/mongo/mongo.util.cjs +1 -1
- package/dist/node/mongo/mongo.util.js +1 -1
- package/dist/util/common/common.type.cjs +1 -0
- package/dist/util/common/common.type.d.cts +2 -0
- package/dist/util/common/common.type.d.ts +2 -0
- package/dist/util/common/common.type.js +0 -0
- package/dist/util/common/common.util.cjs +1 -1
- package/dist/util/common/common.util.d.cts +1 -0
- package/dist/util/common/common.util.d.ts +1 -0
- package/dist/util/common/common.util.js +1 -1
- package/dist/util/common/index.cjs +1 -1
- package/dist/util/common/index.d.cts +1 -0
- package/dist/util/common/index.d.ts +1 -0
- package/dist/util/common/index.js +1 -1
- package/dist/util/index.cjs +1 -1
- package/dist/util/index.d.cts +1 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.js +1 -1
- package/package.json +4 -4
- package/public/wiki/setup-nginx.md +11 -16
- package/public/wiki/setup-ssl.md +102 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
function r(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function e(r){if(Array.isArray(r))return r}function t(e){if(Array.isArray(e))return r(e)}function n(r,e,t){if(e in r){Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true})}else{r[e]=t}return r}function a(r){if(typeof Symbol!=="undefined"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function o(r,e){var t=r==null?null:typeof Symbol!=="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t==null)return;var n=[];var a=true;var o=false;var u,i;try{for(t=t.call(r);!(a=(u=t.next()).done);a=true){n.push(u.value);if(e&&n.length===e)break}}catch(r){o=true;i=r}finally{try{if(!a&&t["return"]!=null)t["return"]()}finally{if(o)throw i}}return n}function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function
|
|
1
|
+
function r(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function e(r){if(Array.isArray(r))return r}function t(e){if(Array.isArray(e))return r(e)}function n(r,e,t){if(e in r){Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true})}else{r[e]=t}return r}function a(r){if(typeof Symbol!=="undefined"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function o(r,e){var t=r==null?null:typeof Symbol!=="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t==null)return;var n=[];var a=true;var o=false;var u,i;try{for(t=t.call(r);!(a=(u=t.next()).done);a=true){n.push(u.value);if(e&&n.length===e)break}}catch(r){o=true;i=r}finally{try{if(!a&&t["return"]!=null)t["return"]()}finally{if(o)throw i}}return n}function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};var a=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){a=a.concat(Object.getOwnPropertySymbols(t).filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))}a.forEach(function(e){n(r,e,t[e])})}return r}function l(r,t){return e(r)||o(r,t)||y(r,t)||u()}function f(r){return t(r)||a(r)||y(r)||i()}function y(e,t){if(!e)return;if(typeof e==="string")return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}var p=Object.defineProperty;var v=function(r,e){return p(r,"name",{value:e,configurable:!0})};import m from"unorm";var s=function(r){return r.PRODUCTION="production",r.STAGING="staging",r.DEVELOPMENT="development",r}({});var b={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},O=Object.entries(b).reduce(function(r,e){var t=l(e,2),n=t[0],a=t[1];return r[n.toUpperCase()]=a.map(function(r){return r.toUpperCase()}),r},{});function d(r){r=m.nfkc(r);var e=c({},b,O);var t=true,n=false,a=undefined;try{for(var o=Object.entries(e)[Symbol.iterator](),u;!(t=(u=o.next()).done);t=true){var i=l(u.value,2),y=i[0],p=i[1];var v="[".concat(y).concat(p.join(""),"]"),s="(".concat([y].concat(f(p)).join("|"),")");r=r.replace(new RegExp(v,"g"),s)}}catch(r){n=true;a=r}finally{try{if(!t&&o.return!=null){o.return()}}finally{if(n){throw a}}}return r}v(d,"regexSearchMapper");function E(r){return r.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}v(E,"removeAccent");function h(r,e){if(!e)return Array.from(new Set(r));var t=new Set,n=[];var a=true,o=false,u=undefined;try{for(var i=r[Symbol.iterator](),c;!(a=(c=i.next()).done);a=true){var l=c.value;var f=e(l);t.has(f)||(t.add(f),n.push(l))}}catch(r){o=true;u=r}finally{try{if(!a&&i.return!=null){i.return()}}finally{if(o){throw u}}}return n}v(h,"uniqueArray");function S(r){var e=r.NODE_ENV,t=r.NODE_ENV_MODE,n=e===s.DEVELOPMENT,a=e===s.PRODUCTION&&t===s.STAGING,o=e===s.PRODUCTION&&t===s.PRODUCTION;if(!n&&t===s.DEVELOPMENT)throw new Error("NODE_ENV_MODE cannot be DEVELOPMENT in non-development environment");return{IS_DEV:n,IS_STAG:a,IS_PROD:o}}v(S,"mapEnvironment");export{S as mapEnvironment,d as regexSearchMapper,E as removeAccent,h as uniqueArray};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function r(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function e(r){if(Array.isArray(r))return r}function t(e){if(Array.isArray(e))return r(e)}function n(r,e,t){if(e in r){Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true})}else{r[e]=t}return r}function
|
|
1
|
+
"use strict";function r(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function e(r){if(Array.isArray(r))return r}function t(e){if(Array.isArray(e))return r(e)}function n(r,e,t){if(e in r){Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true})}else{r[e]=t}return r}function o(r){if(typeof Symbol!=="undefined"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function u(r,e){var t=r==null?null:typeof Symbol!=="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t==null)return;var n=[];var o=true;var u=false;var a,i;try{for(t=t.call(r);!(o=(a=t.next()).done);o=true){n.push(a.value);if(e&&n.length===e)break}}catch(r){u=true;i=r}finally{try{if(!o&&t["return"]!=null)t["return"]()}finally{if(u)throw i}}return n}function a(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};var o=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){o=o.concat(Object.getOwnPropertySymbols(t).filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))}o.forEach(function(e){n(r,e,t[e])})}return r}function f(r,t){return e(r)||u(r,t)||v(r,t)||a()}function l(r){return t(r)||o(r)||v(r)||i()}function y(r){"@swc/helpers - typeof";return r&&typeof Symbol!=="undefined"&&r.constructor===Symbol?"symbol":typeof r}function v(e,t){if(!e)return;if(typeof e==="string")return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}var p=Object.create;var m=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var E=function(r,e){return m(r,"name",{value:e,configurable:!0})};var h=function(r,e){for(var t in e)m(r,t,{get:e[t],enumerable:!0})},g=function(r,e,t,n){var o=true,u=false,a=undefined;if(e&&(typeof e==="undefined"?"undefined":y(e))=="object"||typeof e=="function")try{var i=function(){var o=f.value;!O.call(r,o)&&o!==t&&m(r,o,{get:function(){return e[o]},enumerable:!(n=b(e,o))||n.enumerable})};for(var c=s(e)[Symbol.iterator](),f;!(o=(f=c.next()).done);o=true)i()}catch(r){u=true;a=r}finally{try{if(!o&&c.return!=null){c.return()}}finally{if(u){throw a}}}return r};var S=function(r,e,t){return t=r!=null?p(d(r)):{},g(e||!r||!r.__esModule?m(t,"default",{value:r,enumerable:!0}):t,r)},w=function(r){return g(m({},"__esModule",{value:!0}),r)};var A={};h(A,{mapEnvironment:function(){return x},regexSearchMapper:function(){return I},removeAccent:function(){return M},uniqueArray:function(){return T}});module.exports=w(A);var j=S(require("unorm"),1);var D=function(r){return r.PRODUCTION="production",r.STAGING="staging",r.DEVELOPMENT="development",r}({});var N={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},P=Object.entries(N).reduce(function(r,e){var t=f(e,2),n=t[0],o=t[1];return r[n.toUpperCase()]=o.map(function(r){return r.toUpperCase()}),r},{});function I(r){r=j.default.nfkc(r);var e=c({},N,P);var t=true,n=false,o=undefined;try{for(var u=Object.entries(e)[Symbol.iterator](),a;!(t=(a=u.next()).done);t=true){var i=f(a.value,2),y=i[0],v=i[1];var p="[".concat(y).concat(v.join(""),"]"),m="(".concat([y].concat(l(v)).join("|"),")");r=r.replace(new RegExp(p,"g"),m)}}catch(r){n=true;o=r}finally{try{if(!t&&u.return!=null){u.return()}}finally{if(n){throw o}}}return r}E(I,"regexSearchMapper");function M(r){return r.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}E(M,"removeAccent");function T(r,e){if(!e)return Array.from(new Set(r));var t=new Set,n=[];var o=true,u=false,a=undefined;try{for(var i=r[Symbol.iterator](),c;!(o=(c=i.next()).done);o=true){var f=c.value;var l=e(f);t.has(l)||(t.add(l),n.push(f))}}catch(r){u=true;a=r}finally{try{if(!o&&i.return!=null){i.return()}}finally{if(u){throw a}}}return n}E(T,"uniqueArray");function x(r){var e=r.NODE_ENV,t=r.NODE_ENV_MODE,n=e===D.DEVELOPMENT,o=e===D.PRODUCTION&&t===D.STAGING,u=e===D.PRODUCTION&&t===D.PRODUCTION;if(!n&&t===D.DEVELOPMENT)throw new Error("NODE_ENV_MODE cannot be DEVELOPMENT in non-development environment");return{IS_DEV:n,IS_STAG:o,IS_PROD:u}}E(x,"mapEnvironment");0&&(module.exports={mapEnvironment:mapEnvironment,regexSearchMapper:regexSearchMapper,removeAccent:removeAccent,uniqueArray:uniqueArray});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { regexSearchMapper_alias_2 as regexSearchMapper } from '../../_tsup-dts-rollup.cjs';
|
|
2
2
|
export { removeAccent_alias_2 as removeAccent } from '../../_tsup-dts-rollup.cjs';
|
|
3
3
|
export { uniqueArray_alias_2 as uniqueArray } from '../../_tsup-dts-rollup.cjs';
|
|
4
|
+
export { mapEnvironment_alias_2 as mapEnvironment } from '../../_tsup-dts-rollup.cjs';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { regexSearchMapper_alias_2 as regexSearchMapper } from '../../_tsup-dts-rollup.js';
|
|
2
2
|
export { removeAccent_alias_2 as removeAccent } from '../../_tsup-dts-rollup.js';
|
|
3
3
|
export { uniqueArray_alias_2 as uniqueArray } from '../../_tsup-dts-rollup.js';
|
|
4
|
+
export { mapEnvironment_alias_2 as mapEnvironment } from '../../_tsup-dts-rollup.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function r(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function e(r){if(Array.isArray(r))return r}function t(e){if(Array.isArray(e))return r(e)}function n(r,e,t){if(e in r){Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true})}else{r[e]=t}return r}function a(r){if(typeof Symbol!=="undefined"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function o(r,e){var t=r==null?null:typeof Symbol!=="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t==null)return;var n=[];var a=true;var o=false;var u,i;try{for(t=t.call(r);!(a=(u=t.next()).done);a=true){n.push(u.value);if(e&&n.length===e)break}}catch(r){o=true;i=r}finally{try{if(!a&&t["return"]!=null)t["return"]()}finally{if(o)throw i}}return n}function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function
|
|
1
|
+
function r(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function e(r){if(Array.isArray(r))return r}function t(e){if(Array.isArray(e))return r(e)}function n(r,e,t){if(e in r){Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true})}else{r[e]=t}return r}function a(r){if(typeof Symbol!=="undefined"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function o(r,e){var t=r==null?null:typeof Symbol!=="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t==null)return;var n=[];var a=true;var o=false;var u,i;try{for(t=t.call(r);!(a=(u=t.next()).done);a=true){n.push(u.value);if(e&&n.length===e)break}}catch(r){o=true;i=r}finally{try{if(!a&&t["return"]!=null)t["return"]()}finally{if(o)throw i}}return n}function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};var a=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){a=a.concat(Object.getOwnPropertySymbols(t).filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))}a.forEach(function(e){n(r,e,t[e])})}return r}function l(r,t){return e(r)||o(r,t)||y(r,t)||u()}function f(r){return t(r)||a(r)||y(r)||i()}function y(e,t){if(!e)return;if(typeof e==="string")return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}var p=Object.defineProperty;var v=function(r,e){return p(r,"name",{value:e,configurable:!0})};import m from"unorm";var s=function(r){return r.PRODUCTION="production",r.STAGING="staging",r.DEVELOPMENT="development",r}({});var b={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},O=Object.entries(b).reduce(function(r,e){var t=l(e,2),n=t[0],a=t[1];return r[n.toUpperCase()]=a.map(function(r){return r.toUpperCase()}),r},{});function d(r){r=m.nfkc(r);var e=c({},b,O);var t=true,n=false,a=undefined;try{for(var o=Object.entries(e)[Symbol.iterator](),u;!(t=(u=o.next()).done);t=true){var i=l(u.value,2),y=i[0],p=i[1];var v="[".concat(y).concat(p.join(""),"]"),s="(".concat([y].concat(f(p)).join("|"),")");r=r.replace(new RegExp(v,"g"),s)}}catch(r){n=true;a=r}finally{try{if(!t&&o.return!=null){o.return()}}finally{if(n){throw a}}}return r}v(d,"regexSearchMapper");function E(r){return r.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}v(E,"removeAccent");function h(r,e){if(!e)return Array.from(new Set(r));var t=new Set,n=[];var a=true,o=false,u=undefined;try{for(var i=r[Symbol.iterator](),c;!(a=(c=i.next()).done);a=true){var l=c.value;var f=e(l);t.has(f)||(t.add(f),n.push(l))}}catch(r){o=true;u=r}finally{try{if(!a&&i.return!=null){i.return()}}finally{if(o){throw u}}}return n}v(h,"uniqueArray");function S(r){var e=r.NODE_ENV,t=r.NODE_ENV_MODE,n=e===s.DEVELOPMENT,a=e===s.PRODUCTION&&t===s.STAGING,o=e===s.PRODUCTION&&t===s.PRODUCTION;if(!n&&t===s.DEVELOPMENT)throw new Error("NODE_ENV_MODE cannot be DEVELOPMENT in non-development environment");return{IS_DEV:n,IS_STAG:a,IS_PROD:o}}v(S,"mapEnvironment");export{S as mapEnvironment,d as regexSearchMapper,E as removeAccent,h as uniqueArray};
|
package/dist/util/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e,r){if(r==null||r>e.length)r=e.length;for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function r(e){if(Array.isArray(e))return e}function t(r){if(Array.isArray(r))return e(r)}function n(e,r,t){if(r in e){Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true})}else{e[r]=t}return e}function i(e,r){if(r!=null&&typeof Symbol!=="undefined"&&r[Symbol.hasInstance]){return!!r[Symbol.hasInstance](e)}else{return e instanceof r}}function a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function u(e,r){var t=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(t==null)return;var n=[];var i=true;var a=false;var u,o;try{for(t=t.call(e);!(i=(u=t.next()).done);i=true){n.push(u.value);if(r&&n.length===r)break}}catch(e){a=true;o=e}finally{try{if(!i&&t["return"]!=null)t["return"]()}finally{if(a)throw o}}return n}function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};var i=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}i.forEach(function(r){n(e,r,t[r])})}return e}function c(e,t){return r(e)||u(e,t)||y(e,t)||o()}function s(e){return t(e)||a(e)||y(e)||l()}function d(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function y(r,t){if(!r)return;if(typeof r==="string")return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);if(n==="Object"&&r.constructor)n=r.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}var v=Object.create;var p=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var S=function(e,r){return p(e,"name",{value:r,configurable:!0})};var w=function(e,r){for(var t in r)p(e,t,{get:r[t],enumerable:!0})},O=function(e,r,t,n){var i=true,a=false,u=undefined;if(r&&(typeof r==="undefined"?"undefined":d(r))=="object"||typeof r=="function")try{var o=function(){var i=f.value;!h.call(e,i)&&i!==t&&p(e,i,{get:function(){return r[i]},enumerable:!(n=g(r,i))||n.enumerable})};for(var l=b(r)[Symbol.iterator](),f;!(i=(f=l.next()).done);i=true)o()}catch(e){a=true;u=e}finally{try{if(!i&&l.return!=null){l.return()}}finally{if(a){throw u}}}return e};var j=function(e,r,t){return t=e!=null?v(m(e)):{},O(r||!e||!e.__esModule?p(t,"default",{value:e,enumerable:!0}):t,e)},A=function(e){return O(p({},"__esModule",{value:!0}),e)};var z={};w(z,{deepMerge:function(){return D},generateRandomPassword:function(){return W},generateShortId:function(){return U},generateSlug:function(){return C},getFileName:function(){return $},isJson:function(){return E},isObject:function(){return R},regexSearchMapper:function(){return I},removeAccent:function(){return P},serializer:function(){return k},substringBetween:function(){return H},uniqueArray:function(){return N},validate:function(){return T}});module.exports=A(z);var x=j(require("unorm"),1);var _={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},M=Object.entries(_).reduce(function(e,r){var t=c(r,2),n=t[0],i=t[1];return e[n.toUpperCase()]=i.map(function(e){return e.toUpperCase()}),e},{});function I(e){e=x.default.nfkc(e);var r=f({},_,M);var t=true,n=false,i=undefined;try{for(var a=Object.entries(r)[Symbol.iterator](),u;!(t=(u=a.next()).done);t=true){var o=c(u.value,2),l=o[0],d=o[1];var y="[".concat(l).concat(d.join(""),"]"),v="(".concat([l].concat(s(d)).join("|"),")");e=e.replace(new RegExp(y,"g"),v)}}catch(e){n=true;i=e}finally{try{if(!t&&a.return!=null){a.return()}}finally{if(n){throw i}}}return e}S(I,"regexSearchMapper");function P(e){return e.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}S(P,"removeAccent");function N(e,r){if(!r)return Array.from(new Set(e));var t=new Set,n=[];var i=true,a=false,u=undefined;try{for(var o=e[Symbol.iterator](),l;!(i=(l=o.next()).done);i=true){var f=l.value;var c=r(f);t.has(c)||(t.add(c),n.push(f))}}catch(e){a=true;u=e}finally{try{if(!i&&o.return!=null){o.return()}}finally{if(a){throw u}}}return n}S(N,"uniqueArray");function E(e){try{return JSON.parse(e),!0}catch(e){return!1}}S(E,"isJson");function R(e){return(typeof e==="undefined"?"undefined":d(e))=="object"&&e!==null&&!Array.isArray(e)}S(R,"isObject");function D(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++){r[t]=arguments[t]}var n={};var i=true,a=false,u=undefined,o=true,l=false,f=undefined;try{for(var d=r.flat()[Symbol.iterator](),y;!(o=(y=d.next()).done);o=true){var v=y.value;try{for(var p=Object.entries(v)[Symbol.iterator](),g;!(i=(g=p.next()).done);i=true){var b=c(g.value,2),m=b[0],h=b[1];var S=n[m];if(Array.isArray(h)){var w=Array.isArray(S)?S:[];n[m]=s(new Set(s(w).concat(s(h))));continue}if(R(h)){n[m]=D(R(S)?S:{},h);continue}n[m]=h}}catch(e){a=true;u=e}finally{try{if(!i&&p.return!=null){p.return()}}finally{if(a){throw u}}}}}catch(e){l=true;f=e}finally{try{if(!o&&d.return!=null){d.return()}}finally{if(l){throw f}}}return n}S(D,"deepMerge");var B={Date:{is:S(function(e){return i(e,Date)},"is"),serialize:S(function(e){return{__type:"Date",value:e.toISOString()}},"serialize"),deserialize:S(function(e){return new Date(e)},"deserialize")},Map:{is:S(function(e){return i(e,Map)},"is"),serialize:S(function(e){return{__type:"Map",value:Array.from(e.entries())}},"serialize"),deserialize:S(function(e){return new Map(e)},"deserialize")},Set:{is:S(function(e){return i(e,Set)},"is"),serialize:S(function(e){return{__type:"Set",value:Array.from(e)}},"serialize"),deserialize:S(function(e){return new Set(e)},"deserialize")},RegExp:{is:S(function(e){return i(e,RegExp)},"is"),serialize:S(function(e){return{__type:"RegExp",value:{source:e.source,flags:e.flags}}},"serialize"),deserialize:S(function(e){var r=e.source,t=e.flags;return new RegExp(r,t)},"deserialize")},BigInt:{is:S(function(e){return(typeof e==="undefined"?"undefined":d(e))=="bigint"},"is"),serialize:S(function(e){return{__type:"BigInt",value:e.toString()}},"serialize"),deserialize:S(function(e){return BigInt(e)},"deserialize")}},k={serialize:function e(e){return JSON.stringify(e,function(e,r){var t=true,n=false,i=undefined;try{for(var a=Object.keys(B)[Symbol.iterator](),u;!(t=(u=a.next()).done);t=true){var o=u.value;var l=B[o];if(l.is(r))return l.serialize(r)}}catch(e){n=true;i=e}finally{try{if(!t&&a.return!=null){a.return()}}finally{if(n){throw i}}}return r})},deserialize:function e(e){return JSON.parse(e,function(e,r){if(r&&(typeof r==="undefined"?"undefined":d(r))=="object"&&"__type"in r&&typeof r.__type=="string"){var t=r.__type,n=B[t];if(n)return n.deserialize(r.value)}return r})}};var q=j(require("crypto-js"),1),J=j(require("slugify"),1);var F=J.default.default||J.default;function C(e,r){var t=S(function(e){var t,n;return F(e!==null&&e!==void 0?e:"",f({lower:(t=r===null||r===void 0?void 0:r.lower)!==null&&t!==void 0?t:!0,locale:(n=r===null||r===void 0?void 0:r.locale)!==null&&n!==void 0?n:"vi"},r))},"slugifyWithOptions");if(R(e)){var n={};var i=true,a=false,u=undefined;try{for(var o=Object.entries(e)[Symbol.iterator](),l;!(i=(l=o.next()).done);i=true){var s=c(l.value,2),d=s[0],y=s[1];n[d]=t(y)}}catch(e){a=true;u=e}finally{try{if(!i&&o.return!=null){o.return()}}finally{if(a){throw u}}}return n}return t(e)}S(C,"generateSlug");function U(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4;return q.default.SHA256(e).toString(q.default.enc.Hex).slice(0,r)}S(U,"generateShortId");function W(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:8;var r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{}|;:,.<>?",t="";for(var n=0;n<e;n++){var i=Math.floor(Math.random()*r.length);t+=r.charAt(i)}return t}S(W,"generateRandomPassword");function $(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var t=e.split(/[?#]/)[0]||"",n=t.substring(t.lastIndexOf("/")+1);if(r)return n;var i=n.lastIndexOf(".");return i>0?n.slice(0,i):n}S($,"getFileName");function H(e,r,t){var n=e.indexOf(r);if(n===-1)return"";var i=n+r.length,a=e.indexOf(t,i);return a===-1?"":e.slice(i,a)}S(H,"substringBetween");var T={isEmpty:function e(e){return e==null?!0:typeof e=="string"?e.trim().length===0:Array.isArray(e)?e.length===0:(typeof e==="undefined"?"undefined":d(e))=="object"?i(e,Date)?!1:i(e,Map)||i(e,Set)?e.size===0:i(e,WeakMap)||i(e,WeakSet)?!0:ArrayBuffer.isView(e)?e.byteLength===0:Object.keys(e).length===0:!1},isValidIP:function e(e){var r=e.split(".");return r.length===4&&r.every(function(e){return/^\d+$/.test(e)&&Number(e)>=0&&Number(e)<=255})?!0:/^(([a-f\d]{1,4}:){7}[a-f\d]{1,4}|((?:[a-f\d]{1,4}:){1,7}:)|((?:[a-f\d]{1,4}:){1,6}:[a-f\d]{1,4})|::)$/i.test(e)}};0&&(module.exports={deepMerge:deepMerge,generateRandomPassword:generateRandomPassword,generateShortId:generateShortId,generateSlug:generateSlug,getFileName:getFileName,isJson:isJson,isObject:isObject,regexSearchMapper:regexSearchMapper,removeAccent:removeAccent,serializer:serializer,substringBetween:substringBetween,uniqueArray:uniqueArray,validate:validate});
|
|
1
|
+
"use strict";function e(e,r){if(r==null||r>e.length)r=e.length;for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function r(e){if(Array.isArray(e))return e}function n(r){if(Array.isArray(r))return e(r)}function t(e,r,n){if(r in e){Object.defineProperty(e,r,{value:n,enumerable:true,configurable:true,writable:true})}else{e[r]=n}return e}function i(e,r){if(r!=null&&typeof Symbol!=="undefined"&&r[Symbol.hasInstance]){return!!r[Symbol.hasInstance](e)}else{return e instanceof r}}function a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function u(e,r){var n=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(n==null)return;var t=[];var i=true;var a=false;var u,o;try{for(n=n.call(e);!(i=(u=n.next()).done);i=true){t.push(u.value);if(r&&t.length===r)break}}catch(e){a=true;o=e}finally{try{if(!i&&n["return"]!=null)n["return"]()}finally{if(a)throw o}}return t}function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};var i=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}i.forEach(function(r){t(e,r,n[r])})}return e}function c(e,n){return r(e)||u(e,n)||y(e,n)||o()}function s(e){return n(e)||a(e)||y(e)||l()}function d(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function y(r,n){if(!r)return;if(typeof r==="string")return e(r,n);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor)t=r.constructor.name;if(t==="Map"||t==="Set")return Array.from(t);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return e(r,n)}var v=Object.create;var p=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var O=function(e,r){return p(e,"name",{value:r,configurable:!0})};var S=function(e,r){for(var n in r)p(e,n,{get:r[n],enumerable:!0})},w=function(e,r,n,t){var i=true,a=false,u=undefined;if(r&&(typeof r==="undefined"?"undefined":d(r))=="object"||typeof r=="function")try{var o=function(){var i=f.value;!h.call(e,i)&&i!==n&&p(e,i,{get:function(){return r[i]},enumerable:!(t=g(r,i))||t.enumerable})};for(var l=b(r)[Symbol.iterator](),f;!(i=(f=l.next()).done);i=true)o()}catch(e){a=true;u=e}finally{try{if(!i&&l.return!=null){l.return()}}finally{if(a){throw u}}}return e};var E=function(e,r,n){return n=e!=null?v(m(e)):{},w(r||!e||!e.__esModule?p(n,"default",{value:e,enumerable:!0}):n,e)},A=function(e){return w(p({},"__esModule",{value:!0}),e)};var j={};S(j,{deepMerge:function(){return V},generateRandomPassword:function(){return G},generateShortId:function(){return F},generateSlug:function(){return U},getFileName:function(){return L},isJson:function(){return R},isObject:function(){return T},mapEnvironment:function(){return P},regexSearchMapper:function(){return x},removeAccent:function(){return M},serializer:function(){return k},substringBetween:function(){return W},uniqueArray:function(){return D},validate:function(){return $}});module.exports=A(j);var z=E(require("unorm"),1);var _=function(e){return e.PRODUCTION="production",e.STAGING="staging",e.DEVELOPMENT="development",e}({});var I={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},N=Object.entries(I).reduce(function(e,r){var n=c(r,2),t=n[0],i=n[1];return e[t.toUpperCase()]=i.map(function(e){return e.toUpperCase()}),e},{});function x(e){e=z.default.nfkc(e);var r=f({},I,N);var n=true,t=false,i=undefined;try{for(var a=Object.entries(r)[Symbol.iterator](),u;!(n=(u=a.next()).done);n=true){var o=c(u.value,2),l=o[0],d=o[1];var y="[".concat(l).concat(d.join(""),"]"),v="(".concat([l].concat(s(d)).join("|"),")");e=e.replace(new RegExp(y,"g"),v)}}catch(e){t=true;i=e}finally{try{if(!n&&a.return!=null){a.return()}}finally{if(t){throw i}}}return e}O(x,"regexSearchMapper");function M(e){return e.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}O(M,"removeAccent");function D(e,r){if(!r)return Array.from(new Set(e));var n=new Set,t=[];var i=true,a=false,u=undefined;try{for(var o=e[Symbol.iterator](),l;!(i=(l=o.next()).done);i=true){var f=l.value;var c=r(f);n.has(c)||(n.add(c),t.push(f))}}catch(e){a=true;u=e}finally{try{if(!i&&o.return!=null){o.return()}}finally{if(a){throw u}}}return t}O(D,"uniqueArray");function P(e){var r=e.NODE_ENV,n=e.NODE_ENV_MODE,t=r===_.DEVELOPMENT,i=r===_.PRODUCTION&&n===_.STAGING,a=r===_.PRODUCTION&&n===_.PRODUCTION;if(!t&&n===_.DEVELOPMENT)throw new Error("NODE_ENV_MODE cannot be DEVELOPMENT in non-development environment");return{IS_DEV:t,IS_STAG:i,IS_PROD:a}}O(P,"mapEnvironment");function R(e){try{return JSON.parse(e),!0}catch(e){return!1}}O(R,"isJson");function T(e){return(typeof e==="undefined"?"undefined":d(e))=="object"&&e!==null&&!Array.isArray(e)}O(T,"isObject");function V(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++){r[n]=arguments[n]}var t={};var i=true,a=false,u=undefined,o=true,l=false,f=undefined;try{for(var d=r.flat()[Symbol.iterator](),y;!(o=(y=d.next()).done);o=true){var v=y.value;try{for(var p=Object.entries(v)[Symbol.iterator](),g;!(i=(g=p.next()).done);i=true){var b=c(g.value,2),m=b[0],h=b[1];var O=t[m];if(Array.isArray(h)){var S=Array.isArray(O)?O:[];t[m]=s(new Set(s(S).concat(s(h))));continue}if(T(h)){t[m]=V(T(O)?O:{},h);continue}t[m]=h}}catch(e){a=true;u=e}finally{try{if(!i&&p.return!=null){p.return()}}finally{if(a){throw u}}}}}catch(e){l=true;f=e}finally{try{if(!o&&d.return!=null){d.return()}}finally{if(l){throw f}}}return t}O(V,"deepMerge");var B={Date:{is:O(function(e){return i(e,Date)},"is"),serialize:O(function(e){return{__type:"Date",value:e.toISOString()}},"serialize"),deserialize:O(function(e){return new Date(e)},"deserialize")},Map:{is:O(function(e){return i(e,Map)},"is"),serialize:O(function(e){return{__type:"Map",value:Array.from(e.entries())}},"serialize"),deserialize:O(function(e){return new Map(e)},"deserialize")},Set:{is:O(function(e){return i(e,Set)},"is"),serialize:O(function(e){return{__type:"Set",value:Array.from(e)}},"serialize"),deserialize:O(function(e){return new Set(e)},"deserialize")},RegExp:{is:O(function(e){return i(e,RegExp)},"is"),serialize:O(function(e){return{__type:"RegExp",value:{source:e.source,flags:e.flags}}},"serialize"),deserialize:O(function(e){var r=e.source,n=e.flags;return new RegExp(r,n)},"deserialize")},BigInt:{is:O(function(e){return(typeof e==="undefined"?"undefined":d(e))=="bigint"},"is"),serialize:O(function(e){return{__type:"BigInt",value:e.toString()}},"serialize"),deserialize:O(function(e){return BigInt(e)},"deserialize")}},k={serialize:function e(e){return JSON.stringify(e,function(e,r){var n=true,t=false,i=undefined;try{for(var a=Object.keys(B)[Symbol.iterator](),u;!(n=(u=a.next()).done);n=true){var o=u.value;var l=B[o];if(l.is(r))return l.serialize(r)}}catch(e){t=true;i=e}finally{try{if(!n&&a.return!=null){a.return()}}finally{if(t){throw i}}}return r})},deserialize:function e(e){return JSON.parse(e,function(e,r){if(r&&(typeof r==="undefined"?"undefined":d(r))=="object"&&"__type"in r&&typeof r.__type=="string"){var n=r.__type,t=B[n];if(t)return t.deserialize(r.value)}return r})}};var q=E(require("crypto-js"),1),C=E(require("slugify"),1);var J=C.default.default||C.default;function U(e,r){var n=O(function(e){var n,t;return J(e!==null&&e!==void 0?e:"",f({lower:(n=r===null||r===void 0?void 0:r.lower)!==null&&n!==void 0?n:!0,locale:(t=r===null||r===void 0?void 0:r.locale)!==null&&t!==void 0?t:"vi"},r))},"slugifyWithOptions");if(T(e)){var t={};var i=true,a=false,u=undefined;try{for(var o=Object.entries(e)[Symbol.iterator](),l;!(i=(l=o.next()).done);i=true){var s=c(l.value,2),d=s[0],y=s[1];t[d]=n(y)}}catch(e){a=true;u=e}finally{try{if(!i&&o.return!=null){o.return()}}finally{if(a){throw u}}}return t}return n(e)}O(U,"generateSlug");function F(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4;return q.default.SHA256(e).toString(q.default.enc.Hex).slice(0,r)}O(F,"generateShortId");function G(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:8;var r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{}|;:,.<>?",n="";for(var t=0;t<e;t++){var i=Math.floor(Math.random()*r.length);n+=r.charAt(i)}return n}O(G,"generateRandomPassword");function L(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var n=e.split(/[?#]/)[0]||"",t=n.substring(n.lastIndexOf("/")+1);if(r)return t;var i=t.lastIndexOf(".");return i>0?t.slice(0,i):t}O(L,"getFileName");function W(e,r,n){var t=e.indexOf(r);if(t===-1)return"";var i=t+r.length,a=e.indexOf(n,i);return a===-1?"":e.slice(i,a)}O(W,"substringBetween");var $={isEmpty:function e(e){return e==null?!0:typeof e=="string"?e.trim().length===0:Array.isArray(e)?e.length===0:(typeof e==="undefined"?"undefined":d(e))=="object"?i(e,Date)?!1:i(e,Map)||i(e,Set)?e.size===0:i(e,WeakMap)||i(e,WeakSet)?!0:ArrayBuffer.isView(e)?e.byteLength===0:Object.keys(e).length===0:!1},isValidIP:function e(e){var r=e.split(".");return r.length===4&&r.every(function(e){return/^\d+$/.test(e)&&Number(e)>=0&&Number(e)<=255})?!0:/^(([a-f\d]{1,4}:){7}[a-f\d]{1,4}|((?:[a-f\d]{1,4}:){1,7}:)|((?:[a-f\d]{1,4}:){1,6}:[a-f\d]{1,4})|::)$/i.test(e)}};0&&(module.exports={deepMerge:deepMerge,generateRandomPassword:generateRandomPassword,generateShortId:generateShortId,generateSlug:generateSlug,getFileName:getFileName,isJson:isJson,isObject:isObject,mapEnvironment:mapEnvironment,regexSearchMapper:regexSearchMapper,removeAccent:removeAccent,serializer:serializer,substringBetween:substringBetween,uniqueArray:uniqueArray,validate:validate});
|
package/dist/util/index.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { regexSearchMapper } from '../_tsup-dts-rollup.cjs';
|
|
2
2
|
export { removeAccent } from '../_tsup-dts-rollup.cjs';
|
|
3
3
|
export { uniqueArray } from '../_tsup-dts-rollup.cjs';
|
|
4
|
+
export { mapEnvironment } from '../_tsup-dts-rollup.cjs';
|
|
4
5
|
export { isJson } from '../_tsup-dts-rollup.cjs';
|
|
5
6
|
export { isObject } from '../_tsup-dts-rollup.cjs';
|
|
6
7
|
export { deepMerge } from '../_tsup-dts-rollup.cjs';
|
package/dist/util/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { regexSearchMapper } from '../_tsup-dts-rollup.js';
|
|
2
2
|
export { removeAccent } from '../_tsup-dts-rollup.js';
|
|
3
3
|
export { uniqueArray } from '../_tsup-dts-rollup.js';
|
|
4
|
+
export { mapEnvironment } from '../_tsup-dts-rollup.js';
|
|
4
5
|
export { isJson } from '../_tsup-dts-rollup.js';
|
|
5
6
|
export { isObject } from '../_tsup-dts-rollup.js';
|
|
6
7
|
export { deepMerge } from '../_tsup-dts-rollup.js';
|
package/dist/util/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,r){if(r==null||r>e.length)r=e.length;for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function r(e){if(Array.isArray(e))return e}function t(r){if(Array.isArray(r))return e(r)}function n(e,r,t){if(r in e){Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true})}else{e[r]=t}return e}function i(e,r){if(r!=null&&typeof Symbol!=="undefined"&&r[Symbol.hasInstance]){return!!r[Symbol.hasInstance](e)}else{return e instanceof r}}function a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function u(e,r){var t=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(t==null)return;var n=[];var i=true;var a=false;var u,o;try{for(t=t.call(e);!(i=(u=t.next()).done);i=true){n.push(u.value);if(r&&n.length===r)break}}catch(e){a=true;o=e}finally{try{if(!i&&t["return"]!=null)t["return"]()}finally{if(a)throw o}}return n}function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};var i=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}i.forEach(function(r){n(e,r,t[r])})}return e}function c(e,t){return r(e)||u(e,t)||d(e,t)||o()}function s(e){return t(e)||a(e)||d(e)||l()}function y(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function d(r,t){if(!r)return;if(typeof r==="string")return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);if(n==="Object"&&r.constructor)n=r.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}var v=Object.defineProperty;var p=function(e,r){return v(e,"name",{value:r,configurable:!0})};import g from"unorm";var b={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},
|
|
1
|
+
function e(e,r){if(r==null||r>e.length)r=e.length;for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function r(e){if(Array.isArray(e))return e}function t(r){if(Array.isArray(r))return e(r)}function n(e,r,t){if(r in e){Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true})}else{e[r]=t}return e}function i(e,r){if(r!=null&&typeof Symbol!=="undefined"&&r[Symbol.hasInstance]){return!!r[Symbol.hasInstance](e)}else{return e instanceof r}}function a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function u(e,r){var t=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(t==null)return;var n=[];var i=true;var a=false;var u,o;try{for(t=t.call(e);!(i=(u=t.next()).done);i=true){n.push(u.value);if(r&&n.length===r)break}}catch(e){a=true;o=e}finally{try{if(!i&&t["return"]!=null)t["return"]()}finally{if(a)throw o}}return n}function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};var i=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}i.forEach(function(r){n(e,r,t[r])})}return e}function c(e,t){return r(e)||u(e,t)||d(e,t)||o()}function s(e){return t(e)||a(e)||d(e)||l()}function y(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function d(r,t){if(!r)return;if(typeof r==="string")return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);if(n==="Object"&&r.constructor)n=r.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}var v=Object.defineProperty;var p=function(e,r){return v(e,"name",{value:r,configurable:!0})};import g from"unorm";var m=function(e){return e.PRODUCTION="production",e.STAGING="staging",e.DEVELOPMENT="development",e}({});var b={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},h=Object.entries(b).reduce(function(e,r){var t=c(r,2),n=t[0],i=t[1];return e[n.toUpperCase()]=i.map(function(e){return e.toUpperCase()}),e},{});function S(e){e=g.nfkc(e);var r=f({},b,h);var t=true,n=false,i=undefined;try{for(var a=Object.entries(r)[Symbol.iterator](),u;!(t=(u=a.next()).done);t=true){var o=c(u.value,2),l=o[0],y=o[1];var d="[".concat(l).concat(y.join(""),"]"),v="(".concat([l].concat(s(y)).join("|"),")");e=e.replace(new RegExp(d,"g"),v)}}catch(e){n=true;i=e}finally{try{if(!t&&a.return!=null){a.return()}}finally{if(n){throw i}}}return e}p(S,"regexSearchMapper");function O(e){return e.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}p(O,"removeAccent");function E(e,r){if(!r)return Array.from(new Set(e));var t=new Set,n=[];var i=true,a=false,u=undefined;try{for(var o=e[Symbol.iterator](),l;!(i=(l=o.next()).done);i=true){var f=l.value;var c=r(f);t.has(c)||(t.add(c),n.push(f))}}catch(e){a=true;u=e}finally{try{if(!i&&o.return!=null){o.return()}}finally{if(a){throw u}}}return n}p(E,"uniqueArray");function w(e){var r=e.NODE_ENV,t=e.NODE_ENV_MODE,n=r===m.DEVELOPMENT,i=r===m.PRODUCTION&&t===m.STAGING,a=r===m.PRODUCTION&&t===m.PRODUCTION;if(!n&&t===m.DEVELOPMENT)throw new Error("NODE_ENV_MODE cannot be DEVELOPMENT in non-development environment");return{IS_DEV:n,IS_STAG:i,IS_PROD:a}}p(w,"mapEnvironment");function A(e){try{return JSON.parse(e),!0}catch(e){return!1}}p(A,"isJson");function z(e){return(typeof e==="undefined"?"undefined":y(e))=="object"&&e!==null&&!Array.isArray(e)}p(z,"isObject");function j(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++){r[t]=arguments[t]}var n={};var i=true,a=false,u=undefined,o=true,l=false,f=undefined;try{for(var y=r.flat()[Symbol.iterator](),d;!(o=(d=y.next()).done);o=true){var v=d.value;try{for(var p=Object.entries(v)[Symbol.iterator](),g;!(i=(g=p.next()).done);i=true){var m=c(g.value,2),b=m[0],h=m[1];var S=n[b];if(Array.isArray(h)){var O=Array.isArray(S)?S:[];n[b]=s(new Set(s(O).concat(s(h))));continue}if(z(h)){n[b]=j(z(S)?S:{},h);continue}n[b]=h}}catch(e){a=true;u=e}finally{try{if(!i&&p.return!=null){p.return()}}finally{if(a){throw u}}}}}catch(e){l=true;f=e}finally{try{if(!o&&y.return!=null){y.return()}}finally{if(l){throw f}}}return n}p(j,"deepMerge");var I={Date:{is:p(function(e){return i(e,Date)},"is"),serialize:p(function(e){return{__type:"Date",value:e.toISOString()}},"serialize"),deserialize:p(function(e){return new Date(e)},"deserialize")},Map:{is:p(function(e){return i(e,Map)},"is"),serialize:p(function(e){return{__type:"Map",value:Array.from(e.entries())}},"serialize"),deserialize:p(function(e){return new Map(e)},"deserialize")},Set:{is:p(function(e){return i(e,Set)},"is"),serialize:p(function(e){return{__type:"Set",value:Array.from(e)}},"serialize"),deserialize:p(function(e){return new Set(e)},"deserialize")},RegExp:{is:p(function(e){return i(e,RegExp)},"is"),serialize:p(function(e){return{__type:"RegExp",value:{source:e.source,flags:e.flags}}},"serialize"),deserialize:p(function(e){var r=e.source,t=e.flags;return new RegExp(r,t)},"deserialize")},BigInt:{is:p(function(e){return(typeof e==="undefined"?"undefined":y(e))=="bigint"},"is"),serialize:p(function(e){return{__type:"BigInt",value:e.toString()}},"serialize"),deserialize:p(function(e){return BigInt(e)},"deserialize")}},N={serialize:function e(e){return JSON.stringify(e,function(e,r){var t=true,n=false,i=undefined;try{for(var a=Object.keys(I)[Symbol.iterator](),u;!(t=(u=a.next()).done);t=true){var o=u.value;var l=I[o];if(l.is(r))return l.serialize(r)}}catch(e){n=true;i=e}finally{try{if(!t&&a.return!=null){a.return()}}finally{if(n){throw i}}}return r})},deserialize:function e(e){return JSON.parse(e,function(e,r){if(r&&(typeof r==="undefined"?"undefined":y(r))=="object"&&"__type"in r&&typeof r.__type=="string"){var t=r.__type,n=I[t];if(n)return n.deserialize(r.value)}return r})}};import _ from"crypto-js";import D from"slugify";var x=D.default||D;function M(e,r){var t=p(function(e){var t,n;return x(e!==null&&e!==void 0?e:"",f({lower:(t=r===null||r===void 0?void 0:r.lower)!==null&&t!==void 0?t:!0,locale:(n=r===null||r===void 0?void 0:r.locale)!==null&&n!==void 0?n:"vi"},r))},"slugifyWithOptions");if(z(e)){var n={};var i=true,a=false,u=undefined;try{for(var o=Object.entries(e)[Symbol.iterator](),l;!(i=(l=o.next()).done);i=true){var s=c(l.value,2),y=s[0],d=s[1];n[y]=t(d)}}catch(e){a=true;u=e}finally{try{if(!i&&o.return!=null){o.return()}}finally{if(a){throw u}}}return n}return t(e)}p(M,"generateSlug");function P(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4;return _.SHA256(e).toString(_.enc.Hex).slice(0,r)}p(P,"generateShortId");function R(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:8;var r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{}|;:,.<>?",t="";for(var n=0;n<e;n++){var i=Math.floor(Math.random()*r.length);t+=r.charAt(i)}return t}p(R,"generateRandomPassword");function T(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var t=e.split(/[?#]/)[0]||"",n=t.substring(t.lastIndexOf("/")+1);if(r)return n;var i=n.lastIndexOf(".");return i>0?n.slice(0,i):n}p(T,"getFileName");function V(e,r,t){var n=e.indexOf(r);if(n===-1)return"";var i=n+r.length,a=e.indexOf(t,i);return a===-1?"":e.slice(i,a)}p(V,"substringBetween");var k={isEmpty:function e(e){return e==null?!0:typeof e=="string"?e.trim().length===0:Array.isArray(e)?e.length===0:(typeof e==="undefined"?"undefined":y(e))=="object"?i(e,Date)?!1:i(e,Map)||i(e,Set)?e.size===0:i(e,WeakMap)||i(e,WeakSet)?!0:ArrayBuffer.isView(e)?e.byteLength===0:Object.keys(e).length===0:!1},isValidIP:function e(e){var r=e.split(".");return r.length===4&&r.every(function(e){return/^\d+$/.test(e)&&Number(e)>=0&&Number(e)<=255})?!0:/^(([a-f\d]{1,4}:){7}[a-f\d]{1,4}|((?:[a-f\d]{1,4}:){1,7}:)|((?:[a-f\d]{1,4}:){1,6}:[a-f\d]{1,4})|::)$/i.test(e)}};export{j as deepMerge,R as generateRandomPassword,P as generateShortId,M as generateSlug,T as getFileName,A as isJson,z as isObject,w as mapEnvironment,S as regexSearchMapper,O as removeAccent,N as serializer,V as substringBetween,E as uniqueArray,k as validate};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyberskill/shared",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.168.0",
|
|
5
5
|
"description": "CyberSkill Shared",
|
|
6
6
|
"author": "Stephen Cheng",
|
|
7
7
|
"license": "MIT",
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
"globals": "16.1.0",
|
|
261
261
|
"graphql": "16.11.0",
|
|
262
262
|
"graphql-ws": "6.0.5",
|
|
263
|
-
"i18next": "25.
|
|
263
|
+
"i18next": "25.2.0",
|
|
264
264
|
"jsdom": "26.1.0",
|
|
265
265
|
"localforage": "1.10.0",
|
|
266
266
|
"migrate-mongo": "12.1.3",
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
"uuid": "11.1.0",
|
|
290
290
|
"vite": "6.3.5",
|
|
291
291
|
"vitest": "3.1.3",
|
|
292
|
-
"vitest-browser-react": "0.
|
|
292
|
+
"vitest-browser-react": "0.2.0",
|
|
293
293
|
"ws": "8.18.2",
|
|
294
294
|
"yargs": "17.7.2"
|
|
295
295
|
},
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
"@types/express-useragent": "1.0.5",
|
|
312
312
|
"@types/fs-extra": "11.0.4",
|
|
313
313
|
"@types/migrate-mongo": "10.0.5",
|
|
314
|
-
"@types/node": "22.15.
|
|
314
|
+
"@types/node": "22.15.19",
|
|
315
315
|
"@types/node-persist": "3.1.8",
|
|
316
316
|
"@types/react": "19.1.4",
|
|
317
317
|
"@types/react-dom": "19.1.5",
|
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
## ✅ Bước 1: Cài đặt
|
|
1
|
+
## ✅ Bước 1: Cài đặt nginx
|
|
2
2
|
|
|
3
3
|
```
|
|
4
|
-
|
|
4
|
+
sudo apt update
|
|
5
|
+
sudo apt install nginx
|
|
5
6
|
```
|
|
6
7
|
|
|
7
|
-
## ✅ Bước 2:
|
|
8
|
+
## ✅ Bước 2: Cấu hình nginx
|
|
8
9
|
|
|
9
10
|
```
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## ✅ Bước 3: Cấu hình nginx
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
cd $HOMEBREW_PREFIX/etc/nginx
|
|
11
|
+
cd /etc/nginx/sites-enabled
|
|
17
12
|
```
|
|
18
13
|
|
|
19
14
|
```
|
|
20
|
-
nano
|
|
15
|
+
sudo nano default
|
|
21
16
|
```
|
|
22
17
|
|
|
23
18
|
Thiết lập cấu hình
|
|
@@ -38,18 +33,18 @@ Thiết lập cấu hình
|
|
|
38
33
|
}
|
|
39
34
|
```
|
|
40
35
|
|
|
41
|
-
## ✅ Bước
|
|
36
|
+
## ✅ Bước 3: Kiểm tra cấu hình
|
|
42
37
|
|
|
43
38
|
```
|
|
44
|
-
nginx -t
|
|
39
|
+
sudo nginx -t
|
|
45
40
|
```
|
|
46
41
|
|
|
47
42
|
Nếu hiện như sau là cấu hình ok
|
|
48
|
-
`nginx: the configuration file /
|
|
49
|
-
`nginx: configuration file /
|
|
43
|
+
`nginx: the configuration file /etc/nginx/nginx.conf syntax is ok`
|
|
44
|
+
`nginx: configuration file /etc/nginx/nginx.conf test is successful`
|
|
50
45
|
|
|
51
46
|
## ✅ Bước 4: Khởi động lại nginx với cấu hình mới
|
|
52
47
|
|
|
53
48
|
```
|
|
54
|
-
nginx -s reload
|
|
49
|
+
sudo nginx -s reload
|
|
55
50
|
```
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
## ✅ Bước 1: Cài đặt certbot
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
sudo apt update
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
sudo apt install certbot python3-certbot-nginx
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## ✅ Bước 2: Chạy certbot
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
sudo certbot --nginx -d tên-miền
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
> ⚠️ Lưu ý: nếu có nhiều tên miền có thể ghi liên tục, ví dụ `sudo certbot --nginx -d cyberskill.example -d api.cyberskill.example -d www.cyberskill.example`
|
|
18
|
+
|
|
19
|
+
Nếu hiện như sau là cấu hình ok
|
|
20
|
+
`Successfully received certificate.`
|
|
21
|
+
`Certificate is saved at: đường-dẫn/fullchain.pem`
|
|
22
|
+
`Key is saved at: đường-dẫn/privkey.pem`
|
|
23
|
+
`This certificate expires on năm-tháng-ngày.`
|
|
24
|
+
`These files will be updated when the certificate renews.`
|
|
25
|
+
`Certbot has set up a scheduled task to automatically renew this certificate in the background.`
|
|
26
|
+
|
|
27
|
+
## ✅ Bước 3: Cập nhật cấu hình nginx
|
|
28
|
+
|
|
29
|
+
Ví dụ cho cấu hình Backend và Frontend
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
server {
|
|
33
|
+
listen 80 default_server;
|
|
34
|
+
listen [::]:80 default_server;
|
|
35
|
+
|
|
36
|
+
server_name cyberskill.example www.cyberskill.example api.cyberskill.example;
|
|
37
|
+
|
|
38
|
+
return 301 https://$host$request_uri;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
server {
|
|
42
|
+
listen 443 ssl;
|
|
43
|
+
listen [::]:443 ssl;
|
|
44
|
+
|
|
45
|
+
server_name cyberskill.example www.cyberskill.example;
|
|
46
|
+
|
|
47
|
+
ssl_certificate /etc/letsencrypt/live/cyberskill.example/fullchain.pem;
|
|
48
|
+
ssl_certificate_key /etc/letsencrypt/live/cyberskill.example/privkey.pem;
|
|
49
|
+
include /etc/letsencrypt/options-ssl-nginx.conf;
|
|
50
|
+
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
|
51
|
+
|
|
52
|
+
location / {
|
|
53
|
+
proxy_pass http://localhost:port-frontend;
|
|
54
|
+
proxy_http_version 1.1;
|
|
55
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
56
|
+
proxy_set_header Connection 'upgrade';
|
|
57
|
+
proxy_set_header Host $host;
|
|
58
|
+
proxy_cache_bypass $http_upgrade;
|
|
59
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
60
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
server {
|
|
65
|
+
listen 443 ssl;
|
|
66
|
+
listen [::]:443 ssl;
|
|
67
|
+
|
|
68
|
+
server_name api.cyberskill.example;
|
|
69
|
+
|
|
70
|
+
ssl_certificate /etc/letsencrypt/live/cyberskill.example/fullchain.pem;
|
|
71
|
+
ssl_certificate_key /etc/letsencrypt/live/cyberskill.example/privkey.pem;
|
|
72
|
+
include /etc/letsencrypt/options-ssl-nginx.conf;
|
|
73
|
+
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
|
74
|
+
|
|
75
|
+
location / {
|
|
76
|
+
proxy_pass http://localhost:port-backend;
|
|
77
|
+
proxy_http_version 1.1;
|
|
78
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
79
|
+
proxy_set_header Connection 'upgrade';
|
|
80
|
+
proxy_set_header Host $host;
|
|
81
|
+
proxy_cache_bypass $http_upgrade;
|
|
82
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
83
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## ✅ Bước 4: Kiểm tra cấu hình
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
sudo nginx -t
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Nếu hiện như sau là cấu hình ok
|
|
95
|
+
`nginx: the configuration file /etc/nginx/nginx.conf syntax is ok`
|
|
96
|
+
`nginx: configuration file /etc/nginx/nginx.conf test is successful`
|
|
97
|
+
|
|
98
|
+
## ✅ Bước 5: Khởi động lại nginx với cấu hình mới
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
sudo nginx -s reload
|
|
102
|
+
```
|