@mp-front/common 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +1 -0
  2. package/dist/adapters/index.d.ts +2 -0
  3. package/dist/adapters/index.d.ts.map +1 -0
  4. package/dist/adapters/redis-adapter.d.ts +15 -0
  5. package/dist/adapters/redis-adapter.d.ts.map +1 -0
  6. package/dist/auth/authorization-service.d.ts +11 -0
  7. package/dist/auth/authorization-service.d.ts.map +1 -0
  8. package/dist/auth/index.d.ts +2 -0
  9. package/dist/auth/index.d.ts.map +1 -0
  10. package/dist/authorization-service-DE-hoYji.js +48 -0
  11. package/dist/authorization-service-DkLS18Us.cjs +1 -0
  12. package/dist/cache/index.d.ts +3 -0
  13. package/dist/cache/index.d.ts.map +1 -0
  14. package/dist/cache/session-handler/constants/index.d.ts +6 -0
  15. package/dist/cache/session-handler/constants/index.d.ts.map +1 -0
  16. package/dist/cache/session-handler/index.d.ts +2 -0
  17. package/dist/cache/session-handler/index.d.ts.map +1 -0
  18. package/dist/cache/session-handler/session-cache.d.ts +52 -0
  19. package/dist/cache/session-handler/session-cache.d.ts.map +1 -0
  20. package/dist/cache/session-handler/types/index.d.ts +37 -0
  21. package/dist/cache/session-handler/types/index.d.ts.map +1 -0
  22. package/dist/cache/terminal-handler/constants/environments.d.ts +3 -0
  23. package/dist/cache/terminal-handler/constants/environments.d.ts.map +1 -0
  24. package/dist/cache/terminal-handler/constants/identifier.d.ts +3 -0
  25. package/dist/cache/terminal-handler/constants/identifier.d.ts.map +1 -0
  26. package/dist/cache/terminal-handler/constants/index.d.ts +3 -0
  27. package/dist/cache/terminal-handler/constants/index.d.ts.map +1 -0
  28. package/dist/cache/terminal-handler/index.d.ts +2 -0
  29. package/dist/cache/terminal-handler/index.d.ts.map +1 -0
  30. package/dist/cache/terminal-handler/terminal.d.ts +11 -0
  31. package/dist/cache/terminal-handler/terminal.d.ts.map +1 -0
  32. package/dist/cache/terminal-handler/types/index.d.ts +2 -0
  33. package/dist/cache/terminal-handler/types/index.d.ts.map +1 -0
  34. package/dist/cache/terminal-handler/types/terminal.d.ts +7 -0
  35. package/dist/cache/terminal-handler/types/terminal.d.ts.map +1 -0
  36. package/dist/cache-providers/index.d.ts +2 -0
  37. package/dist/cache-providers/index.d.ts.map +1 -0
  38. package/dist/cache-providers/redis/index.d.ts +2 -0
  39. package/dist/cache-providers/redis/index.d.ts.map +1 -0
  40. package/dist/cache-providers/redis/ioredis-instance.d.ts +3 -0
  41. package/dist/cache-providers/redis/ioredis-instance.d.ts.map +1 -0
  42. package/dist/cache-providers/redis/redis-cache.d.ts +23 -0
  43. package/dist/cache-providers/redis/redis-cache.d.ts.map +1 -0
  44. package/dist/cache-providers/redis/types/index.d.ts +37 -0
  45. package/dist/cache-providers/redis/types/index.d.ts.map +1 -0
  46. package/dist/client-Btua9wfS.js +230 -0
  47. package/dist/client-Bv9OflsW.cjs +1 -0
  48. package/dist/default-errors-DiEIEEE2.cjs +1 -0
  49. package/dist/default-errors-DsKmUZbG.js +59 -0
  50. package/dist/encoder-BEp9qfLf.cjs +1 -0
  51. package/dist/encoder-CXAlLf5T.js +39 -0
  52. package/dist/encrypter-CgZLhLnj.cjs +1 -0
  53. package/dist/encrypter-ZTjrp3uD.js +54 -0
  54. package/dist/engine/auth-engine.d.ts +29 -0
  55. package/dist/engine/auth-engine.d.ts.map +1 -0
  56. package/dist/engine/entra-id.d.ts +12 -0
  57. package/dist/engine/entra-id.d.ts.map +1 -0
  58. package/dist/engine/index.d.ts +2 -0
  59. package/dist/engine/index.d.ts.map +1 -0
  60. package/dist/engine/types/index.d.ts +51 -0
  61. package/dist/engine/types/index.d.ts.map +1 -0
  62. package/dist/errors/default-errors.d.ts +31 -0
  63. package/dist/errors/default-errors.d.ts.map +1 -0
  64. package/dist/errors/error-handler.d.ts +8 -0
  65. package/dist/errors/error-handler.d.ts.map +1 -0
  66. package/dist/errors/i18n.d.ts +30 -0
  67. package/dist/errors/i18n.d.ts.map +1 -0
  68. package/dist/errors/index.d.ts +6 -0
  69. package/dist/errors/index.d.ts.map +1 -0
  70. package/dist/errors/runtime-error-code.d.ts +16 -0
  71. package/dist/errors/runtime-error-code.d.ts.map +1 -0
  72. package/dist/errors/runtime-error.d.ts +6 -0
  73. package/dist/errors/runtime-error.d.ts.map +1 -0
  74. package/dist/fetch-BZP9DZLg.cjs +3 -0
  75. package/dist/fetch-CUIb9XhZ.js +761 -0
  76. package/dist/helpers/encoder.d.ts +8 -0
  77. package/dist/helpers/encoder.d.ts.map +1 -0
  78. package/dist/helpers/encrypter.d.ts +10 -0
  79. package/dist/helpers/encrypter.d.ts.map +1 -0
  80. package/dist/helpers/escape-unicode.d.ts +2 -0
  81. package/dist/helpers/escape-unicode.d.ts.map +1 -0
  82. package/dist/helpers/index.d.ts +5 -0
  83. package/dist/helpers/index.d.ts.map +1 -0
  84. package/dist/helpers/logger.d.ts +16 -0
  85. package/dist/helpers/logger.d.ts.map +1 -0
  86. package/dist/http/backend.d.ts +18 -0
  87. package/dist/http/backend.d.ts.map +1 -0
  88. package/dist/http/client.d.ts +20 -0
  89. package/dist/http/client.d.ts.map +1 -0
  90. package/dist/http/headers.d.ts +9 -0
  91. package/dist/http/headers.d.ts.map +1 -0
  92. package/dist/http/index.d.ts +4 -0
  93. package/dist/http/index.d.ts.map +1 -0
  94. package/dist/http/types/http-options.d.ts +13 -0
  95. package/dist/http/types/http-options.d.ts.map +1 -0
  96. package/dist/http/types/index.d.ts +5 -0
  97. package/dist/http/types/index.d.ts.map +1 -0
  98. package/dist/http/types/method.d.ts +2 -0
  99. package/dist/http/types/method.d.ts.map +1 -0
  100. package/dist/http/types/request-config.d.ts +10 -0
  101. package/dist/http/types/request-config.d.ts.map +1 -0
  102. package/dist/http/types/response.d.ts +39 -0
  103. package/dist/http/types/response.d.ts.map +1 -0
  104. package/dist/i18n-CEBemBIX.js +31 -0
  105. package/dist/i18n-vIm9wuAG.cjs +1 -0
  106. package/dist/index.d.ts +4 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/ioredis-instance-BaXfqmqC.js +11 -0
  109. package/dist/ioredis-instance-PenLE7vi.cjs +1 -0
  110. package/dist/loading-handler-BrN0O37N.cjs +1 -0
  111. package/dist/loading-handler-ivYFmS_V.js +17 -0
  112. package/dist/lodash-DNCgFYS7.cjs +27 -0
  113. package/dist/lodash-QjAkD17S.js +3677 -0
  114. package/dist/logger-BMbeDoGU.cjs +1 -0
  115. package/dist/logger-DtlFWyFO.js +60 -0
  116. package/dist/middleware/api-middleware.d.ts +22 -0
  117. package/dist/middleware/api-middleware.d.ts.map +1 -0
  118. package/dist/middleware/index.d.ts +2 -0
  119. package/dist/middleware/index.d.ts.map +1 -0
  120. package/dist/middleware/types/index.d.ts +2 -0
  121. package/dist/middleware/types/index.d.ts.map +1 -0
  122. package/dist/mp-front-common-adapters.cjs +1 -0
  123. package/dist/mp-front-common-adapters.js +169 -0
  124. package/dist/mp-front-common-all.cjs +1 -0
  125. package/dist/mp-front-common-all.js +126 -0
  126. package/dist/mp-front-common-auth.cjs +1 -0
  127. package/dist/mp-front-common-auth.js +4 -0
  128. package/dist/mp-front-common-cache.cjs +1 -0
  129. package/dist/mp-front-common-cache.js +132 -0
  130. package/dist/mp-front-common-cacheProviders.cjs +1 -0
  131. package/dist/mp-front-common-cacheProviders.js +4 -0
  132. package/dist/mp-front-common-engine.cjs +1 -0
  133. package/dist/mp-front-common-engine.js +185 -0
  134. package/dist/mp-front-common-errors.cjs +1 -0
  135. package/dist/mp-front-common-errors.js +9 -0
  136. package/dist/mp-front-common-helpers.cjs +1 -0
  137. package/dist/mp-front-common-helpers.js +9 -0
  138. package/dist/mp-front-common-http.cjs +1 -0
  139. package/dist/mp-front-common-http.js +6 -0
  140. package/dist/mp-front-common-rxjs.cjs +1 -0
  141. package/dist/mp-front-common-rxjs.js +4 -0
  142. package/dist/redis-cache-BoKAFYQi.js +83 -0
  143. package/dist/redis-cache-DjKTqllz.cjs +1 -0
  144. package/dist/rx-subject-manager-ZC9CWBWH.cjs +1 -0
  145. package/dist/rx-subject-manager-_4urHn8A.js +24 -0
  146. package/dist/rxjs/index.d.ts +2 -0
  147. package/dist/rxjs/index.d.ts.map +1 -0
  148. package/dist/rxjs/loading-handler.d.ts +7 -0
  149. package/dist/rxjs/loading-handler.d.ts.map +1 -0
  150. package/dist/rxjs/rx-subject-manager.d.ts +9 -0
  151. package/dist/rxjs/rx-subject-manager.d.ts.map +1 -0
  152. package/dist/stringify-93tp0umt.js +9 -0
  153. package/dist/stringify-BN6t_WDt.cjs +1 -0
  154. package/dist/types.d.ts +4 -0
  155. package/dist/types.d.ts.map +1 -0
  156. package/dist/v5-BTqP79vV.cjs +1 -0
  157. package/dist/v5-Cu1sjPlx.js +91 -0
  158. package/package.json +107 -0
@@ -0,0 +1,185 @@
1
+ var P = Object.defineProperty;
2
+ var u = (n, r, t) => r in n ? P(n, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[r] = t;
3
+ var c = (n, r, t) => u(n, typeof r != "symbol" ? r + "" : r, t);
4
+ import { switchMap as A, of as g, forkJoin as N } from "rxjs";
5
+ import { l as o } from "./lodash-QjAkD17S.js";
6
+ import { L } from "./logger-DtlFWyFO.js";
7
+ import "node-jose";
8
+ import "crypto";
9
+ import { f as a } from "./fetch-CUIb9XhZ.js";
10
+ const R = {
11
+ client_id: process.env.AZURE_AD_CLIENT_ID,
12
+ client_secret: process.env.AZURE_AD_CLIENT_SECRET,
13
+ resource: process.env.AZURE_AD_CLIENT_RESOURCE,
14
+ grant_type: process.env.AZURE_AD_CLIENT_GRANT_TYPE
15
+ }, U = process.env.AZURE_AD_GRAPH_URL_TOKEN, D = process.env.AZURE_AD_TENANT_ID;
16
+ class I {
17
+ constructor() {
18
+ c(this, "logger", new L());
19
+ }
20
+ getHeaders() {
21
+ const r = Object.keys(R).some((e) => o.isEmpty(R[e]));
22
+ if (o.isEmpty(U) || o.isEmpty(D))
23
+ throw this.logger.logError(
24
+ "AZURE_AD_GRAPH_URL_TOKEN or AZURE_AD_TENANT_ID are empty or missing"
25
+ ), new Error(
26
+ "AZURE_AD_GRAPH_URL_TOKEN or AZURE_AD_TENANT_ID are empty or missing"
27
+ );
28
+ if (r)
29
+ throw this.logger.logError(
30
+ "Some variables are empty or missing, check AZURE_AD_CLIENT_ID, AZURE_AD_CLIENT_SECRET, AZURE_AD_CLIENT_RESOURCE, AZURE_AD_CLIENT_GRANT_TYPE"
31
+ ), new Error("some variables are empty or missing");
32
+ const t = U.replace(
33
+ "AZURE_AD_TENANT_ID",
34
+ D
35
+ );
36
+ return a(t, {
37
+ method: "POST",
38
+ headers: {
39
+ Accept: "application/json",
40
+ "Content-Type": "application/x-www-form-urlencoded"
41
+ },
42
+ body: new URLSearchParams(R),
43
+ selector: (e) => e.json()
44
+ }).pipe(
45
+ A((e) => (this.logger.logDebug(
46
+ "response from API new_url_365_graph_token",
47
+ JSON.stringify(e)
48
+ ), g({
49
+ headers: {
50
+ Authorization: `Bearer ${e == null ? void 0 : e.access_token}`,
51
+ responseType: "json"
52
+ }
53
+ })))
54
+ );
55
+ }
56
+ }
57
+ const T = process.env.AZURE_AD_GRAPH_GET_APP_ROLES, y = process.env.AZURE_AD_GRAPH_GET_USER_BY_EMAIL, G = process.env.AZURE_AD_GRAPH_GROUPS;
58
+ class b extends I {
59
+ getAppRoles(r) {
60
+ if (o.isEmpty(T))
61
+ throw this.logger.logError(
62
+ "AZURE_AD_GRAPH_GET_APP_ROLES URL is empty or missing"
63
+ ), new Error("AZURE_AD_GRAPH_GET_APP_ROLES URL is empty or missing");
64
+ const t = T.replace(
65
+ "{id-obj}",
66
+ `${r}`
67
+ );
68
+ return this.getHeaders().pipe(
69
+ A(
70
+ (e) => a(t, {
71
+ method: "GET",
72
+ headers: e == null ? void 0 : e.headers,
73
+ selector: (s) => s.json()
74
+ }).pipe(A((s) => g({ roles: s == null ? void 0 : s.value })))
75
+ )
76
+ );
77
+ }
78
+ getAppRoleAssignments(r) {
79
+ if (o.isEmpty(y))
80
+ throw this.logger.logError(
81
+ "AZURE_AD_GRAPH_GET_USER_BY_EMAIL URL is empty or missing"
82
+ ), new Error(
83
+ "AZURE_AD_GRAPH_GET_USER_BY_EMAIL URL is empty or missing"
84
+ );
85
+ const e = `${y.replace(
86
+ "{user-mail}",
87
+ `${r}/appRoleAssignments`
88
+ )}?$select=appRoleId,resourceDisplayName`;
89
+ return this.getHeaders().pipe(
90
+ A(
91
+ (s) => a(e, {
92
+ method: "GET",
93
+ headers: s == null ? void 0 : s.headers,
94
+ selector: (i) => i.json()
95
+ })
96
+ )
97
+ );
98
+ }
99
+ userRolesByApp(r, t) {
100
+ return N({
101
+ appRoles: this.getAppRoles(t),
102
+ appRoleAssignments: this.getAppRoleAssignments(r)
103
+ }).pipe(
104
+ A(({ appRoles: e, appRoleAssignments: s }) => {
105
+ var p;
106
+ const i = (p = s == null ? void 0 : s.value) == null ? void 0 : p.map(
107
+ (E) => {
108
+ var m, l, h;
109
+ return (h = (l = (m = e == null ? void 0 : e.roles) == null ? void 0 : m.filter((_) => (_ == null ? void 0 : _.id) === (E == null ? void 0 : E.appRoleId))) == null ? void 0 : l.filter((_) => _ == null ? void 0 : _.isEnabled)) == null ? void 0 : h.map((_) => ({
110
+ appRoleId: E == null ? void 0 : E.appRoleId,
111
+ displayName: _ == null ? void 0 : _.displayName,
112
+ value: _ == null ? void 0 : _.value
113
+ }));
114
+ }
115
+ ).flat(), d = i == null ? void 0 : i.map((E) => E == null ? void 0 : E.appRoleId);
116
+ return g({ roles: d });
117
+ })
118
+ );
119
+ }
120
+ getRolesFromApi(r, t) {
121
+ return this.userRolesByApp(r, t).pipe(
122
+ A((e) => g(e))
123
+ );
124
+ }
125
+ getRoles(r, t) {
126
+ return this.getRolesFromApi(r, t);
127
+ }
128
+ getGroupsFromApi(r) {
129
+ if (this.logger.logDebug("getGroupsFromApi by email: ", JSON.stringify(r)), o.isEmpty(G))
130
+ throw this.logger.logError("AZURE_AD_GRAPH_GROUPS URL is empty or missing"), new Error("AZURE_AD_GRAPH_GROUPS URL is empty or missing");
131
+ const t = `${G.replace("idUser", r)}?$select=id,description,displayName`;
132
+ return this.logger.logDebug("URL base: ", t), this.getHeaders().pipe(
133
+ A(
134
+ (e) => a(t, {
135
+ method: "GET",
136
+ headers: e == null ? void 0 : e.headers,
137
+ selector: (s) => s.json()
138
+ }).pipe(
139
+ A((s) => (this.logger.logDebug("response from API: ", JSON.stringify(s)), g(s)))
140
+ )
141
+ )
142
+ );
143
+ }
144
+ getUserGroups(r) {
145
+ return this.getGroupsFromApi(r);
146
+ }
147
+ /**
148
+ *
149
+ * @param email correo del usuario
150
+ * @param idGroup id del grupo de EntraID
151
+ * @returns `true` si el usuario pertenece al grupo
152
+ */
153
+ inGroup(r, t) {
154
+ return this.logger.logDebug(
155
+ "Check inGroup params: ",
156
+ JSON.stringify({ email: r, idGroup: t })
157
+ ), o.isEmpty(r) || o.isEmpty(t) ? (this.logger.logError("inGroup method error"), this.logger.logError("email or idGroup are empty or missing"), g(!1)) : this.getUserGroups(r).pipe(
158
+ A((e) => {
159
+ var s;
160
+ return g((s = e == null ? void 0 : e.value) == null ? void 0 : s.some((i) => (i == null ? void 0 : i.id) === t));
161
+ })
162
+ );
163
+ }
164
+ /**
165
+ *
166
+ * @param email correo del usuario
167
+ * @param idRole id del rol del aplicativo de EntraID
168
+ * @param idObjApp id del objeto de la aplicacion `Identificador de objeto` en EntraID
169
+ * @returns `true` si el usuario tiene asignado el rol
170
+ */
171
+ inRole(r, t, e) {
172
+ return this.logger.logDebug(
173
+ "Check inRole params: ",
174
+ JSON.stringify({ email: r, idRole: t, idObjApp: e })
175
+ ), o.isEmpty(r) || o.isEmpty(t) || o.isEmpty(e) ? (this.logger.logError("inRole method error"), this.logger.logError("email or idRole or idObjApp are empty or missing"), g(!1)) : this.getRoles(r, e).pipe(
176
+ A((s) => {
177
+ var i;
178
+ return g((i = s == null ? void 0 : s.roles) == null ? void 0 : i.includes(t));
179
+ })
180
+ );
181
+ }
182
+ }
183
+ export {
184
+ b as AuthEngine
185
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./default-errors-DiEIEEE2.cjs"),o=require("./i18n-vIm9wuAG.cjs");exports.ErrorHandler=r.ErrorHandler;exports.RuntimeError=r.RuntimeError;exports.RuntimeErrorCode=r.RuntimeErrorCode;exports.commonErrors=r.commonErrors;exports.errorTranslations=o.translation;
@@ -0,0 +1,9 @@
1
+ import { E as a, R as s, a as e, c as m } from "./default-errors-DsKmUZbG.js";
2
+ import { t } from "./i18n-CEBemBIX.js";
3
+ export {
4
+ a as ErrorHandler,
5
+ s as RuntimeError,
6
+ e as RuntimeErrorCode,
7
+ m as commonErrors,
8
+ t as errorTranslations
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./encrypter-CgZLhLnj.cjs"),r=require("./logger-BMbeDoGU.cjs"),c=require("./encoder-BEp9qfLf.cjs");exports.Encrypter=e.Encrypter;exports.escapeUnicode=e.escapeUnicode;exports.Logger=r.Logger;exports.Encoder=c.Encoder;
@@ -0,0 +1,9 @@
1
+ import { E as o, e as a } from "./encrypter-ZTjrp3uD.js";
2
+ import { L as s } from "./logger-DtlFWyFO.js";
3
+ import { E as t } from "./encoder-CXAlLf5T.js";
4
+ export {
5
+ t as Encoder,
6
+ o as Encrypter,
7
+ s as Logger,
8
+ a as escapeUnicode
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./client-Bv9OflsW.cjs");exports.HttpBackend=t.HttpBackend;exports.HttpClient=t.HttpClient;exports.HttpHeaders=t.HttpHeaders;
@@ -0,0 +1,6 @@
1
+ import { a as e, b as H, H as p } from "./client-Btua9wfS.js";
2
+ export {
3
+ e as HttpBackend,
4
+ H as HttpClient,
5
+ p as HttpHeaders
6
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./loading-handler-BrN0O37N.cjs");exports.LoadingHandler=e.LoadingHandler;
@@ -0,0 +1,4 @@
1
+ import { L as r } from "./loading-handler-ivYFmS_V.js";
2
+ export {
3
+ r as LoadingHandler
4
+ };
@@ -0,0 +1,83 @@
1
+ var p = Object.defineProperty;
2
+ var S = (n, t, e) => t in n ? p(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
+ var c = (n, t, e) => S(n, typeof t != "symbol" ? t + "" : t, e);
4
+ import { i as R } from "./ioredis-instance-BaXfqmqC.js";
5
+ import { E as d } from "./encrypter-ZTjrp3uD.js";
6
+ var l = /* @__PURE__ */ ((n) => (n.NOT_REFRESH = "NOT_REFRESH", n.REFRESH = "REFRESH", n))(l || {});
7
+ const E = process.env.TIMEOUT_SESSION_MINUTES;
8
+ class m {
9
+ constructor() {
10
+ c(this, "encrypter", new d());
11
+ c(this, "initClient", R);
12
+ }
13
+ getRootNode(t) {
14
+ return this.initClient.get(t);
15
+ }
16
+ async getEntryPoint(t) {
17
+ try {
18
+ return await this.getRootNode(t);
19
+ } catch {
20
+ throw new Error("Not found entry point");
21
+ }
22
+ }
23
+ setEntryPoint(t, e, i) {
24
+ const s = typeof e == "string" ? e : JSON.stringify(e);
25
+ this.initClient.set(t, s, "EX", 60 * i);
26
+ }
27
+ async getRedisState(t, e) {
28
+ const i = `${t}:${this.encrypter.generateSHA(e)}`, s = await this.getEntryPoint(i), o = await this.encrypter.isEncrypted(s) ? await this.encrypter.decrypt(s ?? "") : JSON.parse(s), r = Number(o == null ? void 0 : o.expires_in);
29
+ return r && this.ttl(i, r * 60), { sha: i, data: o };
30
+ }
31
+ async deleteRedisState(t, e) {
32
+ const i = `${t}:${this.encrypter.generateSHA(e)}`;
33
+ this.initClient.del(i);
34
+ }
35
+ async setRedisState({
36
+ idApi: t,
37
+ idData: e,
38
+ body: i,
39
+ expire: s,
40
+ encrypted: h = !1,
41
+ refresh: o = l.REFRESH
42
+ }) {
43
+ const r = `${t}:${this.encrypter.generateSHA(e)}`, y = { expires_in: o === l.REFRESH ? s : 0, ...i };
44
+ if (h) {
45
+ const a = await this.encrypter.encrypt(y);
46
+ return this.setEntryPoint(r, a, s), r;
47
+ }
48
+ return this.setEntryPoint(r, y, s), r;
49
+ }
50
+ async statusHost() {
51
+ return new Promise((t, e) => {
52
+ this.initClient.on("error", (i) => {
53
+ this.killRedis(), e(i);
54
+ }), this.initClient.on("connect", () => {
55
+ t("success");
56
+ });
57
+ });
58
+ }
59
+ killRedis() {
60
+ this.initClient.disconnect();
61
+ }
62
+ deleteKey(t) {
63
+ this.initClient.del(t);
64
+ }
65
+ ttl(t, e) {
66
+ this.initClient.expire(t, e);
67
+ }
68
+ simpleGet(t) {
69
+ return this.ttl(t, E * 60), this.initClient.get(t);
70
+ }
71
+ simpleHGet(t, e) {
72
+ return this.ttl(t, E * 60), this.initClient.hget(t, e);
73
+ }
74
+ simpleHSet(t, e, i) {
75
+ return this.initClient.hset(t, e, i);
76
+ }
77
+ simpleHGetAll(t) {
78
+ return this.initClient.hgetall(t);
79
+ }
80
+ }
81
+ export {
82
+ m as R
83
+ };
@@ -0,0 +1 @@
1
+ "use strict";var p=Object.defineProperty;var S=(n,t,e)=>t in n?p(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var o=(n,t,e)=>S(n,typeof t!="symbol"?t+"":t,e);const d=require("./ioredis-instance-PenLE7vi.cjs"),R=require("./encrypter-CgZLhLnj.cjs");var h=(n=>(n.NOT_REFRESH="NOT_REFRESH",n.REFRESH="REFRESH",n))(h||{});const E=process.env.TIMEOUT_SESSION_MINUTES;class u{constructor(){o(this,"encrypter",new R.Encrypter);o(this,"initClient",d.ioredisInstance)}getRootNode(t){return this.initClient.get(t)}async getEntryPoint(t){try{return await this.getRootNode(t)}catch{throw new Error("Not found entry point")}}setEntryPoint(t,e,i){const s=typeof e=="string"?e:JSON.stringify(e);this.initClient.set(t,s,"EX",60*i)}async getRedisState(t,e){const i=`${t}:${this.encrypter.generateSHA(e)}`,s=await this.getEntryPoint(i),c=await this.encrypter.isEncrypted(s)?await this.encrypter.decrypt(s??""):JSON.parse(s),r=Number(c==null?void 0:c.expires_in);return r&&this.ttl(i,r*60),{sha:i,data:c}}async deleteRedisState(t,e){const i=`${t}:${this.encrypter.generateSHA(e)}`;this.initClient.del(i)}async setRedisState({idApi:t,idData:e,body:i,expire:s,encrypted:l=!1,refresh:c=h.REFRESH}){const r=`${t}:${this.encrypter.generateSHA(e)}`,y={expires_in:c===h.REFRESH?s:0,...i};if(l){const a=await this.encrypter.encrypt(y);return this.setEntryPoint(r,a,s),r}return this.setEntryPoint(r,y,s),r}async statusHost(){return new Promise((t,e)=>{this.initClient.on("error",i=>{this.killRedis(),e(i)}),this.initClient.on("connect",()=>{t("success")})})}killRedis(){this.initClient.disconnect()}deleteKey(t){this.initClient.del(t)}ttl(t,e){this.initClient.expire(t,e)}simpleGet(t){return this.ttl(t,E*60),this.initClient.get(t)}simpleHGet(t,e){return this.ttl(t,E*60),this.initClient.hget(t,e)}simpleHSet(t,e,i){return this.initClient.hset(t,e,i)}simpleHGetAll(t){return this.initClient.hgetall(t)}}exports.RedisCache=u;
@@ -0,0 +1 @@
1
+ "use strict";var b=Object.defineProperty;var j=(s,e,t)=>e in s?b(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var u=(s,e,t)=>j(s,typeof e!="symbol"?e+"":e,t);const c=require("rxjs");class r extends c.Observable{constructor(){super(t=>{this.subject$.subscribe(t)});u(this,"subject$",new c.Subject)}setSubject(t){this.subject$.next(t)}completeSubject(){this.subject$.complete()}unsubscribeSubject(){return this.subject$.unsubscribe(),this.subject$=new c.Subject,this.subject$}}exports.RxSubjectManager=r;
@@ -0,0 +1,24 @@
1
+ var u = Object.defineProperty;
2
+ var r = (s, e, t) => e in s ? u(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
+ var b = (s, e, t) => r(s, typeof e != "symbol" ? e + "" : e, t);
4
+ import { Observable as j, Subject as c } from "rxjs";
5
+ class o extends j {
6
+ constructor() {
7
+ super((t) => {
8
+ this.subject$.subscribe(t);
9
+ });
10
+ b(this, "subject$", new c());
11
+ }
12
+ setSubject(t) {
13
+ this.subject$.next(t);
14
+ }
15
+ completeSubject() {
16
+ this.subject$.complete();
17
+ }
18
+ unsubscribeSubject() {
19
+ return this.subject$.unsubscribe(), this.subject$ = new c(), this.subject$;
20
+ }
21
+ }
22
+ export {
23
+ o as R
24
+ };
@@ -0,0 +1,2 @@
1
+ export { LoadingHandler } from './loading-handler';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rxjs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { RxSubjectManager } from './rx-subject-manager';
2
+ export declare class LoadingHandler extends RxSubjectManager<boolean> {
3
+ private static instance;
4
+ private constructor();
5
+ static getInstance(): LoadingHandler;
6
+ }
7
+ //# sourceMappingURL=loading-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-handler.d.ts","sourceRoot":"","sources":["../../src/rxjs/loading-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,OAAO,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IAEvC,OAAO;IAIP,MAAM,CAAC,WAAW;CAMnB"}
@@ -0,0 +1,9 @@
1
+ import { Subject, Observable } from 'rxjs';
2
+ export declare class RxSubjectManager<T> extends Observable<T> {
3
+ private subject$;
4
+ constructor();
5
+ setSubject(data: T): void;
6
+ completeSubject(): void;
7
+ unsubscribeSubject(): Subject<T>;
8
+ }
9
+ //# sourceMappingURL=rx-subject-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rx-subject-manager.d.ts","sourceRoot":"","sources":["../../src/rxjs/rx-subject-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAE1C,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAmB;;IAQnC,UAAU,CAAC,IAAI,EAAE,CAAC;IAIlB,eAAe;IAIf,kBAAkB;CAKnB"}
@@ -0,0 +1,9 @@
1
+ const i = [];
2
+ for (let n = 0; n < 256; ++n)
3
+ i.push((n + 256).toString(16).slice(1));
4
+ function c(n, u = 0) {
5
+ return i[n[u + 0]] + i[n[u + 1]] + i[n[u + 2]] + i[n[u + 3]] + "-" + i[n[u + 4]] + i[n[u + 5]] + "-" + i[n[u + 6]] + i[n[u + 7]] + "-" + i[n[u + 8]] + i[n[u + 9]] + "-" + i[n[u + 10]] + i[n[u + 11]] + i[n[u + 12]] + i[n[u + 13]] + i[n[u + 14]] + i[n[u + 15]];
6
+ }
7
+ export {
8
+ c as u
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";const n=[];for(let i=0;i<256;++i)n.push((i+256).toString(16).slice(1));function c(i,u=0){return n[i[u+0]]+n[i[u+1]]+n[i[u+2]]+n[i[u+3]]+"-"+n[i[u+4]]+n[i[u+5]]+"-"+n[i[u+6]]+n[i[u+7]]+"-"+n[i[u+8]]+n[i[u+9]]+"-"+n[i[u+10]]+n[i[u+11]]+n[i[u+12]]+n[i[u+13]]+n[i[u+14]]+n[i[u+15]]}exports.unsafeStringify=c;
@@ -0,0 +1,4 @@
1
+ export * from './http/types';
2
+ export * from './middleware/types';
3
+ export * from './cache-providers/redis/types';
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA"}
@@ -0,0 +1 @@
1
+ "use strict";const U=require("./stringify-BN6t_WDt.cjs"),A=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function I(t){return typeof t=="string"&&A.test(t)}function w(t){if(!I(t))throw TypeError("Invalid UUID");let r;const f=new Uint8Array(16);return f[0]=(r=parseInt(t.slice(0,8),16))>>>24,f[1]=r>>>16&255,f[2]=r>>>8&255,f[3]=r&255,f[4]=(r=parseInt(t.slice(9,13),16))>>>8,f[5]=r&255,f[6]=(r=parseInt(t.slice(14,18),16))>>>8,f[7]=r&255,f[8]=(r=parseInt(t.slice(19,23),16))>>>8,f[9]=r&255,f[10]=(r=parseInt(t.slice(24,36),16))/1099511627776&255,f[11]=r/4294967296&255,f[12]=r>>>24&255,f[13]=r>>>16&255,f[14]=r>>>8&255,f[15]=r&255,f}function v(t){t=unescape(encodeURIComponent(t));const r=[];for(let f=0;f<t.length;++f)r.push(t.charCodeAt(f));return r}const R="6ba7b810-9dad-11d1-80b4-00c04fd430c8",M="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function T(t,r,f){function l(i,x,n,e){var c;if(typeof i=="string"&&(i=v(i)),typeof x=="string"&&(x=w(x)),((c=x)===null||c===void 0?void 0:c.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let a=new Uint8Array(16+i.length);if(a.set(x),a.set(i,x.length),a=f(a),a[6]=a[6]&15|r,a[8]=a[8]&63|128,n){e=e||0;for(let s=0;s<16;++s)n[e+s]=a[s];return n}return U.unsafeStringify(a)}try{l.name=t}catch{}return l.DNS=R,l.URL=M,l}function y(t,r,f,l){switch(t){case 0:return r&f^~r&l;case 1:return r^f^l;case 2:return r&f^r&l^f&l;case 3:return r^f^l}}function g(t,r){return t<<r|t>>>32-r}function C(t){const r=[1518500249,1859775393,2400959708,3395469782],f=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const n=unescape(encodeURIComponent(t));t=[];for(let e=0;e<n.length;++e)t.push(n.charCodeAt(e))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const l=t.length/4+2,i=Math.ceil(l/16),x=new Array(i);for(let n=0;n<i;++n){const e=new Uint32Array(16);for(let c=0;c<16;++c)e[c]=t[n*64+c*4]<<24|t[n*64+c*4+1]<<16|t[n*64+c*4+2]<<8|t[n*64+c*4+3];x[n]=e}x[i-1][14]=(t.length-1)*8/Math.pow(2,32),x[i-1][14]=Math.floor(x[i-1][14]),x[i-1][15]=(t.length-1)*8&4294967295;for(let n=0;n<i;++n){const e=new Uint32Array(80);for(let o=0;o<16;++o)e[o]=x[n][o];for(let o=16;o<80;++o)e[o]=g(e[o-3]^e[o-8]^e[o-14]^e[o-16],1);let c=f[0],a=f[1],s=f[2],h=f[3],p=f[4];for(let o=0;o<80;++o){const d=Math.floor(o/20),u=g(c,5)+y(d,a,s,h)+p+r[d]+e[o]>>>0;p=h,h=s,s=g(a,30)>>>0,a=c,c=u}f[0]=f[0]+c>>>0,f[1]=f[1]+a>>>0,f[2]=f[2]+s>>>0,f[3]=f[3]+h>>>0,f[4]=f[4]+p>>>0}return[f[0]>>24&255,f[0]>>16&255,f[0]>>8&255,f[0]&255,f[1]>>24&255,f[1]>>16&255,f[1]>>8&255,f[1]&255,f[2]>>24&255,f[2]>>16&255,f[2]>>8&255,f[2]&255,f[3]>>24&255,f[3]>>16&255,f[3]>>8&255,f[3]&255,f[4]>>24&255,f[4]>>16&255,f[4]>>8&255,f[4]&255]}const D=T("v5",80,C);exports.v5=D;
@@ -0,0 +1,91 @@
1
+ import { u as U } from "./stringify-93tp0umt.js";
2
+ const A = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
3
+ function I(t) {
4
+ return typeof t == "string" && A.test(t);
5
+ }
6
+ function w(t) {
7
+ if (!I(t))
8
+ throw TypeError("Invalid UUID");
9
+ let r;
10
+ const f = new Uint8Array(16);
11
+ return f[0] = (r = parseInt(t.slice(0, 8), 16)) >>> 24, f[1] = r >>> 16 & 255, f[2] = r >>> 8 & 255, f[3] = r & 255, f[4] = (r = parseInt(t.slice(9, 13), 16)) >>> 8, f[5] = r & 255, f[6] = (r = parseInt(t.slice(14, 18), 16)) >>> 8, f[7] = r & 255, f[8] = (r = parseInt(t.slice(19, 23), 16)) >>> 8, f[9] = r & 255, f[10] = (r = parseInt(t.slice(24, 36), 16)) / 1099511627776 & 255, f[11] = r / 4294967296 & 255, f[12] = r >>> 24 & 255, f[13] = r >>> 16 & 255, f[14] = r >>> 8 & 255, f[15] = r & 255, f;
12
+ }
13
+ function v(t) {
14
+ t = unescape(encodeURIComponent(t));
15
+ const r = [];
16
+ for (let f = 0; f < t.length; ++f)
17
+ r.push(t.charCodeAt(f));
18
+ return r;
19
+ }
20
+ const R = "6ba7b810-9dad-11d1-80b4-00c04fd430c8", M = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
21
+ function T(t, r, f) {
22
+ function l(x, i, n, e) {
23
+ var c;
24
+ if (typeof x == "string" && (x = v(x)), typeof i == "string" && (i = w(i)), ((c = i) === null || c === void 0 ? void 0 : c.length) !== 16)
25
+ throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
26
+ let a = new Uint8Array(16 + x.length);
27
+ if (a.set(i), a.set(x, i.length), a = f(a), a[6] = a[6] & 15 | r, a[8] = a[8] & 63 | 128, n) {
28
+ e = e || 0;
29
+ for (let s = 0; s < 16; ++s)
30
+ n[e + s] = a[s];
31
+ return n;
32
+ }
33
+ return U(a);
34
+ }
35
+ try {
36
+ l.name = t;
37
+ } catch {
38
+ }
39
+ return l.DNS = R, l.URL = M, l;
40
+ }
41
+ function m(t, r, f, l) {
42
+ switch (t) {
43
+ case 0:
44
+ return r & f ^ ~r & l;
45
+ case 1:
46
+ return r ^ f ^ l;
47
+ case 2:
48
+ return r & f ^ r & l ^ f & l;
49
+ case 3:
50
+ return r ^ f ^ l;
51
+ }
52
+ }
53
+ function d(t, r) {
54
+ return t << r | t >>> 32 - r;
55
+ }
56
+ function C(t) {
57
+ const r = [1518500249, 1859775393, 2400959708, 3395469782], f = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
58
+ if (typeof t == "string") {
59
+ const n = unescape(encodeURIComponent(t));
60
+ t = [];
61
+ for (let e = 0; e < n.length; ++e)
62
+ t.push(n.charCodeAt(e));
63
+ } else Array.isArray(t) || (t = Array.prototype.slice.call(t));
64
+ t.push(128);
65
+ const l = t.length / 4 + 2, x = Math.ceil(l / 16), i = new Array(x);
66
+ for (let n = 0; n < x; ++n) {
67
+ const e = new Uint32Array(16);
68
+ for (let c = 0; c < 16; ++c)
69
+ e[c] = t[n * 64 + c * 4] << 24 | t[n * 64 + c * 4 + 1] << 16 | t[n * 64 + c * 4 + 2] << 8 | t[n * 64 + c * 4 + 3];
70
+ i[n] = e;
71
+ }
72
+ i[x - 1][14] = (t.length - 1) * 8 / Math.pow(2, 32), i[x - 1][14] = Math.floor(i[x - 1][14]), i[x - 1][15] = (t.length - 1) * 8 & 4294967295;
73
+ for (let n = 0; n < x; ++n) {
74
+ const e = new Uint32Array(80);
75
+ for (let o = 0; o < 16; ++o)
76
+ e[o] = i[n][o];
77
+ for (let o = 16; o < 80; ++o)
78
+ e[o] = d(e[o - 3] ^ e[o - 8] ^ e[o - 14] ^ e[o - 16], 1);
79
+ let c = f[0], a = f[1], s = f[2], h = f[3], p = f[4];
80
+ for (let o = 0; o < 80; ++o) {
81
+ const g = Math.floor(o / 20), u = d(c, 5) + m(g, a, s, h) + p + r[g] + e[o] >>> 0;
82
+ p = h, h = s, s = d(a, 30) >>> 0, a = c, c = u;
83
+ }
84
+ f[0] = f[0] + c >>> 0, f[1] = f[1] + a >>> 0, f[2] = f[2] + s >>> 0, f[3] = f[3] + h >>> 0, f[4] = f[4] + p >>> 0;
85
+ }
86
+ return [f[0] >> 24 & 255, f[0] >> 16 & 255, f[0] >> 8 & 255, f[0] & 255, f[1] >> 24 & 255, f[1] >> 16 & 255, f[1] >> 8 & 255, f[1] & 255, f[2] >> 24 & 255, f[2] >> 16 & 255, f[2] >> 8 & 255, f[2] & 255, f[3] >> 24 & 255, f[3] >> 16 & 255, f[3] >> 8 & 255, f[3] & 255, f[4] >> 24 & 255, f[4] >> 16 & 255, f[4] >> 8 & 255, f[4] & 255];
87
+ }
88
+ const E = T("v5", 80, C);
89
+ export {
90
+ E as v
91
+ };
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "@mp-front/common",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "type": "module",
6
+ "main": "./dist/mp-front-common-all.cjs",
7
+ "module": "./dist/mp-front-common-all.js",
8
+ "scripts": {
9
+ "build": "tsc && vite build",
10
+ "package": "npm pack",
11
+ "lint": "eslint",
12
+ "publish-canary": "npm publish --tag canary",
13
+ "prepare": "husky"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "engines": {
19
+ "node": ">=20.0.0"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/mp-front-common-all.js",
28
+ "require": "./dist/mp-front-common-all.cjs"
29
+ },
30
+ "./auth": {
31
+ "types": "./dist/auth/index.d.ts",
32
+ "import": "./dist/mp-front-common-auth.js",
33
+ "require": "./dist/mp-front-common-auth.cjs"
34
+ },
35
+ "./engine": {
36
+ "types": "./dist/engine/index.d.ts",
37
+ "import": "./dist/mp-front-common-engine.js",
38
+ "require": "./dist/mp-front-common-engine.cjs"
39
+ },
40
+ "./http": {
41
+ "types": "./dist/core/index.d.ts",
42
+ "import": "./dist/mp-front-common-http.js",
43
+ "require": "./dist/mp-front-common-http.cjs"
44
+ },
45
+ "./adapters": {
46
+ "types": "./dist/adapters/index.d.ts",
47
+ "import": "./dist/mp-front-common-adapters.js",
48
+ "require": "./dist/mp-front-common-adapters.cjs"
49
+ },
50
+ "./cache": {
51
+ "types": "./dist/cache/index.d.ts",
52
+ "import": "./dist/mp-front-common-cache.js",
53
+ "require": "./dist/mp-front-common-cache.cjs"
54
+ },
55
+ "./helpers": {
56
+ "types": "./dist/helpers/index.d.ts",
57
+ "import": "./dist/mp-front-common-helpers.js",
58
+ "require": "./dist/mp-front-common-helpers.cjs"
59
+ },
60
+ "./rxjs": {
61
+ "types": "./dist/rxjs/index.d.ts",
62
+ "import": "./dist/mp-front-common-rxjs.js",
63
+ "require": "./dist/mp-front-common-rxjs.cjs"
64
+ },
65
+ "./cache-providers": {
66
+ "types": "./dist/cache-providers/index.d.ts",
67
+ "import": "./dist/mp-front-common-cacheProviders.js",
68
+ "require": "./dist/mp-front-common-cacheProviders.cjs"
69
+ },
70
+ "./errors": {
71
+ "types": "./dist/errors/index.d.ts",
72
+ "import": "./dist/mp-front-common-errors.js",
73
+ "require": "./dist/mp-front-common-errors.cjs"
74
+ },
75
+ "./types": {
76
+ "types": "./dist/types.d.ts"
77
+ }
78
+ },
79
+ "peerDependencies": {
80
+ "ioredis": "5.3.2",
81
+ "next-auth": "4.24.13",
82
+ "node-jose": "2.2.0",
83
+ "rxjs": "7.8.1"
84
+ },
85
+ "dependencies": {
86
+ "lodash": "4.17.21",
87
+ "uuid": "9.0.1"
88
+ },
89
+ "devDependencies": {
90
+ "@eslint/eslintrc": "3.2.0",
91
+ "@eslint/js": "9.19.0",
92
+ "@types/lodash": "4.14.202",
93
+ "@types/node": "20.10.6",
94
+ "@types/node-jose": "1.1.13",
95
+ "@types/uuid": "10.0.0",
96
+ "@typescript-eslint/eslint-plugin": "8.22.0",
97
+ "eslint": "9.38.0",
98
+ "eslint-config-prettier": "10.0.1",
99
+ "eslint-plugin-prettier": "5.2.3",
100
+ "globals": "15.14.0",
101
+ "husky": "9.1.7",
102
+ "typescript": "5.7.2",
103
+ "vite": "6.4.1",
104
+ "vite-plugin-dts": "4.5.0",
105
+ "vite-tsconfig-paths": "5.1.4"
106
+ }
107
+ }