equipped 5.3.1 → 5.3.3

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 (203) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/cache/adapters/in-memory/index.cjs +155 -155
  3. package/dist/cjs/cache/adapters/in-memory/index.cjs.map +1 -1
  4. package/dist/cjs/cache/adapters/in-memory/index.min.cjs +3 -3
  5. package/dist/cjs/cache/adapters/in-memory/index.min.cjs.map +1 -1
  6. package/dist/cjs/dbs/adapters/mongodb/index.cjs.map +1 -1
  7. package/dist/cjs/dbs/adapters/mongodb/index.min.cjs +2 -2
  8. package/dist/cjs/dbs/adapters/mongodb/index.min.cjs.map +1 -1
  9. package/dist/cjs/dbs/index.cjs +181 -179
  10. package/dist/cjs/dbs/index.cjs.map +1 -1
  11. package/dist/cjs/dbs/index.min.cjs +3 -3
  12. package/dist/cjs/dbs/index.min.cjs.map +1 -1
  13. package/dist/cjs/errors/index.cjs +11 -0
  14. package/dist/cjs/errors/index.cjs.map +1 -1
  15. package/dist/cjs/errors/index.min.cjs +1 -1
  16. package/dist/cjs/errors/index.min.cjs.map +1 -1
  17. package/dist/cjs/events/adapters/kafka/index.cjs.map +1 -1
  18. package/dist/cjs/events/adapters/kafka/index.min.cjs +2 -2
  19. package/dist/cjs/events/adapters/kafka/index.min.cjs.map +1 -1
  20. package/dist/cjs/events/adapters/rabbitmq/index.cjs +179 -179
  21. package/dist/cjs/events/adapters/rabbitmq/index.cjs.map +1 -1
  22. package/dist/cjs/events/adapters/rabbitmq/index.min.cjs +3 -3
  23. package/dist/cjs/events/adapters/rabbitmq/index.min.cjs.map +1 -1
  24. package/dist/cjs/orm/adapters/mongodb/index.cjs +144 -144
  25. package/dist/cjs/orm/adapters/mongodb/index.cjs.map +1 -1
  26. package/dist/cjs/orm/adapters/mongodb/index.min.cjs +1 -1
  27. package/dist/cjs/orm/adapters/mongodb/index.min.cjs.map +1 -1
  28. package/dist/cjs/orm/adapters/postgresql/index.cjs +152 -215
  29. package/dist/cjs/orm/adapters/postgresql/index.cjs.map +1 -1
  30. package/dist/cjs/orm/adapters/postgresql/index.min.cjs +11 -11
  31. package/dist/cjs/orm/adapters/postgresql/index.min.cjs.map +1 -1
  32. package/dist/cjs/server/adapters/express/index.cjs +292 -225
  33. package/dist/cjs/server/adapters/express/index.cjs.map +1 -1
  34. package/dist/cjs/server/adapters/express/index.min.cjs +7 -7
  35. package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -1
  36. package/dist/cjs/server/adapters/fastify/index.cjs +277 -210
  37. package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -1
  38. package/dist/cjs/server/adapters/fastify/index.min.cjs +7 -7
  39. package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -1
  40. package/dist/cjs/server/index.cjs +82 -15
  41. package/dist/cjs/server/index.cjs.map +1 -1
  42. package/dist/cjs/server/index.min.cjs +7 -7
  43. package/dist/cjs/server/index.min.cjs.map +1 -1
  44. package/dist/cjs/utilities/index.cjs +0 -5
  45. package/dist/cjs/utilities/index.cjs.map +1 -1
  46. package/dist/cjs/utilities/index.min.cjs +2 -2
  47. package/dist/cjs/utilities/index.min.cjs.map +1 -1
  48. package/dist/cjs/validations/index.cjs +1 -0
  49. package/dist/cjs/validations/index.cjs.map +1 -1
  50. package/dist/cjs/validations/index.min.cjs +1 -1
  51. package/dist/cjs/validations/index.min.cjs.map +1 -1
  52. package/dist/esm/cache/adapters/in-memory/index.min.mjs +1 -1
  53. package/dist/esm/cache/adapters/in-memory/index.min.mjs.map +1 -1
  54. package/dist/esm/cache/adapters/in-memory/index.mjs +6 -3
  55. package/dist/esm/cache/adapters/in-memory/index.mjs.map +1 -1
  56. package/dist/esm/cache/adapters/redis/index.min.mjs +1 -1
  57. package/dist/esm/cache/adapters/redis/index.mjs +5 -3
  58. package/dist/esm/cache/index.min.mjs +1 -1
  59. package/dist/esm/cache/index.mjs +2 -2
  60. package/dist/esm/{chunk-2GGMLKRP.min.mjs → chunk-4GZ43EQ2.min.mjs} +2 -2
  61. package/dist/esm/{chunk-IRYCN6PI.min.mjs → chunk-5FEVQT6K.min.mjs} +2 -2
  62. package/dist/esm/{chunk-LKS5ZE45.mjs → chunk-74GY55PM.mjs} +2 -2
  63. package/dist/esm/{chunk-A4P7P6BU.mjs → chunk-7N4WUZ7P.mjs} +167 -347
  64. package/dist/esm/chunk-7N4WUZ7P.mjs.map +1 -0
  65. package/dist/esm/chunk-A332TTED.mjs +135 -0
  66. package/dist/esm/chunk-A332TTED.mjs.map +1 -0
  67. package/dist/esm/{chunk-7CP7ZE2O.mjs → chunk-BONYW6LU.mjs} +9 -5
  68. package/dist/esm/{chunk-7CP7ZE2O.mjs.map → chunk-BONYW6LU.mjs.map} +1 -1
  69. package/dist/esm/{chunk-HXFNN6RI.mjs → chunk-C3G4W4ZV.mjs} +3 -3
  70. package/dist/esm/chunk-CU2HU5UE.min.mjs +2 -0
  71. package/dist/esm/chunk-CU2HU5UE.min.mjs.map +1 -0
  72. package/dist/esm/{chunk-676VIABN.min.mjs → chunk-LJZOS62I.min.mjs} +2 -2
  73. package/dist/esm/{chunk-7SQ5JQYR.min.mjs → chunk-MCX2O5IT.min.mjs} +2 -2
  74. package/dist/esm/{chunk-BWUFPMVG.mjs → chunk-MNKDFIVK.mjs} +2 -2
  75. package/dist/esm/chunk-N3OD4QL2.min.mjs +32 -0
  76. package/dist/esm/chunk-N3OD4QL2.min.mjs.map +1 -0
  77. package/dist/esm/chunk-NEF3UYFA.mjs +144 -0
  78. package/dist/esm/chunk-NEF3UYFA.mjs.map +1 -0
  79. package/dist/esm/{chunk-TSVHZZE4.mjs → chunk-RFJ5URMP.mjs} +5 -5
  80. package/dist/esm/chunk-RX4XPABH.min.mjs +2 -0
  81. package/dist/esm/{chunk-MQXTTWPS.min.mjs.map → chunk-RX4XPABH.min.mjs.map} +1 -1
  82. package/dist/esm/chunk-SPOVKWV3.min.mjs +2 -0
  83. package/dist/esm/chunk-SPOVKWV3.min.mjs.map +1 -0
  84. package/dist/esm/{chunk-3TP7NINX.mjs → chunk-XESM7IWM.mjs} +2 -2
  85. package/dist/esm/{chunk-5PZACGPI.mjs → chunk-XJKBHQWO.mjs} +7 -5
  86. package/dist/esm/{chunk-5PZACGPI.mjs.map → chunk-XJKBHQWO.mjs.map} +1 -1
  87. package/dist/esm/chunk-YC6V4HLT.min.mjs +2 -0
  88. package/dist/esm/{chunk-7NF7PV6S.min.mjs.map → chunk-YC6V4HLT.min.mjs.map} +1 -1
  89. package/dist/esm/{chunk-P4PRHHIY.min.mjs → chunk-YWQTFKNY.min.mjs} +2 -2
  90. package/dist/esm/dbs/adapters/mongodb/index.min.mjs +1 -1
  91. package/dist/esm/dbs/adapters/mongodb/index.min.mjs.map +1 -1
  92. package/dist/esm/dbs/adapters/mongodb/index.mjs +8 -5
  93. package/dist/esm/dbs/adapters/mongodb/index.mjs.map +1 -1
  94. package/dist/esm/dbs/index.min.mjs +1 -1
  95. package/dist/esm/dbs/index.mjs +5 -3
  96. package/dist/esm/errors/index.min.mjs +1 -1
  97. package/dist/esm/errors/index.mjs +3 -1
  98. package/dist/esm/events/adapters/kafka/index.min.mjs +1 -1
  99. package/dist/esm/events/adapters/kafka/index.mjs +4 -2
  100. package/dist/esm/events/adapters/rabbitmq/index.min.mjs +1 -1
  101. package/dist/esm/events/adapters/rabbitmq/index.min.mjs.map +1 -1
  102. package/dist/esm/events/adapters/rabbitmq/index.mjs +7 -3
  103. package/dist/esm/events/adapters/rabbitmq/index.mjs.map +1 -1
  104. package/dist/esm/index.min.mjs +1 -1
  105. package/dist/esm/index.mjs +1 -1
  106. package/dist/esm/instance/index.min.mjs +1 -1
  107. package/dist/esm/instance/index.mjs +1 -1
  108. package/dist/esm/introspection-TO27QT2X.min.mjs +2 -0
  109. package/dist/esm/{introspection-YJF3QAUK.mjs → introspection-ZUQYVEFC.mjs} +3 -3
  110. package/dist/esm/jobs/adapters/redis/index.min.mjs +1 -1
  111. package/dist/esm/jobs/adapters/redis/index.min.mjs.map +1 -1
  112. package/dist/esm/jobs/adapters/redis/index.mjs +10 -6
  113. package/dist/esm/jobs/adapters/redis/index.mjs.map +1 -1
  114. package/dist/esm/orm/adapters/in-memory/index.min.mjs +1 -1
  115. package/dist/esm/orm/adapters/in-memory/index.mjs +4 -3
  116. package/dist/esm/orm/adapters/json/index.min.mjs +1 -1
  117. package/dist/esm/orm/adapters/json/index.min.mjs.map +1 -1
  118. package/dist/esm/orm/adapters/json/index.mjs +6 -5
  119. package/dist/esm/orm/adapters/json/index.mjs.map +1 -1
  120. package/dist/esm/orm/adapters/mongodb/index.min.mjs +1 -1
  121. package/dist/esm/orm/adapters/mongodb/index.min.mjs.map +1 -1
  122. package/dist/esm/orm/adapters/mongodb/index.mjs +6 -4
  123. package/dist/esm/orm/adapters/mongodb/index.mjs.map +1 -1
  124. package/dist/esm/orm/adapters/postgresql/index.min.mjs +2 -2
  125. package/dist/esm/orm/adapters/postgresql/index.min.mjs.map +1 -1
  126. package/dist/esm/orm/adapters/postgresql/index.mjs +8 -5
  127. package/dist/esm/orm/adapters/postgresql/index.mjs.map +1 -1
  128. package/dist/esm/orm/index.min.mjs +1 -1
  129. package/dist/esm/orm/index.mjs +3 -3
  130. package/dist/esm/server/adapters/express/index.min.mjs +1 -1
  131. package/dist/esm/server/adapters/express/index.min.mjs.map +1 -1
  132. package/dist/esm/server/adapters/express/index.mjs +7 -3
  133. package/dist/esm/server/adapters/express/index.mjs.map +1 -1
  134. package/dist/esm/server/adapters/fastify/index.min.mjs +1 -1
  135. package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -1
  136. package/dist/esm/server/adapters/fastify/index.mjs +7 -3
  137. package/dist/esm/server/adapters/fastify/index.mjs.map +1 -1
  138. package/dist/esm/server/index.min.mjs +1 -1
  139. package/dist/esm/server/index.mjs +1 -1
  140. package/dist/esm/utilities/index.min.mjs +1 -1
  141. package/dist/esm/utilities/index.mjs +5 -4
  142. package/dist/esm/validations/index.min.mjs +1 -1
  143. package/dist/esm/validations/index.mjs +1 -1
  144. package/dist/types/{base-BDTBLZ9a.d.ts → base-BnwwLupM.d.ts} +3 -3
  145. package/dist/types/cache/adapters/in-memory/index.js +6 -3
  146. package/dist/types/cache/adapters/redis/index.js +5 -3
  147. package/dist/types/cache/index.js +2 -2
  148. package/dist/types/chunk-7MXHWHRV.js +134 -0
  149. package/dist/types/{chunk-LPB5LS7A.js → chunk-BKXNLF6X.js} +1 -1
  150. package/dist/types/{chunk-J3TGB5YQ.js → chunk-DZFKDZDZ.js} +8 -4
  151. package/dist/types/{chunk-YLJNBL6J.js → chunk-GQRSK2KP.js} +6 -4
  152. package/dist/types/chunk-PPD4WDG6.js +143 -0
  153. package/dist/types/{chunk-55CTVK7R.js → chunk-SZAA5GF6.js} +1 -1
  154. package/dist/types/{chunk-4DH3POYM.js → chunk-UGLZIYAR.js} +4 -4
  155. package/dist/types/{chunk-5Z26ZURE.js → chunk-UR7O43FC.js} +1 -1
  156. package/dist/types/{chunk-IZDJDGOV.js → chunk-X5ZDIXCZ.js} +2 -2
  157. package/dist/types/{chunk-TT5EORDK.js → chunk-YGIIUOQM.js} +166 -346
  158. package/dist/types/dbs/adapters/mongodb/index.js +8 -5
  159. package/dist/types/dbs/index.js +5 -3
  160. package/dist/types/errors/index.d.ts +8 -3
  161. package/dist/types/errors/index.js +3 -1
  162. package/dist/types/events/adapters/kafka/index.js +4 -2
  163. package/dist/types/events/adapters/rabbitmq/index.js +7 -3
  164. package/dist/types/index.js +1 -1
  165. package/dist/types/instance/index.js +1 -1
  166. package/dist/types/{introspection-EHGM4RMO.js → introspection-ZQMYTW6H.js} +2 -2
  167. package/dist/types/jobs/adapters/redis/index.js +10 -6
  168. package/dist/types/orm/adapters/in-memory/index.js +4 -3
  169. package/dist/types/orm/adapters/json/index.js +6 -5
  170. package/dist/types/orm/adapters/mongodb/index.js +6 -4
  171. package/dist/types/orm/adapters/postgresql/index.js +8 -5
  172. package/dist/types/orm/index.js +3 -3
  173. package/dist/types/{requestError-DdaL8hc3.d.ts → requestError-BmOhSuFb.d.ts} +1 -0
  174. package/dist/types/server/adapters/express/index.d.ts +2 -2
  175. package/dist/types/server/adapters/express/index.js +7 -3
  176. package/dist/types/server/adapters/fastify/index.d.ts +3 -3
  177. package/dist/types/server/adapters/fastify/index.js +7 -3
  178. package/dist/types/server/index.d.ts +4 -4
  179. package/dist/types/server/index.js +1 -1
  180. package/dist/types/utilities/index.d.ts +1 -2
  181. package/dist/types/utilities/index.js +5 -4
  182. package/dist/types/{validationError-oigtHqBi.d.ts → validationError-C2tVK4s7.d.ts} +1 -1
  183. package/dist/types/validations/index.d.ts +4 -4
  184. package/dist/types/validations/index.js +1 -1
  185. package/package.json +1 -1
  186. package/dist/esm/chunk-7NF7PV6S.min.mjs +0 -2
  187. package/dist/esm/chunk-A4P7P6BU.mjs.map +0 -1
  188. package/dist/esm/chunk-IN5YKIJ7.min.mjs +0 -32
  189. package/dist/esm/chunk-IN5YKIJ7.min.mjs.map +0 -1
  190. package/dist/esm/chunk-MQXTTWPS.min.mjs +0 -2
  191. package/dist/esm/introspection-THKMXV5V.min.mjs +0 -2
  192. /package/dist/esm/{chunk-2GGMLKRP.min.mjs.map → chunk-4GZ43EQ2.min.mjs.map} +0 -0
  193. /package/dist/esm/{chunk-IRYCN6PI.min.mjs.map → chunk-5FEVQT6K.min.mjs.map} +0 -0
  194. /package/dist/esm/{chunk-LKS5ZE45.mjs.map → chunk-74GY55PM.mjs.map} +0 -0
  195. /package/dist/esm/{chunk-HXFNN6RI.mjs.map → chunk-C3G4W4ZV.mjs.map} +0 -0
  196. /package/dist/esm/{chunk-676VIABN.min.mjs.map → chunk-LJZOS62I.min.mjs.map} +0 -0
  197. /package/dist/esm/{chunk-7SQ5JQYR.min.mjs.map → chunk-MCX2O5IT.min.mjs.map} +0 -0
  198. /package/dist/esm/{chunk-BWUFPMVG.mjs.map → chunk-MNKDFIVK.mjs.map} +0 -0
  199. /package/dist/esm/{chunk-TSVHZZE4.mjs.map → chunk-RFJ5URMP.mjs.map} +0 -0
  200. /package/dist/esm/{chunk-3TP7NINX.mjs.map → chunk-XESM7IWM.mjs.map} +0 -0
  201. /package/dist/esm/{chunk-P4PRHHIY.min.mjs.map → chunk-YWQTFKNY.min.mjs.map} +0 -0
  202. /package/dist/esm/{introspection-THKMXV5V.min.mjs.map → introspection-TO27QT2X.min.mjs.map} +0 -0
  203. /package/dist/esm/{introspection-YJF3QAUK.mjs.map → introspection-ZUQYVEFC.mjs.map} +0 -0
@@ -5,7 +5,7 @@ import TestAgent from 'supertest/lib/agent';
5
5
  import { Pipe, PipeOutput } from 'valleyed';
6
6
  import { EventBus } from './events/index.js';
7
7
  import { A as AuthUser } from './overrides-6Hxg764S.js';
8
- import { d as RouteDef, j as RouterConfig, i as RouteConfig, l as RouteDefHandler, k as MergeRouteDefs, e as Route, R as Request, a as Response, M as MethodsEnum } from './requestError-DdaL8hc3.js';
8
+ import { d as RouteDef, j as RouterConfig, i as RouteConfig, l as RouteDefHandler, k as MergeRouteDefs, e as Route, R as Request, a as Response, M as MethodsEnum } from './requestError-BmOhSuFb.js';
9
9
  import { IncomingHttpHeaders } from 'node:http2';
10
10
  import { Server as Server$1 } from 'socket.io';
11
11
  import { E as Entity } from './core-tNlIMH9Y.js';
@@ -61,7 +61,7 @@ declare const serverConfigPipe: () => Pipe<{
61
61
  port: number;
62
62
  cors: {
63
63
  origin: true | string[] | undefined;
64
- methods: ("get" | "delete" | "head" | "options" | "post" | "put" | "patch")[] | undefined;
64
+ methods: ("head" | "get" | "post" | "put" | "patch" | "delete" | "options")[] | undefined;
65
65
  credentials: boolean | undefined;
66
66
  } | undefined;
67
67
  eventBus: EventBus | undefined;
@@ -91,7 +91,7 @@ declare const serverConfigPipe: () => Pipe<{
91
91
  port: number;
92
92
  cors: {
93
93
  origin: true | string[] | undefined;
94
- methods: ("get" | "delete" | "head" | "options" | "post" | "put" | "patch")[] | undefined;
94
+ methods: ("head" | "get" | "post" | "put" | "patch" | "delete" | "options")[] | undefined;
95
95
  credentials: boolean | undefined;
96
96
  } | undefined;
97
97
  eventBus: EventBus | undefined;
@@ -1,10 +1,13 @@
1
1
  import {
2
2
  Cache
3
- } from "../../../chunk-LPB5LS7A.js";
3
+ } from "../../../chunk-BKXNLF6X.js";
4
+ import "../../../chunk-7MXHWHRV.js";
4
5
  import {
5
- Instance,
6
6
  configurable
7
- } from "../../../chunk-TT5EORDK.js";
7
+ } from "../../../chunk-PPD4WDG6.js";
8
+ import {
9
+ Instance
10
+ } from "../../../chunk-YGIIUOQM.js";
8
11
  import "../../../chunk-KZKFYO4V.js";
9
12
  import "../../../chunk-MLKGABMK.js";
10
13
 
@@ -1,9 +1,11 @@
1
1
  import {
2
2
  RedisCache,
3
3
  redisConfigPipe
4
- } from "../../../chunk-YLJNBL6J.js";
5
- import "../../../chunk-LPB5LS7A.js";
6
- import "../../../chunk-TT5EORDK.js";
4
+ } from "../../../chunk-GQRSK2KP.js";
5
+ import "../../../chunk-BKXNLF6X.js";
6
+ import "../../../chunk-7MXHWHRV.js";
7
+ import "../../../chunk-PPD4WDG6.js";
8
+ import "../../../chunk-YGIIUOQM.js";
7
9
  import "../../../chunk-KZKFYO4V.js";
8
10
  import "../../../chunk-MLKGABMK.js";
9
11
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Cache
3
- } from "../chunk-LPB5LS7A.js";
4
- import "../chunk-TT5EORDK.js";
3
+ } from "../chunk-BKXNLF6X.js";
4
+ import "../chunk-YGIIUOQM.js";
5
5
  import "../chunk-KZKFYO4V.js";
6
6
  import "../chunk-MLKGABMK.js";
7
7
  export {
@@ -0,0 +1,134 @@
1
+ import {
2
+ EquippedError,
3
+ Instance
4
+ } from "./chunk-YGIIUOQM.js";
5
+ import {
6
+ __export
7
+ } from "./chunk-MLKGABMK.js";
8
+
9
+ // src/utilities/authProviders.ts
10
+ var authProviders_exports = {};
11
+ __export(authProviders_exports, {
12
+ signinWithApple: () => signinWithApple,
13
+ signinWithFacebook: () => signinWithFacebook,
14
+ signinWithGoogle: () => signinWithGoogle
15
+ });
16
+ import axios from "axios";
17
+ import jwt from "jsonwebtoken";
18
+ import jwksClient from "jwks-rsa";
19
+ var signinWithGoogle = async (idToken) => {
20
+ const authUrl = `https://oauth2.googleapis.com/tokeninfo?id_token=${idToken}`;
21
+ const { data } = await axios.get(authUrl).catch((err) => {
22
+ throw new EquippedError("Failed to sign in with google", { idToken }, err);
23
+ });
24
+ data.first_name = data.given_name;
25
+ data.last_name = data.family_name;
26
+ return data;
27
+ };
28
+ var signinWithApple = async (idToken) => {
29
+ try {
30
+ const APPLE_BASE = "https://appleid.apple.com";
31
+ const json = jwt.decode(idToken, { complete: true });
32
+ if (!json?.header) throw new EquippedError("Missing JWT header", { idToken, json });
33
+ const { kid, alg } = json.header;
34
+ const publicKey = await jwksClient({ jwksUri: `${APPLE_BASE}/auth/keys`, cache: true }).getSigningKey(kid).then((key) => key.getPublicKey()).catch(() => null);
35
+ if (!publicKey) throw new EquippedError("no publicKey", { idToken, publicKey, json });
36
+ const data = jwt.verify(idToken, publicKey, { algorithms: [alg] });
37
+ if (!data) throw new EquippedError("no data", { idToken, data });
38
+ if (data.iss !== APPLE_BASE) throw new EquippedError("iss doesnt match", { idToken, data });
39
+ if (data.exp * 1e3 < Date.now()) throw new EquippedError("expired idToken", { idToken, data });
40
+ return data;
41
+ } catch (err) {
42
+ throw new EquippedError("Failed to sign in with apple", { idToken }, err);
43
+ }
44
+ };
45
+ var signinWithFacebook = async (accessToken, fields = []) => {
46
+ fields = [.../* @__PURE__ */ new Set([...fields, "name", "picture", "email"])];
47
+ const { data } = await axios.request({
48
+ method: "get",
49
+ url: "https://graph.facebook.com/v15.0/me",
50
+ params: {
51
+ fields: fields.join(","),
52
+ access_token: accessToken
53
+ }
54
+ }).catch((err) => {
55
+ throw new EquippedError("Failed to sign in with facebook", { accessToken, fields }, err);
56
+ });
57
+ const isValidData = fields.every((key) => key in data);
58
+ if (!isValidData) throw new EquippedError("Incomplete scope for access token", { accessToken, fields, data });
59
+ data.email_verified = "true";
60
+ return data;
61
+ };
62
+
63
+ // src/utilities/hash.ts
64
+ var hash_exports = {};
65
+ __export(hash_exports, {
66
+ compare: () => compare2,
67
+ hash: () => hash2
68
+ });
69
+ import * as bcrypt from "bcryptjs";
70
+ var hash2 = async (password) => {
71
+ password = password.trim();
72
+ if (!password) return "";
73
+ return await bcrypt.hash(password, Instance.get().settings.utils.hashSaltRounds);
74
+ };
75
+ var compare2 = async (plainPassword, hashed) => {
76
+ plainPassword = plainPassword.trim();
77
+ if (!plainPassword && plainPassword === hashed) return true;
78
+ return await bcrypt.compare(plainPassword, hashed);
79
+ };
80
+
81
+ // src/utilities/json.ts
82
+ var parseJSONValue = (data) => {
83
+ try {
84
+ if (data?.constructor?.name !== "String") return data;
85
+ return JSON.parse(data);
86
+ } catch {
87
+ return data;
88
+ }
89
+ };
90
+
91
+ // src/utilities/media.ts
92
+ import { parseBuffer } from "music-metadata";
93
+ var getMediaDuration = async (buffer) => {
94
+ try {
95
+ const meta = await parseBuffer(buffer);
96
+ return meta.format.duration ?? 0;
97
+ } catch {
98
+ return 0;
99
+ }
100
+ };
101
+
102
+ // src/utilities/random.ts
103
+ var random_exports = {};
104
+ __export(random_exports, {
105
+ number: () => number,
106
+ string: () => string
107
+ });
108
+ import crypto from "crypto";
109
+ function string(length = 20) {
110
+ return crypto.randomBytes(length).toString("hex").slice(0, length);
111
+ }
112
+ function number(min = 0, max = 2 ** 48 - 1) {
113
+ return crypto.randomInt(min, max);
114
+ }
115
+
116
+ // src/utilities/retry.ts
117
+ var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
118
+ var retry = async (cb, tries, waitTimeInMs) => {
119
+ if (tries <= 0) throw new EquippedError("out of tries", { tries, waitTimeInMs });
120
+ const result = await cb();
121
+ if (result.done === true) return result.value;
122
+ await sleep(waitTimeInMs);
123
+ return await retry(cb, tries - 1, waitTimeInMs);
124
+ };
125
+
126
+ export {
127
+ authProviders_exports,
128
+ hash_exports,
129
+ parseJSONValue,
130
+ getMediaDuration,
131
+ random_exports,
132
+ sleep,
133
+ retry
134
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Instance
3
- } from "./chunk-TT5EORDK.js";
3
+ } from "./chunk-YGIIUOQM.js";
4
4
 
5
5
  // src/cache/adapters/base.ts
6
6
  var Cache = class {
@@ -1,10 +1,14 @@
1
1
  import {
2
- EquippedError,
3
- Instance,
4
- configurable,
5
2
  parseJSONValue,
6
3
  random_exports
7
- } from "./chunk-TT5EORDK.js";
4
+ } from "./chunk-7MXHWHRV.js";
5
+ import {
6
+ configurable
7
+ } from "./chunk-PPD4WDG6.js";
8
+ import {
9
+ EquippedError,
10
+ Instance
11
+ } from "./chunk-YGIIUOQM.js";
8
12
  import {
9
13
  EventBus
10
14
  } from "./chunk-KZKFYO4V.js";
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  Cache
3
- } from "./chunk-LPB5LS7A.js";
3
+ } from "./chunk-BKXNLF6X.js";
4
4
  import {
5
- EquippedError,
6
- Instance,
7
5
  configurable
8
- } from "./chunk-TT5EORDK.js";
6
+ } from "./chunk-PPD4WDG6.js";
7
+ import {
8
+ EquippedError,
9
+ Instance
10
+ } from "./chunk-YGIIUOQM.js";
9
11
 
10
12
  // src/cache/adapters/redis/index.ts
11
13
  import { Cluster, Redis } from "ioredis";
@@ -0,0 +1,143 @@
1
+ // src/utilities/configurable.ts
2
+ import { v } from "valleyed";
3
+ function configurable(pipeFn, base) {
4
+ const pipe = pipeFn();
5
+ v.compile(pipe);
6
+ class Configurable extends base {
7
+ constructor(config, ...baseArgs) {
8
+ super(...baseArgs);
9
+ this.config = config;
10
+ }
11
+ static create(input, ...args) {
12
+ const r = v.validate(pipe, input);
13
+ if (!r.valid) throw r.error;
14
+ return new this(r.value, ...args);
15
+ }
16
+ }
17
+ return Configurable;
18
+ }
19
+ if (void 0) {
20
+ const { describe, test, expect, expectTypeOf } = void 0;
21
+ const { v: v2 } = await null;
22
+ const testPipe = () => v2.object({
23
+ host: v2.string(),
24
+ port: v2.number()
25
+ });
26
+ class TestBase {
27
+ baseValue;
28
+ constructor() {
29
+ this.baseValue = "base";
30
+ }
31
+ }
32
+ class TestBaseWithArgs {
33
+ label;
34
+ constructor(label) {
35
+ this.label = label;
36
+ }
37
+ }
38
+ describe("configurable", () => {
39
+ test("validation runs in static create before constructor body executes", () => {
40
+ let constructorRan = false;
41
+ const Wrapped = configurable(testPipe, TestBase);
42
+ class MyClass extends Wrapped {
43
+ constructor(config) {
44
+ super(config);
45
+ constructorRan = true;
46
+ }
47
+ }
48
+ expect(() => MyClass.create({ host: 123, port: "bad" })).toThrow();
49
+ expect(constructorRan).toBe(false);
50
+ MyClass.create({ host: "localhost", port: 3e3 });
51
+ expect(constructorRan).toBe(true);
52
+ });
53
+ test("constructor receives validated value", () => {
54
+ const Wrapped = configurable(testPipe, TestBase);
55
+ let receivedConfig;
56
+ class MyClass extends Wrapped {
57
+ constructor(config) {
58
+ super(config);
59
+ receivedConfig = this.config;
60
+ }
61
+ }
62
+ MyClass.create({ host: "localhost", port: 3e3 });
63
+ expect(receivedConfig).toEqual({ host: "localhost", port: 3e3 });
64
+ });
65
+ test("external new is a compile error", () => {
66
+ const Wrapped = configurable(testPipe, TestBase);
67
+ class MyClass extends Wrapped {
68
+ constructor(config) {
69
+ super(config);
70
+ }
71
+ }
72
+ void (() => new MyClass({ host: "localhost", port: 3e3 }));
73
+ });
74
+ test("static Config resolves to PipeOutput<P> at the type level", () => {
75
+ const Wrapped = configurable(testPipe, TestBase);
76
+ class MyClass extends Wrapped {
77
+ constructor(config) {
78
+ super(config);
79
+ }
80
+ }
81
+ expectTypeOf().toEqualTypeOf();
82
+ expect(MyClass.create).toBeTypeOf("function");
83
+ });
84
+ test("ConstructorParameters<This>-based extras inference works for non-zero-arg leaf signatures", () => {
85
+ const Wrapped = configurable(testPipe, TestBase);
86
+ class MyClass extends Wrapped {
87
+ extra;
88
+ constructor(config, extra) {
89
+ super(config);
90
+ this.extra = extra;
91
+ }
92
+ }
93
+ const instance = MyClass.create({ host: "localhost", port: 3e3 }, 42);
94
+ expect(instance.extra).toBe(42);
95
+ expectTypeOf(instance).toHaveProperty("extra");
96
+ expectTypeOf(instance.extra).toEqualTypeOf();
97
+ void (() => MyClass.create({ host: "localhost", port: 3e3 }, "not-a-number"));
98
+ });
99
+ test("base-args forwarding works for non-zero-arg bases", () => {
100
+ const Wrapped = configurable(testPipe, TestBaseWithArgs);
101
+ class MyClass extends Wrapped {
102
+ constructor(config, label) {
103
+ super(config, label);
104
+ }
105
+ }
106
+ const instance = MyClass.create({ host: "localhost", port: 3e3 }, "test-label");
107
+ expect(instance.label).toBe("test-label");
108
+ });
109
+ test("config is accessible as protected readonly on instances", () => {
110
+ const Wrapped = configurable(testPipe, TestBase);
111
+ class MyClass extends Wrapped {
112
+ constructor(config) {
113
+ super(config);
114
+ }
115
+ getHost() {
116
+ return this.config.host;
117
+ }
118
+ }
119
+ const instance = MyClass.create({ host: "localhost", port: 3e3 });
120
+ expect(instance.getHost()).toBe("localhost");
121
+ });
122
+ test("accepts an abstract base class", () => {
123
+ class AbstractBase {
124
+ }
125
+ const Wrapped = configurable(testPipe, AbstractBase);
126
+ class Concrete extends Wrapped {
127
+ constructor(config) {
128
+ super(config);
129
+ }
130
+ greet() {
131
+ return `hello from ${this.config.host}`;
132
+ }
133
+ }
134
+ const instance = Concrete.create({ host: "localhost", port: 3e3 });
135
+ expect(instance.greet()).toBe("hello from localhost");
136
+ expectTypeOf(instance).toHaveProperty("config");
137
+ });
138
+ });
139
+ }
140
+
141
+ export {
142
+ configurable
143
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EquippedError
3
- } from "./chunk-TT5EORDK.js";
3
+ } from "./chunk-YGIIUOQM.js";
4
4
 
5
5
  // src/orm/errors/introspection.ts
6
6
  var OrmIntrospectionError = class extends EquippedError {
@@ -1,3 +1,6 @@
1
+ import {
2
+ configurable
3
+ } from "./chunk-PPD4WDG6.js";
1
4
  import {
2
5
  Filter,
3
6
  FilterGroup,
@@ -11,10 +14,7 @@ import {
11
14
  PushOp,
12
15
  SetOp,
13
16
  UnsetOp
14
- } from "./chunk-5Z26ZURE.js";
15
- import {
16
- configurable
17
- } from "./chunk-TT5EORDK.js";
17
+ } from "./chunk-UR7O43FC.js";
18
18
 
19
19
  // src/orm/adapters/in-memory/index.ts
20
20
  import { AsyncLocalStorage } from "async_hooks";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  EquippedError,
3
3
  Instance
4
- } from "./chunk-TT5EORDK.js";
4
+ } from "./chunk-YGIIUOQM.js";
5
5
 
6
6
  // src/orm/errors/validation.ts
7
7
  var OrmValidationError = class extends EquippedError {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  KafkaEventBus
3
- } from "./chunk-J3TGB5YQ.js";
3
+ } from "./chunk-DZFKDZDZ.js";
4
4
  import {
5
5
  Instance
6
- } from "./chunk-TT5EORDK.js";
6
+ } from "./chunk-YGIIUOQM.js";
7
7
 
8
8
  // src/dbs/adapters/base/db.ts
9
9
  var Db = class {