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.
- package/dist/{adapter-factory-lKIOf2OR.mjs → adapter-factory-qPVW8x9-.mjs} +34 -36
- package/dist/{adapter-factory-D1I7joki.cjs → adapter-factory-u8r3oTez.cjs} +66 -68
- package/dist/adapters/drizzle-adapter/index.cjs +34 -40
- package/dist/adapters/drizzle-adapter/index.d.cts +4 -9
- package/dist/adapters/drizzle-adapter/index.d.mts +4 -9
- package/dist/adapters/drizzle-adapter/index.mjs +20 -26
- package/dist/adapters/index.cjs +11 -16
- package/dist/adapters/index.d.cts +11 -37
- package/dist/adapters/index.d.mts +11 -37
- package/dist/adapters/index.mjs +4 -13
- package/dist/adapters/kysely-adapter/index.cjs +270 -11
- package/dist/adapters/kysely-adapter/index.d.cts +9 -19
- package/dist/adapters/kysely-adapter/index.d.mts +9 -19
- package/dist/adapters/kysely-adapter/index.mjs +267 -9
- package/dist/adapters/memory-adapter/index.cjs +146 -9
- package/dist/adapters/memory-adapter/index.d.cts +4 -10
- package/dist/adapters/memory-adapter/index.d.mts +4 -10
- package/dist/adapters/memory-adapter/index.mjs +145 -9
- package/dist/adapters/mongodb-adapter/index.cjs +13 -21
- package/dist/adapters/mongodb-adapter/index.d.cts +3 -8
- package/dist/adapters/mongodb-adapter/index.d.mts +4 -9
- package/dist/adapters/mongodb-adapter/index.mjs +12 -20
- package/dist/adapters/prisma-adapter/index.cjs +12 -20
- package/dist/adapters/prisma-adapter/index.d.cts +4 -8
- package/dist/adapters/prisma-adapter/index.d.mts +4 -8
- package/dist/adapters/prisma-adapter/index.mjs +5 -13
- package/dist/adapters/test.cjs +86 -69
- package/dist/adapters/test.d.cts +7 -11
- package/dist/adapters/test.d.mts +7 -11
- package/dist/adapters/test.mjs +83 -66
- package/dist/api/index.cjs +3 -20
- package/dist/api/index.d.cts +2 -3
- package/dist/api/index.d.mts +2 -3
- package/dist/api/index.mjs +1 -20
- package/dist/api/middleware/index.cjs +4 -11
- package/dist/api/middleware/index.d.cts +3 -9
- package/dist/api/middleware/index.d.mts +3 -9
- package/dist/api/middleware/index.mjs +3 -11
- package/dist/{api-B4RDwBty.mjs → api-0f-F-Fi2.mjs} +292 -189
- package/dist/{api-CaRC1Gio.cjs → api-LjfH6hQi.cjs} +557 -452
- package/dist/{test-utils/bun-sqlite-dialect-BZBvHchL.cjs → bun-sqlite-dialect-BHkarnxN.cjs} +5 -9
- package/dist/{test-utils/bun-sqlite-dialect-BSWhhKNs.mjs → bun-sqlite-dialect-BiZBuEF6.mjs} +6 -9
- package/dist/client/index.cjs +8 -15
- package/dist/client/index.d.cts +9 -14
- package/dist/client/index.d.mts +9 -14
- package/dist/client/index.mjs +7 -15
- package/dist/client/lynx/index.cjs +10 -18
- package/dist/client/lynx/index.d.cts +402 -71
- package/dist/client/lynx/index.d.mts +402 -71
- package/dist/client/lynx/index.mjs +5 -13
- package/dist/client/plugins/index.cjs +3 -5
- package/dist/client/plugins/index.d.cts +5 -10
- package/dist/client/plugins/index.d.mts +5 -10
- package/dist/client/plugins/index.mjs +2 -4
- package/dist/client/react/index.cjs +6 -14
- package/dist/client/react/index.d.cts +402 -71
- package/dist/client/react/index.d.mts +402 -71
- package/dist/client/react/index.mjs +5 -13
- package/dist/client/solid/index.cjs +6 -14
- package/dist/client/solid/index.d.cts +393 -57
- package/dist/client/solid/index.d.mts +393 -57
- package/dist/client/solid/index.mjs +5 -13
- package/dist/client/svelte/index.cjs +5 -10
- package/dist/client/svelte/index.d.cts +400 -67
- package/dist/client/svelte/index.d.mts +400 -67
- package/dist/client/svelte/index.mjs +4 -10
- package/dist/client/vue/index.cjs +6 -14
- package/dist/client/vue/index.d.cts +401 -68
- package/dist/client/vue/index.d.mts +401 -68
- package/dist/client/vue/index.mjs +5 -13
- package/dist/{cookies-BTs1o992.mjs → cookies-D9aY_gJh.mjs} +25 -21
- package/dist/{cookies-BTl72THv.cjs → cookies-DQ52rcOy.cjs} +119 -115
- package/dist/crypto/index.cjs +10 -8
- package/dist/crypto/index.d.cts +5 -13
- package/dist/crypto/index.d.mts +5 -13
- package/dist/crypto/index.mjs +2 -5
- package/dist/{crypto-DH2Aa7jN.mjs → crypto-BH-hD0lJ.mjs} +7 -10
- package/dist/{crypto-DpSCnrTp.cjs → crypto-BITfWVwD.cjs} +24 -27
- package/dist/db/index.cjs +1135 -29
- package/dist/db/index.d.cts +1 -2
- package/dist/db/index.d.mts +1 -2
- package/dist/db/index.mjs +1115 -16
- package/dist/defu-D2h4S3X-.mjs +87 -0
- package/dist/defu-DWS5RPWt.cjs +134 -0
- package/dist/{email-verification-DI_0H4JC.cjs → email-verification-DOPnSgbI.cjs} +65 -71
- package/dist/{email-verification-C_lBu_JY.mjs → email-verification-YSR5n5lb.mjs} +23 -29
- package/dist/{hono-CO-zsqI-.mjs → hono-BAV2wQkK.mjs} +16 -33
- package/dist/hono-SVQuc5Ru.mjs +4 -0
- package/dist/hono-pgK4H_U1.cjs +9 -0
- package/dist/{hono-DnW5crl1.cjs → hono-tyFFJFdS.cjs} +42 -60
- package/dist/index-B86Cy0dE.d.cts +2 -0
- package/dist/index-B86Cy0dE.d.mts +2 -0
- package/dist/index.cjs +115 -150
- package/dist/index.d.cts +4 -5
- package/dist/index.d.mts +4 -5
- package/dist/index.mjs +45 -80
- package/dist/integrations/next-js.cjs +5 -9
- package/dist/integrations/next-js.d.cts +6 -14
- package/dist/integrations/next-js.d.mts +6 -14
- package/dist/integrations/next-js.mjs +4 -9
- package/dist/integrations/node.cjs +16 -14
- package/dist/integrations/node.d.cts +6 -14
- package/dist/integrations/node.d.mts +6 -14
- package/dist/integrations/node.mjs +15 -13
- package/dist/integrations/react-start.cjs +7 -11
- package/dist/integrations/react-start.d.cts +5 -13
- package/dist/integrations/react-start.d.mts +5 -13
- package/dist/integrations/react-start.mjs +6 -11
- package/dist/integrations/solid-start.cjs +3 -5
- package/dist/integrations/solid-start.d.cts +2 -5
- package/dist/integrations/solid-start.d.mts +2 -5
- package/dist/integrations/solid-start.mjs +2 -4
- package/dist/integrations/svelte-kit.cjs +6 -10
- package/dist/integrations/svelte-kit.d.cts +11 -23
- package/dist/integrations/svelte-kit.d.mts +11 -23
- package/dist/integrations/svelte-kit.mjs +5 -10
- package/dist/{ip-BjNYspCH.mjs → ip-6Lv2o42m.mjs} +4 -9
- package/dist/{ip-C17Qdq-G.cjs → ip-DPydExzV.cjs} +21 -27
- package/dist/{json--tl7Grvs.cjs → json-D3aq-nH2.cjs} +9 -13
- package/dist/{json-B1v2qRTQ.mjs → json-DooGMtnJ.mjs} +2 -5
- package/dist/{logged-CyGfp8_H.mjs → logged-B83SzMnJ.mjs} +6 -10
- package/dist/{logged-Dv3st5qc.cjs → logged-BIpCpnVY.cjs} +13 -18
- package/dist/{middleware-CE6OhDkq.mjs → middleware-Cakg4e1D.mjs} +2 -4
- package/dist/{middleware-CWvRH4EW.cjs → middleware-Cd-VkNxB.cjs} +17 -20
- package/dist/{node-sqlite-dialect-w4DAg0PH.mjs → node-sqlite-dialect-BMVOjEMh.mjs} +6 -9
- package/dist/{test-utils/node-sqlite-dialect-BgJqjBOu.cjs → node-sqlite-dialect-D3QPFROH.cjs} +5 -9
- package/dist/oauth2/index.cjs +166 -22
- package/dist/oauth2/index.d.cts +5 -17
- package/dist/oauth2/index.d.mts +5 -17
- package/dist/oauth2/index.mjs +156 -16
- package/dist/{origin-check-DjLTuZQ8.cjs → origin-check-BflGhEEN.cjs} +34 -38
- package/dist/{origin-check-8Gajklvh.mjs → origin-check-CRgs1M7k.mjs} +13 -16
- package/dist/{parser-B25ylT5u.mjs → parser-CqwvpF6l.cjs} +12 -10
- package/dist/{parser-B_wxvaAr.cjs → parser-DcKDjjHO.mjs} +7 -22
- package/dist/plugins/access/index.cjs +38 -4
- package/dist/plugins/access/index.d.cts +36 -2
- package/dist/plugins/access/index.d.mts +36 -2
- package/dist/plugins/access/index.mjs +36 -3
- package/dist/plugins/bearer/index.cjs +52 -7
- package/dist/plugins/bearer/index.d.cts +27 -4
- package/dist/plugins/bearer/index.d.mts +27 -4
- package/dist/plugins/bearer/index.mjs +51 -7
- package/dist/plugins/index.cjs +1385 -842
- package/dist/plugins/index.d.cts +489 -7566
- package/dist/plugins/index.d.mts +489 -7566
- package/dist/plugins/index.mjs +1118 -576
- package/dist/plugins/passkey/index.cjs +551 -15
- package/dist/plugins/passkey/index.d.cts +123 -4
- package/dist/plugins/passkey/index.d.mts +123 -4
- package/dist/plugins/passkey/index.mjs +547 -15
- package/dist/{chunk-BFnQceUY.mjs → rolldown-runtime-BKpuH2hG.mjs} +6 -7
- package/dist/{chunk-fPmz2rbM.cjs → rolldown-runtime-C_Pgydhf.cjs} +22 -24
- package/dist/{schema-DTIwLLmf.mjs → schema-CFCpv0tK.mjs} +3 -6
- package/dist/{schema-CirKflVs.cjs → schema-b-lKhMkG.cjs} +51 -55
- package/dist/{session-CM3rmOYF.mjs → session-BGjJgihS.mjs} +51 -74
- package/dist/{session-Cwrj4GfV.cjs → session-CzZSMmQC.cjs} +197 -219
- package/dist/shared.d.cts +1581 -0
- package/dist/shared.d.mts +1581 -0
- package/dist/social-providers/index.cjs +9 -9
- package/dist/social-providers/index.d.cts +1 -1
- package/dist/social-providers/index.d.mts +1 -1
- package/dist/social-providers/index.mjs +3 -5
- package/dist/social-providers-CjPww-qf.mjs +6 -0
- package/dist/social-providers-D7w_7Ym8.cjs +10 -0
- package/dist/{state-CvSihlVT.cjs → state-2OrNjOO-.cjs} +24 -24
- package/dist/{state-CQghgH9I.mjs → state-Dooeisfq.mjs} +17 -17
- package/dist/{bun-sqlite-dialect-DPgTzc0w.cjs → test-utils/bun-sqlite-dialect-BHkarnxN.cjs} +5 -9
- package/dist/{bun-sqlite-dialect-6NqeV3px.mjs → test-utils/bun-sqlite-dialect-BiZBuEF6.mjs} +6 -9
- package/dist/test-utils/index.cjs +8831 -7941
- package/dist/test-utils/index.d.cts +310 -12440
- package/dist/test-utils/index.d.mts +313 -12440
- package/dist/test-utils/index.mjs +8591 -7701
- package/dist/test-utils/{node-sqlite-dialect-DAQXiobH.mjs → node-sqlite-dialect-BMVOjEMh.mjs} +6 -9
- package/dist/{node-sqlite-dialect-DP11CB0y.cjs → test-utils/node-sqlite-dialect-D3QPFROH.cjs} +5 -9
- package/dist/types/index.d.cts +2 -3
- package/dist/types/index.d.mts +2 -3
- package/dist/types/index.mjs +1 -1
- package/dist/{url-BoUuoIwZ.mjs → url-CJtdrrUu.mjs} +12 -13
- package/dist/{url-Ce7CVaQD.cjs → url-DjCmCUHS.cjs} +42 -44
- package/dist/utils/cookies.cjs +29 -30
- package/dist/utils/cookies.d.cts +21 -25
- package/dist/utils/cookies.d.mts +20 -24
- package/dist/utils/cookies.mjs +2 -7
- package/dist/utils-C7OHyfHa.mjs +4 -0
- package/dist/utils-iX0Vy_UL.cjs +3 -0
- package/package.json +40 -30
- package/dist/access-BZ7-AbTM.cjs +0 -51
- package/dist/access-D0DRqUKC.mjs +0 -39
- package/dist/bearer-DDzrp5M7.cjs +0 -60
- package/dist/bearer-WZcs7gxL.mjs +0 -54
- package/dist/db-4tUsQJXd.mjs +0 -1119
- package/dist/db-ChMbb_U-.cjs +0 -1180
- package/dist/defu-BmOYq4PU.cjs +0 -34
- package/dist/defu-D9ZTXqlo.mjs +0 -28
- package/dist/hono-C14rpOEa.cjs +0 -13
- package/dist/hono-CoKYWnXA.mjs +0 -7
- package/dist/hono-D0VqxVy1.d.mts +0 -18
- package/dist/hono-DOM31WQz.d.cts +0 -18
- package/dist/index--DLiUhEn.d.mts +0 -33
- package/dist/index-B4bqEDYG.d.mts +0 -992
- package/dist/index-BDhhaE6Y.d.cts +0 -3
- package/dist/index-Boa0SV4h.d.cts +0 -13350
- package/dist/index-Bykgiq3o.d.cts +0 -13350
- package/dist/index-CF9iq55a.d.mts +0 -3
- package/dist/index-CRt_fppq.d.mts +0 -41
- package/dist/index-CdLyn7qP.d.cts +0 -41
- package/dist/index-ClFGA8tb.d.mts +0 -33
- package/dist/index-ClOM0wFf.d.cts +0 -992
- package/dist/index-CsxNfGAV.d.mts +0 -13350
- package/dist/index-DKnO_Zfm.d.cts +0 -992
- package/dist/index-DRYO4mGd.d.cts +0 -33
- package/dist/index-Dsua4U8w.d.cts +0 -33
- package/dist/index-DxXFCG2_.d.mts +0 -13350
- package/dist/index-gtCVvDvC.d.mts +0 -992
- package/dist/kysely-adapter-CtIdoHa8.mjs +0 -270
- package/dist/kysely-adapter-QZTx077T.cjs +0 -288
- package/dist/memory-adapter-17RZd5df.cjs +0 -154
- package/dist/memory-adapter-Dp4XdCZK.mjs +0 -148
- package/dist/oauth2-5RL4cVNS.cjs +0 -177
- package/dist/oauth2-C56wz-n9.mjs +0 -159
- package/dist/passkey-BTT-v5c-.cjs +0 -512
- package/dist/passkey-CzY_W2us.mjs +0 -505
- package/dist/request-1NL_1lyJ.mjs +0 -58
- package/dist/request-CPNlp-DK.cjs +0 -100
- package/dist/social-providers-B8RK5yqI.mjs +0 -9
- package/dist/social-providers-BmFOIIPk.cjs +0 -13
- package/dist/utils-44aDDP8f.cjs +0 -2
- 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
|
+
"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.
|
|
362
|
-
"@simplewebauthn/browser": "^13.
|
|
363
|
-
"@simplewebauthn/server": "^13.
|
|
364
|
-
"defu": "^6.1.
|
|
365
|
-
"jose": "^6.
|
|
366
|
-
"kysely": "^0.28.
|
|
367
|
-
"nanostores": "^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
|
-
"
|
|
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.
|
|
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.
|
|
424
|
-
"@tanstack/start-server-core": "^1.
|
|
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.
|
|
434
|
+
"@types/bun": "^1.4.4",
|
|
427
435
|
"@types/keccak": "^3.0.5",
|
|
428
|
-
"@types/pg": "^8.
|
|
436
|
+
"@types/pg": "^8.23.1",
|
|
429
437
|
"@types/prompts": "^2.4.9",
|
|
430
|
-
"@types/react": "^19.
|
|
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.
|
|
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
|
-
"
|
|
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.
|
|
445
|
-
"next": "16.
|
|
453
|
+
"mysql2": "^3.24.6",
|
|
454
|
+
"next": "16.4.5",
|
|
446
455
|
"oauth2-mock-server": "^7.2.1",
|
|
447
|
-
"pg": "^8.
|
|
456
|
+
"pg": "^8.23.1",
|
|
448
457
|
"prisma": "^5.22.0",
|
|
449
|
-
"publint": "^0.3.
|
|
450
|
-
"react": "^19.
|
|
451
|
-
"react-dom": "^19.
|
|
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.
|
|
454
|
-
"tarn": "^3.
|
|
462
|
+
"solid-js": "^1.9.18",
|
|
463
|
+
"tarn": "^3.1.2",
|
|
455
464
|
"tedious": "^18.6.1",
|
|
456
|
-
"terser": "^5.
|
|
465
|
+
"terser": "^5.51.2",
|
|
457
466
|
"tinybench": "^5.0.1",
|
|
458
|
-
"tsdown": "^0.
|
|
459
|
-
"vue": "^3.5.
|
|
467
|
+
"tsdown": "^0.23.7",
|
|
468
|
+
"vue": "^3.5.44",
|
|
469
|
+
"zod": "^4.6.7"
|
|
460
470
|
},
|
|
461
471
|
"files": [
|
|
462
472
|
"dist"
|
package/dist/access-BZ7-AbTM.cjs
DELETED
|
@@ -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
|
-
});
|
package/dist/access-D0DRqUKC.mjs
DELETED
|
@@ -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 };
|
package/dist/bearer-DDzrp5M7.cjs
DELETED
|
@@ -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
|
-
});
|
package/dist/bearer-WZcs7gxL.mjs
DELETED
|
@@ -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 };
|