@arch-cadre/core 0.0.41 → 0.0.42
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/_virtual/_rolldown/runtime.mjs +1 -0
- package/dist/core/auth/augment.d.mts +20 -0
- package/dist/core/auth/augment.d.mts.map +1 -0
- package/dist/core/auth/augment.mjs +2 -0
- package/dist/core/auth/augment.mjs.map +1 -0
- package/dist/core/auth/email-verification.d.mts +62 -0
- package/dist/core/auth/email-verification.d.mts.map +1 -0
- package/dist/core/auth/email-verification.mjs +2 -0
- package/dist/core/auth/email-verification.mjs.map +1 -0
- package/dist/core/auth/logic.d.mts +110 -0
- package/dist/core/auth/logic.d.mts.map +1 -0
- package/dist/core/auth/logic.mjs +2 -0
- package/dist/core/auth/logic.mjs.map +1 -0
- package/dist/core/auth/password-reset.d.mts +39 -0
- package/dist/core/auth/password-reset.d.mts.map +1 -0
- package/dist/core/auth/password-reset.mjs +2 -0
- package/dist/core/auth/password-reset.mjs.map +1 -0
- package/dist/core/auth/rbac.d.mts +61 -0
- package/dist/core/auth/rbac.d.mts.map +1 -0
- package/dist/core/auth/rbac.mjs +2 -0
- package/dist/core/auth/rbac.mjs.map +1 -0
- package/dist/core/auth/session.d.mts +54 -0
- package/dist/core/auth/session.d.mts.map +1 -0
- package/dist/core/auth/session.mjs +2 -0
- package/dist/core/auth/session.mjs.map +1 -0
- package/dist/core/auth/types.d.mts +55 -0
- package/dist/core/auth/types.d.mts.map +1 -0
- package/dist/core/auth/utils/encode.d.mts +15 -0
- package/dist/core/auth/utils/encode.d.mts.map +1 -0
- package/dist/core/auth/utils/encode.mjs +2 -0
- package/dist/core/auth/utils/encode.mjs.map +1 -0
- package/dist/core/auth/utils/{encryption.d.ts → encryption.d.mts} +8 -5
- package/dist/core/auth/utils/encryption.d.mts.map +1 -0
- package/dist/core/auth/utils/encryption.mjs +2 -0
- package/dist/core/auth/utils/encryption.mjs.map +1 -0
- package/dist/core/auth/validation.d.mts +48 -0
- package/dist/core/auth/validation.d.mts.map +1 -0
- package/dist/core/auth/validation.mjs +2 -0
- package/dist/core/auth/validation.mjs.map +1 -0
- package/dist/core/bootstrap.d.mts +5 -0
- package/dist/core/bootstrap.d.mts.map +1 -0
- package/dist/core/bootstrap.mjs +2 -0
- package/dist/core/bootstrap.mjs.map +1 -0
- package/dist/core/config.d.mts +11 -0
- package/dist/core/config.d.mts.map +1 -0
- package/dist/core/config.mjs +2 -0
- package/dist/core/config.mjs.map +1 -0
- package/dist/core/config.server.d.mts +16 -0
- package/dist/core/config.server.d.mts.map +1 -0
- package/dist/core/config.server.mjs +2 -0
- package/dist/core/config.server.mjs.map +1 -0
- package/dist/core/event-bus.d.mts +17 -0
- package/dist/core/event-bus.d.mts.map +1 -0
- package/dist/core/event-bus.mjs +2 -0
- package/dist/core/event-bus.mjs.map +1 -0
- package/dist/core/filesystem/index.mjs +2 -0
- package/dist/core/filesystem/index.mjs.map +1 -0
- package/dist/core/filesystem/providers/local.mjs +2 -0
- package/dist/core/filesystem/providers/local.mjs.map +1 -0
- package/dist/core/filesystem/service.d.mts +19 -0
- package/dist/core/filesystem/service.d.mts.map +1 -0
- package/dist/core/filesystem/service.mjs +2 -0
- package/dist/core/filesystem/service.mjs.map +1 -0
- package/dist/core/filesystem/types.d.mts +22 -0
- package/dist/core/filesystem/types.d.mts.map +1 -0
- package/dist/core/notifications/actions.d.mts +58 -0
- package/dist/core/notifications/actions.d.mts.map +1 -0
- package/dist/core/notifications/actions.mjs +2 -0
- package/dist/core/notifications/actions.mjs.map +1 -0
- package/dist/core/notifications/index.mjs +1 -0
- package/dist/core/notifications/service.d.mts +9 -0
- package/dist/core/notifications/service.d.mts.map +1 -0
- package/dist/core/notifications/service.mjs +2 -0
- package/dist/core/notifications/service.mjs.map +1 -0
- package/dist/core/notifications/types.d.mts +21 -0
- package/dist/core/notifications/types.d.mts.map +1 -0
- package/dist/core/setup.d.mts +9 -0
- package/dist/core/setup.d.mts.map +1 -0
- package/dist/core/setup.mjs +2 -0
- package/dist/core/setup.mjs.map +1 -0
- package/dist/core/types.d.mts +13 -0
- package/dist/core/types.d.mts.map +1 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.mjs +1 -0
- package/dist/server/auth/email.d.mts +13 -0
- package/dist/server/auth/email.d.mts.map +1 -0
- package/dist/server/auth/email.mjs +2 -0
- package/dist/server/auth/email.mjs.map +1 -0
- package/dist/server/auth/{password.d.ts → password.d.mts} +7 -4
- package/dist/server/auth/password.d.mts.map +1 -0
- package/dist/server/auth/password.mjs +2 -0
- package/dist/server/auth/password.mjs.map +1 -0
- package/dist/server/auth/user.d.mts +58 -0
- package/dist/server/auth/user.d.mts.map +1 -0
- package/dist/server/auth/user.mjs +2 -0
- package/dist/server/auth/user.mjs.map +1 -0
- package/dist/server/database/inject.d.mts +15 -0
- package/dist/server/database/inject.d.mts.map +1 -0
- package/dist/server/database/inject.mjs +2 -0
- package/dist/server/database/inject.mjs.map +1 -0
- package/dist/server/database/schema.d.mts +2962 -0
- package/dist/server/database/{schema.d.ts.map → schema.d.mts.map} +1 -1
- package/dist/server/database/schema.mjs +2 -0
- package/dist/server/database/schema.mjs.map +1 -0
- package/dist/server/emails/index.d.mts +26 -0
- package/dist/server/emails/index.d.mts.map +1 -0
- package/dist/server/emails/index.mjs +2 -0
- package/dist/server/emails/index.mjs.map +1 -0
- package/dist/server.d.mts +26 -0
- package/dist/server.mjs +1 -0
- package/package.json +4 -5
- package/dist/core/auth/augment.d.ts +0 -18
- package/dist/core/auth/augment.d.ts.map +0 -1
- package/dist/core/auth/augment.js +0 -53
- package/dist/core/auth/email-verification.d.ts +0 -58
- package/dist/core/auth/email-verification.d.ts.map +0 -1
- package/dist/core/auth/email-verification.js +0 -115
- package/dist/core/auth/events.d.ts +0 -53
- package/dist/core/auth/events.d.ts.map +0 -1
- package/dist/core/auth/events.js +0 -2
- package/dist/core/auth/logic.d.ts +0 -106
- package/dist/core/auth/logic.d.ts.map +0 -1
- package/dist/core/auth/logic.js +0 -264
- package/dist/core/auth/password-reset.d.ts +0 -35
- package/dist/core/auth/password-reset.d.ts.map +0 -1
- package/dist/core/auth/password-reset.js +0 -132
- package/dist/core/auth/rbac.d.ts +0 -56
- package/dist/core/auth/rbac.d.ts.map +0 -1
- package/dist/core/auth/rbac.js +0 -151
- package/dist/core/auth/session.d.ts +0 -50
- package/dist/core/auth/session.d.ts.map +0 -1
- package/dist/core/auth/session.js +0 -167
- package/dist/core/auth/types.d.ts +0 -52
- package/dist/core/auth/types.d.ts.map +0 -1
- package/dist/core/auth/types.js +0 -2
- package/dist/core/auth/utils/encode.d.ts +0 -12
- package/dist/core/auth/utils/encode.d.ts.map +0 -1
- package/dist/core/auth/utils/encode.js +0 -24
- package/dist/core/auth/utils/encryption.d.ts.map +0 -1
- package/dist/core/auth/utils/encryption.js +0 -68
- package/dist/core/auth/validation.d.ts +0 -44
- package/dist/core/auth/validation.d.ts.map +0 -1
- package/dist/core/auth/validation.js +0 -44
- package/dist/core/bootstrap.d.ts +0 -2
- package/dist/core/bootstrap.d.ts.map +0 -1
- package/dist/core/bootstrap.js +0 -54
- package/dist/core/config.d.ts +0 -9
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -6
- package/dist/core/config.server.d.ts +0 -12
- package/dist/core/config.server.d.ts.map +0 -1
- package/dist/core/config.server.js +0 -101
- package/dist/core/event-bus.d.ts +0 -14
- package/dist/core/event-bus.d.ts.map +0 -1
- package/dist/core/event-bus.js +0 -54
- package/dist/core/filesystem/index.d.ts +0 -4
- package/dist/core/filesystem/index.d.ts.map +0 -1
- package/dist/core/filesystem/index.js +0 -27
- package/dist/core/filesystem/providers/local.d.ts +0 -8
- package/dist/core/filesystem/providers/local.d.ts.map +0 -1
- package/dist/core/filesystem/providers/local.js +0 -49
- package/dist/core/filesystem/service.d.ts +0 -16
- package/dist/core/filesystem/service.d.ts.map +0 -1
- package/dist/core/filesystem/service.js +0 -54
- package/dist/core/filesystem/types.d.ts +0 -19
- package/dist/core/filesystem/types.d.ts.map +0 -1
- package/dist/core/filesystem/types.js +0 -2
- package/dist/core/notifications/actions.d.ts +0 -54
- package/dist/core/notifications/actions.d.ts.map +0 -1
- package/dist/core/notifications/actions.js +0 -49
- package/dist/core/notifications/index.d.ts +0 -4
- package/dist/core/notifications/index.d.ts.map +0 -1
- package/dist/core/notifications/index.js +0 -19
- package/dist/core/notifications/service.d.ts +0 -7
- package/dist/core/notifications/service.d.ts.map +0 -1
- package/dist/core/notifications/service.js +0 -35
- package/dist/core/notifications/types.d.ts +0 -17
- package/dist/core/notifications/types.d.ts.map +0 -1
- package/dist/core/notifications/types.js +0 -2
- package/dist/core/setup.d.ts +0 -6
- package/dist/core/setup.d.ts.map +0 -1
- package/dist/core/setup.js +0 -28
- package/dist/core/types.d.ts +0 -10
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/server/auth/email.d.ts +0 -10
- package/dist/server/auth/email.d.ts.map +0 -1
- package/dist/server/auth/email.js +0 -24
- package/dist/server/auth/password.d.ts.map +0 -1
- package/dist/server/auth/password.js +0 -38
- package/dist/server/auth/types.d.ts +0 -13
- package/dist/server/auth/types.d.ts.map +0 -1
- package/dist/server/auth/types.js +0 -17
- package/dist/server/auth/user.d.ts +0 -54
- package/dist/server/auth/user.d.ts.map +0 -1
- package/dist/server/auth/user.js +0 -237
- package/dist/server/database/inject.d.ts +0 -11
- package/dist/server/database/inject.d.ts.map +0 -1
- package/dist/server/database/inject.js +0 -33
- package/dist/server/database/schema.d.ts +0 -2953
- package/dist/server/database/schema.js +0 -195
- package/dist/server/database/types.d.ts +0 -12
- package/dist/server/database/types.d.ts.map +0 -1
- package/dist/server/database/types.js +0 -2
- package/dist/server/emails/index.d.ts +0 -23
- package/dist/server/emails/index.d.ts.map +0 -1
- package/dist/server/emails/index.js +0 -73
- package/dist/server.d.ts +0 -25
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.
|
|
1
|
+
{"version":3,"file":"schema.d.mts","names":[],"sources":["../../../src/server/database/schema.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineRelations as e,sql as t}from"drizzle-orm";import{boolean as n,bytea as r,pgTable as i,text as a,timestamp as o}from"drizzle-orm/pg-core";const s=i(`users`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),email:a(`email`).notNull().unique(),name:a(`name`).notNull(),password:a(`password`),image:a(`image`),recovery_code:r(`recovery_code`).notNull(),emailVerifiedAt:o(`email_verified_at`,{precision:3}),createdAt:o(`created_at`,{precision:3}).notNull().defaultNow(),updatedAt:o(`updated_at`,{precision:3})}),c=i(`roles`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),name:a(`name`).notNull().unique(),description:a(`description`)}),l=i(`permissions`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),name:a(`name`).notNull().unique(),description:a(`description`)}),u=i(`users_to_roles`,{userId:a(`user_id`).notNull().references(()=>s.id,{onDelete:`cascade`}),roleId:a(`role_id`).notNull().references(()=>c.id,{onDelete:`cascade`})},e=>[{pk:t`PRIMARY KEY (${e.userId}, ${e.roleId})`}]),d=i(`users_to_permissions`,{userId:a(`user_id`).notNull().references(()=>s.id,{onDelete:`cascade`}),permissionId:a(`permission_id`).notNull().references(()=>l.id,{onDelete:`cascade`})},e=>[{pk:t`PRIMARY KEY (${e.userId}, ${e.permissionId})`}]),f=i(`roles_to_permissions`,{roleId:a(`role_id`).notNull().references(()=>c.id,{onDelete:`cascade`}),permissionId:a(`permission_id`).notNull().references(()=>l.id,{onDelete:`cascade`})},e=>[{pk:t`PRIMARY KEY (${e.roleId}, ${e.permissionId})`}]),p=i(`sessions`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),active_organization_id:a(`active_organization_id`),userId:a(`user_id`).notNull().references(()=>s.id,{onDelete:`cascade`,onUpdate:`cascade`}),expiresAt:o(`expires_at`,{precision:3}).notNull(),createdAt:o(`created_at`,{precision:3}).notNull().defaultNow(),updatedAt:o(`updated_at`,{precision:3})}),m=i(`email_verification_requests`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),email:a(`email`).notNull(),code:a(`code`).notNull(),userId:a(`user_id`).notNull().references(()=>s.id,{onDelete:`cascade`,onUpdate:`cascade`}),expiresAt:o(`expires_at`,{precision:3}).notNull(),createdAt:o(`created_at`,{precision:3}).notNull().defaultNow(),updatedAt:o(`updated_at`,{precision:3})}),h=i(`password_reset_sessions`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),email:a(`email`).notNull(),code:a(`code`).notNull(),emailVerified:n(`emailVerified`).default(!1),userId:a(`user_id`).notNull().references(()=>s.id,{onDelete:`cascade`,onUpdate:`cascade`}),expiresAt:o(`expires_at`,{precision:3}).notNull(),createdAt:o(`created_at`,{precision:3}).notNull().defaultNow(),updatedAt:o(`updated_at`,{precision:3})}),g=i(`notification`,{id:a(`id`).$defaultFn(()=>crypto.randomUUID()).notNull().primaryKey(),title:a(`title`).notNull(),content:a(`content`),target:a(`target`),type:a(`type`),isRead:n(`isRead`).notNull(),resourceId:a(`resource_id`),resourceType:a(`resource_type`),userId:a(`user_id`).notNull().references(()=>s.id,{onDelete:`cascade`,onUpdate:`cascade`}),createdAt:o(`created_at`,{precision:3}).notNull().defaultNow(),updatedAt:o(`updated_at`,{precision:3})}),_=i(`system_modules`,{id:a(`id`).notNull().primaryKey(),enabled:n(`enabled`).notNull().default(!1),installed:n(`installed`).notNull().default(!1),deleted:n(`deleted`).notNull().default(!1),system:n(`system`).notNull().default(!1),config:a(`config`),lastStep:a(`last_step`),updatedAt:o(`updated_at`,{precision:3}).defaultNow()}),v=e({user:s,emailVerification:m,passwordResetSession:h,session:p,notification:g,systemModulesTable:_},e=>({user:{sessions:e.many.session({from:e.user.id,to:e.session.userId}),emailVerification:e.many.emailVerification({from:e.user.id,to:e.emailVerification.userId}),passwordResetSession:e.many.passwordResetSession({from:e.user.id,to:e.passwordResetSession.userId})},session:{user:e.one.user({from:e.session.userId,to:e.user.id})},emailVerification:{user:e.one.user({from:e.emailVerification.userId,to:e.user.id})},passwordResetSession:{user:e.one.user({from:e.passwordResetSession.userId,to:e.user.id})}})),y={userTable:s,rolesTable:c,permissionsTable:l,usersToRolesTable:u,usersToPermissionsTable:d,rolesToPermissionsTable:f,sessionTable:p,emailVerificationTable:m,passwordResetSessionTable:h,notificationTable:g,systemModulesTable:_};export{y as coreSchema,m as emailVerificationTable,g as notificationTable,h as passwordResetSessionTable,l as permissionsTable,v as relations,c as rolesTable,f as rolesToPermissionsTable,p as sessionTable,_ as systemModulesTable,s as userTable,d as usersToPermissionsTable,u as usersToRolesTable};
|
|
2
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","names":[],"sources":["../../../src/server/database/schema.ts"],"sourcesContent":["import { defineRelations, sql } from \"drizzle-orm\";\nimport { boolean, bytea, pgTable, text, timestamp } from \"drizzle-orm/pg-core\";\n\nexport const userTable = pgTable(\"users\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n email: text(\"email\").notNull().unique(),\n name: text(\"name\").notNull(),\n password: text(\"password\"),\n image: text(\"image\"),\n recovery_code: bytea(\"recovery_code\").notNull(),\n emailVerifiedAt: timestamp(\"email_verified_at\", { precision: 3 }),\n createdAt: timestamp(\"created_at\", { precision: 3 }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { precision: 3 }),\n});\n\nexport const rolesTable = pgTable(\"roles\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n name: text(\"name\").notNull().unique(), // np. \"admin\", \"user\"\n description: text(\"description\"),\n});\n\nexport const permissionsTable = pgTable(\"permissions\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n name: text(\"name\").notNull().unique(), // np. \"blog:write\"\n description: text(\"description\"),\n});\n\nexport const usersToRolesTable = pgTable(\n \"users_to_roles\",\n {\n userId: text(\"user_id\")\n .notNull()\n .references(() => userTable.id, { onDelete: \"cascade\" }),\n roleId: text(\"role_id\")\n .notNull()\n .references(() => rolesTable.id, { onDelete: \"cascade\" }),\n },\n (t) => [{ pk: sql`PRIMARY KEY (${t.userId}, ${t.roleId})` }],\n);\n\nexport const usersToPermissionsTable = pgTable(\n \"users_to_permissions\",\n {\n userId: text(\"user_id\")\n .notNull()\n .references(() => userTable.id, { onDelete: \"cascade\" }),\n permissionId: text(\"permission_id\")\n .notNull()\n .references(() => permissionsTable.id, { onDelete: \"cascade\" }),\n },\n (t) => [{ pk: sql`PRIMARY KEY (${t.userId}, ${t.permissionId})` }],\n);\n\nexport const rolesToPermissionsTable = pgTable(\n \"roles_to_permissions\",\n {\n roleId: text(\"role_id\")\n .notNull()\n .references(() => rolesTable.id, { onDelete: \"cascade\" }),\n permissionId: text(\"permission_id\")\n .notNull()\n .references(() => permissionsTable.id, { onDelete: \"cascade\" }),\n },\n (t) => [{ pk: sql`PRIMARY KEY (${t.roleId}, ${t.permissionId})` }],\n);\n\nexport const sessionTable = pgTable(\"sessions\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n active_organization_id: text(\"active_organization_id\"),\n userId: text(\"user_id\")\n .notNull()\n .references(() => userTable.id, {\n onDelete: \"cascade\",\n onUpdate: \"cascade\",\n }),\n expiresAt: timestamp(\"expires_at\", { precision: 3 }).notNull(),\n createdAt: timestamp(\"created_at\", { precision: 3 }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { precision: 3 }),\n});\n\nexport const emailVerificationTable = pgTable(\"email_verification_requests\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n email: text(\"email\").notNull(),\n code: text(\"code\").notNull(),\n userId: text(\"user_id\")\n .notNull()\n .references(() => userTable.id, {\n onDelete: \"cascade\",\n onUpdate: \"cascade\",\n }),\n expiresAt: timestamp(\"expires_at\", { precision: 3 }).notNull(),\n createdAt: timestamp(\"created_at\", { precision: 3 }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { precision: 3 }),\n});\n\nexport const passwordResetSessionTable = pgTable(\"password_reset_sessions\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n email: text(\"email\").notNull(),\n code: text(\"code\").notNull(),\n emailVerified: boolean(\"emailVerified\").default(false),\n userId: text(\"user_id\")\n .notNull()\n .references(() => userTable.id, {\n onDelete: \"cascade\",\n onUpdate: \"cascade\",\n }),\n expiresAt: timestamp(\"expires_at\", { precision: 3 }).notNull(),\n createdAt: timestamp(\"created_at\", { precision: 3 }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { precision: 3 }),\n});\n\nexport const notificationTable = pgTable(\"notification\", {\n id: text(\"id\")\n .$defaultFn(() => crypto.randomUUID())\n .notNull()\n .primaryKey(),\n title: text(\"title\").notNull(),\n content: text(\"content\"),\n target: text(\"target\"),\n type: text(\"type\"),\n isRead: boolean(\"isRead\").notNull(),\n resourceId: text(\"resource_id\"),\n resourceType: text(\"resource_type\"),\n userId: text(\"user_id\")\n .notNull()\n .references(() => userTable.id, {\n onDelete: \"cascade\",\n onUpdate: \"cascade\",\n }),\n createdAt: timestamp(\"created_at\", { precision: 3 }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { precision: 3 }),\n});\n\nexport const systemModulesTable = pgTable(\"system_modules\", {\n id: text(\"id\").notNull().primaryKey(),\n enabled: boolean(\"enabled\").notNull().default(false),\n installed: boolean(\"installed\").notNull().default(false),\n deleted: boolean(\"deleted\").notNull().default(false),\n system: boolean(\"system\").notNull().default(false),\n config: text(\"config\"),\n lastStep: text(\"last_step\"), // Przechowuje aktualny etap (np. \"Syncing DB\")\n updatedAt: timestamp(\"updated_at\", { precision: 3 }).defaultNow(),\n});\n\nexport const relations = defineRelations(\n {\n user: userTable,\n emailVerification: emailVerificationTable,\n passwordResetSession: passwordResetSessionTable,\n session: sessionTable,\n notification: notificationTable,\n systemModulesTable: systemModulesTable,\n },\n (r) => ({\n user: {\n sessions: r.many.session({\n from: r.user.id,\n to: r.session.userId,\n }),\n emailVerification: r.many.emailVerification({\n from: r.user.id,\n to: r.emailVerification.userId,\n }),\n passwordResetSession: r.many.passwordResetSession({\n from: r.user.id,\n to: r.passwordResetSession.userId,\n }),\n },\n\n session: {\n user: r.one.user({\n from: r.session.userId,\n to: r.user.id,\n }),\n },\n\n emailVerification: {\n user: r.one.user({\n from: r.emailVerification.userId,\n to: r.user.id,\n }),\n },\n\n passwordResetSession: {\n user: r.one.user({\n from: r.passwordResetSession.userId,\n to: r.user.id,\n }),\n },\n }),\n);\n\nexport const coreSchema = {\n userTable,\n rolesTable,\n permissionsTable,\n usersToRolesTable,\n usersToPermissionsTable,\n rolesToPermissionsTable,\n sessionTable,\n emailVerificationTable,\n passwordResetSessionTable,\n notificationTable,\n systemModulesTable,\n};\n\nexport type DatabaseSchema = typeof relations;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/server/emails/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Sends an email with a verification link.
|
|
4
|
+
* @param email Recipient's email address.
|
|
5
|
+
* @param code Verification code.
|
|
6
|
+
*/
|
|
7
|
+
declare function sendVerifyEmail(email: string, code: string): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Sends an email with a password reset link.
|
|
10
|
+
* @param email Recipient's email address.
|
|
11
|
+
* @param code Password reset code.
|
|
12
|
+
*/
|
|
13
|
+
declare function sendResetPassword(email: string, code: string): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Sends an email with a recovery code.
|
|
16
|
+
* @param email Recipient's email address.
|
|
17
|
+
* @param recoveryCode Recovery code
|
|
18
|
+
*/
|
|
19
|
+
declare function sendRecoveryCode(email: string, recoveryCode: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Sends a 2FA code via email.
|
|
22
|
+
*/
|
|
23
|
+
declare function send2FACode(email: string, code: string): Promise<void>;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { send2FACode, sendRecoveryCode, sendResetPassword, sendVerifyEmail };
|
|
26
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/server/emails/index.ts"],"mappings":";;AAkBA;;;;iBAAsB,eAAA,CAAgB,KAAA,UAAe,IAAA,WAAY,OAAA;;;;;AAejE;iBAAsB,iBAAA,CAAkB,KAAA,UAAe,IAAA,WAAY,OAAA;;;;;;iBAe7C,gBAAA,CAAiB,KAAA,UAAe,YAAA,WAAoB,OAAA;;AAA1E;;iBAasB,WAAA,CAAY,KAAA,UAAe,IAAA,WAAY,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/server/emails/index.ts"],"sourcesContent":["\"use server\";\n\n// import nodemailer from \"nodemailer\";\n\n// Konfiguracja transportera SMTP\n// const transporter = nodemailer.createTransport({\n// service: \"gmail\",\n// auth: {\n// user: process.env.GOOGLE_SMTP_APP_USERNAME,\n// pass: process.env.GOOGLE_SMTP_APP_PASSWORD,\n// },\n// });\n\n/**\n * Sends an email with a verification link.\n * @param email Recipient's email address.\n * @param code Verification code.\n */\nexport async function sendVerifyEmail(email: string, code: string) {\n // const { t } = await getTranslation();\n // await transporter.sendMail({\n // from: `Winkly <${process.env.GOOGLE_SMTP_APP_USERNAME}>`,\n // to: email,\n // subject: t(\"Verify Email\"),\n // text: t(\"Verify your email address with your code: {{ code }}\", { code }),\n // });\n}\n\n/**\n * Sends an email with a password reset link.\n * @param email Recipient's email address.\n * @param code Password reset code.\n */\nexport async function sendResetPassword(email: string, code: string) {\n // const { t } = await getTranslation();\n // await transporter.sendMail({\n // from: `Winkly <${process.env.GOOGLE_SMTP_APP_USERNAME}>`,\n // to: email,\n // subject: t(\"Password Reset\"),\n // text: t(\"Verify password reset with code: {{ code }}\", { code }),\n // });\n}\n\n/**\n * Sends an email with a recovery code.\n * @param email Recipient's email address.\n * @param recoveryCode Recovery code\n */\nexport async function sendRecoveryCode(email: string, recoveryCode: string) {\n // const { t } = await getTranslation();\n // await transporter.sendMail({\n // from: `Winkly <${process.env.GOOGLE_SMTP_APP_USERNAME}>`,\n // to: email,\n // subject: t(\"Recovery Code\"),\n // text: t(\"Your recovery code is: {{ recoveryCode }}\", { recoveryCode }),\n // });\n}\n\n/**\n * Sends a 2FA code via email.\n */\nexport async function send2FACode(email: string, code: string) {\n // const { t } = await getTranslation();\n // await transporter.sendMail({\n // from: `Winkly <${process.env.GOOGLE_SMTP_APP_USERNAME}>`,\n // to: email,\n // subject: t(\"Your 2FA Code\"),\n // text: t(\n // \"Your verification code is: {{ code }}. It will expire in 10 minutes.\",\n // { code },\n // ),\n // });\n}\n"],"mappings":"aAkBA,eAAsB,EAAgB,EAAe,EAAc,EAenE,eAAsB,EAAkB,EAAe,EAAc,EAerE,eAAsB,EAAiB,EAAe,EAAsB,EAa5E,eAAsB,EAAY,EAAe,EAAc"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DatabaseSchema, coreSchema, emailVerificationTable, notificationTable, passwordResetSessionTable, permissionsTable, relations, rolesTable, rolesToPermissionsTable, sessionTable, systemModulesTable, userTable, usersToPermissionsTable, usersToRolesTable } from "./server/database/schema.mjs";
|
|
2
|
+
import { EventHandler, SystemEvent, UserPermission, UserRole } from "./core/types.mjs";
|
|
3
|
+
import { AuthResponse, AuthSession, FullUser, PasswordResetAuthSession, PasswordResetSession, Session, SessionFlags, User, UserSession } from "./core/auth/types.mjs";
|
|
4
|
+
import { ForgotPasswordInput, LoginInput, PasskeysSetupInput, RecoveryVerifyInput, RegisterInput, ResetPasswordInput, TOTPSetupInput, TOTPVerifyInput, VerifyEmailInput, forgotPasswordSchema, loginSchema, passkeysSetupSchema, recoveryCodeVerifySchema, registerSchema, resetPasswordSchema, totpSetupSchema, totpVerifySchema, verifyEmailSchema } from "./core/auth/validation.mjs";
|
|
5
|
+
import { eventBus } from "./core/event-bus.mjs";
|
|
6
|
+
import { CreateNotificationPayload, Notification, NotificationEvents } from "./core/notifications/types.mjs";
|
|
7
|
+
import { createEmailVerificationRequest, deleteEmailVerificationRequestCookie, deleteUserEmailVerificationRequest, getUserEmailVerificationRequest, getUserEmailVerificationRequestFromRequest, initEmailVerification, sendVerificationEmail, setEmailVerificationRequestCookie } from "./core/auth/email-verification.mjs";
|
|
8
|
+
import { augmentSession, augmentUser, registerIdentityAugmenter, registerPasswordResetSessionAugmenter, registerSessionAugmenter } from "./core/auth/augment.mjs";
|
|
9
|
+
import { checkSecurity, finalizeLogin, performFullUserAugmentation, registerAuthValidator, registerEmailVerificationValidator, registerPasswordResetValidator, registerSecurityRequirement, runEmailVerificationValidators, runPasswordResetValidators, signIn, signOut, signUp } from "./core/auth/logic.mjs";
|
|
10
|
+
import { createPasswordResetSession, deletePasswordResetSessionTokenCookie, getCurrentPasswordResetSession, invalidateUserPasswordResetSessions, sendPasswordResetEmail, setPasswordResetSessionAsEmailVerified, setPasswordResetSessionTokenCookie, validatePasswordResetSessionToken } from "./core/auth/password-reset.mjs";
|
|
11
|
+
import { assignPermissionToRole, assignPermissionToUser, assignRoleToUser, createPermission, createRole, deletePermission, deleteRole, getPermissions, getRoleById, getRolePermissions, getRoles, getUserRbacData, revokePermissionFromRole, revokePermissionFromUser, revokeRoleFromUser } from "./core/auth/rbac.mjs";
|
|
12
|
+
import { createSession, deleteSessionTokenCookie, generateSessionToken, getCurrentSession, getIPAddress, getUserSessions, invalidateOtherSessions, invalidateSession, invalidateUserSessions, sessionSignOut, setSessionTokenCookie, validateSessionToken } from "./core/auth/session.mjs";
|
|
13
|
+
import { generateRandomOTP, generateRandomRecoveryCode } from "./core/auth/utils/encode.mjs";
|
|
14
|
+
import { decrypt, decryptToString, encrypt, encryptString } from "./core/auth/utils/encryption.mjs";
|
|
15
|
+
import { ensureSystemInitialized } from "./core/bootstrap.mjs";
|
|
16
|
+
import { getKryoConfig, getModulesDir } from "./core/config.server.mjs";
|
|
17
|
+
import { IStorageProvider, StorageData, StorageError, StorageResult } from "./core/filesystem/types.mjs";
|
|
18
|
+
import { filesystemService } from "./core/filesystem/service.mjs";
|
|
19
|
+
import { createNotification, getUserNotifications, markAllNotificationsAsRead, markNotificationAsRead } from "./core/notifications/actions.mjs";
|
|
20
|
+
import { isSystemInstalled } from "./core/setup.mjs";
|
|
21
|
+
import { checkEmailAvailability, verifyEmailInput } from "./server/auth/email.mjs";
|
|
22
|
+
import { hashPassword, verifyPasswordHash, verifyPasswordStrength } from "./server/auth/password.mjs";
|
|
23
|
+
import { createOAuthUser, createUser, getUserById, getUserFromEmail, getUserPasswordHash, getUserRecoverCode, resetUserRecoveryCode, setUserAsEmailVerifiedIfEmailMatches, updateUserAwatar, updateUserEmailAndSetEmailAsVerified, updateUserName, updateUserPassword, verifyUsernameInput } from "./server/auth/user.mjs";
|
|
24
|
+
import { KryoDatabase, db, injectDb } from "./server/database/inject.mjs";
|
|
25
|
+
import { send2FACode, sendRecoveryCode, sendResetPassword, sendVerifyEmail } from "./server/emails/index.mjs";
|
|
26
|
+
export { AuthResponse, AuthSession, CreateNotificationPayload, DatabaseSchema, EventHandler, ForgotPasswordInput, FullUser, IStorageProvider, KryoDatabase, LoginInput, Notification, NotificationEvents, PasskeysSetupInput, PasswordResetAuthSession, PasswordResetSession, RecoveryVerifyInput, RegisterInput, ResetPasswordInput, Session, SessionFlags, StorageData, StorageError, StorageResult, SystemEvent, TOTPSetupInput, TOTPVerifyInput, User, UserPermission, UserRole, UserSession, VerifyEmailInput, assignPermissionToRole, assignPermissionToUser, assignRoleToUser, augmentSession, augmentUser, checkEmailAvailability, checkSecurity, coreSchema, createEmailVerificationRequest, createNotification, createOAuthUser, createPasswordResetSession, createPermission, createRole, createSession, createUser, db, decrypt, decryptToString, deleteEmailVerificationRequestCookie, deletePasswordResetSessionTokenCookie, deletePermission, deleteRole, deleteSessionTokenCookie, deleteUserEmailVerificationRequest, emailVerificationTable, encrypt, encryptString, ensureSystemInitialized, eventBus, filesystemService, finalizeLogin, forgotPasswordSchema, generateRandomOTP, generateRandomRecoveryCode, generateSessionToken, getCurrentPasswordResetSession, getCurrentSession, getIPAddress, getKryoConfig, getModulesDir, getPermissions, getRoleById, getRolePermissions, getRoles, getUserById, getUserEmailVerificationRequest, getUserEmailVerificationRequestFromRequest, getUserFromEmail, getUserNotifications, getUserPasswordHash, getUserRbacData, getUserRecoverCode, getUserSessions, hashPassword, initEmailVerification, injectDb, invalidateOtherSessions, invalidateSession, invalidateUserPasswordResetSessions, invalidateUserSessions, isSystemInstalled, loginSchema, markAllNotificationsAsRead, markNotificationAsRead, notificationTable, passkeysSetupSchema, passwordResetSessionTable, performFullUserAugmentation, permissionsTable, recoveryCodeVerifySchema, registerAuthValidator, registerEmailVerificationValidator, registerIdentityAugmenter, registerPasswordResetSessionAugmenter, registerPasswordResetValidator, registerSchema, registerSecurityRequirement, registerSessionAugmenter, relations, resetPasswordSchema, resetUserRecoveryCode, revokePermissionFromRole, revokePermissionFromUser, revokeRoleFromUser, rolesTable, rolesToPermissionsTable, runEmailVerificationValidators, runPasswordResetValidators, send2FACode, sendPasswordResetEmail, sendRecoveryCode, sendResetPassword, sendVerificationEmail, sendVerifyEmail, sessionSignOut, sessionTable, setEmailVerificationRequestCookie, setPasswordResetSessionAsEmailVerified, setPasswordResetSessionTokenCookie, setSessionTokenCookie, setUserAsEmailVerifiedIfEmailMatches, signIn, signOut, signUp, systemModulesTable, totpSetupSchema, totpVerifySchema, updateUserAwatar, updateUserEmailAndSetEmailAsVerified, updateUserName, updateUserPassword, userTable, usersToPermissionsTable, usersToRolesTable, validatePasswordResetSessionToken, validateSessionToken, verifyEmailInput, verifyEmailSchema, verifyPasswordHash, verifyPasswordStrength, verifyUsernameInput };
|
package/dist/server.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{forgotPasswordSchema as e,loginSchema as t,passkeysSetupSchema as n,recoveryCodeVerifySchema as r,registerSchema as i,resetPasswordSchema as a,totpSetupSchema as o,totpVerifySchema as s,verifyEmailSchema as c}from"./core/auth/validation.mjs";import{eventBus as l}from"./core/event-bus.mjs";import{db as u,injectDb as d}from"./server/database/inject.mjs";import{coreSchema as f,emailVerificationTable as p,notificationTable as m,passwordResetSessionTable as h,permissionsTable as g,relations as _,rolesTable as v,rolesToPermissionsTable as y,sessionTable as b,systemModulesTable as x,userTable as S,usersToPermissionsTable as C,usersToRolesTable as w}from"./server/database/schema.mjs";import{augmentSession as T,augmentUser as E,registerIdentityAugmenter as D,registerPasswordResetSessionAugmenter as O,registerSessionAugmenter as k}from"./core/auth/augment.mjs";import{hashPassword as A,verifyPasswordHash as j,verifyPasswordStrength as M}from"./server/auth/password.mjs";import{generateRandomOTP as N,generateRandomRecoveryCode as P}from"./core/auth/utils/encode.mjs";import{decrypt as F,decryptToString as I,encrypt as L,encryptString as R}from"./core/auth/utils/encryption.mjs";import{send2FACode as z,sendRecoveryCode as B,sendResetPassword as V,sendVerifyEmail as H}from"./server/emails/index.mjs";import{createOAuthUser as U,createUser as W,getUserById as G,getUserFromEmail as K,getUserPasswordHash as q,getUserRecoverCode as J,resetUserRecoveryCode as Y,setUserAsEmailVerifiedIfEmailMatches as X,updateUserAwatar as Z,updateUserEmailAndSetEmailAsVerified as Q,updateUserName as $,updateUserPassword as ee,verifyUsernameInput as te}from"./server/auth/user.mjs";import{createEmailVerificationRequest as ne,deleteEmailVerificationRequestCookie as re,deleteUserEmailVerificationRequest as ie,getUserEmailVerificationRequest as ae,getUserEmailVerificationRequestFromRequest as oe,initEmailVerification as se,sendVerificationEmail as ce,setEmailVerificationRequestCookie as le}from"./core/auth/email-verification.mjs";import{checkSecurity as ue,finalizeLogin as de,performFullUserAugmentation as fe,registerAuthValidator as pe,registerEmailVerificationValidator as me,registerPasswordResetValidator as he,registerSecurityRequirement as ge,runEmailVerificationValidators as _e,runPasswordResetValidators as ve,signIn as ye,signOut as be,signUp as xe}from"./core/auth/logic.mjs";import{createSession as Se,deleteSessionTokenCookie as Ce,generateSessionToken as we,getCurrentSession as Te,getIPAddress as Ee,getUserSessions as De,invalidateOtherSessions as Oe,invalidateSession as ke,invalidateUserSessions as Ae,sessionSignOut as je,setSessionTokenCookie as Me,validateSessionToken as Ne}from"./core/auth/session.mjs";import{createNotification as Pe,getUserNotifications as Fe,markAllNotificationsAsRead as Ie,markNotificationAsRead as Le}from"./core/notifications/actions.mjs";import{createPasswordResetSession as Re,deletePasswordResetSessionTokenCookie as ze,getCurrentPasswordResetSession as Be,invalidateUserPasswordResetSessions as Ve,sendPasswordResetEmail as He,setPasswordResetSessionAsEmailVerified as Ue,setPasswordResetSessionTokenCookie as We,validatePasswordResetSessionToken as Ge}from"./core/auth/password-reset.mjs";import{assignPermissionToRole as Ke,assignPermissionToUser as qe,assignRoleToUser as Je,createPermission as Ye,createRole as Xe,deletePermission as Ze,deleteRole as Qe,getPermissions as $e,getRoleById as et,getRolePermissions as tt,getRoles as nt,getUserRbacData as rt,revokePermissionFromRole as it,revokePermissionFromUser as at,revokeRoleFromUser as ot}from"./core/auth/rbac.mjs";import{filesystemService as st}from"./core/filesystem/service.mjs";import{isSystemInstalled as ct}from"./core/setup.mjs";import{ensureSystemInitialized as lt}from"./core/bootstrap.mjs";import{getKryoConfig as ut,getModulesDir as dt}from"./core/config.server.mjs";import{checkEmailAvailability as ft,verifyEmailInput as pt}from"./server/auth/email.mjs";export{Ke as assignPermissionToRole,qe as assignPermissionToUser,Je as assignRoleToUser,T as augmentSession,E as augmentUser,ft as checkEmailAvailability,ue as checkSecurity,f as coreSchema,ne as createEmailVerificationRequest,Pe as createNotification,U as createOAuthUser,Re as createPasswordResetSession,Ye as createPermission,Xe as createRole,Se as createSession,W as createUser,u as db,F as decrypt,I as decryptToString,re as deleteEmailVerificationRequestCookie,ze as deletePasswordResetSessionTokenCookie,Ze as deletePermission,Qe as deleteRole,Ce as deleteSessionTokenCookie,ie as deleteUserEmailVerificationRequest,p as emailVerificationTable,L as encrypt,R as encryptString,lt as ensureSystemInitialized,l as eventBus,st as filesystemService,de as finalizeLogin,e as forgotPasswordSchema,N as generateRandomOTP,P as generateRandomRecoveryCode,we as generateSessionToken,Be as getCurrentPasswordResetSession,Te as getCurrentSession,Ee as getIPAddress,ut as getKryoConfig,dt as getModulesDir,$e as getPermissions,et as getRoleById,tt as getRolePermissions,nt as getRoles,G as getUserById,ae as getUserEmailVerificationRequest,oe as getUserEmailVerificationRequestFromRequest,K as getUserFromEmail,Fe as getUserNotifications,q as getUserPasswordHash,rt as getUserRbacData,J as getUserRecoverCode,De as getUserSessions,A as hashPassword,se as initEmailVerification,d as injectDb,Oe as invalidateOtherSessions,ke as invalidateSession,Ve as invalidateUserPasswordResetSessions,Ae as invalidateUserSessions,ct as isSystemInstalled,t as loginSchema,Ie as markAllNotificationsAsRead,Le as markNotificationAsRead,m as notificationTable,n as passkeysSetupSchema,h as passwordResetSessionTable,fe as performFullUserAugmentation,g as permissionsTable,r as recoveryCodeVerifySchema,pe as registerAuthValidator,me as registerEmailVerificationValidator,D as registerIdentityAugmenter,O as registerPasswordResetSessionAugmenter,he as registerPasswordResetValidator,i as registerSchema,ge as registerSecurityRequirement,k as registerSessionAugmenter,_ as relations,a as resetPasswordSchema,Y as resetUserRecoveryCode,it as revokePermissionFromRole,at as revokePermissionFromUser,ot as revokeRoleFromUser,v as rolesTable,y as rolesToPermissionsTable,_e as runEmailVerificationValidators,ve as runPasswordResetValidators,z as send2FACode,He as sendPasswordResetEmail,B as sendRecoveryCode,V as sendResetPassword,ce as sendVerificationEmail,H as sendVerifyEmail,je as sessionSignOut,b as sessionTable,le as setEmailVerificationRequestCookie,Ue as setPasswordResetSessionAsEmailVerified,We as setPasswordResetSessionTokenCookie,Me as setSessionTokenCookie,X as setUserAsEmailVerifiedIfEmailMatches,ye as signIn,be as signOut,xe as signUp,x as systemModulesTable,o as totpSetupSchema,s as totpVerifySchema,Z as updateUserAwatar,Q as updateUserEmailAndSetEmailAsVerified,$ as updateUserName,ee as updateUserPassword,S as userTable,C as usersToPermissionsTable,w as usersToRolesTable,Ge as validatePasswordResetSessionToken,Ne as validateSessionToken,pt as verifyEmailInput,c as verifyEmailSchema,j as verifyPasswordHash,M as verifyPasswordStrength,te as verifyUsernameInput};
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arch-cadre/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Core logic for Kryo framework",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
-
"module": "./dist/index.js",
|
|
8
7
|
"exports": {
|
|
9
|
-
".": "./dist/index.
|
|
10
|
-
"./server": "./dist/server.
|
|
8
|
+
".": "./dist/index.mjs",
|
|
9
|
+
"./server": "./dist/server.mjs",
|
|
11
10
|
"./package.json": "./package.json"
|
|
12
11
|
},
|
|
13
12
|
"files": [
|
|
@@ -21,7 +20,7 @@
|
|
|
21
20
|
"dev:unbuild": "unbuild --stub",
|
|
22
21
|
"build:unbuild": "unbuild",
|
|
23
22
|
"dev": "tsdown --watch",
|
|
24
|
-
"build": "
|
|
23
|
+
"build": "tsdown"
|
|
25
24
|
},
|
|
26
25
|
"dependencies": {
|
|
27
26
|
"@oslojs/binary": "^1.0.0",
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { FullUser, PasswordResetSession, Session, User } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* REGISTRIES FOR MODULAR EXTENSIONS
|
|
4
|
-
*/
|
|
5
|
-
type IdentityAugmenter = (user: User) => Promise<Partial<FullUser>>;
|
|
6
|
-
type SessionAugmenter = (session: Session) => Promise<Partial<Session>>;
|
|
7
|
-
type PasswordResetSessionAugmenter = (session: PasswordResetSession) => Promise<Partial<PasswordResetSession>>;
|
|
8
|
-
export declare function registerIdentityAugmenter(augmenter: IdentityAugmenter): void;
|
|
9
|
-
export declare function registerSessionAugmenter(augmenter: SessionAugmenter): void;
|
|
10
|
-
export declare function registerPasswordResetSessionAugmenter(augmenter: PasswordResetSessionAugmenter): void;
|
|
11
|
-
/**
|
|
12
|
-
* EXECUTION FUNCTIONS
|
|
13
|
-
*/
|
|
14
|
-
export declare function augmentUser(user: User, coreRbacData?: Record<string, any>): Promise<FullUser>;
|
|
15
|
-
export declare function augmentSession(session: Session): Promise<Session>;
|
|
16
|
-
export declare function augmentPasswordResetSession(session: PasswordResetSession): Promise<PasswordResetSession>;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=augment.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"augment.d.ts","sourceRoot":"","sources":["../../../src/core/auth/augment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7E;;GAEG;AAEH,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,KAAK,6BAA6B,GAAG,CACnC,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAuB5C,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,iBAAiB,QAErE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,QAEnE;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,6BAA6B,QAGzC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjC,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAO/B"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a, _b, _c;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.registerIdentityAugmenter = registerIdentityAugmenter;
|
|
5
|
-
exports.registerSessionAugmenter = registerSessionAugmenter;
|
|
6
|
-
exports.registerPasswordResetSessionAugmenter = registerPasswordResetSessionAugmenter;
|
|
7
|
-
exports.augmentUser = augmentUser;
|
|
8
|
-
exports.augmentSession = augmentSession;
|
|
9
|
-
exports.augmentPasswordResetSession = augmentPasswordResetSession;
|
|
10
|
-
const globalForAugment = globalThis;
|
|
11
|
-
const identityAugmenters = (_a = globalForAugment.__KRYO_IDENTITY_AUGMENTERS__) !== null && _a !== void 0 ? _a : new Set();
|
|
12
|
-
const sessionAugmenters = (_b = globalForAugment.__KRYO_SESSION_AUGMENTERS__) !== null && _b !== void 0 ? _b : new Set();
|
|
13
|
-
const passwordResetSessionAugmenters = (_c = globalForAugment.__KRYO_PASSWORD_RESET_SESSION_AUGMENTERS__) !== null && _c !== void 0 ? _c : new Set();
|
|
14
|
-
globalForAugment.__KRYO_IDENTITY_AUGMENTERS__ = identityAugmenters;
|
|
15
|
-
globalForAugment.__KRYO_SESSION_AUGMENTERS__ = sessionAugmenters;
|
|
16
|
-
globalForAugment.__KRYO_PASSWORD_RESET_SESSION_AUGMENTERS__ =
|
|
17
|
-
passwordResetSessionAugmenters;
|
|
18
|
-
function registerIdentityAugmenter(augmenter) {
|
|
19
|
-
identityAugmenters.add(augmenter);
|
|
20
|
-
}
|
|
21
|
-
function registerSessionAugmenter(augmenter) {
|
|
22
|
-
sessionAugmenters.add(augmenter);
|
|
23
|
-
}
|
|
24
|
-
function registerPasswordResetSessionAugmenter(augmenter) {
|
|
25
|
-
passwordResetSessionAugmenters.add(augmenter);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* EXECUTION FUNCTIONS
|
|
29
|
-
*/
|
|
30
|
-
async function augmentUser(user, coreRbacData) {
|
|
31
|
-
let augmentedData = coreRbacData || {};
|
|
32
|
-
for (const augmenter of identityAugmenters) {
|
|
33
|
-
const data = await augmenter(user);
|
|
34
|
-
augmentedData = { ...augmentedData, ...data };
|
|
35
|
-
}
|
|
36
|
-
return { ...user, ...augmentedData };
|
|
37
|
-
}
|
|
38
|
-
async function augmentSession(session) {
|
|
39
|
-
let augmentedData = {};
|
|
40
|
-
for (const augmenter of sessionAugmenters) {
|
|
41
|
-
const data = await augmenter(session);
|
|
42
|
-
augmentedData = { ...augmentedData, ...data };
|
|
43
|
-
}
|
|
44
|
-
return { ...session, ...augmentedData };
|
|
45
|
-
}
|
|
46
|
-
async function augmentPasswordResetSession(session) {
|
|
47
|
-
let augmentedData = {};
|
|
48
|
-
for (const augmenter of passwordResetSessionAugmenters) {
|
|
49
|
-
const data = await augmenter(session);
|
|
50
|
-
augmentedData = { ...augmentedData, ...data };
|
|
51
|
-
}
|
|
52
|
-
return { ...session, ...augmentedData };
|
|
53
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { emailVerificationTable } from "../../server/database/schema";
|
|
2
|
-
/**
|
|
3
|
-
* Register Email Verification as a Core Security Requirement.
|
|
4
|
-
*/
|
|
5
|
-
export declare function initEmailVerification(): Promise<void>;
|
|
6
|
-
/**
|
|
7
|
-
* Retrieves a specific email verification request for a user.
|
|
8
|
-
*/
|
|
9
|
-
export declare function getUserEmailVerificationRequest(userId: string, id: string): Promise<{
|
|
10
|
-
id: string;
|
|
11
|
-
email: string;
|
|
12
|
-
code: string;
|
|
13
|
-
userId: string;
|
|
14
|
-
expiresAt: Date;
|
|
15
|
-
createdAt: Date;
|
|
16
|
-
updatedAt: Date | null;
|
|
17
|
-
}>;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a new email verification request, deleting any existing one for the user.
|
|
20
|
-
*/
|
|
21
|
-
export declare function createEmailVerificationRequest(userId: string, email: string): Promise<{
|
|
22
|
-
id: string;
|
|
23
|
-
email: string;
|
|
24
|
-
createdAt: Date;
|
|
25
|
-
updatedAt: Date | null;
|
|
26
|
-
userId: string;
|
|
27
|
-
expiresAt: Date;
|
|
28
|
-
code: string;
|
|
29
|
-
}>;
|
|
30
|
-
/**
|
|
31
|
-
* Deletes all email verification requests for a user.
|
|
32
|
-
*/
|
|
33
|
-
export declare function deleteUserEmailVerificationRequest(userId: string): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Sends a verification email with the OTP code.
|
|
36
|
-
*/
|
|
37
|
-
export declare function sendVerificationEmail(email: string, code: string): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Sets the email verification request ID in a cookie.
|
|
40
|
-
*/
|
|
41
|
-
export declare function setEmailVerificationRequestCookie(request: typeof emailVerificationTable.$inferSelect): Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Removes the email verification request cookie.
|
|
44
|
-
*/
|
|
45
|
-
export declare function deleteEmailVerificationRequestCookie(): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Retrieves the current email verification request based on session and cookie.
|
|
48
|
-
*/
|
|
49
|
-
export declare function getUserEmailVerificationRequestFromRequest(): Promise<{
|
|
50
|
-
id: string;
|
|
51
|
-
email: string;
|
|
52
|
-
code: string;
|
|
53
|
-
userId: string;
|
|
54
|
-
expiresAt: Date;
|
|
55
|
-
createdAt: Date;
|
|
56
|
-
updatedAt: Date | null;
|
|
57
|
-
} | null>;
|
|
58
|
-
//# sourceMappingURL=email-verification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../../src/core/auth/email-verification.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAMtE;;GAEG;AACH,wBAAsB,qBAAqB,kBAU1C;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM;;;;;;;;GAaX;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;;;;;;;;GAiBd;AAED;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,OAAO,sBAAsB,CAAC,YAAY,GAClD,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAsB,0CAA0C;;;;;;;;UAqB/D"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use server";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.initEmailVerification = initEmailVerification;
|
|
5
|
-
exports.getUserEmailVerificationRequest = getUserEmailVerificationRequest;
|
|
6
|
-
exports.createEmailVerificationRequest = createEmailVerificationRequest;
|
|
7
|
-
exports.deleteUserEmailVerificationRequest = deleteUserEmailVerificationRequest;
|
|
8
|
-
exports.sendVerificationEmail = sendVerificationEmail;
|
|
9
|
-
exports.setEmailVerificationRequestCookie = setEmailVerificationRequestCookie;
|
|
10
|
-
exports.deleteEmailVerificationRequestCookie = deleteEmailVerificationRequestCookie;
|
|
11
|
-
exports.getUserEmailVerificationRequestFromRequest = getUserEmailVerificationRequestFromRequest;
|
|
12
|
-
const date_fns_1 = require("date-fns");
|
|
13
|
-
const drizzle_orm_1 = require("drizzle-orm");
|
|
14
|
-
const headers_1 = require("next/headers");
|
|
15
|
-
const inject_1 = require("../../server/database/inject");
|
|
16
|
-
const schema_1 = require("../../server/database/schema");
|
|
17
|
-
const index_1 = require("../../server/emails/index");
|
|
18
|
-
const logic_1 = require("./logic");
|
|
19
|
-
const session_1 = require("./session");
|
|
20
|
-
const encode_1 = require("./utils/encode");
|
|
21
|
-
/**
|
|
22
|
-
* Register Email Verification as a Core Security Requirement.
|
|
23
|
-
*/
|
|
24
|
-
async function initEmailVerification() {
|
|
25
|
-
(0, logic_1.registerSecurityRequirement)(async (_session, user) => {
|
|
26
|
-
if (!user.emailVerifiedAt) {
|
|
27
|
-
return {
|
|
28
|
-
satisfied: false,
|
|
29
|
-
redirect: "/verify-email?unverified",
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
return { satisfied: true };
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Retrieves a specific email verification request for a user.
|
|
37
|
-
*/
|
|
38
|
-
async function getUserEmailVerificationRequest(userId, id) {
|
|
39
|
-
const [session] = await inject_1.db
|
|
40
|
-
.select()
|
|
41
|
-
.from(schema_1.emailVerificationTable)
|
|
42
|
-
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.emailVerificationTable.id, id), (0, drizzle_orm_1.eq)(schema_1.emailVerificationTable.userId, userId)));
|
|
43
|
-
return session;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Creates a new email verification request, deleting any existing one for the user.
|
|
47
|
-
*/
|
|
48
|
-
async function createEmailVerificationRequest(userId, email) {
|
|
49
|
-
await deleteUserEmailVerificationRequest(userId);
|
|
50
|
-
const code = (0, encode_1.generateRandomOTP)();
|
|
51
|
-
const [verificationRequest] = await inject_1.db
|
|
52
|
-
.insert(schema_1.emailVerificationTable)
|
|
53
|
-
.values({
|
|
54
|
-
userId,
|
|
55
|
-
code,
|
|
56
|
-
email,
|
|
57
|
-
expiresAt: new Date((0, date_fns_1.addHours)(new Date(), 1)),
|
|
58
|
-
})
|
|
59
|
-
.returning();
|
|
60
|
-
return verificationRequest;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Deletes all email verification requests for a user.
|
|
64
|
-
*/
|
|
65
|
-
async function deleteUserEmailVerificationRequest(userId) {
|
|
66
|
-
await inject_1.db
|
|
67
|
-
.delete(schema_1.emailVerificationTable)
|
|
68
|
-
.where((0, drizzle_orm_1.eq)(schema_1.emailVerificationTable.userId, userId));
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Sends a verification email with the OTP code.
|
|
72
|
-
*/
|
|
73
|
-
async function sendVerificationEmail(email, code) {
|
|
74
|
-
await (0, index_1.sendVerifyEmail)(email, code);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Sets the email verification request ID in a cookie.
|
|
78
|
-
*/
|
|
79
|
-
async function setEmailVerificationRequestCookie(request) {
|
|
80
|
-
const cookieStore = await (0, headers_1.cookies)();
|
|
81
|
-
cookieStore.set("email_verification", request.id, {
|
|
82
|
-
httpOnly: true,
|
|
83
|
-
path: "/",
|
|
84
|
-
secure: process.env.NODE_ENV === "production",
|
|
85
|
-
sameSite: "lax",
|
|
86
|
-
expires: request.expiresAt,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Removes the email verification request cookie.
|
|
91
|
-
*/
|
|
92
|
-
async function deleteEmailVerificationRequestCookie() {
|
|
93
|
-
const cookieStore = await (0, headers_1.cookies)();
|
|
94
|
-
cookieStore.delete("email_verification");
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Retrieves the current email verification request based on session and cookie.
|
|
98
|
-
*/
|
|
99
|
-
async function getUserEmailVerificationRequestFromRequest() {
|
|
100
|
-
var _a, _b;
|
|
101
|
-
const { user } = await (0, session_1.getCurrentSession)();
|
|
102
|
-
if (!user) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
const cookieStore = await (0, headers_1.cookies)();
|
|
106
|
-
const id = (_b = (_a = cookieStore.get("email_verification")) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
107
|
-
if (!id) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
const request = await getUserEmailVerificationRequest(user.id, id);
|
|
111
|
-
if (!request) {
|
|
112
|
-
await deleteEmailVerificationRequestCookie();
|
|
113
|
-
}
|
|
114
|
-
return request;
|
|
115
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { Session, User } from "./types";
|
|
2
|
-
export type AuthEventPayloads = {
|
|
3
|
-
/**
|
|
4
|
-
* Emitted after password/base credentials are verified,
|
|
5
|
-
* but BEFORE the final session is created.
|
|
6
|
-
* Listeners can return a "veto" to require additional factors.
|
|
7
|
-
*/
|
|
8
|
-
"auth:validate-factors": {
|
|
9
|
-
userId: string;
|
|
10
|
-
email: string;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Emitted after a full session is successfully created.
|
|
14
|
-
*/
|
|
15
|
-
"auth:session-created": {
|
|
16
|
-
session: Session;
|
|
17
|
-
user: User;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Emitted after a user signs out.
|
|
21
|
-
*/
|
|
22
|
-
"auth:signed-out": {
|
|
23
|
-
userId: string;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Emitted when a password reset is requested.
|
|
27
|
-
*/
|
|
28
|
-
"auth:password-reset:requested": {
|
|
29
|
-
userId: string;
|
|
30
|
-
email: string;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Emitted when a password has been successfully reset.
|
|
34
|
-
*/
|
|
35
|
-
"auth:password-reset:completed": {
|
|
36
|
-
userId: string;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Emitted when a verification email is sent.
|
|
40
|
-
*/
|
|
41
|
-
"auth:verification-requested": {
|
|
42
|
-
userId: string;
|
|
43
|
-
email: string;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Emitted when a user successfully verifies their email.
|
|
47
|
-
*/
|
|
48
|
-
"auth:email-verified": {
|
|
49
|
-
userId: string;
|
|
50
|
-
email: string;
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/core/auth/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,uBAAuB,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,sBAAsB,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;IAEF;;OAEG;IACH,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,+BAA+B,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,+BAA+B,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,6BAA6B,EAAE;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,qBAAqB,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC"}
|
package/dist/core/auth/events.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { augmentSession, augmentUser, registerIdentityAugmenter, registerPasswordResetSessionAugmenter, registerSessionAugmenter } from "./augment";
|
|
2
|
-
import type { AuthResponse, FullUser, Session, SessionFlags, User, UserPermission, UserRole } from "./types";
|
|
3
|
-
import { type LoginInput, type RegisterInput } from "./validation";
|
|
4
|
-
/**
|
|
5
|
-
* Registry for login validators (e.g. 2FA module)
|
|
6
|
-
*/
|
|
7
|
-
type AuthValidator = (userId: string) => Promise<AuthResponse | null>;
|
|
8
|
-
/**
|
|
9
|
-
* Registry for Security Requirements (e.g. checking if 2FA is needed for a session)
|
|
10
|
-
*/
|
|
11
|
-
type SecurityRequirement = (session: Session, user: FullUser) => Promise<{
|
|
12
|
-
satisfied: boolean;
|
|
13
|
-
redirect?: string;
|
|
14
|
-
} | null>;
|
|
15
|
-
/**
|
|
16
|
-
* Registry for password reset validators (e.g. 2FA module requiring check during reset)
|
|
17
|
-
*/
|
|
18
|
-
type PasswordResetValidator = (userId: string) => Promise<AuthResponse | null>;
|
|
19
|
-
/**
|
|
20
|
-
* Registry for email verification validators
|
|
21
|
-
*/
|
|
22
|
-
type EmailVerificationValidator = (userId: string) => Promise<AuthResponse | null>;
|
|
23
|
-
export declare function registerAuthValidator(validator: AuthValidator): Promise<void>;
|
|
24
|
-
export declare function registerPasswordResetValidator(validator: PasswordResetValidator): Promise<void>;
|
|
25
|
-
export declare function registerEmailVerificationValidator(validator: EmailVerificationValidator): Promise<void>;
|
|
26
|
-
export { registerIdentityAugmenter, registerSessionAugmenter, registerPasswordResetSessionAugmenter, augmentUser, augmentSession, };
|
|
27
|
-
export declare function registerSecurityRequirement(requirement: SecurityRequirement): Promise<void>;
|
|
28
|
-
export declare function runPasswordResetValidators(userId: string): Promise<AuthResponse | null>;
|
|
29
|
-
export declare function runEmailVerificationValidators(userId: string): Promise<AuthResponse | null>;
|
|
30
|
-
/**
|
|
31
|
-
* Augments a base user with data from all registered modules.
|
|
32
|
-
* This is now just a wrapper that includes core RBAC data.
|
|
33
|
-
*/
|
|
34
|
-
export declare function performFullUserAugmentation(user: User): Promise<FullUser>;
|
|
35
|
-
/**
|
|
36
|
-
* Checks if the current session satisfies all registered security requirements.
|
|
37
|
-
*/
|
|
38
|
-
export declare function checkSecurity(session: Session, user: FullUser, requiredRoles?: UserRole[], requiredPermissions?: UserPermission[], fallbackRedirect?: string): Promise<{
|
|
39
|
-
satisfied: boolean;
|
|
40
|
-
redirect: string | undefined;
|
|
41
|
-
} | {
|
|
42
|
-
satisfied: boolean;
|
|
43
|
-
redirect?: undefined;
|
|
44
|
-
}>;
|
|
45
|
-
/**
|
|
46
|
-
* Sign In Logic
|
|
47
|
-
*/
|
|
48
|
-
export declare function signIn(data: LoginInput): Promise<AuthResponse>;
|
|
49
|
-
/**
|
|
50
|
-
* Sign Up Logic
|
|
51
|
-
*/
|
|
52
|
-
export declare function signUp(data: RegisterInput): Promise<{
|
|
53
|
-
session: {
|
|
54
|
-
[x: string]: any;
|
|
55
|
-
id: string;
|
|
56
|
-
createdAt: Date;
|
|
57
|
-
updatedAt: Date | null;
|
|
58
|
-
userId: string;
|
|
59
|
-
active_organization_id: string | null;
|
|
60
|
-
expiresAt: Date;
|
|
61
|
-
};
|
|
62
|
-
user: {
|
|
63
|
-
[x: string]: any;
|
|
64
|
-
id: string;
|
|
65
|
-
email: string;
|
|
66
|
-
name: string;
|
|
67
|
-
password: string | null;
|
|
68
|
-
image: string | null;
|
|
69
|
-
recovery_code: Buffer<ArrayBufferLike>;
|
|
70
|
-
emailVerifiedAt: Date | null;
|
|
71
|
-
createdAt: Date;
|
|
72
|
-
updatedAt: Date | null;
|
|
73
|
-
roles: UserRole[];
|
|
74
|
-
permissions: UserPermission[];
|
|
75
|
-
};
|
|
76
|
-
}>;
|
|
77
|
-
/**
|
|
78
|
-
* Finalizes login after a challenge
|
|
79
|
-
*/
|
|
80
|
-
export declare function finalizeLogin(userId: string, flags: SessionFlags): Promise<{
|
|
81
|
-
session: {
|
|
82
|
-
[x: string]: any;
|
|
83
|
-
id: string;
|
|
84
|
-
createdAt: Date;
|
|
85
|
-
updatedAt: Date | null;
|
|
86
|
-
userId: string;
|
|
87
|
-
active_organization_id: string | null;
|
|
88
|
-
expiresAt: Date;
|
|
89
|
-
} | null;
|
|
90
|
-
user: {
|
|
91
|
-
id: string;
|
|
92
|
-
email: string;
|
|
93
|
-
name: string;
|
|
94
|
-
password: string | null;
|
|
95
|
-
image: string | null;
|
|
96
|
-
recovery_code: Buffer<ArrayBufferLike>;
|
|
97
|
-
emailVerifiedAt: Date | null;
|
|
98
|
-
createdAt: Date;
|
|
99
|
-
updatedAt: Date | null;
|
|
100
|
-
} | null;
|
|
101
|
-
}>;
|
|
102
|
-
/**
|
|
103
|
-
* Sign Out
|
|
104
|
-
*/
|
|
105
|
-
export declare function signOut(): Promise<void>;
|
|
106
|
-
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../src/core/auth/logic.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,cAAc,EACd,WAAW,EACX,yBAAyB,EACzB,qCAAqC,EACrC,wBAAwB,EACzB,MAAM,WAAW,CAAC;AAcnB,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AA6DtB;;GAEG;AACH,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAEtE;;GAEG;AACH,KAAK,mBAAmB,GAAG,CACzB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,KACX,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAE/D;;GAEG;AACH,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAE/E;;GAEG;AACH,KAAK,0BAA0B,GAAG,CAChC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AA6BlC,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,aAAa,iBAEnE;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,sBAAsB,iBAGlC;AAED,wBAAsB,kCAAkC,CACtD,SAAS,EAAE,0BAA0B,iBAGtC;AAED,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,qCAAqC,EACrC,WAAW,EACX,cAAc,GACf,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,mBAAmB,iBAGjC;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAM9B;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAM9B;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,EACd,aAAa,CAAC,EAAE,QAAQ,EAAE,EAC1B,mBAAmB,CAAC,EAAE,cAAc,EAAE,EACtC,gBAAgB,CAAC,EAAE,MAAM;;;;;;GA0D1B;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAgCpE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;GAmC/C;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;GAetE;AAED;;GAEG;AACH,wBAAsB,OAAO,kBAS5B"}
|