@tinyrack/tinyauth-server 0.0.7

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 (782) hide show
  1. package/LICENSE +661 -0
  2. package/dist/emails/components/email-layout.d.ts +8 -0
  3. package/dist/emails/components/email-layout.d.ts.map +1 -0
  4. package/dist/emails/components/email-layout.js +6 -0
  5. package/dist/emails/components/email-layout.js.map +1 -0
  6. package/dist/emails/i18n/en.json +26 -0
  7. package/dist/emails/i18n/index.d.ts +3 -0
  8. package/dist/emails/i18n/index.d.ts.map +1 -0
  9. package/dist/emails/i18n/index.js +12 -0
  10. package/dist/emails/i18n/index.js.map +1 -0
  11. package/dist/emails/i18n/ja.json +26 -0
  12. package/dist/emails/i18n/ko.json +26 -0
  13. package/dist/emails/render.d.ts +12 -0
  14. package/dist/emails/render.d.ts.map +1 -0
  15. package/dist/emails/render.js +22 -0
  16. package/dist/emails/render.js.map +1 -0
  17. package/dist/emails/templates/password-reset.d.ts +10 -0
  18. package/dist/emails/templates/password-reset.d.ts.map +1 -0
  19. package/dist/emails/templates/password-reset.js +10 -0
  20. package/dist/emails/templates/password-reset.js.map +1 -0
  21. package/dist/emails/templates/verification.d.ts +10 -0
  22. package/dist/emails/templates/verification.d.ts.map +1 -0
  23. package/dist/emails/templates/verification.js +10 -0
  24. package/dist/emails/templates/verification.js.map +1 -0
  25. package/dist/entities/base.entity.d.ts +23 -0
  26. package/dist/entities/base.entity.d.ts.map +1 -0
  27. package/dist/entities/base.entity.js +17 -0
  28. package/dist/entities/base.entity.js.map +1 -0
  29. package/dist/entities/email-verification.entity.d.ts +90 -0
  30. package/dist/entities/email-verification.entity.d.ts.map +1 -0
  31. package/dist/entities/email-verification.entity.js +42 -0
  32. package/dist/entities/email-verification.entity.js.map +1 -0
  33. package/dist/entities/jwt-key.entity.d.ts +256 -0
  34. package/dist/entities/jwt-key.entity.d.ts.map +1 -0
  35. package/dist/entities/jwt-key.entity.js +125 -0
  36. package/dist/entities/jwt-key.entity.js.map +1 -0
  37. package/dist/entities/oauth-client.entity.d.ts +1541 -0
  38. package/dist/entities/oauth-client.entity.d.ts.map +1 -0
  39. package/dist/entities/oauth-client.entity.js +68 -0
  40. package/dist/entities/oauth-client.entity.js.map +1 -0
  41. package/dist/entities/oauth-code.entity.d.ts +1562 -0
  42. package/dist/entities/oauth-code.entity.d.ts.map +1 -0
  43. package/dist/entities/oauth-code.entity.js +79 -0
  44. package/dist/entities/oauth-code.entity.js.map +1 -0
  45. package/dist/entities/password-reset.entity.d.ts +90 -0
  46. package/dist/entities/password-reset.entity.d.ts.map +1 -0
  47. package/dist/entities/password-reset.entity.js +39 -0
  48. package/dist/entities/password-reset.entity.js.map +1 -0
  49. package/dist/entities/pending-oauth-registration.entity.d.ts +116 -0
  50. package/dist/entities/pending-oauth-registration.entity.d.ts.map +1 -0
  51. package/dist/entities/pending-oauth-registration.entity.js +67 -0
  52. package/dist/entities/pending-oauth-registration.entity.js.map +1 -0
  53. package/dist/entities/revoked-token.entity.d.ts +1559 -0
  54. package/dist/entities/revoked-token.entity.d.ts.map +1 -0
  55. package/dist/entities/revoked-token.entity.js +68 -0
  56. package/dist/entities/revoked-token.entity.js.map +1 -0
  57. package/dist/entities/terms-content.entity.d.ts +804 -0
  58. package/dist/entities/terms-content.entity.d.ts.map +1 -0
  59. package/dist/entities/terms-content.entity.js +46 -0
  60. package/dist/entities/terms-content.entity.js.map +1 -0
  61. package/dist/entities/terms.entity.d.ts +797 -0
  62. package/dist/entities/terms.entity.d.ts.map +1 -0
  63. package/dist/entities/terms.entity.js +42 -0
  64. package/dist/entities/terms.entity.js.map +1 -0
  65. package/dist/entities/user-consent.entity.d.ts +1555 -0
  66. package/dist/entities/user-consent.entity.d.ts.map +1 -0
  67. package/dist/entities/user-consent.entity.js +66 -0
  68. package/dist/entities/user-consent.entity.js.map +1 -0
  69. package/dist/entities/user-oauth.entity.d.ts +75 -0
  70. package/dist/entities/user-oauth.entity.d.ts.map +1 -0
  71. package/dist/entities/user-oauth.entity.js +45 -0
  72. package/dist/entities/user-oauth.entity.js.map +1 -0
  73. package/dist/entities/user-passkey.entity.d.ts +145 -0
  74. package/dist/entities/user-passkey.entity.d.ts.map +1 -0
  75. package/dist/entities/user-passkey.entity.js +64 -0
  76. package/dist/entities/user-passkey.entity.js.map +1 -0
  77. package/dist/entities/user-terms-consent.entity.d.ts +804 -0
  78. package/dist/entities/user-terms-consent.entity.d.ts.map +1 -0
  79. package/dist/entities/user-terms-consent.entity.js +62 -0
  80. package/dist/entities/user-terms-consent.entity.js.map +1 -0
  81. package/dist/entities/user-totp-recovery-code.entity.d.ts +527 -0
  82. package/dist/entities/user-totp-recovery-code.entity.d.ts.map +1 -0
  83. package/dist/entities/user-totp-recovery-code.entity.js +34 -0
  84. package/dist/entities/user-totp-recovery-code.entity.js.map +1 -0
  85. package/dist/entities/user-totp.entity.d.ts +527 -0
  86. package/dist/entities/user-totp.entity.d.ts.map +1 -0
  87. package/dist/entities/user-totp.entity.js +38 -0
  88. package/dist/entities/user-totp.entity.js.map +1 -0
  89. package/dist/entities/user.entity.d.ts +533 -0
  90. package/dist/entities/user.entity.d.ts.map +1 -0
  91. package/dist/entities/user.entity.js +70 -0
  92. package/dist/entities/user.entity.js.map +1 -0
  93. package/dist/entrypoints/app.d.ts +1300 -0
  94. package/dist/entrypoints/app.d.ts.map +1 -0
  95. package/dist/entrypoints/app.js +64 -0
  96. package/dist/entrypoints/app.js.map +1 -0
  97. package/dist/entrypoints/config/index.d.ts +2 -0
  98. package/dist/entrypoints/config/index.d.ts.map +1 -0
  99. package/dist/entrypoints/config/index.js +2 -0
  100. package/dist/entrypoints/config/index.js.map +1 -0
  101. package/dist/entrypoints/database/d1/cli.d.ts +3 -0
  102. package/dist/entrypoints/database/d1/cli.d.ts.map +1 -0
  103. package/dist/entrypoints/database/d1/cli.js +12 -0
  104. package/dist/entrypoints/database/d1/cli.js.map +1 -0
  105. package/dist/entrypoints/database/d1/compiled-functions.d.ts +666 -0
  106. package/dist/entrypoints/database/d1/compiled-functions.d.ts.map +1 -0
  107. package/dist/entrypoints/database/d1/compiled-functions.js +8365 -0
  108. package/dist/entrypoints/database/d1/compiled-functions.js.map +1 -0
  109. package/dist/entrypoints/database/d1/d1.d.ts +5 -0
  110. package/dist/entrypoints/database/d1/d1.d.ts.map +1 -0
  111. package/dist/entrypoints/database/d1/d1.js +39 -0
  112. package/dist/entrypoints/database/d1/d1.js.map +1 -0
  113. package/dist/entrypoints/database/postgres/cli.d.ts +3 -0
  114. package/dist/entrypoints/database/postgres/cli.d.ts.map +1 -0
  115. package/dist/entrypoints/database/postgres/cli.js +9 -0
  116. package/dist/entrypoints/database/postgres/cli.js.map +1 -0
  117. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +666 -0
  118. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -0
  119. package/dist/entrypoints/database/postgres/compiled-functions.js +8365 -0
  120. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -0
  121. package/dist/entrypoints/database/postgres/postgres.d.ts +9 -0
  122. package/dist/entrypoints/database/postgres/postgres.d.ts.map +1 -0
  123. package/dist/entrypoints/database/postgres/postgres.js +34 -0
  124. package/dist/entrypoints/database/postgres/postgres.js.map +1 -0
  125. package/dist/entrypoints/database/sqlite/cli.d.ts +3 -0
  126. package/dist/entrypoints/database/sqlite/cli.d.ts.map +1 -0
  127. package/dist/entrypoints/database/sqlite/cli.js +6 -0
  128. package/dist/entrypoints/database/sqlite/cli.js.map +1 -0
  129. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +666 -0
  130. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -0
  131. package/dist/entrypoints/database/sqlite/compiled-functions.js +8365 -0
  132. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -0
  133. package/dist/entrypoints/database/sqlite/sqlite.d.ts +6 -0
  134. package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -0
  135. package/dist/entrypoints/database/sqlite/sqlite.js +32 -0
  136. package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -0
  137. package/dist/entrypoints/frontend/cloudflare.d.ts +2 -0
  138. package/dist/entrypoints/frontend/cloudflare.d.ts.map +1 -0
  139. package/dist/entrypoints/frontend/cloudflare.js +2 -0
  140. package/dist/entrypoints/frontend/cloudflare.js.map +1 -0
  141. package/dist/entrypoints/frontend/index.d.ts +6 -0
  142. package/dist/entrypoints/frontend/index.d.ts.map +1 -0
  143. package/dist/entrypoints/frontend/index.js +3 -0
  144. package/dist/entrypoints/frontend/index.js.map +1 -0
  145. package/dist/entrypoints/frontend/proxy.d.ts +2 -0
  146. package/dist/entrypoints/frontend/proxy.d.ts.map +1 -0
  147. package/dist/entrypoints/frontend/proxy.js +2 -0
  148. package/dist/entrypoints/frontend/proxy.js.map +1 -0
  149. package/dist/entrypoints/frontend/static.d.ts +2 -0
  150. package/dist/entrypoints/frontend/static.d.ts.map +1 -0
  151. package/dist/entrypoints/frontend/static.js +2 -0
  152. package/dist/entrypoints/frontend/static.js.map +1 -0
  153. package/dist/entrypoints/identity-providers/apple.d.ts +14 -0
  154. package/dist/entrypoints/identity-providers/apple.d.ts.map +1 -0
  155. package/dist/entrypoints/identity-providers/apple.js +23 -0
  156. package/dist/entrypoints/identity-providers/apple.js.map +1 -0
  157. package/dist/entrypoints/identity-providers/generic-oauth.d.ts +25 -0
  158. package/dist/entrypoints/identity-providers/generic-oauth.d.ts.map +1 -0
  159. package/dist/entrypoints/identity-providers/generic-oauth.js +20 -0
  160. package/dist/entrypoints/identity-providers/generic-oauth.js.map +1 -0
  161. package/dist/entrypoints/identity-providers/github.d.ts +13 -0
  162. package/dist/entrypoints/identity-providers/github.d.ts.map +1 -0
  163. package/dist/entrypoints/identity-providers/github.js +24 -0
  164. package/dist/entrypoints/identity-providers/github.js.map +1 -0
  165. package/dist/entrypoints/identity-providers/google.d.ts +13 -0
  166. package/dist/entrypoints/identity-providers/google.d.ts.map +1 -0
  167. package/dist/entrypoints/identity-providers/google.js +24 -0
  168. package/dist/entrypoints/identity-providers/google.js.map +1 -0
  169. package/dist/entrypoints/index.d.ts +3 -0
  170. package/dist/entrypoints/index.d.ts.map +1 -0
  171. package/dist/entrypoints/index.js +3 -0
  172. package/dist/entrypoints/index.js.map +1 -0
  173. package/dist/entrypoints/mail/nodemailer.d.ts +11 -0
  174. package/dist/entrypoints/mail/nodemailer.d.ts.map +1 -0
  175. package/dist/entrypoints/mail/nodemailer.js +30 -0
  176. package/dist/entrypoints/mail/nodemailer.js.map +1 -0
  177. package/dist/entrypoints/scheduler/croner.d.ts +6 -0
  178. package/dist/entrypoints/scheduler/croner.d.ts.map +1 -0
  179. package/dist/entrypoints/scheduler/croner.js +22 -0
  180. package/dist/entrypoints/scheduler/croner.js.map +1 -0
  181. package/dist/entrypoints/services.d.ts +3 -0
  182. package/dist/entrypoints/services.d.ts.map +1 -0
  183. package/dist/entrypoints/services.js +2 -0
  184. package/dist/entrypoints/services.js.map +1 -0
  185. package/dist/lib/app-env.d.ts +17 -0
  186. package/dist/lib/app-env.d.ts.map +1 -0
  187. package/dist/lib/app-env.js +2 -0
  188. package/dist/lib/app-env.js.map +1 -0
  189. package/dist/lib/base64url.d.ts +33 -0
  190. package/dist/lib/base64url.d.ts.map +1 -0
  191. package/dist/lib/base64url.js +93 -0
  192. package/dist/lib/base64url.js.map +1 -0
  193. package/dist/lib/config/account-deletion.d.ts +11 -0
  194. package/dist/lib/config/account-deletion.d.ts.map +1 -0
  195. package/dist/lib/config/account-deletion.js +16 -0
  196. package/dist/lib/config/account-deletion.js.map +1 -0
  197. package/dist/lib/config/auth.d.ts +109 -0
  198. package/dist/lib/config/auth.d.ts.map +1 -0
  199. package/dist/lib/config/auth.js +155 -0
  200. package/dist/lib/config/auth.js.map +1 -0
  201. package/dist/lib/config/branding.d.ts +134 -0
  202. package/dist/lib/config/branding.d.ts.map +1 -0
  203. package/dist/lib/config/branding.js +83 -0
  204. package/dist/lib/config/branding.js.map +1 -0
  205. package/dist/lib/config/cleanup.d.ts +59 -0
  206. package/dist/lib/config/cleanup.d.ts.map +1 -0
  207. package/dist/lib/config/cleanup.js +119 -0
  208. package/dist/lib/config/cleanup.js.map +1 -0
  209. package/dist/lib/config/client.d.ts +30 -0
  210. package/dist/lib/config/client.d.ts.map +1 -0
  211. package/dist/lib/config/client.js +43 -0
  212. package/dist/lib/config/client.js.map +1 -0
  213. package/dist/lib/config/database.d.ts +8 -0
  214. package/dist/lib/config/database.d.ts.map +1 -0
  215. package/dist/lib/config/database.js +8 -0
  216. package/dist/lib/config/database.js.map +1 -0
  217. package/dist/lib/config/email.d.ts +17 -0
  218. package/dist/lib/config/email.d.ts.map +1 -0
  219. package/dist/lib/config/email.js +7 -0
  220. package/dist/lib/config/email.js.map +1 -0
  221. package/dist/lib/config/frontend.d.ts +12 -0
  222. package/dist/lib/config/frontend.d.ts.map +1 -0
  223. package/dist/lib/config/frontend.js +7 -0
  224. package/dist/lib/config/frontend.js.map +1 -0
  225. package/dist/lib/config/i18n.d.ts +31 -0
  226. package/dist/lib/config/i18n.d.ts.map +1 -0
  227. package/dist/lib/config/i18n.js +23 -0
  228. package/dist/lib/config/i18n.js.map +1 -0
  229. package/dist/lib/config/identity-providers.d.ts +66 -0
  230. package/dist/lib/config/identity-providers.d.ts.map +1 -0
  231. package/dist/lib/config/identity-providers.js +71 -0
  232. package/dist/lib/config/identity-providers.js.map +1 -0
  233. package/dist/lib/config/index.d.ts +41 -0
  234. package/dist/lib/config/index.d.ts.map +1 -0
  235. package/dist/lib/config/index.js +21 -0
  236. package/dist/lib/config/index.js.map +1 -0
  237. package/dist/lib/config/logging.d.ts +52 -0
  238. package/dist/lib/config/logging.d.ts.map +1 -0
  239. package/dist/lib/config/logging.js +41 -0
  240. package/dist/lib/config/logging.js.map +1 -0
  241. package/dist/lib/config/openapi.d.ts +15 -0
  242. package/dist/lib/config/openapi.d.ts.map +1 -0
  243. package/dist/lib/config/openapi.js +28 -0
  244. package/dist/lib/config/openapi.js.map +1 -0
  245. package/dist/lib/config/registration.d.ts +15 -0
  246. package/dist/lib/config/registration.d.ts.map +1 -0
  247. package/dist/lib/config/registration.js +24 -0
  248. package/dist/lib/config/registration.js.map +1 -0
  249. package/dist/lib/config/resolved.d.ts +274 -0
  250. package/dist/lib/config/resolved.d.ts.map +1 -0
  251. package/dist/lib/config/resolved.js +45 -0
  252. package/dist/lib/config/resolved.js.map +1 -0
  253. package/dist/lib/config/scheduler.d.ts +13 -0
  254. package/dist/lib/config/scheduler.d.ts.map +1 -0
  255. package/dist/lib/config/scheduler.js +14 -0
  256. package/dist/lib/config/scheduler.js.map +1 -0
  257. package/dist/lib/config/security.d.ts +11 -0
  258. package/dist/lib/config/security.d.ts.map +1 -0
  259. package/dist/lib/config/security.js +42 -0
  260. package/dist/lib/config/security.js.map +1 -0
  261. package/dist/lib/config/server.d.ts +13 -0
  262. package/dist/lib/config/server.d.ts.map +1 -0
  263. package/dist/lib/config/server.js +45 -0
  264. package/dist/lib/config/server.js.map +1 -0
  265. package/dist/lib/config/terms.d.ts +47 -0
  266. package/dist/lib/config/terms.d.ts.map +1 -0
  267. package/dist/lib/config/terms.js +71 -0
  268. package/dist/lib/config/terms.js.map +1 -0
  269. package/dist/lib/config/tokens.d.ts +32 -0
  270. package/dist/lib/config/tokens.d.ts.map +1 -0
  271. package/dist/lib/config/tokens.js +47 -0
  272. package/dist/lib/config/tokens.js.map +1 -0
  273. package/dist/lib/config/user.d.ts +22 -0
  274. package/dist/lib/config/user.d.ts.map +1 -0
  275. package/dist/lib/config/user.js +18 -0
  276. package/dist/lib/config/user.js.map +1 -0
  277. package/dist/lib/crypto.d.ts +106 -0
  278. package/dist/lib/crypto.d.ts.map +1 -0
  279. package/dist/lib/crypto.js +253 -0
  280. package/dist/lib/crypto.js.map +1 -0
  281. package/dist/lib/database/compiled-functions.d.ts +16 -0
  282. package/dist/lib/database/compiled-functions.d.ts.map +1 -0
  283. package/dist/lib/database/compiled-functions.js +66 -0
  284. package/dist/lib/database/compiled-functions.js.map +1 -0
  285. package/dist/lib/database/entities.d.ts +10 -0
  286. package/dist/lib/database/entities.d.ts.map +1 -0
  287. package/dist/lib/database/entities.js +43 -0
  288. package/dist/lib/database/entities.js.map +1 -0
  289. package/dist/lib/duration.d.ts +44 -0
  290. package/dist/lib/duration.d.ts.map +1 -0
  291. package/dist/lib/duration.js +103 -0
  292. package/dist/lib/duration.js.map +1 -0
  293. package/dist/lib/email-pattern.d.ts +16 -0
  294. package/dist/lib/email-pattern.d.ts.map +1 -0
  295. package/dist/lib/email-pattern.js +41 -0
  296. package/dist/lib/email-pattern.js.map +1 -0
  297. package/dist/lib/frontend/cloudflare.d.ts +12 -0
  298. package/dist/lib/frontend/cloudflare.d.ts.map +1 -0
  299. package/dist/lib/frontend/cloudflare.js +34 -0
  300. package/dist/lib/frontend/cloudflare.js.map +1 -0
  301. package/dist/lib/frontend/proxy.d.ts +24 -0
  302. package/dist/lib/frontend/proxy.d.ts.map +1 -0
  303. package/dist/lib/frontend/proxy.js +38 -0
  304. package/dist/lib/frontend/proxy.js.map +1 -0
  305. package/dist/lib/frontend/static.d.ts +21 -0
  306. package/dist/lib/frontend/static.d.ts.map +1 -0
  307. package/dist/lib/frontend/static.js +108 -0
  308. package/dist/lib/frontend/static.js.map +1 -0
  309. package/dist/lib/interpolate-html.d.ts +34 -0
  310. package/dist/lib/interpolate-html.d.ts.map +1 -0
  311. package/dist/lib/interpolate-html.js +63 -0
  312. package/dist/lib/interpolate-html.js.map +1 -0
  313. package/dist/lib/ip-utils.d.ts +61 -0
  314. package/dist/lib/ip-utils.d.ts.map +1 -0
  315. package/dist/lib/ip-utils.js +213 -0
  316. package/dist/lib/ip-utils.js.map +1 -0
  317. package/dist/lib/locale.d.ts +57 -0
  318. package/dist/lib/locale.d.ts.map +1 -0
  319. package/dist/lib/locale.js +25 -0
  320. package/dist/lib/locale.js.map +1 -0
  321. package/dist/lib/logger.d.ts +14 -0
  322. package/dist/lib/logger.d.ts.map +1 -0
  323. package/dist/lib/logger.js +41 -0
  324. package/dist/lib/logger.js.map +1 -0
  325. package/dist/lib/openapi.d.ts +35 -0
  326. package/dist/lib/openapi.d.ts.map +1 -0
  327. package/dist/lib/openapi.js +33 -0
  328. package/dist/lib/openapi.js.map +1 -0
  329. package/dist/lib/password-policy.d.ts +39 -0
  330. package/dist/lib/password-policy.d.ts.map +1 -0
  331. package/dist/lib/password-policy.js +51 -0
  332. package/dist/lib/password-policy.js.map +1 -0
  333. package/dist/lib/pkce.d.ts +26 -0
  334. package/dist/lib/pkce.d.ts.map +1 -0
  335. package/dist/lib/pkce.js +52 -0
  336. package/dist/lib/pkce.js.map +1 -0
  337. package/dist/lib/scopes.d.ts +10 -0
  338. package/dist/lib/scopes.d.ts.map +1 -0
  339. package/dist/lib/scopes.js +35 -0
  340. package/dist/lib/scopes.js.map +1 -0
  341. package/dist/lib/swagger-tags.d.ts +15 -0
  342. package/dist/lib/swagger-tags.d.ts.map +1 -0
  343. package/dist/lib/swagger-tags.js +15 -0
  344. package/dist/lib/swagger-tags.js.map +1 -0
  345. package/dist/middleware/auth.d.ts +64 -0
  346. package/dist/middleware/auth.d.ts.map +1 -0
  347. package/dist/middleware/auth.js +123 -0
  348. package/dist/middleware/auth.js.map +1 -0
  349. package/dist/middleware/logger.d.ts +18 -0
  350. package/dist/middleware/logger.d.ts.map +1 -0
  351. package/dist/middleware/logger.js +38 -0
  352. package/dist/middleware/logger.js.map +1 -0
  353. package/dist/middleware/mikro-orm.d.ts +3 -0
  354. package/dist/middleware/mikro-orm.d.ts.map +1 -0
  355. package/dist/middleware/mikro-orm.js +11 -0
  356. package/dist/middleware/mikro-orm.js.map +1 -0
  357. package/dist/middleware/services.d.ts +8 -0
  358. package/dist/middleware/services.d.ts.map +1 -0
  359. package/dist/middleware/services.js +8 -0
  360. package/dist/middleware/services.js.map +1 -0
  361. package/dist/middleware/session.d.ts +63 -0
  362. package/dist/middleware/session.d.ts.map +1 -0
  363. package/dist/middleware/session.js +89 -0
  364. package/dist/middleware/session.js.map +1 -0
  365. package/dist/middleware/trusted-proxy-guard.d.ts +7 -0
  366. package/dist/middleware/trusted-proxy-guard.d.ts.map +1 -0
  367. package/dist/middleware/trusted-proxy-guard.js +34 -0
  368. package/dist/middleware/trusted-proxy-guard.js.map +1 -0
  369. package/dist/repositories/email-verification.repository.d.ts +18 -0
  370. package/dist/repositories/email-verification.repository.d.ts.map +1 -0
  371. package/dist/repositories/email-verification.repository.js +47 -0
  372. package/dist/repositories/email-verification.repository.js.map +1 -0
  373. package/dist/repositories/jwt-key.repository.d.ts +49 -0
  374. package/dist/repositories/jwt-key.repository.d.ts.map +1 -0
  375. package/dist/repositories/jwt-key.repository.js +72 -0
  376. package/dist/repositories/jwt-key.repository.js.map +1 -0
  377. package/dist/repositories/oauth-client.repository.d.ts +5 -0
  378. package/dist/repositories/oauth-client.repository.d.ts.map +1 -0
  379. package/dist/repositories/oauth-client.repository.js +4 -0
  380. package/dist/repositories/oauth-client.repository.js.map +1 -0
  381. package/dist/repositories/oauth-code.repository.d.ts +19 -0
  382. package/dist/repositories/oauth-code.repository.d.ts.map +1 -0
  383. package/dist/repositories/oauth-code.repository.js +32 -0
  384. package/dist/repositories/oauth-code.repository.js.map +1 -0
  385. package/dist/repositories/password-reset.repository.d.ts +19 -0
  386. package/dist/repositories/password-reset.repository.d.ts.map +1 -0
  387. package/dist/repositories/password-reset.repository.js +53 -0
  388. package/dist/repositories/password-reset.repository.js.map +1 -0
  389. package/dist/repositories/pending-oauth-registration.repository.d.ts +38 -0
  390. package/dist/repositories/pending-oauth-registration.repository.d.ts.map +1 -0
  391. package/dist/repositories/pending-oauth-registration.repository.js +50 -0
  392. package/dist/repositories/pending-oauth-registration.repository.js.map +1 -0
  393. package/dist/repositories/revoked-token.repository.d.ts +32 -0
  394. package/dist/repositories/revoked-token.repository.d.ts.map +1 -0
  395. package/dist/repositories/revoked-token.repository.js +43 -0
  396. package/dist/repositories/revoked-token.repository.js.map +1 -0
  397. package/dist/repositories/terms-content.repository.d.ts +5 -0
  398. package/dist/repositories/terms-content.repository.d.ts.map +1 -0
  399. package/dist/repositories/terms-content.repository.js +4 -0
  400. package/dist/repositories/terms-content.repository.js.map +1 -0
  401. package/dist/repositories/terms.repository.d.ts +9 -0
  402. package/dist/repositories/terms.repository.d.ts.map +1 -0
  403. package/dist/repositories/terms.repository.js +12 -0
  404. package/dist/repositories/terms.repository.js.map +1 -0
  405. package/dist/repositories/user-consent.repository.d.ts +22 -0
  406. package/dist/repositories/user-consent.repository.d.ts.map +1 -0
  407. package/dist/repositories/user-consent.repository.js +51 -0
  408. package/dist/repositories/user-consent.repository.js.map +1 -0
  409. package/dist/repositories/user-oauth.repository.d.ts +68 -0
  410. package/dist/repositories/user-oauth.repository.d.ts.map +1 -0
  411. package/dist/repositories/user-oauth.repository.js +94 -0
  412. package/dist/repositories/user-oauth.repository.js.map +1 -0
  413. package/dist/repositories/user-passkey.repository.d.ts +187 -0
  414. package/dist/repositories/user-passkey.repository.d.ts.map +1 -0
  415. package/dist/repositories/user-passkey.repository.js +61 -0
  416. package/dist/repositories/user-passkey.repository.js.map +1 -0
  417. package/dist/repositories/user-terms-consent.repository.d.ts +38 -0
  418. package/dist/repositories/user-terms-consent.repository.d.ts.map +1 -0
  419. package/dist/repositories/user-terms-consent.repository.js +71 -0
  420. package/dist/repositories/user-terms-consent.repository.js.map +1 -0
  421. package/dist/repositories/user-totp-recovery-code.repository.d.ts +376 -0
  422. package/dist/repositories/user-totp-recovery-code.repository.d.ts.map +1 -0
  423. package/dist/repositories/user-totp-recovery-code.repository.js +41 -0
  424. package/dist/repositories/user-totp-recovery-code.repository.js.map +1 -0
  425. package/dist/repositories/user-totp.repository.d.ts +564 -0
  426. package/dist/repositories/user-totp.repository.d.ts.map +1 -0
  427. package/dist/repositories/user-totp.repository.js +56 -0
  428. package/dist/repositories/user-totp.repository.js.map +1 -0
  429. package/dist/repositories/user.repository.d.ts +32 -0
  430. package/dist/repositories/user.repository.d.ts.map +1 -0
  431. package/dist/repositories/user.repository.js +70 -0
  432. package/dist/repositories/user.repository.js.map +1 -0
  433. package/dist/routes/.well-known/index.d.ts +12 -0
  434. package/dist/routes/.well-known/index.d.ts.map +1 -0
  435. package/dist/routes/.well-known/index.js +4 -0
  436. package/dist/routes/.well-known/index.js.map +1 -0
  437. package/dist/routes/.well-known/openid-configuration/get.d.ts +19 -0
  438. package/dist/routes/.well-known/openid-configuration/get.d.ts.map +1 -0
  439. package/dist/routes/.well-known/openid-configuration/get.js +12 -0
  440. package/dist/routes/.well-known/openid-configuration/get.js.map +1 -0
  441. package/dist/routes/api/auth/email/resend/post.d.ts +22 -0
  442. package/dist/routes/api/auth/email/resend/post.d.ts.map +1 -0
  443. package/dist/routes/api/auth/email/resend/post.js +64 -0
  444. package/dist/routes/api/auth/email/resend/post.js.map +1 -0
  445. package/dist/routes/api/auth/email/verify/post.d.ts +29 -0
  446. package/dist/routes/api/auth/email/verify/post.d.ts.map +1 -0
  447. package/dist/routes/api/auth/email/verify/post.js +55 -0
  448. package/dist/routes/api/auth/email/verify/post.js.map +1 -0
  449. package/dist/routes/api/auth/index.d.ts +275 -0
  450. package/dist/routes/api/auth/index.d.ts.map +1 -0
  451. package/dist/routes/api/auth/index.js +25 -0
  452. package/dist/routes/api/auth/index.js.map +1 -0
  453. package/dist/routes/api/auth/login/post.d.ts +30 -0
  454. package/dist/routes/api/auth/login/post.d.ts.map +1 -0
  455. package/dist/routes/api/auth/login/post.js +76 -0
  456. package/dist/routes/api/auth/login/post.js.map +1 -0
  457. package/dist/routes/api/auth/logout/post.d.ts +14 -0
  458. package/dist/routes/api/auth/logout/post.d.ts.map +1 -0
  459. package/dist/routes/api/auth/logout/post.js +21 -0
  460. package/dist/routes/api/auth/logout/post.js.map +1 -0
  461. package/dist/routes/api/auth/passkey/options/post.d.ts +31 -0
  462. package/dist/routes/api/auth/passkey/options/post.d.ts.map +1 -0
  463. package/dist/routes/api/auth/passkey/options/post.js +43 -0
  464. package/dist/routes/api/auth/passkey/options/post.js.map +1 -0
  465. package/dist/routes/api/auth/passkey/verify/post.d.ts +41 -0
  466. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -0
  467. package/dist/routes/api/auth/passkey/verify/post.js +75 -0
  468. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -0
  469. package/dist/routes/api/auth/password/forgot/post.d.ts +22 -0
  470. package/dist/routes/api/auth/password/forgot/post.d.ts.map +1 -0
  471. package/dist/routes/api/auth/password/forgot/post.js +72 -0
  472. package/dist/routes/api/auth/password/forgot/post.js.map +1 -0
  473. package/dist/routes/api/auth/password/reset/post.d.ts +19 -0
  474. package/dist/routes/api/auth/password/reset/post.d.ts.map +1 -0
  475. package/dist/routes/api/auth/password/reset/post.js +62 -0
  476. package/dist/routes/api/auth/password/reset/post.js.map +1 -0
  477. package/dist/routes/api/auth/register/post.d.ts +39 -0
  478. package/dist/routes/api/auth/register/post.d.ts.map +1 -0
  479. package/dist/routes/api/auth/register/post.js +95 -0
  480. package/dist/routes/api/auth/register/post.js.map +1 -0
  481. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts +36 -0
  482. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts.map +1 -0
  483. package/dist/routes/api/auth/totp/recovery/verify/post.js +68 -0
  484. package/dist/routes/api/auth/totp/recovery/verify/post.js.map +1 -0
  485. package/dist/routes/api/auth/totp/verify/post.d.ts +29 -0
  486. package/dist/routes/api/auth/totp/verify/post.d.ts.map +1 -0
  487. package/dist/routes/api/auth/totp/verify/post.js +59 -0
  488. package/dist/routes/api/auth/totp/verify/post.js.map +1 -0
  489. package/dist/routes/api/config/get.d.ts +76 -0
  490. package/dist/routes/api/config/get.d.ts.map +1 -0
  491. package/dist/routes/api/config/get.js +70 -0
  492. package/dist/routes/api/config/get.js.map +1 -0
  493. package/dist/routes/api/config/index.d.ts +76 -0
  494. package/dist/routes/api/config/index.d.ts.map +1 -0
  495. package/dist/routes/api/config/index.js +4 -0
  496. package/dist/routes/api/config/index.js.map +1 -0
  497. package/dist/routes/api/consent/get.d.ts +37 -0
  498. package/dist/routes/api/consent/get.d.ts.map +1 -0
  499. package/dist/routes/api/consent/get.js +73 -0
  500. package/dist/routes/api/consent/get.js.map +1 -0
  501. package/dist/routes/api/consent/index.d.ts +54 -0
  502. package/dist/routes/api/consent/index.d.ts.map +1 -0
  503. package/dist/routes/api/consent/index.js +7 -0
  504. package/dist/routes/api/consent/index.js.map +1 -0
  505. package/dist/routes/api/consent/post.d.ts +33 -0
  506. package/dist/routes/api/consent/post.d.ts.map +1 -0
  507. package/dist/routes/api/consent/post.js +105 -0
  508. package/dist/routes/api/consent/post.js.map +1 -0
  509. package/dist/routes/api/docs/get.d.ts +17 -0
  510. package/dist/routes/api/docs/get.d.ts.map +1 -0
  511. package/dist/routes/api/docs/get.js +19 -0
  512. package/dist/routes/api/docs/get.js.map +1 -0
  513. package/dist/routes/api/docs/index.d.ts +12 -0
  514. package/dist/routes/api/docs/index.d.ts.map +1 -0
  515. package/dist/routes/api/docs/index.js +4 -0
  516. package/dist/routes/api/docs/index.js.map +1 -0
  517. package/dist/routes/api/health/get.d.ts +36 -0
  518. package/dist/routes/api/health/get.d.ts.map +1 -0
  519. package/dist/routes/api/health/get.js +64 -0
  520. package/dist/routes/api/health/get.js.map +1 -0
  521. package/dist/routes/api/health/index.d.ts +66 -0
  522. package/dist/routes/api/health/index.d.ts.map +1 -0
  523. package/dist/routes/api/health/index.js +9 -0
  524. package/dist/routes/api/health/index.js.map +1 -0
  525. package/dist/routes/api/health/live/get.d.ts +20 -0
  526. package/dist/routes/api/health/live/get.d.ts.map +1 -0
  527. package/dist/routes/api/health/live/get.js +28 -0
  528. package/dist/routes/api/health/live/get.js.map +1 -0
  529. package/dist/routes/api/health/ready/get.d.ts +35 -0
  530. package/dist/routes/api/health/ready/get.d.ts.map +1 -0
  531. package/dist/routes/api/health/ready/get.js +60 -0
  532. package/dist/routes/api/health/ready/get.js.map +1 -0
  533. package/dist/routes/api/index.d.ts +927 -0
  534. package/dist/routes/api/index.d.ts.map +1 -0
  535. package/dist/routes/api/index.js +19 -0
  536. package/dist/routes/api/index.js.map +1 -0
  537. package/dist/routes/api/oauth/_provider/authorize/get.d.ts +21 -0
  538. package/dist/routes/api/oauth/_provider/authorize/get.d.ts.map +1 -0
  539. package/dist/routes/api/oauth/_provider/authorize/get.js +60 -0
  540. package/dist/routes/api/oauth/_provider/authorize/get.js.map +1 -0
  541. package/dist/routes/api/oauth/_provider/callback/get.d.ts +23 -0
  542. package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -0
  543. package/dist/routes/api/oauth/_provider/callback/get.js +137 -0
  544. package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -0
  545. package/dist/routes/api/oauth/_provider/callback/post.d.ts +23 -0
  546. package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -0
  547. package/dist/routes/api/oauth/_provider/callback/post.js +140 -0
  548. package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -0
  549. package/dist/routes/api/oauth/_provider/delete.d.ts +18 -0
  550. package/dist/routes/api/oauth/_provider/delete.d.ts.map +1 -0
  551. package/dist/routes/api/oauth/_provider/delete.js +62 -0
  552. package/dist/routes/api/oauth/_provider/delete.js.map +1 -0
  553. package/dist/routes/api/oauth/index.d.ts +76 -0
  554. package/dist/routes/api/oauth/index.d.ts.map +1 -0
  555. package/dist/routes/api/oauth/index.js +11 -0
  556. package/dist/routes/api/oauth/index.js.map +1 -0
  557. package/dist/routes/api/terms/consent/post.d.ts +29 -0
  558. package/dist/routes/api/terms/consent/post.d.ts.map +1 -0
  559. package/dist/routes/api/terms/consent/post.js +111 -0
  560. package/dist/routes/api/terms/consent/post.js.map +1 -0
  561. package/dist/routes/api/terms/get.d.ts +40 -0
  562. package/dist/routes/api/terms/get.d.ts.map +1 -0
  563. package/dist/routes/api/terms/get.js +53 -0
  564. package/dist/routes/api/terms/get.js.map +1 -0
  565. package/dist/routes/api/terms/index.d.ts +55 -0
  566. package/dist/routes/api/terms/index.d.ts.map +1 -0
  567. package/dist/routes/api/terms/index.js +7 -0
  568. package/dist/routes/api/terms/index.js.map +1 -0
  569. package/dist/routes/api/user/delete.d.ts +21 -0
  570. package/dist/routes/api/user/delete.d.ts.map +1 -0
  571. package/dist/routes/api/user/delete.js +89 -0
  572. package/dist/routes/api/user/delete.js.map +1 -0
  573. package/dist/routes/api/user/index.d.ts +334 -0
  574. package/dist/routes/api/user/index.d.ts.map +1 -0
  575. package/dist/routes/api/user/index.js +35 -0
  576. package/dist/routes/api/user/index.js.map +1 -0
  577. package/dist/routes/api/user/oauth-accounts/get.d.ts +23 -0
  578. package/dist/routes/api/user/oauth-accounts/get.d.ts.map +1 -0
  579. package/dist/routes/api/user/oauth-accounts/get.js +58 -0
  580. package/dist/routes/api/user/oauth-accounts/get.js.map +1 -0
  581. package/dist/routes/api/user/passkeys/_id/delete.d.ts +18 -0
  582. package/dist/routes/api/user/passkeys/_id/delete.d.ts.map +1 -0
  583. package/dist/routes/api/user/passkeys/_id/delete.js +87 -0
  584. package/dist/routes/api/user/passkeys/_id/delete.js.map +1 -0
  585. package/dist/routes/api/user/passkeys/_id/patch.d.ts +22 -0
  586. package/dist/routes/api/user/passkeys/_id/patch.d.ts.map +1 -0
  587. package/dist/routes/api/user/passkeys/_id/patch.js +64 -0
  588. package/dist/routes/api/user/passkeys/_id/patch.js.map +1 -0
  589. package/dist/routes/api/user/passkeys/get.d.ts +21 -0
  590. package/dist/routes/api/user/passkeys/get.d.ts.map +1 -0
  591. package/dist/routes/api/user/passkeys/get.js +52 -0
  592. package/dist/routes/api/user/passkeys/get.js.map +1 -0
  593. package/dist/routes/api/user/passkeys/register/options/post.d.ts +55 -0
  594. package/dist/routes/api/user/passkeys/register/options/post.d.ts.map +1 -0
  595. package/dist/routes/api/user/passkeys/register/options/post.js +74 -0
  596. package/dist/routes/api/user/passkeys/register/options/post.js.map +1 -0
  597. package/dist/routes/api/user/passkeys/register/verify/post.d.ts +50 -0
  598. package/dist/routes/api/user/passkeys/register/verify/post.d.ts.map +1 -0
  599. package/dist/routes/api/user/passkeys/register/verify/post.js +95 -0
  600. package/dist/routes/api/user/passkeys/register/verify/post.js.map +1 -0
  601. package/dist/routes/api/user/password/delete.d.ts +23 -0
  602. package/dist/routes/api/user/password/delete.d.ts.map +1 -0
  603. package/dist/routes/api/user/password/delete.js +78 -0
  604. package/dist/routes/api/user/password/delete.js.map +1 -0
  605. package/dist/routes/api/user/password/post.d.ts +23 -0
  606. package/dist/routes/api/user/password/post.d.ts.map +1 -0
  607. package/dist/routes/api/user/password/post.js +81 -0
  608. package/dist/routes/api/user/password/post.js.map +1 -0
  609. package/dist/routes/api/user/password/put.d.ts +24 -0
  610. package/dist/routes/api/user/password/put.d.ts.map +1 -0
  611. package/dist/routes/api/user/password/put.js +74 -0
  612. package/dist/routes/api/user/password/put.js.map +1 -0
  613. package/dist/routes/api/user/session/get.d.ts +32 -0
  614. package/dist/routes/api/user/session/get.d.ts.map +1 -0
  615. package/dist/routes/api/user/session/get.js +36 -0
  616. package/dist/routes/api/user/session/get.js.map +1 -0
  617. package/dist/routes/api/user/totp/confirm/post.d.ts +32 -0
  618. package/dist/routes/api/user/totp/confirm/post.d.ts.map +1 -0
  619. package/dist/routes/api/user/totp/confirm/post.js +73 -0
  620. package/dist/routes/api/user/totp/confirm/post.js.map +1 -0
  621. package/dist/routes/api/user/totp/delete.d.ts +23 -0
  622. package/dist/routes/api/user/totp/delete.d.ts.map +1 -0
  623. package/dist/routes/api/user/totp/delete.js +74 -0
  624. package/dist/routes/api/user/totp/delete.js.map +1 -0
  625. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts +18 -0
  626. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts.map +1 -0
  627. package/dist/routes/api/user/totp/recovery/regenerate/post.js +54 -0
  628. package/dist/routes/api/user/totp/recovery/regenerate/post.js.map +1 -0
  629. package/dist/routes/api/user/totp/setup/post.d.ts +22 -0
  630. package/dist/routes/api/user/totp/setup/post.d.ts.map +1 -0
  631. package/dist/routes/api/user/totp/setup/post.js +82 -0
  632. package/dist/routes/api/user/totp/setup/post.js.map +1 -0
  633. package/dist/routes/api/user/totp/verify/post.d.ts +23 -0
  634. package/dist/routes/api/user/totp/verify/post.d.ts.map +1 -0
  635. package/dist/routes/api/user/totp/verify/post.js +71 -0
  636. package/dist/routes/api/user/totp/verify/post.js.map +1 -0
  637. package/dist/routes/index.d.ts +1115 -0
  638. package/dist/routes/index.d.ts.map +1 -0
  639. package/dist/routes/index.js +9 -0
  640. package/dist/routes/index.js.map +1 -0
  641. package/dist/routes/oauth/.well-known/jwks/get.d.ts +24 -0
  642. package/dist/routes/oauth/.well-known/jwks/get.d.ts.map +1 -0
  643. package/dist/routes/oauth/.well-known/jwks/get.js +41 -0
  644. package/dist/routes/oauth/.well-known/jwks/get.js.map +1 -0
  645. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts +29 -0
  646. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts.map +1 -0
  647. package/dist/routes/oauth/.well-known/openid-configuration/get.js +119 -0
  648. package/dist/routes/oauth/.well-known/openid-configuration/get.js.map +1 -0
  649. package/dist/routes/oauth/authorize/get.d.ts +48 -0
  650. package/dist/routes/oauth/authorize/get.d.ts.map +1 -0
  651. package/dist/routes/oauth/authorize/get.js +102 -0
  652. package/dist/routes/oauth/authorize/get.js.map +1 -0
  653. package/dist/routes/oauth/index.d.ts +182 -0
  654. package/dist/routes/oauth/index.d.ts.map +1 -0
  655. package/dist/routes/oauth/index.js +17 -0
  656. package/dist/routes/oauth/index.js.map +1 -0
  657. package/dist/routes/oauth/introspect/post.d.ts +28 -0
  658. package/dist/routes/oauth/introspect/post.d.ts.map +1 -0
  659. package/dist/routes/oauth/introspect/post.js +69 -0
  660. package/dist/routes/oauth/introspect/post.js.map +1 -0
  661. package/dist/routes/oauth/revoke/post.d.ts +22 -0
  662. package/dist/routes/oauth/revoke/post.d.ts.map +1 -0
  663. package/dist/routes/oauth/revoke/post.js +73 -0
  664. package/dist/routes/oauth/revoke/post.js.map +1 -0
  665. package/dist/routes/oauth/token/post.d.ts +29 -0
  666. package/dist/routes/oauth/token/post.d.ts.map +1 -0
  667. package/dist/routes/oauth/token/post.js +98 -0
  668. package/dist/routes/oauth/token/post.js.map +1 -0
  669. package/dist/routes/oauth/userinfo/get.d.ts +23 -0
  670. package/dist/routes/oauth/userinfo/get.d.ts.map +1 -0
  671. package/dist/routes/oauth/userinfo/get.js +65 -0
  672. package/dist/routes/oauth/userinfo/get.js.map +1 -0
  673. package/dist/schemas/error.d.ts +2104 -0
  674. package/dist/schemas/error.d.ts.map +1 -0
  675. package/dist/schemas/error.js +164 -0
  676. package/dist/schemas/error.js.map +1 -0
  677. package/dist/schemas/field.d.ts +97 -0
  678. package/dist/schemas/field.d.ts.map +1 -0
  679. package/dist/schemas/field.js +168 -0
  680. package/dist/schemas/field.js.map +1 -0
  681. package/dist/schemas/header.d.ts +7 -0
  682. package/dist/schemas/header.d.ts.map +1 -0
  683. package/dist/schemas/header.js +11 -0
  684. package/dist/schemas/header.js.map +1 -0
  685. package/dist/schemas/oauth.d.ts +26 -0
  686. package/dist/schemas/oauth.d.ts.map +1 -0
  687. package/dist/schemas/oauth.js +51 -0
  688. package/dist/schemas/oauth.js.map +1 -0
  689. package/dist/schemas/provider.d.ts +7 -0
  690. package/dist/schemas/provider.d.ts.map +1 -0
  691. package/dist/schemas/provider.js +31 -0
  692. package/dist/schemas/provider.js.map +1 -0
  693. package/dist/schemas/response.d.ts +645 -0
  694. package/dist/schemas/response.d.ts.map +1 -0
  695. package/dist/schemas/response.js +598 -0
  696. package/dist/schemas/response.js.map +1 -0
  697. package/dist/schemas/terms.d.ts +93 -0
  698. package/dist/schemas/terms.d.ts.map +1 -0
  699. package/dist/schemas/terms.js +109 -0
  700. package/dist/schemas/terms.js.map +1 -0
  701. package/dist/seeders/config.seeder.d.ts +21 -0
  702. package/dist/seeders/config.seeder.d.ts.map +1 -0
  703. package/dist/seeders/config.seeder.js +168 -0
  704. package/dist/seeders/config.seeder.js.map +1 -0
  705. package/dist/services/cleanup.service.d.ts +166 -0
  706. package/dist/services/cleanup.service.d.ts.map +1 -0
  707. package/dist/services/cleanup.service.js +605 -0
  708. package/dist/services/cleanup.service.js.map +1 -0
  709. package/dist/services/container.d.ts +201 -0
  710. package/dist/services/container.d.ts.map +1 -0
  711. package/dist/services/container.js +75 -0
  712. package/dist/services/container.js.map +1 -0
  713. package/dist/services/email.service.d.ts +69 -0
  714. package/dist/services/email.service.d.ts.map +1 -0
  715. package/dist/services/email.service.js +164 -0
  716. package/dist/services/email.service.js.map +1 -0
  717. package/dist/services/jwt.service.d.ts +321 -0
  718. package/dist/services/jwt.service.d.ts.map +1 -0
  719. package/dist/services/jwt.service.js +524 -0
  720. package/dist/services/jwt.service.js.map +1 -0
  721. package/dist/services/mikro.service.d.ts +43 -0
  722. package/dist/services/mikro.service.d.ts.map +1 -0
  723. package/dist/services/mikro.service.js +68 -0
  724. package/dist/services/mikro.service.js.map +1 -0
  725. package/dist/services/oauth-authorize.service.d.ts +91 -0
  726. package/dist/services/oauth-authorize.service.d.ts.map +1 -0
  727. package/dist/services/oauth-authorize.service.js +237 -0
  728. package/dist/services/oauth-authorize.service.js.map +1 -0
  729. package/dist/services/oauth-client.service.d.ts +38 -0
  730. package/dist/services/oauth-client.service.d.ts.map +1 -0
  731. package/dist/services/oauth-client.service.js +80 -0
  732. package/dist/services/oauth-client.service.js.map +1 -0
  733. package/dist/services/oauth-connect.service.d.ts +182 -0
  734. package/dist/services/oauth-connect.service.d.ts.map +1 -0
  735. package/dist/services/oauth-connect.service.js +592 -0
  736. package/dist/services/oauth-connect.service.js.map +1 -0
  737. package/dist/services/oauth-token.service.d.ts +162 -0
  738. package/dist/services/oauth-token.service.d.ts.map +1 -0
  739. package/dist/services/oauth-token.service.js +374 -0
  740. package/dist/services/oauth-token.service.js.map +1 -0
  741. package/dist/services/passkey.service.d.ts +73 -0
  742. package/dist/services/passkey.service.d.ts.map +1 -0
  743. package/dist/services/passkey.service.js +199 -0
  744. package/dist/services/passkey.service.js.map +1 -0
  745. package/dist/services/password-auth.service.d.ts +24 -0
  746. package/dist/services/password-auth.service.d.ts.map +1 -0
  747. package/dist/services/password-auth.service.js +87 -0
  748. package/dist/services/password-auth.service.js.map +1 -0
  749. package/dist/services/password-reset.service.d.ts +31 -0
  750. package/dist/services/password-reset.service.d.ts.map +1 -0
  751. package/dist/services/password-reset.service.js +54 -0
  752. package/dist/services/password-reset.service.js.map +1 -0
  753. package/dist/services/scheduler.service.d.ts +15 -0
  754. package/dist/services/scheduler.service.d.ts.map +1 -0
  755. package/dist/services/scheduler.service.js +52 -0
  756. package/dist/services/scheduler.service.js.map +1 -0
  757. package/dist/services/security.service.d.ts +17 -0
  758. package/dist/services/security.service.d.ts.map +1 -0
  759. package/dist/services/security.service.js +82 -0
  760. package/dist/services/security.service.js.map +1 -0
  761. package/dist/services/terms.service.d.ts +131 -0
  762. package/dist/services/terms.service.d.ts.map +1 -0
  763. package/dist/services/terms.service.js +210 -0
  764. package/dist/services/terms.service.js.map +1 -0
  765. package/dist/services/totp.service.d.ts +86 -0
  766. package/dist/services/totp.service.d.ts.map +1 -0
  767. package/dist/services/totp.service.js +244 -0
  768. package/dist/services/totp.service.js.map +1 -0
  769. package/dist/services/user-consent.service.d.ts +34 -0
  770. package/dist/services/user-consent.service.d.ts.map +1 -0
  771. package/dist/services/user-consent.service.js +42 -0
  772. package/dist/services/user-consent.service.js.map +1 -0
  773. package/dist/services/user.service.d.ts +60 -0
  774. package/dist/services/user.service.d.ts.map +1 -0
  775. package/dist/services/user.service.js +176 -0
  776. package/dist/services/user.service.js.map +1 -0
  777. package/package.json +155 -0
  778. package/public/assets/index-CrY7bb7j.css +2 -0
  779. package/public/assets/index-jYk5DHP_.js +75 -0
  780. package/public/assets/index-jYk5DHP_.js.map +1 -0
  781. package/public/index.html +27 -0
  782. package/public/vite.svg +1 -0
@@ -0,0 +1,12 @@
1
+ import type { FrontendConfig } from '../config/frontend.ts';
2
+ import type { HtmlVariables } from '../interpolate-html.ts';
3
+ export interface CloudflareAssetsBinding {
4
+ fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
5
+ }
6
+ export interface CreateCloudflareAssetsHandlerOptions {
7
+ assets: CloudflareAssetsBinding;
8
+ htmlVariables?: HtmlVariables | undefined;
9
+ onResponse?: ((response: Response) => Response | Promise<Response>) | undefined;
10
+ }
11
+ export declare function createCloudflareAssetsHandler(options: CreateCloudflareAssetsHandlerOptions): FrontendConfig;
12
+ //# sourceMappingURL=cloudflare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/lib/frontend/cloudflare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,uBAAuB,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EACP,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GACtD,SAAS,CAAC;CACf;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,GAC5C,cAAc,CA0ChB"}
@@ -0,0 +1,34 @@
1
+ import { interpolateHtmlResponse, resolveHtmlVariables, } from "../interpolate-html.js";
2
+ export function createCloudflareAssetsHandler(options) {
3
+ return ({ branding, server }) => {
4
+ const htmlVariables = resolveHtmlVariables({
5
+ branding,
6
+ server,
7
+ overrides: options.htmlVariables,
8
+ });
9
+ async function finalizeResponse(response) {
10
+ if (options.onResponse) {
11
+ return options.onResponse(response);
12
+ }
13
+ return response;
14
+ }
15
+ return async (c) => {
16
+ const pathname = new URL(c.req.url).pathname;
17
+ const response = await options.assets.fetch(c.req.raw);
18
+ const isHtml = response.headers
19
+ .get('content-type')
20
+ ?.toLowerCase()
21
+ .includes('text/html') ?? false;
22
+ if (pathname !== '/index.html' &&
23
+ /\/[^/]+\.[^/]+$/.test(pathname) &&
24
+ isHtml) {
25
+ return finalizeResponse(c.text('Not Found', 404));
26
+ }
27
+ if (c.req.method !== 'GET') {
28
+ return finalizeResponse(response);
29
+ }
30
+ return finalizeResponse(await interpolateHtmlResponse(response, htmlVariables));
31
+ };
32
+ };
33
+ }
34
+ //# sourceMappingURL=cloudflare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/lib/frontend/cloudflare.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAchC,MAAM,UAAU,6BAA6B,CAC3C,OAA6C;IAE7C,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9B,MAAM,aAAa,GAAG,oBAAoB,CAAC;YACzC,QAAQ;YACR,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,aAAa;SACjC,CAAC,CAAC;QAEH,KAAK,UAAU,gBAAgB,CAAC,QAAkB;YAChD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,KAAK,EAAE,CAAC,EAAqB,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,MAAM,GACV,QAAQ,CAAC,OAAO;iBACb,GAAG,CAAC,cAAc,CAAC;gBACpB,EAAE,WAAW,EAAE;iBACd,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YAEpC,IACE,QAAQ,KAAK,aAAa;gBAC1B,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAChC,MAAM,EACN,CAAC;gBACD,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3B,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,gBAAgB,CACrB,MAAM,uBAAuB,CAAC,QAAQ,EAAE,aAAa,CAAC,CACvD,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { FrontendConfig } from '../config/frontend.ts';
2
+ import type { HtmlVariables } from '../interpolate-html.ts';
3
+ export interface CreateProxyHandlerOptions {
4
+ /**
5
+ * Upstream server URL to proxy requests to.
6
+ * Example: 'http://localhost:8081'
7
+ */
8
+ upstream: string;
9
+ /**
10
+ * HTML variable map for `{{VAR}}` interpolation in HTML responses.
11
+ */
12
+ htmlVariables?: HtmlVariables | undefined;
13
+ /**
14
+ * Optional response interceptor.
15
+ * Called with the (already-interpolated) Response before it is
16
+ * returned. Return a modified Response or the original as-is.
17
+ */
18
+ onResponse?: ((response: Response) => Response | Promise<Response>) | undefined;
19
+ }
20
+ /**
21
+ * Create a FrontendConfig that proxies requests to an upstream server.
22
+ */
23
+ export declare function createProxyHandler(options: CreateProxyHandlerOptions): FrontendConfig;
24
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/lib/frontend/proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C;;;;OAIG;IACH,UAAU,CAAC,EACP,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GACtD,SAAS,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,cAAc,CA0ChB"}
@@ -0,0 +1,38 @@
1
+ import { proxy } from 'hono/proxy';
2
+ import { interpolateHtmlResponse, resolveHtmlVariables, } from "../interpolate-html.js";
3
+ /**
4
+ * Create a FrontendConfig that proxies requests to an upstream server.
5
+ */
6
+ export function createProxyHandler(options) {
7
+ return ({ branding, server }) => {
8
+ const htmlVariables = resolveHtmlVariables({
9
+ branding,
10
+ server,
11
+ overrides: options.htmlVariables,
12
+ });
13
+ function buildTargetUrl(requestUrl) {
14
+ const upstreamUrl = new URL(options.upstream);
15
+ const incomingUrl = new URL(requestUrl);
16
+ const upstreamPath = upstreamUrl.pathname.endsWith('/')
17
+ ? upstreamUrl.pathname.slice(0, -1)
18
+ : upstreamUrl.pathname;
19
+ upstreamUrl.pathname = `${upstreamPath}${incomingUrl.pathname}`;
20
+ upstreamUrl.search = incomingUrl.search;
21
+ return upstreamUrl.toString();
22
+ }
23
+ async function finalizeResponse(response) {
24
+ const interpolated = await interpolateHtmlResponse(response, htmlVariables);
25
+ if (options.onResponse) {
26
+ return options.onResponse(interpolated);
27
+ }
28
+ return interpolated;
29
+ }
30
+ return async (c) => {
31
+ const response = await proxy(buildTargetUrl(c.req.url), {
32
+ raw: c.req.raw,
33
+ });
34
+ return finalizeResponse(response);
35
+ };
36
+ };
37
+ }
38
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/lib/frontend/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAsBhC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAkC;IAElC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9B,MAAM,aAAa,GAAG,oBAAoB,CAAC;YACzC,QAAQ;YACR,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,aAAa;SACjC,CAAC,CAAC;QAEH,SAAS,cAAc,CAAC,UAAkB;YACxC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrD,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;YAEzB,WAAW,CAAC,QAAQ,GAAG,GAAG,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YAChE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAExC,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,UAAU,gBAAgB,CAAC,QAAkB;YAChD,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAChD,QAAQ,EACR,aAAa,CACd,CAAC;YAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,EAAE,CAAC,EAAqB,EAAE;YACpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACtD,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG;aACf,CAAC,CAAC;YAEH,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { FrontendConfig } from '../config/frontend.ts';
2
+ import type { HtmlVariables } from '../interpolate-html.ts';
3
+ export interface CreateStaticHandlerOptions {
4
+ /**
5
+ * HTML variable map for `{{VAR}}` interpolation in HTML responses.
6
+ */
7
+ htmlVariables?: HtmlVariables | undefined;
8
+ publicPath: string;
9
+ /**
10
+ * Optional response interceptor.
11
+ * Called with the (already-interpolated) Response before it is
12
+ * returned. Return a modified Response or the original as-is.
13
+ */
14
+ onResponse?: ((response: Response) => Response | Promise<Response>) | undefined;
15
+ }
16
+ /**
17
+ * Create a FrontendConfig that serves static files from a directory.
18
+ * Supports HTML variable interpolation and SPA fallback to index.html.
19
+ */
20
+ export declare function createStaticHandler(options: CreateStaticHandlerOptions): FrontendConfig;
21
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../src/lib/frontend/static.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EACP,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GACtD,SAAS,CAAC;CACf;AAOD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,cAAc,CAwHhB"}
@@ -0,0 +1,108 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { getMimeType } from 'hono/utils/mime';
4
+ import { interpolateHtml, resolveHtmlVariables } from "../interpolate-html.js";
5
+ /**
6
+ * Create a FrontendConfig that serves static files from a directory.
7
+ * Supports HTML variable interpolation and SPA fallback to index.html.
8
+ */
9
+ export function createStaticHandler(options) {
10
+ return ({ branding, server }) => {
11
+ const publicPath = path.resolve(options.publicPath);
12
+ const rootIndexPath = path.join(publicPath, 'index.html');
13
+ const htmlVariables = resolveHtmlVariables({
14
+ branding,
15
+ server,
16
+ overrides: options.htmlVariables,
17
+ });
18
+ const htmlCache = new Map();
19
+ async function statIfExists(targetPath) {
20
+ try {
21
+ return await fs.promises.stat(targetPath);
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ async function readInterpolatedHtml(absolutePath) {
28
+ const cached = htmlCache.get(absolutePath);
29
+ if (cached !== undefined) {
30
+ return cached;
31
+ }
32
+ const raw = await fs.promises.readFile(absolutePath, 'utf-8');
33
+ const result = interpolateHtml(raw, htmlVariables);
34
+ htmlCache.set(absolutePath, result);
35
+ return result;
36
+ }
37
+ function isSafePath(resolved) {
38
+ return (resolved === publicPath ||
39
+ resolved.startsWith(`${publicPath}${path.sep}`));
40
+ }
41
+ async function applyOnResponse(response) {
42
+ if (options.onResponse) {
43
+ return options.onResponse(response);
44
+ }
45
+ return response;
46
+ }
47
+ async function serveHtml(c, absolutePath) {
48
+ const html = await readInterpolatedHtml(absolutePath);
49
+ return applyOnResponse(await c.html(html));
50
+ }
51
+ async function serveFile(absolutePath) {
52
+ const content = await fs.promises.readFile(absolutePath);
53
+ const mimeType = getMimeType(absolutePath) ?? 'application/octet-stream';
54
+ return applyOnResponse(new Response(content, {
55
+ headers: { 'Content-Type': mimeType },
56
+ }));
57
+ }
58
+ async function notFound(c) {
59
+ return applyOnResponse(await c.json({ error: 'Not Found' }, 404));
60
+ }
61
+ async function serveSpaFallback(c) {
62
+ try {
63
+ return await serveHtml(c, rootIndexPath);
64
+ }
65
+ catch {
66
+ return notFound(c);
67
+ }
68
+ }
69
+ async function resolveTarget(urlPath) {
70
+ const resolved = path.resolve(publicPath, `.${urlPath}`);
71
+ if (!isSafePath(resolved)) {
72
+ return { kind: 'spa' };
73
+ }
74
+ const stats = await statIfExists(resolved);
75
+ if (!stats) {
76
+ return { kind: 'spa' };
77
+ }
78
+ if (stats.isFile()) {
79
+ return resolved.endsWith('.html')
80
+ ? { kind: 'html', absolutePath: resolved }
81
+ : { kind: 'file', absolutePath: resolved };
82
+ }
83
+ if (stats.isDirectory()) {
84
+ const indexPath = path.join(resolved, 'index.html');
85
+ const indexStats = await statIfExists(indexPath);
86
+ if (indexStats?.isFile()) {
87
+ return { kind: 'html', absolutePath: indexPath };
88
+ }
89
+ }
90
+ return { kind: 'spa' };
91
+ }
92
+ return async (c) => {
93
+ if (c.req.method !== 'GET' && c.req.method !== 'HEAD') {
94
+ return notFound(c);
95
+ }
96
+ const target = await resolveTarget(c.req.path);
97
+ switch (target.kind) {
98
+ case 'html':
99
+ return serveHtml(c, target.absolutePath);
100
+ case 'file':
101
+ return serveFile(target.absolutePath);
102
+ case 'spa':
103
+ return serveSpaFallback(c);
104
+ }
105
+ };
106
+ };
107
+ }
108
+ //# sourceMappingURL=static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../../src/lib/frontend/static.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { BrandingConfig } from './config/branding.ts';
2
+ import type { ServerConfig } from './config/server.ts';
3
+ export type HtmlVariables = Record<string, string>;
4
+ export declare const DEFAULT_HTML_VARIABLES: {
5
+ readonly TITLE: "Tinyrack";
6
+ readonly DESCRIPTION: "OIDC Provider for everyone";
7
+ readonly FAVICON_URL: "/vite.svg";
8
+ readonly COLOR_SCHEME: "light dark";
9
+ readonly THEME_COLOR: "#570df8";
10
+ readonly OG_IMAGE_URL: "";
11
+ readonly OG_URL: "";
12
+ readonly APPLE_TOUCH_ICON_URL: "/vite.svg";
13
+ };
14
+ export type BuiltInHtmlVariables = typeof DEFAULT_HTML_VARIABLES;
15
+ export type BuiltInHtmlVariableKey = keyof BuiltInHtmlVariables;
16
+ export interface ResolveHtmlVariablesOptions {
17
+ branding?: BrandingConfig | undefined;
18
+ server?: ServerConfig | undefined;
19
+ overrides?: HtmlVariables | undefined;
20
+ }
21
+ export declare function resolveHtmlVariables(options: ResolveHtmlVariablesOptions): HtmlVariables;
22
+ /**
23
+ * Replace {{KEY}} placeholders in HTML with corresponding variable values.
24
+ * Only matches keys that follow identifier naming rules
25
+ * (start with a letter or underscore, followed by alphanumerics or underscores).
26
+ * Unmatched placeholders are left as-is.
27
+ */
28
+ export declare function interpolateHtml(html: string, variables: Readonly<HtmlVariables>): string;
29
+ /**
30
+ * Interpolate HTML variables in a Response if its content-type is text/html.
31
+ * Non-HTML responses are returned unchanged.
32
+ */
33
+ export declare function interpolateHtmlResponse(response: Response, variables: Readonly<HtmlVariables>): Promise<Response>;
34
+ //# sourceMappingURL=interpolate-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolate-html.d.ts","sourceRoot":"","sources":["../../src/lib/interpolate-html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAKnD,eAAO,MAAM,sBAAsB;;;;;;;;;CASD,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG,OAAO,sBAAsB,CAAC;AACjE,MAAM,MAAM,sBAAsB,GAAG,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACvC;AAwBD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,aAAa,CAMf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,GACjC,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,GACjC,OAAO,CAAC,QAAQ,CAAC,CAkBnB"}
@@ -0,0 +1,63 @@
1
+ const HTML_PLACEHOLDER_PATTERN = /\{\{([A-Za-z_][A-Za-z0-9_]*)\}\}/g;
2
+ const TEXT_ENCODER = new TextEncoder();
3
+ export const DEFAULT_HTML_VARIABLES = {
4
+ TITLE: 'Tinyrack',
5
+ DESCRIPTION: 'OIDC Provider for everyone',
6
+ FAVICON_URL: '/vite.svg',
7
+ COLOR_SCHEME: 'light dark',
8
+ THEME_COLOR: '#570df8',
9
+ OG_IMAGE_URL: '',
10
+ OG_URL: '',
11
+ APPLE_TOUCH_ICON_URL: '/vite.svg',
12
+ };
13
+ function deriveHtmlVariablesFromRuntime(options) {
14
+ const derived = {};
15
+ if (options.branding) {
16
+ const { theme_mode, icon_url } = options.branding;
17
+ derived['COLOR_SCHEME'] =
18
+ theme_mode === 'system' ? 'light dark' : theme_mode;
19
+ if (icon_url) {
20
+ derived['FAVICON_URL'] = icon_url;
21
+ derived['APPLE_TOUCH_ICON_URL'] = icon_url;
22
+ }
23
+ }
24
+ if (options.server?.public_origin) {
25
+ derived['OG_URL'] = options.server.public_origin;
26
+ }
27
+ return derived;
28
+ }
29
+ export function resolveHtmlVariables(options) {
30
+ return {
31
+ ...DEFAULT_HTML_VARIABLES,
32
+ ...deriveHtmlVariablesFromRuntime(options),
33
+ ...options.overrides,
34
+ };
35
+ }
36
+ /**
37
+ * Replace {{KEY}} placeholders in HTML with corresponding variable values.
38
+ * Only matches keys that follow identifier naming rules
39
+ * (start with a letter or underscore, followed by alphanumerics or underscores).
40
+ * Unmatched placeholders are left as-is.
41
+ */
42
+ export function interpolateHtml(html, variables) {
43
+ return html.replace(HTML_PLACEHOLDER_PATTERN, (match, key) => variables[key] ?? match);
44
+ }
45
+ /**
46
+ * Interpolate HTML variables in a Response if its content-type is text/html.
47
+ * Non-HTML responses are returned unchanged.
48
+ */
49
+ export async function interpolateHtmlResponse(response, variables) {
50
+ const contentType = response.headers.get('content-type') ?? '';
51
+ if (!contentType.toLowerCase().includes('text/html')) {
52
+ return response;
53
+ }
54
+ const interpolated = interpolateHtml(await response.text(), variables);
55
+ const headers = new Headers(response.headers);
56
+ headers.set('content-length', String(TEXT_ENCODER.encode(interpolated).byteLength));
57
+ return new Response(interpolated, {
58
+ status: response.status,
59
+ statusText: response.statusText,
60
+ headers,
61
+ });
62
+ }
63
+ //# sourceMappingURL=interpolate-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolate-html.js","sourceRoot":"","sources":["../../src/lib/interpolate-html.ts"],"names":[],"mappings":"AAKA,MAAM,wBAAwB,GAAG,mCAAmC,CAAC;AACrE,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,4BAA4B;IACzC,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE;IACV,oBAAoB,EAAE,WAAW;CACD,CAAC;AAWnC,SAAS,8BAA8B,CACrC,OAAoC;IAEpC,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClD,OAAO,CAAC,cAAc,CAAC;YACrB,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QACtD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;YAClC,OAAO,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,OAAO;QACL,GAAG,sBAAsB;QACzB,GAAG,8BAA8B,CAAC,OAAO,CAAC;QAC1C,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,SAAkC;IAElC,OAAO,IAAI,CAAC,OAAO,CACjB,wBAAwB,EACxB,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,CAChD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAkB,EAClB,SAAkC;IAElC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CACT,gBAAgB,EAChB,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CACrD,CAAC;IAEF,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE;QAChC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * IP address utilities for validating and matching IP addresses against CIDR ranges.
3
+ * Supports both IPv4 and IPv6 addresses.
4
+ */
5
+ /**
6
+ * Parses an IPv4 address string into a 32-bit integer.
7
+ * @param ip - IPv4 address string (e.g., "192.168.1.1")
8
+ * @returns 32-bit integer representation, or null if invalid
9
+ */
10
+ export declare function parseIPv4(ip: string): number | null;
11
+ /**
12
+ * Parses an IPv6 address string into a BigInt.
13
+ * Supports full and compressed (::) notation.
14
+ * @param ip - IPv6 address string (e.g., "2001:db8::1")
15
+ * @returns BigInt representation, or null if invalid
16
+ */
17
+ export declare function parseIPv6(ip: string): bigint | null;
18
+ /**
19
+ * Checks if an IP address is an IPv4 address.
20
+ * @param ip - IP address string
21
+ * @returns true if the address is IPv4
22
+ */
23
+ export declare function isIPv4(ip: string): boolean;
24
+ /**
25
+ * Checks if an IP address is an IPv6 address.
26
+ * @param ip - IP address string
27
+ * @returns true if the address is IPv6
28
+ */
29
+ export declare function isIPv6(ip: string): boolean;
30
+ /**
31
+ * Checks if an IPv4 address is within a CIDR range.
32
+ * @param ip - IPv4 address to check
33
+ * @param cidr - CIDR notation (e.g., "10.0.0.0/8")
34
+ * @returns true if the IP is within the range
35
+ */
36
+ export declare function isIPv4InCIDR(ip: string, cidr: string): boolean;
37
+ /**
38
+ * Checks if an IPv6 address is within a CIDR range.
39
+ * @param ip - IPv6 address to check
40
+ * @param cidr - CIDR notation (e.g., "2001:db8::/32")
41
+ * @returns true if the IP is within the range
42
+ */
43
+ export declare function isIPv6InCIDR(ip: string, cidr: string): boolean;
44
+ /**
45
+ * Checks if an IP address matches a given pattern.
46
+ * The pattern can be:
47
+ * - A single IP address (e.g., "192.168.1.1")
48
+ * - A CIDR range (e.g., "10.0.0.0/8")
49
+ * @param ip - IP address to check
50
+ * @param pattern - Pattern to match against
51
+ * @returns true if the IP matches the pattern
52
+ */
53
+ export declare function isIPInRange(ip: string, pattern: string): boolean;
54
+ /**
55
+ * Checks if an IP address is trusted based on trust_proxy configuration.
56
+ * @param ip - IP address to check
57
+ * @param trustProxy - Trust proxy configuration value
58
+ * @returns true if the IP should be trusted
59
+ */
60
+ export declare function isTrustedProxy(ip: string, trustProxy: boolean | string | string[] | number): boolean;
61
+ //# sourceMappingURL=ip-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-utils.d.ts","sourceRoot":"","sources":["../../src/lib/ip-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBnD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyDnD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAsB9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CA2B9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CA2BhE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAC/C,OAAO,CA2BT"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * IP address utilities for validating and matching IP addresses against CIDR ranges.
3
+ * Supports both IPv4 and IPv6 addresses.
4
+ */
5
+ /**
6
+ * Parses an IPv4 address string into a 32-bit integer.
7
+ * @param ip - IPv4 address string (e.g., "192.168.1.1")
8
+ * @returns 32-bit integer representation, or null if invalid
9
+ */
10
+ export function parseIPv4(ip) {
11
+ const parts = ip.split('.');
12
+ if (parts.length !== 4) {
13
+ return null;
14
+ }
15
+ let result = 0;
16
+ for (const part of parts) {
17
+ const num = Number.parseInt(part, 10);
18
+ if (Number.isNaN(num) || num < 0 || num > 255) {
19
+ return null;
20
+ }
21
+ result = (result << 8) | num;
22
+ }
23
+ // Convert to unsigned 32-bit integer
24
+ return result >>> 0;
25
+ }
26
+ /**
27
+ * Parses an IPv6 address string into a BigInt.
28
+ * Supports full and compressed (::) notation.
29
+ * @param ip - IPv6 address string (e.g., "2001:db8::1")
30
+ * @returns BigInt representation, or null if invalid
31
+ */
32
+ export function parseIPv6(ip) {
33
+ // Handle IPv4-mapped IPv6 addresses (::ffff:192.168.1.1)
34
+ const ipv4MappedMatch = ip.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i);
35
+ if (ipv4MappedMatch) {
36
+ const ipv4Part = ipv4MappedMatch[1];
37
+ if (ipv4Part === undefined) {
38
+ return null;
39
+ }
40
+ const ipv4 = parseIPv4(ipv4Part);
41
+ if (ipv4 === null) {
42
+ return null;
43
+ }
44
+ return BigInt('0xffff00000000') | BigInt(ipv4);
45
+ }
46
+ // Reject multiple :: (only one :: is allowed)
47
+ const doubleColonCount = (ip.match(/::/g) ?? []).length;
48
+ if (doubleColonCount > 1) {
49
+ return null;
50
+ }
51
+ // Reject ::: (triple colon is invalid)
52
+ if (ip.includes(':::')) {
53
+ return null;
54
+ }
55
+ let parts = ip.split(':');
56
+ // Handle :: compression
57
+ const doubleColonIndex = ip.indexOf('::');
58
+ if (doubleColonIndex !== -1) {
59
+ const left = ip.slice(0, doubleColonIndex).split(':').filter(Boolean);
60
+ const right = ip
61
+ .slice(doubleColonIndex + 2)
62
+ .split(':')
63
+ .filter(Boolean);
64
+ const missing = 8 - left.length - right.length;
65
+ if (missing < 0) {
66
+ return null;
67
+ }
68
+ parts = [...left, ...Array(missing).fill('0'), ...right];
69
+ }
70
+ if (parts.length !== 8) {
71
+ return null;
72
+ }
73
+ let result = BigInt(0);
74
+ for (const part of parts) {
75
+ const num = Number.parseInt(part, 16);
76
+ if (Number.isNaN(num) || num < 0 || num > 0xffff) {
77
+ return null;
78
+ }
79
+ result = (result << BigInt(16)) | BigInt(num);
80
+ }
81
+ return result;
82
+ }
83
+ /**
84
+ * Checks if an IP address is an IPv4 address.
85
+ * @param ip - IP address string
86
+ * @returns true if the address is IPv4
87
+ */
88
+ export function isIPv4(ip) {
89
+ return /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ip);
90
+ }
91
+ /**
92
+ * Checks if an IP address is an IPv6 address.
93
+ * @param ip - IP address string
94
+ * @returns true if the address is IPv6
95
+ */
96
+ export function isIPv6(ip) {
97
+ return ip.includes(':');
98
+ }
99
+ /**
100
+ * Checks if an IPv4 address is within a CIDR range.
101
+ * @param ip - IPv4 address to check
102
+ * @param cidr - CIDR notation (e.g., "10.0.0.0/8")
103
+ * @returns true if the IP is within the range
104
+ */
105
+ export function isIPv4InCIDR(ip, cidr) {
106
+ const [network, prefixStr] = cidr.split('/');
107
+ if (network === undefined) {
108
+ return false;
109
+ }
110
+ const prefix = prefixStr !== undefined ? Number.parseInt(prefixStr, 10) : 32;
111
+ if (Number.isNaN(prefix) || prefix < 0 || prefix > 32) {
112
+ return false;
113
+ }
114
+ const ipNum = parseIPv4(ip);
115
+ const networkNum = parseIPv4(network);
116
+ if (ipNum === null || networkNum === null) {
117
+ return false;
118
+ }
119
+ // Create mask: all 1s for prefix length, then 0s
120
+ const mask = prefix === 0 ? 0 : (~0 << (32 - prefix)) >>> 0;
121
+ return (ipNum & mask) === (networkNum & mask);
122
+ }
123
+ /**
124
+ * Checks if an IPv6 address is within a CIDR range.
125
+ * @param ip - IPv6 address to check
126
+ * @param cidr - CIDR notation (e.g., "2001:db8::/32")
127
+ * @returns true if the IP is within the range
128
+ */
129
+ export function isIPv6InCIDR(ip, cidr) {
130
+ const [network, prefixStr] = cidr.split('/');
131
+ if (network === undefined) {
132
+ return false;
133
+ }
134
+ const prefix = prefixStr !== undefined ? Number.parseInt(prefixStr, 10) : 128;
135
+ if (Number.isNaN(prefix) || prefix < 0 || prefix > 128) {
136
+ return false;
137
+ }
138
+ const ipNum = parseIPv6(ip);
139
+ const networkNum = parseIPv6(network);
140
+ if (ipNum === null || networkNum === null) {
141
+ return false;
142
+ }
143
+ // Create mask: all 1s for prefix length, then 0s
144
+ const mask = prefix === 0
145
+ ? BigInt(0)
146
+ : (BigInt(1) << BigInt(128)) -
147
+ BigInt(1) -
148
+ ((BigInt(1) << BigInt(128 - prefix)) - BigInt(1));
149
+ return (ipNum & mask) === (networkNum & mask);
150
+ }
151
+ /**
152
+ * Checks if an IP address matches a given pattern.
153
+ * The pattern can be:
154
+ * - A single IP address (e.g., "192.168.1.1")
155
+ * - A CIDR range (e.g., "10.0.0.0/8")
156
+ * @param ip - IP address to check
157
+ * @param pattern - Pattern to match against
158
+ * @returns true if the IP matches the pattern
159
+ */
160
+ export function isIPInRange(ip, pattern) {
161
+ // Normalize IPv4-mapped IPv6 addresses for comparison
162
+ const normalizedIp = ip.startsWith('::ffff:') ? ip.slice(7) : ip;
163
+ const normalizedPattern = pattern.startsWith('::ffff:')
164
+ ? pattern.slice(7)
165
+ : pattern;
166
+ const isCIDR = normalizedPattern.includes('/');
167
+ if (isIPv4(normalizedIp)) {
168
+ if (isCIDR) {
169
+ return isIPv4InCIDR(normalizedIp, normalizedPattern);
170
+ }
171
+ return normalizedIp === normalizedPattern;
172
+ }
173
+ if (isIPv6(normalizedIp)) {
174
+ if (isCIDR) {
175
+ return isIPv6InCIDR(normalizedIp, normalizedPattern);
176
+ }
177
+ // For exact match, normalize both addresses
178
+ const ipNum = parseIPv6(normalizedIp);
179
+ const patternNum = parseIPv6(normalizedPattern);
180
+ return ipNum !== null && patternNum !== null && ipNum === patternNum;
181
+ }
182
+ return false;
183
+ }
184
+ /**
185
+ * Checks if an IP address is trusted based on trust_proxy configuration.
186
+ * @param ip - IP address to check
187
+ * @param trustProxy - Trust proxy configuration value
188
+ * @returns true if the IP should be trusted
189
+ */
190
+ export function isTrustedProxy(ip, trustProxy) {
191
+ // true = trust all proxies
192
+ if (trustProxy === true) {
193
+ return true;
194
+ }
195
+ // false = trust no proxies (direct connection expected)
196
+ if (trustProxy === false) {
197
+ return true; // Allow all requests in direct connection mode
198
+ }
199
+ // number = hop count mode (not IP-based filtering)
200
+ if (typeof trustProxy === 'number') {
201
+ return true; // Allow all requests in hop count mode
202
+ }
203
+ // string = single IP or CIDR
204
+ if (typeof trustProxy === 'string') {
205
+ return isIPInRange(ip, trustProxy);
206
+ }
207
+ // array = multiple IPs or CIDRs
208
+ if (Array.isArray(trustProxy)) {
209
+ return trustProxy.some((pattern) => isIPInRange(ip, pattern));
210
+ }
211
+ return false;
212
+ }
213
+ //# sourceMappingURL=ip-utils.js.map