faire-auth 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/{adapter-factory-lKIOf2OR.mjs → adapter-factory-qPVW8x9-.mjs} +34 -36
  2. package/dist/{adapter-factory-D1I7joki.cjs → adapter-factory-u8r3oTez.cjs} +66 -68
  3. package/dist/adapters/drizzle-adapter/index.cjs +34 -40
  4. package/dist/adapters/drizzle-adapter/index.d.cts +4 -9
  5. package/dist/adapters/drizzle-adapter/index.d.mts +4 -9
  6. package/dist/adapters/drizzle-adapter/index.mjs +20 -26
  7. package/dist/adapters/index.cjs +11 -16
  8. package/dist/adapters/index.d.cts +11 -37
  9. package/dist/adapters/index.d.mts +11 -37
  10. package/dist/adapters/index.mjs +4 -13
  11. package/dist/adapters/kysely-adapter/index.cjs +270 -11
  12. package/dist/adapters/kysely-adapter/index.d.cts +9 -19
  13. package/dist/adapters/kysely-adapter/index.d.mts +9 -19
  14. package/dist/adapters/kysely-adapter/index.mjs +267 -9
  15. package/dist/adapters/memory-adapter/index.cjs +146 -9
  16. package/dist/adapters/memory-adapter/index.d.cts +4 -10
  17. package/dist/adapters/memory-adapter/index.d.mts +4 -10
  18. package/dist/adapters/memory-adapter/index.mjs +145 -9
  19. package/dist/adapters/mongodb-adapter/index.cjs +13 -21
  20. package/dist/adapters/mongodb-adapter/index.d.cts +3 -8
  21. package/dist/adapters/mongodb-adapter/index.d.mts +4 -9
  22. package/dist/adapters/mongodb-adapter/index.mjs +12 -20
  23. package/dist/adapters/prisma-adapter/index.cjs +12 -20
  24. package/dist/adapters/prisma-adapter/index.d.cts +4 -8
  25. package/dist/adapters/prisma-adapter/index.d.mts +4 -8
  26. package/dist/adapters/prisma-adapter/index.mjs +5 -13
  27. package/dist/adapters/test.cjs +86 -69
  28. package/dist/adapters/test.d.cts +7 -11
  29. package/dist/adapters/test.d.mts +7 -11
  30. package/dist/adapters/test.mjs +83 -66
  31. package/dist/api/index.cjs +3 -20
  32. package/dist/api/index.d.cts +2 -3
  33. package/dist/api/index.d.mts +2 -3
  34. package/dist/api/index.mjs +1 -20
  35. package/dist/api/middleware/index.cjs +4 -11
  36. package/dist/api/middleware/index.d.cts +3 -9
  37. package/dist/api/middleware/index.d.mts +3 -9
  38. package/dist/api/middleware/index.mjs +3 -11
  39. package/dist/{api-B4RDwBty.mjs → api-0f-F-Fi2.mjs} +292 -189
  40. package/dist/{api-CaRC1Gio.cjs → api-LjfH6hQi.cjs} +557 -452
  41. package/dist/{test-utils/bun-sqlite-dialect-BZBvHchL.cjs → bun-sqlite-dialect-BHkarnxN.cjs} +5 -9
  42. package/dist/{test-utils/bun-sqlite-dialect-BSWhhKNs.mjs → bun-sqlite-dialect-BiZBuEF6.mjs} +6 -9
  43. package/dist/client/index.cjs +8 -15
  44. package/dist/client/index.d.cts +9 -14
  45. package/dist/client/index.d.mts +9 -14
  46. package/dist/client/index.mjs +7 -15
  47. package/dist/client/lynx/index.cjs +10 -18
  48. package/dist/client/lynx/index.d.cts +402 -71
  49. package/dist/client/lynx/index.d.mts +402 -71
  50. package/dist/client/lynx/index.mjs +5 -13
  51. package/dist/client/plugins/index.cjs +3 -5
  52. package/dist/client/plugins/index.d.cts +5 -10
  53. package/dist/client/plugins/index.d.mts +5 -10
  54. package/dist/client/plugins/index.mjs +2 -4
  55. package/dist/client/react/index.cjs +6 -14
  56. package/dist/client/react/index.d.cts +402 -71
  57. package/dist/client/react/index.d.mts +402 -71
  58. package/dist/client/react/index.mjs +5 -13
  59. package/dist/client/solid/index.cjs +6 -14
  60. package/dist/client/solid/index.d.cts +393 -57
  61. package/dist/client/solid/index.d.mts +393 -57
  62. package/dist/client/solid/index.mjs +5 -13
  63. package/dist/client/svelte/index.cjs +5 -10
  64. package/dist/client/svelte/index.d.cts +400 -67
  65. package/dist/client/svelte/index.d.mts +400 -67
  66. package/dist/client/svelte/index.mjs +4 -10
  67. package/dist/client/vue/index.cjs +6 -14
  68. package/dist/client/vue/index.d.cts +401 -68
  69. package/dist/client/vue/index.d.mts +401 -68
  70. package/dist/client/vue/index.mjs +5 -13
  71. package/dist/{cookies-BTs1o992.mjs → cookies-D9aY_gJh.mjs} +25 -21
  72. package/dist/{cookies-BTl72THv.cjs → cookies-DQ52rcOy.cjs} +119 -115
  73. package/dist/crypto/index.cjs +10 -8
  74. package/dist/crypto/index.d.cts +5 -13
  75. package/dist/crypto/index.d.mts +5 -13
  76. package/dist/crypto/index.mjs +2 -5
  77. package/dist/{crypto-DH2Aa7jN.mjs → crypto-BH-hD0lJ.mjs} +7 -10
  78. package/dist/{crypto-DpSCnrTp.cjs → crypto-BITfWVwD.cjs} +24 -27
  79. package/dist/db/index.cjs +1135 -29
  80. package/dist/db/index.d.cts +1 -2
  81. package/dist/db/index.d.mts +1 -2
  82. package/dist/db/index.mjs +1115 -16
  83. package/dist/defu-D2h4S3X-.mjs +87 -0
  84. package/dist/defu-DWS5RPWt.cjs +134 -0
  85. package/dist/{email-verification-DI_0H4JC.cjs → email-verification-DOPnSgbI.cjs} +65 -71
  86. package/dist/{email-verification-C_lBu_JY.mjs → email-verification-YSR5n5lb.mjs} +23 -29
  87. package/dist/{hono-CO-zsqI-.mjs → hono-BAV2wQkK.mjs} +16 -33
  88. package/dist/hono-SVQuc5Ru.mjs +4 -0
  89. package/dist/hono-pgK4H_U1.cjs +9 -0
  90. package/dist/{hono-DnW5crl1.cjs → hono-tyFFJFdS.cjs} +42 -60
  91. package/dist/index-B86Cy0dE.d.cts +2 -0
  92. package/dist/index-B86Cy0dE.d.mts +2 -0
  93. package/dist/index.cjs +115 -150
  94. package/dist/index.d.cts +4 -5
  95. package/dist/index.d.mts +4 -5
  96. package/dist/index.mjs +45 -80
  97. package/dist/integrations/next-js.cjs +5 -9
  98. package/dist/integrations/next-js.d.cts +6 -14
  99. package/dist/integrations/next-js.d.mts +6 -14
  100. package/dist/integrations/next-js.mjs +4 -9
  101. package/dist/integrations/node.cjs +16 -14
  102. package/dist/integrations/node.d.cts +6 -14
  103. package/dist/integrations/node.d.mts +6 -14
  104. package/dist/integrations/node.mjs +15 -13
  105. package/dist/integrations/react-start.cjs +7 -11
  106. package/dist/integrations/react-start.d.cts +5 -13
  107. package/dist/integrations/react-start.d.mts +5 -13
  108. package/dist/integrations/react-start.mjs +6 -11
  109. package/dist/integrations/solid-start.cjs +3 -5
  110. package/dist/integrations/solid-start.d.cts +2 -5
  111. package/dist/integrations/solid-start.d.mts +2 -5
  112. package/dist/integrations/solid-start.mjs +2 -4
  113. package/dist/integrations/svelte-kit.cjs +6 -10
  114. package/dist/integrations/svelte-kit.d.cts +11 -23
  115. package/dist/integrations/svelte-kit.d.mts +11 -23
  116. package/dist/integrations/svelte-kit.mjs +5 -10
  117. package/dist/{ip-BjNYspCH.mjs → ip-6Lv2o42m.mjs} +4 -9
  118. package/dist/{ip-C17Qdq-G.cjs → ip-DPydExzV.cjs} +21 -27
  119. package/dist/{json--tl7Grvs.cjs → json-D3aq-nH2.cjs} +9 -13
  120. package/dist/{json-B1v2qRTQ.mjs → json-DooGMtnJ.mjs} +2 -5
  121. package/dist/{logged-CyGfp8_H.mjs → logged-B83SzMnJ.mjs} +6 -10
  122. package/dist/{logged-Dv3st5qc.cjs → logged-BIpCpnVY.cjs} +13 -18
  123. package/dist/{middleware-CE6OhDkq.mjs → middleware-Cakg4e1D.mjs} +2 -4
  124. package/dist/{middleware-CWvRH4EW.cjs → middleware-Cd-VkNxB.cjs} +17 -20
  125. package/dist/{node-sqlite-dialect-w4DAg0PH.mjs → node-sqlite-dialect-BMVOjEMh.mjs} +6 -9
  126. package/dist/{test-utils/node-sqlite-dialect-BgJqjBOu.cjs → node-sqlite-dialect-D3QPFROH.cjs} +5 -9
  127. package/dist/oauth2/index.cjs +166 -22
  128. package/dist/oauth2/index.d.cts +5 -17
  129. package/dist/oauth2/index.d.mts +5 -17
  130. package/dist/oauth2/index.mjs +156 -16
  131. package/dist/{origin-check-DjLTuZQ8.cjs → origin-check-BflGhEEN.cjs} +34 -38
  132. package/dist/{origin-check-8Gajklvh.mjs → origin-check-CRgs1M7k.mjs} +13 -16
  133. package/dist/{parser-B25ylT5u.mjs → parser-CqwvpF6l.cjs} +12 -10
  134. package/dist/{parser-B_wxvaAr.cjs → parser-DcKDjjHO.mjs} +7 -22
  135. package/dist/plugins/access/index.cjs +38 -4
  136. package/dist/plugins/access/index.d.cts +36 -2
  137. package/dist/plugins/access/index.d.mts +36 -2
  138. package/dist/plugins/access/index.mjs +36 -3
  139. package/dist/plugins/bearer/index.cjs +52 -7
  140. package/dist/plugins/bearer/index.d.cts +27 -4
  141. package/dist/plugins/bearer/index.d.mts +27 -4
  142. package/dist/plugins/bearer/index.mjs +51 -7
  143. package/dist/plugins/index.cjs +1385 -842
  144. package/dist/plugins/index.d.cts +489 -7566
  145. package/dist/plugins/index.d.mts +489 -7566
  146. package/dist/plugins/index.mjs +1118 -576
  147. package/dist/plugins/passkey/index.cjs +551 -15
  148. package/dist/plugins/passkey/index.d.cts +123 -4
  149. package/dist/plugins/passkey/index.d.mts +123 -4
  150. package/dist/plugins/passkey/index.mjs +547 -15
  151. package/dist/{chunk-BFnQceUY.mjs → rolldown-runtime-BKpuH2hG.mjs} +6 -7
  152. package/dist/{chunk-fPmz2rbM.cjs → rolldown-runtime-C_Pgydhf.cjs} +22 -24
  153. package/dist/{schema-DTIwLLmf.mjs → schema-CFCpv0tK.mjs} +3 -6
  154. package/dist/{schema-CirKflVs.cjs → schema-b-lKhMkG.cjs} +51 -55
  155. package/dist/{session-CM3rmOYF.mjs → session-BGjJgihS.mjs} +51 -74
  156. package/dist/{session-Cwrj4GfV.cjs → session-CzZSMmQC.cjs} +197 -219
  157. package/dist/shared.d.cts +1581 -0
  158. package/dist/shared.d.mts +1581 -0
  159. package/dist/social-providers/index.cjs +9 -9
  160. package/dist/social-providers/index.d.cts +1 -1
  161. package/dist/social-providers/index.d.mts +1 -1
  162. package/dist/social-providers/index.mjs +3 -5
  163. package/dist/social-providers-CjPww-qf.mjs +6 -0
  164. package/dist/social-providers-D7w_7Ym8.cjs +10 -0
  165. package/dist/{state-CvSihlVT.cjs → state-2OrNjOO-.cjs} +24 -24
  166. package/dist/{state-CQghgH9I.mjs → state-Dooeisfq.mjs} +17 -17
  167. package/dist/{bun-sqlite-dialect-DPgTzc0w.cjs → test-utils/bun-sqlite-dialect-BHkarnxN.cjs} +5 -9
  168. package/dist/{bun-sqlite-dialect-6NqeV3px.mjs → test-utils/bun-sqlite-dialect-BiZBuEF6.mjs} +6 -9
  169. package/dist/test-utils/index.cjs +8831 -7941
  170. package/dist/test-utils/index.d.cts +310 -12440
  171. package/dist/test-utils/index.d.mts +313 -12440
  172. package/dist/test-utils/index.mjs +8591 -7701
  173. package/dist/test-utils/{node-sqlite-dialect-DAQXiobH.mjs → node-sqlite-dialect-BMVOjEMh.mjs} +6 -9
  174. package/dist/{node-sqlite-dialect-DP11CB0y.cjs → test-utils/node-sqlite-dialect-D3QPFROH.cjs} +5 -9
  175. package/dist/types/index.d.cts +2 -3
  176. package/dist/types/index.d.mts +2 -3
  177. package/dist/types/index.mjs +1 -1
  178. package/dist/{url-BoUuoIwZ.mjs → url-CJtdrrUu.mjs} +12 -13
  179. package/dist/{url-Ce7CVaQD.cjs → url-DjCmCUHS.cjs} +42 -44
  180. package/dist/utils/cookies.cjs +29 -30
  181. package/dist/utils/cookies.d.cts +21 -25
  182. package/dist/utils/cookies.d.mts +20 -24
  183. package/dist/utils/cookies.mjs +2 -7
  184. package/dist/utils-C7OHyfHa.mjs +4 -0
  185. package/dist/utils-iX0Vy_UL.cjs +3 -0
  186. package/package.json +40 -30
  187. package/dist/access-BZ7-AbTM.cjs +0 -51
  188. package/dist/access-D0DRqUKC.mjs +0 -39
  189. package/dist/bearer-DDzrp5M7.cjs +0 -60
  190. package/dist/bearer-WZcs7gxL.mjs +0 -54
  191. package/dist/db-4tUsQJXd.mjs +0 -1119
  192. package/dist/db-ChMbb_U-.cjs +0 -1180
  193. package/dist/defu-BmOYq4PU.cjs +0 -34
  194. package/dist/defu-D9ZTXqlo.mjs +0 -28
  195. package/dist/hono-C14rpOEa.cjs +0 -13
  196. package/dist/hono-CoKYWnXA.mjs +0 -7
  197. package/dist/hono-D0VqxVy1.d.mts +0 -18
  198. package/dist/hono-DOM31WQz.d.cts +0 -18
  199. package/dist/index--DLiUhEn.d.mts +0 -33
  200. package/dist/index-B4bqEDYG.d.mts +0 -992
  201. package/dist/index-BDhhaE6Y.d.cts +0 -3
  202. package/dist/index-Boa0SV4h.d.cts +0 -13350
  203. package/dist/index-Bykgiq3o.d.cts +0 -13350
  204. package/dist/index-CF9iq55a.d.mts +0 -3
  205. package/dist/index-CRt_fppq.d.mts +0 -41
  206. package/dist/index-CdLyn7qP.d.cts +0 -41
  207. package/dist/index-ClFGA8tb.d.mts +0 -33
  208. package/dist/index-ClOM0wFf.d.cts +0 -992
  209. package/dist/index-CsxNfGAV.d.mts +0 -13350
  210. package/dist/index-DKnO_Zfm.d.cts +0 -992
  211. package/dist/index-DRYO4mGd.d.cts +0 -33
  212. package/dist/index-Dsua4U8w.d.cts +0 -33
  213. package/dist/index-DxXFCG2_.d.mts +0 -13350
  214. package/dist/index-gtCVvDvC.d.mts +0 -992
  215. package/dist/kysely-adapter-CtIdoHa8.mjs +0 -270
  216. package/dist/kysely-adapter-QZTx077T.cjs +0 -288
  217. package/dist/memory-adapter-17RZd5df.cjs +0 -154
  218. package/dist/memory-adapter-Dp4XdCZK.mjs +0 -148
  219. package/dist/oauth2-5RL4cVNS.cjs +0 -177
  220. package/dist/oauth2-C56wz-n9.mjs +0 -159
  221. package/dist/passkey-BTT-v5c-.cjs +0 -512
  222. package/dist/passkey-CzY_W2us.mjs +0 -505
  223. package/dist/request-1NL_1lyJ.mjs +0 -58
  224. package/dist/request-CPNlp-DK.cjs +0 -100
  225. package/dist/social-providers-B8RK5yqI.mjs +0 -9
  226. package/dist/social-providers-BmFOIIPk.cjs +0 -13
  227. package/dist/utils-44aDDP8f.cjs +0 -2
  228. package/dist/utils-D4vZd1-9.mjs +0 -4
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "faire-auth",
4
- "version": "1.0.4",
4
+ "version": "1.1.0",
5
5
  "description": "The most comprehensive authentication library for TypeScript.",
6
6
  "type": "module",
7
7
  "license": "MIT",
@@ -37,6 +37,14 @@
37
37
  "default": "./dist/index.cjs"
38
38
  }
39
39
  },
40
+ "./shared": {
41
+ "import": {
42
+ "types": "./dist/shared.d.mts"
43
+ },
44
+ "require": {
45
+ "types": "./dist/shared.d.cts"
46
+ }
47
+ },
40
48
  "./test": {
41
49
  "dev-source": "./src/test-utils/index.ts",
42
50
  "import": {
@@ -358,19 +366,19 @@
358
366
  }
359
367
  },
360
368
  "dependencies": {
361
- "@better-fetch/fetch": "^1.1.18",
362
- "@simplewebauthn/browser": "^13.1.2",
363
- "@simplewebauthn/server": "^13.1.2",
364
- "defu": "^6.1.4",
365
- "jose": "^6.1.0",
366
- "kysely": "^0.28.14",
367
- "nanostores": "^1.0.1",
369
+ "@better-fetch/fetch": "^1.3.3",
370
+ "@simplewebauthn/browser": "^13.3.0",
371
+ "@simplewebauthn/server": "^13.3.3",
372
+ "defu": "^6.1.7",
373
+ "jose": "^6.2.15",
374
+ "kysely": "^0.28.19",
375
+ "nanostores": "^1.5.5",
368
376
  "type-fest": "^4.41.0",
369
- "zod": "4.1.4",
370
- "@faire-auth/core": "1.0.4"
377
+ "@faire-auth/core": "1.1.0"
371
378
  },
372
379
  "peerDependencies": {
373
- "hono": ">=4.3.6"
380
+ "hono": ">=4.3.6",
381
+ "zod": "^4.1.12"
374
382
  },
375
383
  "peerDependenciesOptional": {
376
384
  "@lynx-js/react": "*",
@@ -412,7 +420,7 @@
412
420
  }
413
421
  },
414
422
  "optionalDependencies": {
415
- "cbor-x": "^1.6.0"
423
+ "cbor-x": "^1.6.9"
416
424
  },
417
425
  "devDependencies": {
418
426
  "@cloudflare/workers-types": "^4.20250903.0",
@@ -420,43 +428,45 @@
420
428
  "@lynx-js/react": "^0.112.5",
421
429
  "@prisma/client": "^5.22.0",
422
430
  "@sveltejs/kit": "^2.37.1",
423
- "@tanstack/react-start": "^1.131.36",
424
- "@tanstack/start-server-core": "^1.131.36",
431
+ "@tanstack/react-start": "^1.169.4",
432
+ "@tanstack/start-server-core": "^1.169.45",
425
433
  "@types/better-sqlite3": "^7.6.13",
426
- "@types/bun": "^1.2.20",
434
+ "@types/bun": "^1.4.4",
427
435
  "@types/keccak": "^3.0.5",
428
- "@types/pg": "^8.15.5",
436
+ "@types/pg": "^8.23.1",
429
437
  "@types/prompts": "^2.4.9",
430
- "@types/react": "^19.1.12",
438
+ "@types/react": "^19.3.0",
431
439
  "@vitest/coverage-v8": "^3.2.4",
432
440
  "@vitest/ui": "^3.2.4",
433
441
  "@vitest/utils": "^4.0.8",
434
- "better-sqlite3": "^12.2.0",
442
+ "better-sqlite3": "^12.11.1",
435
443
  "concurrently": "^9.2.1",
436
444
  "deepmerge": "^4.3.1",
437
445
  "drizzle-kit": "^0.31.4",
438
446
  "drizzle-orm": "^0.38.2",
439
447
  "happy-dom": "^20.0.0",
440
- "listhen": "^1.9.0",
448
+ "hono": "^4.13.16",
449
+ "listhen": "^1.10.1",
441
450
  "mongodb": "^6.18.0",
442
451
  "ms": "4.0.0-nightly.202508271359",
443
452
  "msw": "^2.11.5",
444
- "mysql2": "^3.14.4",
445
- "next": "16.1.7",
453
+ "mysql2": "^3.24.6",
454
+ "next": "16.4.5",
446
455
  "oauth2-mock-server": "^7.2.1",
447
- "pg": "^8.16.3",
456
+ "pg": "^8.23.1",
448
457
  "prisma": "^5.22.0",
449
- "publint": "^0.3.15",
450
- "react": "^19.1.1",
451
- "react-dom": "^19.1.1",
458
+ "publint": "^0.3.25",
459
+ "react": "^19.3.1",
460
+ "react-dom": "^19.3.1",
452
461
  "react-native": "~0.80.2",
453
- "solid-js": "^1.9.8",
454
- "tarn": "^3.0.2",
462
+ "solid-js": "^1.9.18",
463
+ "tarn": "^3.1.2",
455
464
  "tedious": "^18.6.1",
456
- "terser": "^5.41.0",
465
+ "terser": "^5.51.2",
457
466
  "tinybench": "^5.0.1",
458
- "tsdown": "^0.16.0",
459
- "vue": "^3.5.18"
467
+ "tsdown": "^0.23.7",
468
+ "vue": "^3.5.44",
469
+ "zod": "^4.6.7"
460
470
  },
461
471
  "files": [
462
472
  "dist"
@@ -1,51 +0,0 @@
1
- const require_chunk = require('./chunk-fPmz2rbM.cjs');
2
- let __faire_auth_core_error = require("@faire-auth/core/error");
3
-
4
- //#region src/plugins/access/access.ts
5
- const role = (statements) => ({
6
- authorize: (request, connector = "AND") => {
7
- let success = false;
8
- for (const [requestedResource, requestedActions] of Object.entries(request)) {
9
- const allowedActions = statements[requestedResource];
10
- if (!allowedActions) return {
11
- success: false,
12
- error: `You are not allowed to access resource: ${requestedResource}`
13
- };
14
- if (Array.isArray(requestedActions)) success = requestedActions.every((requestedAction) => allowedActions.includes(requestedAction));
15
- else if (typeof requestedActions === "object") {
16
- const actions = requestedActions;
17
- if (actions.connector === "OR") success = actions.actions.some((requestedAction) => allowedActions.includes(requestedAction));
18
- else success = actions.actions.every((requestedAction) => allowedActions.includes(requestedAction));
19
- } else throw new __faire_auth_core_error.FaireAuthError("Invalid access control request");
20
- if (success && connector === "OR") return { success };
21
- if (!success && connector === "AND") return {
22
- success: false,
23
- error: `unauthorized to access resource "${requestedResource}"`
24
- };
25
- }
26
- if (success) return { success };
27
- return {
28
- success: false,
29
- error: "Not authorized"
30
- };
31
- },
32
- statements
33
- });
34
- const createAccessControl = (s) => ({
35
- newRole: (statements) => role(statements),
36
- statements: s
37
- });
38
-
39
- //#endregion
40
- Object.defineProperty(exports, 'createAccessControl', {
41
- enumerable: true,
42
- get: function () {
43
- return createAccessControl;
44
- }
45
- });
46
- Object.defineProperty(exports, 'role', {
47
- enumerable: true,
48
- get: function () {
49
- return role;
50
- }
51
- });
@@ -1,39 +0,0 @@
1
- import { FaireAuthError } from "@faire-auth/core/error";
2
-
3
- //#region src/plugins/access/access.ts
4
- const role = (statements) => ({
5
- authorize: (request, connector = "AND") => {
6
- let success = false;
7
- for (const [requestedResource, requestedActions] of Object.entries(request)) {
8
- const allowedActions = statements[requestedResource];
9
- if (!allowedActions) return {
10
- success: false,
11
- error: `You are not allowed to access resource: ${requestedResource}`
12
- };
13
- if (Array.isArray(requestedActions)) success = requestedActions.every((requestedAction) => allowedActions.includes(requestedAction));
14
- else if (typeof requestedActions === "object") {
15
- const actions = requestedActions;
16
- if (actions.connector === "OR") success = actions.actions.some((requestedAction) => allowedActions.includes(requestedAction));
17
- else success = actions.actions.every((requestedAction) => allowedActions.includes(requestedAction));
18
- } else throw new FaireAuthError("Invalid access control request");
19
- if (success && connector === "OR") return { success };
20
- if (!success && connector === "AND") return {
21
- success: false,
22
- error: `unauthorized to access resource "${requestedResource}"`
23
- };
24
- }
25
- if (success) return { success };
26
- return {
27
- success: false,
28
- error: "Not authorized"
29
- };
30
- },
31
- statements
32
- });
33
- const createAccessControl = (s) => ({
34
- newRole: (statements) => role(statements),
35
- statements: s
36
- });
37
-
38
- //#endregion
39
- export { role as n, createAccessControl as t };
@@ -1,60 +0,0 @@
1
- const require_chunk = require('./chunk-fPmz2rbM.cjs');
2
- const require_cookies = require('./cookies-BTl72THv.cjs');
3
- const require_middleware = require('./middleware-CWvRH4EW.cjs');
4
- let __faire_auth_core_datatypes = require("@faire-auth/core/datatypes");
5
-
6
- //#region src/plugins/bearer/index.ts
7
- /**
8
- * Converts bearer token to session cookie
9
- */
10
- const bearer = (options) => ({
11
- id: "bearer",
12
- hooks: {
13
- before: [{
14
- matcher: (ctx) => Boolean(ctx.req.header("Authorization")),
15
- handler: (_opts) => require_middleware.createHook()(async (ctx) => {
16
- const token = ctx.req.header("Authorization")?.replace("Bearer ", "");
17
- if (token == null) return;
18
- let signedToken = "";
19
- if (token.includes(".")) signedToken = token.replace("=", "");
20
- else {
21
- if (options?.requireSignature === true) return;
22
- signedToken = (await require_cookies.serializeSignedCookie("", token, ctx.get("context").secret)).replace("=", "");
23
- }
24
- try {
25
- const [first, second] = decodeURIComponent(signedToken).split(".");
26
- if (first == null || second == null) return;
27
- if (!await (0, __faire_auth_core_datatypes.createHMAC)("SHA-256", "base64urlnopad").verify(ctx.get("context").secret, first, second)) return;
28
- } catch {
29
- return;
30
- }
31
- ctx.req.raw.headers.append("cookie", `${ctx.get("context").authCookies.sessionToken.name}=${signedToken}`);
32
- })
33
- }],
34
- after: [{
35
- matcher: (_ctx) => true,
36
- handler: (_opts) => require_middleware.createHook()(async (ctx) => {
37
- const setCookie = ctx.res.headers.getSetCookie();
38
- if (!setCookie.length) return;
39
- const parsedCookies = require_cookies.parseSetCookieHeader(setCookie);
40
- const cookieName = ctx.get("context").authCookies.sessionToken.name;
41
- const sessionCookie = parsedCookies.get(cookieName);
42
- if (sessionCookie?.value == null || sessionCookie["max-age"] === 0) return;
43
- const token = sessionCookie.value;
44
- const exposedHeaders = ctx.res.headers.get("access-control-expose-headers") ?? "";
45
- const headersSet = new Set(exposedHeaders.split(",").map((header) => header.trim()).filter(Boolean));
46
- headersSet.add("set-auth-token");
47
- ctx.res.headers.set("set-auth-token", token);
48
- ctx.res.headers.set("Access-Control-Expose-Headers", Array.from(headersSet).join(", "));
49
- })
50
- }]
51
- }
52
- });
53
-
54
- //#endregion
55
- Object.defineProperty(exports, 'bearer', {
56
- enumerable: true,
57
- get: function () {
58
- return bearer;
59
- }
60
- });
@@ -1,54 +0,0 @@
1
- import { _ as serializeSignedCookie, p as parseSetCookieHeader } from "./cookies-BTs1o992.mjs";
2
- import { n as createHook } from "./middleware-CE6OhDkq.mjs";
3
- import { createHMAC } from "@faire-auth/core/datatypes";
4
-
5
- //#region src/plugins/bearer/index.ts
6
- /**
7
- * Converts bearer token to session cookie
8
- */
9
- const bearer = (options) => ({
10
- id: "bearer",
11
- hooks: {
12
- before: [{
13
- matcher: (ctx) => Boolean(ctx.req.header("Authorization")),
14
- handler: (_opts) => createHook()(async (ctx) => {
15
- const token = ctx.req.header("Authorization")?.replace("Bearer ", "");
16
- if (token == null) return;
17
- let signedToken = "";
18
- if (token.includes(".")) signedToken = token.replace("=", "");
19
- else {
20
- if (options?.requireSignature === true) return;
21
- signedToken = (await serializeSignedCookie("", token, ctx.get("context").secret)).replace("=", "");
22
- }
23
- try {
24
- const [first, second] = decodeURIComponent(signedToken).split(".");
25
- if (first == null || second == null) return;
26
- if (!await createHMAC("SHA-256", "base64urlnopad").verify(ctx.get("context").secret, first, second)) return;
27
- } catch {
28
- return;
29
- }
30
- ctx.req.raw.headers.append("cookie", `${ctx.get("context").authCookies.sessionToken.name}=${signedToken}`);
31
- })
32
- }],
33
- after: [{
34
- matcher: (_ctx) => true,
35
- handler: (_opts) => createHook()(async (ctx) => {
36
- const setCookie = ctx.res.headers.getSetCookie();
37
- if (!setCookie.length) return;
38
- const parsedCookies = parseSetCookieHeader(setCookie);
39
- const cookieName = ctx.get("context").authCookies.sessionToken.name;
40
- const sessionCookie = parsedCookies.get(cookieName);
41
- if (sessionCookie?.value == null || sessionCookie["max-age"] === 0) return;
42
- const token = sessionCookie.value;
43
- const exposedHeaders = ctx.res.headers.get("access-control-expose-headers") ?? "";
44
- const headersSet = new Set(exposedHeaders.split(",").map((header) => header.trim()).filter(Boolean));
45
- headersSet.add("set-auth-token");
46
- ctx.res.headers.set("set-auth-token", token);
47
- ctx.res.headers.set("Access-Control-Expose-Headers", Array.from(headersSet).join(", "));
48
- })
49
- }]
50
- }
51
- });
52
-
53
- //#endregion
54
- export { bearer as t };