From 512b041929526c90ff96cf8b6f747f9353aa3979 Mon Sep 17 00:00:00 2001 From: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:19:30 +0800 Subject: [PATCH] Feat(auth): Rename authentication to auth (#6229) **What** - rename `authenticationModule` -> `authModule` --- packages/{authentication => auth}/.gitignore | 0 .../{authentication => auth}/CHANGELOG.md | 2 +- packages/auth/README.md | 3 + .../__fixtures__/auth-provider/index.ts | 0 .../__fixtures__/auth-user/index.ts | 0 .../services/auth-provider/index.spec.ts | 0 .../services/auth-user/index.spec.ts | 0 .../services/module/auth-provider.spec.ts | 12 ++-- .../services/module/auth-user.spec.ts | 15 ++-- .../services/module/providers.spec.ts | 22 +++--- .../providers/username-password.spec.ts | 20 +++--- packages/auth/integration-tests/setup-env.js | 6 ++ .../integration-tests/setup.js | 0 .../integration-tests/utils/config.ts | 2 +- .../integration-tests/utils/database.ts | 6 +- .../utils/get-init-module-config.ts | 10 +-- .../integration-tests/utils/index.ts | 0 .../{authentication => auth}/jest.config.js | 0 .../mikro-orm.config.dev.ts | 2 +- .../{authentication => auth}/package.json | 8 +-- .../{authentication => auth}/src/index.ts | 0 .../src/initialize/index.ts | 12 ++-- .../src/joiner-config.ts | 8 +-- .../src/loaders/connection.ts | 10 +-- .../src/loaders/container.ts | 0 .../src/loaders/index.ts | 0 packages/auth/src/loaders/providers.ts | 71 +++++++++++++++++++ .../.snapshot-medusa-authentication.json | 0 .../src/migrations/Migration20240122041959.ts | 0 .../src/models/auth-provider.ts | 0 .../src/models/auth-user.ts | 0 .../src/models/index.ts | 0 .../src/module-definition.ts | 13 ++-- .../src/providers/email-password.ts} | 14 ++-- .../src/providers/google.ts | 10 +-- packages/auth/src/providers/index.ts | 2 + .../src/repositories/index.ts | 0 .../src/scripts/bin/run-seed.ts | 2 +- .../src/scripts/seed.ts | 14 ++-- .../src/services/__tests__/index.spec.ts | 0 .../src/services/auth-module.ts} | 54 +++++++------- .../src/services/auth-provider.ts | 0 .../src/services/auth-user.ts | 4 +- .../src/services/index.ts | 2 +- .../src/types/index.ts | 0 .../src/types/repositories/auth-provider.ts | 0 .../src/types/repositories/auth-user.ts | 0 .../src/types/repositories/index.ts | 0 .../src/types/services/auth-provider.ts | 0 .../src/types/services/auth-user.ts | 0 .../src/types/services/index.ts | 0 .../{authentication => auth}/tsconfig.json | 0 .../tsconfig.spec.json | 0 packages/authentication/README.md | 3 - .../integration-tests/setup-env.js | 6 -- .../authentication/src/providers/index.ts | 2 - packages/modules-sdk/src/definitions.ts | 14 ++-- .../common/auth-provider.ts | 0 .../common/auth-user.ts | 0 .../{authentication => auth}/common/index.ts | 0 packages/types/src/auth/common/provider.ts | 22 ++++++ .../src/{authentication => auth}/index.ts | 0 .../src/{authentication => auth}/service.ts | 2 +- packages/types/src/bundles.ts | 2 +- packages/types/src/index.ts | 2 +- .../abstract-auth-provider.ts} | 5 +- packages/utils/src/auth/index.ts | 1 + packages/utils/src/authentication/index.ts | 1 - packages/utils/src/index.ts | 2 +- yarn.lock | 6 +- 70 files changed, 245 insertions(+), 147 deletions(-) rename packages/{authentication => auth}/.gitignore (100%) rename packages/{authentication => auth}/CHANGELOG.md (99%) create mode 100644 packages/auth/README.md rename packages/{authentication => auth}/integration-tests/__fixtures__/auth-provider/index.ts (100%) rename packages/{authentication => auth}/integration-tests/__fixtures__/auth-user/index.ts (100%) rename packages/{authentication => auth}/integration-tests/__tests__/services/auth-provider/index.spec.ts (100%) rename packages/{authentication => auth}/integration-tests/__tests__/services/auth-user/index.spec.ts (100%) rename packages/{authentication => auth}/integration-tests/__tests__/services/module/auth-provider.spec.ts (96%) rename packages/{authentication => auth}/integration-tests/__tests__/services/module/auth-user.spec.ts (95%) rename packages/{authentication => auth}/integration-tests/__tests__/services/module/providers.spec.ts (82%) rename packages/{authentication => auth}/integration-tests/__tests__/services/providers/username-password.spec.ts (85%) create mode 100644 packages/auth/integration-tests/setup-env.js rename packages/{authentication => auth}/integration-tests/setup.js (100%) rename packages/{authentication => auth}/integration-tests/utils/config.ts (79%) rename packages/{authentication => auth}/integration-tests/utils/database.ts (77%) rename packages/{authentication => auth}/integration-tests/utils/get-init-module-config.ts (72%) rename packages/{authentication => auth}/integration-tests/utils/index.ts (100%) rename packages/{authentication => auth}/jest.config.js (100%) rename packages/{authentication => auth}/mikro-orm.config.dev.ts (67%) rename packages/{authentication => auth}/package.json (90%) rename packages/{authentication => auth}/src/index.ts (100%) rename packages/{authentication => auth}/src/initialize/index.ts (68%) rename packages/{authentication => auth}/src/joiner-config.ts (95%) rename packages/{authentication => auth}/src/loaders/connection.ts (87%) rename packages/{authentication => auth}/src/loaders/container.ts (100%) rename packages/{authentication => auth}/src/loaders/index.ts (100%) create mode 100644 packages/auth/src/loaders/providers.ts rename packages/{authentication => auth}/src/migrations/.snapshot-medusa-authentication.json (100%) rename packages/{authentication => auth}/src/migrations/Migration20240122041959.ts (100%) rename packages/{authentication => auth}/src/models/auth-provider.ts (100%) rename packages/{authentication => auth}/src/models/auth-user.ts (100%) rename packages/{authentication => auth}/src/models/index.ts (100%) rename packages/{authentication => auth}/src/module-definition.ts (85%) rename packages/{authentication/src/providers/username-password.ts => auth/src/providers/email-password.ts} (79%) rename packages/{authentication => auth}/src/providers/google.ts (98%) create mode 100644 packages/auth/src/providers/index.ts rename packages/{authentication => auth}/src/repositories/index.ts (100%) rename packages/{authentication => auth}/src/scripts/bin/run-seed.ts (78%) rename packages/{authentication => auth}/src/scripts/seed.ts (93%) rename packages/{authentication => auth}/src/services/__tests__/index.spec.ts (100%) rename packages/{authentication/src/services/authentication-module.ts => auth/src/services/auth-module.ts} (87%) rename packages/{authentication => auth}/src/services/auth-provider.ts (100%) rename packages/{authentication => auth}/src/services/auth-user.ts (91%) rename packages/{authentication => auth}/src/services/index.ts (60%) rename packages/{authentication => auth}/src/types/index.ts (100%) rename packages/{authentication => auth}/src/types/repositories/auth-provider.ts (100%) rename packages/{authentication => auth}/src/types/repositories/auth-user.ts (100%) rename packages/{authentication => auth}/src/types/repositories/index.ts (100%) rename packages/{authentication => auth}/src/types/services/auth-provider.ts (100%) rename packages/{authentication => auth}/src/types/services/auth-user.ts (100%) rename packages/{authentication => auth}/src/types/services/index.ts (100%) rename packages/{authentication => auth}/tsconfig.json (100%) rename packages/{authentication => auth}/tsconfig.spec.json (100%) delete mode 100644 packages/authentication/README.md delete mode 100644 packages/authentication/integration-tests/setup-env.js delete mode 100644 packages/authentication/src/providers/index.ts rename packages/types/src/{authentication => auth}/common/auth-provider.ts (100%) rename packages/types/src/{authentication => auth}/common/auth-user.ts (100%) rename packages/types/src/{authentication => auth}/common/index.ts (100%) create mode 100644 packages/types/src/auth/common/provider.ts rename packages/types/src/{authentication => auth}/index.ts (100%) rename packages/types/src/{authentication => auth}/service.ts (97%) rename packages/utils/src/{authentication/abstract-authentication-provider.ts => auth/abstract-auth-provider.ts} (89%) create mode 100644 packages/utils/src/auth/index.ts delete mode 100644 packages/utils/src/authentication/index.ts diff --git a/packages/authentication/.gitignore b/packages/auth/.gitignore similarity index 100% rename from packages/authentication/.gitignore rename to packages/auth/.gitignore diff --git a/packages/authentication/CHANGELOG.md b/packages/auth/CHANGELOG.md similarity index 99% rename from packages/authentication/CHANGELOG.md rename to packages/auth/CHANGELOG.md index 072f9b9137..1b6828044f 100644 --- a/packages/authentication/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -1,4 +1,4 @@ -# @medusajs/authentication +# @medusajs/auth ## 0.0.2 diff --git a/packages/auth/README.md b/packages/auth/README.md new file mode 100644 index 0000000000..a82f1b7a71 --- /dev/null +++ b/packages/auth/README.md @@ -0,0 +1,3 @@ +# Auth Module + +The Auth Module is Medusa’s authentication engine engine. It provides functions to authenticate users through identity providers and store metadata about users that can be used for authorization purposes. diff --git a/packages/authentication/integration-tests/__fixtures__/auth-provider/index.ts b/packages/auth/integration-tests/__fixtures__/auth-provider/index.ts similarity index 100% rename from packages/authentication/integration-tests/__fixtures__/auth-provider/index.ts rename to packages/auth/integration-tests/__fixtures__/auth-provider/index.ts diff --git a/packages/authentication/integration-tests/__fixtures__/auth-user/index.ts b/packages/auth/integration-tests/__fixtures__/auth-user/index.ts similarity index 100% rename from packages/authentication/integration-tests/__fixtures__/auth-user/index.ts rename to packages/auth/integration-tests/__fixtures__/auth-user/index.ts diff --git a/packages/authentication/integration-tests/__tests__/services/auth-provider/index.spec.ts b/packages/auth/integration-tests/__tests__/services/auth-provider/index.spec.ts similarity index 100% rename from packages/authentication/integration-tests/__tests__/services/auth-provider/index.spec.ts rename to packages/auth/integration-tests/__tests__/services/auth-provider/index.spec.ts diff --git a/packages/authentication/integration-tests/__tests__/services/auth-user/index.spec.ts b/packages/auth/integration-tests/__tests__/services/auth-user/index.spec.ts similarity index 100% rename from packages/authentication/integration-tests/__tests__/services/auth-user/index.spec.ts rename to packages/auth/integration-tests/__tests__/services/auth-user/index.spec.ts diff --git a/packages/authentication/integration-tests/__tests__/services/module/auth-provider.spec.ts b/packages/auth/integration-tests/__tests__/services/module/auth-provider.spec.ts similarity index 96% rename from packages/authentication/integration-tests/__tests__/services/module/auth-provider.spec.ts rename to packages/auth/integration-tests/__tests__/services/module/auth-provider.spec.ts index 2cbc5c92ad..2fdf373176 100644 --- a/packages/authentication/integration-tests/__tests__/services/module/auth-provider.spec.ts +++ b/packages/auth/integration-tests/__tests__/services/module/auth-provider.spec.ts @@ -1,16 +1,16 @@ -import { IAuthenticationModuleService } from "@medusajs/types" +import { IAuthModuleService } from "@medusajs/types" import { MikroOrmWrapper } from "../../../utils" +import { Modules } from "@medusajs/modules-sdk" import { SqlEntityManager } from "@mikro-orm/postgresql" import { createAuthProviders } from "../../../__fixtures__/auth-provider" import { createAuthUsers } from "../../../__fixtures__/auth-user" import { getInitModuleConfig } from "../../../utils/get-init-module-config" -import { initModules } from "medusa-test-utils/dist" -import { Modules } from "@medusajs/modules-sdk" +import { initModules } from "medusa-test-utils" jest.setTimeout(30000) -describe("AuthenticationModuleService - AuthProvider", () => { - let service: IAuthenticationModuleService +describe("AuthModuleService - AuthProvider", () => { + let service: IAuthModuleService let testManager: SqlEntityManager let shutdownFunc: () => Promise @@ -19,7 +19,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { const { medusaApp, shutdown } = await initModules(initModulesConfig) - service = medusaApp.modules[Modules.AUTHENTICATION] + service = medusaApp.modules[Modules.AUTH] shutdownFunc = shutdown }) diff --git a/packages/authentication/integration-tests/__tests__/services/module/auth-user.spec.ts b/packages/auth/integration-tests/__tests__/services/module/auth-user.spec.ts similarity index 95% rename from packages/authentication/integration-tests/__tests__/services/module/auth-user.spec.ts rename to packages/auth/integration-tests/__tests__/services/module/auth-user.spec.ts index 3f8c0d3f9d..86fde3c04b 100644 --- a/packages/authentication/integration-tests/__tests__/services/module/auth-user.spec.ts +++ b/packages/auth/integration-tests/__tests__/services/module/auth-user.spec.ts @@ -1,17 +1,16 @@ -import { SqlEntityManager } from "@mikro-orm/postgresql" - +import { IAuthModuleService } from "@medusajs/types" import { MikroOrmWrapper } from "../../../utils" +import { Modules } from "@medusajs/modules-sdk" +import { SqlEntityManager } from "@mikro-orm/postgresql" import { createAuthProviders } from "../../../__fixtures__/auth-provider" import { createAuthUsers } from "../../../__fixtures__/auth-user" -import { IAuthenticationModuleService } from "@medusajs/types" import { getInitModuleConfig } from "../../../utils/get-init-module-config" -import { initModules } from "medusa-test-utils/dist" -import { Modules } from "@medusajs/modules-sdk" +import { initModules } from "medusa-test-utils" jest.setTimeout(30000) -describe("AuthenticationModuleService - AuthUser", () => { - let service: IAuthenticationModuleService +describe("AuthModuleService - AuthUser", () => { + let service: IAuthModuleService let testManager: SqlEntityManager let shutdownFunc: () => Promise @@ -20,7 +19,7 @@ describe("AuthenticationModuleService - AuthUser", () => { const { medusaApp, shutdown } = await initModules(initModulesConfig) - service = medusaApp.modules[Modules.AUTHENTICATION] + service = medusaApp.modules[Modules.AUTH] shutdownFunc = shutdown }) diff --git a/packages/authentication/integration-tests/__tests__/services/module/providers.spec.ts b/packages/auth/integration-tests/__tests__/services/module/providers.spec.ts similarity index 82% rename from packages/authentication/integration-tests/__tests__/services/module/providers.spec.ts rename to packages/auth/integration-tests/__tests__/services/module/providers.spec.ts index 957b1926f6..556db59838 100644 --- a/packages/authentication/integration-tests/__tests__/services/module/providers.spec.ts +++ b/packages/auth/integration-tests/__tests__/services/module/providers.spec.ts @@ -1,16 +1,16 @@ import { MedusaModule, Modules } from "@medusajs/modules-sdk" -import { IAuthenticationModuleService } from "@medusajs/types" +import { IAuthModuleService } from "@medusajs/types" import { MikroOrmWrapper } from "../../../utils" import { SqlEntityManager } from "@mikro-orm/postgresql" import { createAuthProviders } from "../../../__fixtures__/auth-provider" import { getInitModuleConfig } from "../../../utils/get-init-module-config" -import { initModules } from "medusa-test-utils/dist" +import { initModules } from "medusa-test-utils" jest.setTimeout(30000) -describe("AuthenticationModuleService - AuthProvider", () => { - let service: IAuthenticationModuleService +describe("AuthModuleService - AuthProvider", () => { + let service: IAuthModuleService let testManager: SqlEntityManager let shutdownFunc: () => Promise @@ -19,7 +19,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { const { medusaApp, shutdown } = await initModules(initModulesConfig) - service = medusaApp.modules[Modules.AUTHENTICATION] + service = medusaApp.modules[Modules.AUTH] shutdownFunc = shutdown }) @@ -50,8 +50,8 @@ describe("AuthenticationModuleService - AuthProvider", () => { expect(serialized).toEqual( expect.arrayContaining([ expect.objectContaining({ - provider: "usernamePassword", - name: "Username/Password Authentication", + provider: "emailpass", + name: "Email/Password Authentication", }), expect.objectContaining({ provider: "google", @@ -71,7 +71,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { }, ]) - const { success, error } = await service.authenticate("notRegistered", {}) + const { success, error } = await service.authenticate("notRegistered", {} as any) expect(success).toBe(false) expect(error).toEqual( @@ -81,15 +81,15 @@ describe("AuthenticationModuleService - AuthProvider", () => { it("fails to authenticate using a valid provider with an invalid scope", async () => { const { success, error } = await service.authenticate( - "usernamePassword", + "emailpass", { scope: "non-existing", - } + } as any ) expect(success).toBe(false) expect(error).toEqual( - `Scope "non-existing" is not valid for provider usernamePassword` + `Scope "non-existing" is not valid for provider emailpass` ) }) }) diff --git a/packages/authentication/integration-tests/__tests__/services/providers/username-password.spec.ts b/packages/auth/integration-tests/__tests__/services/providers/username-password.spec.ts similarity index 85% rename from packages/authentication/integration-tests/__tests__/services/providers/username-password.spec.ts rename to packages/auth/integration-tests/__tests__/services/providers/username-password.spec.ts index 388c6b0f41..3cd76abcd9 100644 --- a/packages/authentication/integration-tests/__tests__/services/providers/username-password.spec.ts +++ b/packages/auth/integration-tests/__tests__/services/providers/username-password.spec.ts @@ -1,6 +1,6 @@ +import { AuthenticationInput, IAuthModuleService } from "@medusajs/types" import { MedusaModule, Modules } from "@medusajs/modules-sdk" -import { IAuthenticationModuleService } from "@medusajs/types" import { MikroOrmWrapper } from "../../../utils" import Scrypt from "scrypt-kdf" import { SqlEntityManager } from "@mikro-orm/postgresql" @@ -15,8 +15,8 @@ const seedDefaultData = async (testManager) => { await createAuthUsers(testManager) } -describe("AuthenticationModuleService - AuthProvider", () => { - let service: IAuthenticationModuleService +describe("AuthModuleService - AuthProvider", () => { + let service: IAuthModuleService let testManager: SqlEntityManager let shutdownFunc: () => Promise @@ -25,7 +25,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { const { medusaApp, shutdown } = await initModules(initModulesConfig) - service = medusaApp.modules[Modules.AUTHENTICATION] + service = medusaApp.modules[Modules.AUTH] shutdownFunc = shutdown }) @@ -60,7 +60,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { await createAuthUsers(testManager, [ // Add authenticated user { - provider: "usernamePassword", + provider: "emailpass", entity_id: email, provider_metadata: { password: passwordHash, @@ -68,7 +68,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { }, ]) - const res = await service.authenticate("usernamePassword", { + const res = await service.authenticate("emailpass", { body: { email: "test@test.com", password: password, @@ -90,7 +90,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { await seedDefaultData(testManager) - const res = await service.authenticate("usernamePassword", { + const res = await service.authenticate("emailpass", { body: { email: "test@test.com" }, scope: "store", }) @@ -104,7 +104,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { it("fails when no email is given", async () => { await seedDefaultData(testManager) - const res = await service.authenticate("usernamePassword", { + const res = await service.authenticate("emailpass", { body: { password: "supersecret" }, scope: "store", }) @@ -126,7 +126,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { await createAuthUsers(testManager, [ // Add authenticated user { - provider: "usernamePassword", + provider: "emailpass", entity_id: email, provider_metadata: { password_hash: passwordHash, @@ -134,7 +134,7 @@ describe("AuthenticationModuleService - AuthProvider", () => { }, ]) - const res = await service.authenticate("usernamePassword", { + const res = await service.authenticate("emailpass", { body: { email: "test@test.com", password: "password", diff --git a/packages/auth/integration-tests/setup-env.js b/packages/auth/integration-tests/setup-env.js new file mode 100644 index 0000000000..90c24b7129 --- /dev/null +++ b/packages/auth/integration-tests/setup-env.js @@ -0,0 +1,6 @@ +if (typeof process.env.DB_TEMP_NAME === "undefined") { + const tempName = parseInt(process.env.JEST_WORKER_ID || "1") + process.env.DB_TEMP_NAME = `medusa-auth-integration-${tempName}` +} + +process.env.MEDUSA_AUTH_DB_SCHEMA = "public" diff --git a/packages/authentication/integration-tests/setup.js b/packages/auth/integration-tests/setup.js similarity index 100% rename from packages/authentication/integration-tests/setup.js rename to packages/auth/integration-tests/setup.js diff --git a/packages/authentication/integration-tests/utils/config.ts b/packages/auth/integration-tests/utils/config.ts similarity index 79% rename from packages/authentication/integration-tests/utils/config.ts rename to packages/auth/integration-tests/utils/config.ts index b57bd91f48..1558119f53 100644 --- a/packages/authentication/integration-tests/utils/config.ts +++ b/packages/auth/integration-tests/utils/config.ts @@ -2,5 +2,5 @@ import { ModuleServiceInitializeOptions } from "@medusajs/types" export const databaseOptions: ModuleServiceInitializeOptions["database"] = { schema: "public", - clientUrl: "medusa-authentication-test", + clientUrl: "medusa-auth-test", } diff --git a/packages/authentication/integration-tests/utils/database.ts b/packages/auth/integration-tests/utils/database.ts similarity index 77% rename from packages/authentication/integration-tests/utils/database.ts rename to packages/auth/integration-tests/utils/database.ts index f6f8739da7..c510b64d39 100644 --- a/packages/authentication/integration-tests/utils/database.ts +++ b/packages/auth/integration-tests/utils/database.ts @@ -1,9 +1,9 @@ +import * as AuthModels from "@models" + import { TestDatabaseUtils } from "medusa-test-utils" -import * as AuthenticationModels from "@models" - const pathToMigrations = "../../src/migrations" -const mikroOrmEntities = AuthenticationModels as unknown as any[] +const mikroOrmEntities = AuthModels as unknown as any[] export const MikroOrmWrapper = TestDatabaseUtils.getMikroOrmWrapper( mikroOrmEntities, diff --git a/packages/authentication/integration-tests/utils/get-init-module-config.ts b/packages/auth/integration-tests/utils/get-init-module-config.ts similarity index 72% rename from packages/authentication/integration-tests/utils/get-init-module-config.ts rename to packages/auth/integration-tests/utils/get-init-module-config.ts index ba2ab6c81f..b05055e67d 100644 --- a/packages/authentication/integration-tests/utils/get-init-module-config.ts +++ b/packages/auth/integration-tests/utils/get-init-module-config.ts @@ -7,12 +7,12 @@ export function getInitModuleConfig() { defaultAdapterOptions: { database: { clientUrl: DB_URL, - schema: process.env.MEDUSA_AUTHENTICATION_DB_SCHEMA, + schema: process.env.MEDUSA_AUTH_DB_SCHEMA, }, }, providers: [ { - name: "usernamePassword", + name: "emailpass", scopes: { admin: {}, store: {}, @@ -24,8 +24,8 @@ export function getInitModuleConfig() { const injectedDependencies = {} const modulesConfig_ = { - [Modules.AUTHENTICATION]: { - definition: ModulesDefinition[Modules.AUTHENTICATION], + [Modules.AUTH]: { + definition: ModulesDefinition[Modules.AUTH], options: moduleOptions, }, } @@ -35,7 +35,7 @@ export function getInitModuleConfig() { modulesConfig: modulesConfig_, databaseConfig: { clientUrl: DB_URL, - schema: process.env.MEDUSA_AUTHENTICATION_DB_SCHEMA, + schema: process.env.MEDUSA_AUTH_DB_SCHEMA, }, joinerConfig: [], } diff --git a/packages/authentication/integration-tests/utils/index.ts b/packages/auth/integration-tests/utils/index.ts similarity index 100% rename from packages/authentication/integration-tests/utils/index.ts rename to packages/auth/integration-tests/utils/index.ts diff --git a/packages/authentication/jest.config.js b/packages/auth/jest.config.js similarity index 100% rename from packages/authentication/jest.config.js rename to packages/auth/jest.config.js diff --git a/packages/authentication/mikro-orm.config.dev.ts b/packages/auth/mikro-orm.config.dev.ts similarity index 67% rename from packages/authentication/mikro-orm.config.dev.ts rename to packages/auth/mikro-orm.config.dev.ts index c2b7f3839d..6992456cce 100644 --- a/packages/authentication/mikro-orm.config.dev.ts +++ b/packages/auth/mikro-orm.config.dev.ts @@ -3,6 +3,6 @@ import * as entities from "./src/models" module.exports = { entities: Object.values(entities), schema: "public", - clientUrl: "postgres://postgres@localhost/medusa-authentication", + clientUrl: "postgres://postgres@localhost/medusa-auth", type: "postgresql", } diff --git a/packages/authentication/package.json b/packages/auth/package.json similarity index 90% rename from packages/authentication/package.json rename to packages/auth/package.json index af96715604..ac68f58918 100644 --- a/packages/authentication/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { - "name": "@medusajs/authentication", + "name": "@medusajs/auth", "version": "0.0.2", - "description": "Medusa Authentication module", + "description": "Medusa Auth module", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ @@ -11,12 +11,12 @@ "node": ">=16" }, "bin": { - "medusa-authentication-seed": "dist/scripts/bin/run-seed.js" + "medusa-auth-seed": "dist/scripts/bin/run-seed.js" }, "repository": { "type": "git", "url": "https://github.com/medusajs/medusa", - "directory": "packages/authentication" + "directory": "packages/auth" }, "publishConfig": { "access": "public" diff --git a/packages/authentication/src/index.ts b/packages/auth/src/index.ts similarity index 100% rename from packages/authentication/src/index.ts rename to packages/auth/src/index.ts diff --git a/packages/authentication/src/initialize/index.ts b/packages/auth/src/initialize/index.ts similarity index 68% rename from packages/authentication/src/initialize/index.ts rename to packages/auth/src/initialize/index.ts index 2328c27688..4eb49c33a3 100644 --- a/packages/authentication/src/initialize/index.ts +++ b/packages/auth/src/initialize/index.ts @@ -5,7 +5,7 @@ import { MedusaModule, Modules, } from "@medusajs/modules-sdk" -import { IAuthenticationModuleService, ModulesSdkTypes } from "@medusajs/types" +import { IAuthModuleService, ModulesSdkTypes } from "@medusajs/types" import { InitializeModuleInjectableDependencies } from "../types" import { moduleDefinition } from "../module-definition" @@ -16,10 +16,10 @@ export const initialize = async ( | ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions, injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.AUTHENTICATION, - defaultPath: MODULE_PACKAGE_NAMES[Modules.AUTHENTICATION], +): Promise => { + const loaded = await MedusaModule.bootstrap({ + moduleKey: Modules.AUTH, + defaultPath: MODULE_PACKAGE_NAMES[Modules.AUTH], declaration: options as | InternalModuleDeclaration | ExternalModuleDeclaration, // TODO: Add provider configuration @@ -27,5 +27,5 @@ export const initialize = async ( moduleExports: moduleDefinition, }) - return loaded[Modules.AUTHENTICATION] + return loaded[Modules.AUTH] } diff --git a/packages/authentication/src/joiner-config.ts b/packages/auth/src/joiner-config.ts similarity index 95% rename from packages/authentication/src/joiner-config.ts rename to packages/auth/src/joiner-config.ts index 29368001fa..68b99829b6 100644 --- a/packages/authentication/src/joiner-config.ts +++ b/packages/auth/src/joiner-config.ts @@ -1,7 +1,7 @@ -import { Modules } from "@medusajs/modules-sdk" -import { ModuleJoinerConfig } from "@medusajs/types" -import { MapToConfig } from "@medusajs/utils" import { AuthUser } from "@models" +import { MapToConfig } from "@medusajs/utils" +import { ModuleJoinerConfig } from "@medusajs/types" +import { Modules } from "@medusajs/modules-sdk" export const LinkableKeys = { auth_user_id: AuthUser.name, @@ -19,7 +19,7 @@ Object.entries(LinkableKeys).forEach(([key, value]) => { export const entityNameToLinkableKeysMap: MapToConfig = entityLinkableKeysMap export const joinerConfig: ModuleJoinerConfig = { - serviceName: Modules.AUTHENTICATION, + serviceName: Modules.AUTH, primaryKeys: ["id"], linkableKeys: LinkableKeys, alias: { diff --git a/packages/authentication/src/loaders/connection.ts b/packages/auth/src/loaders/connection.ts similarity index 87% rename from packages/authentication/src/loaders/connection.ts rename to packages/auth/src/loaders/connection.ts index cb859f1f98..a7d632cfce 100644 --- a/packages/authentication/src/loaders/connection.ts +++ b/packages/auth/src/loaders/connection.ts @@ -1,12 +1,14 @@ +import * as AuthModels from "../models" + import { InternalModuleDeclaration, LoaderOptions, Modules, } from "@medusajs/modules-sdk" + +import { EntitySchema } from "@mikro-orm/core" import { ModulesSdkTypes } from "@medusajs/types" import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as AuthenticationModules from "../models" export default async ( { @@ -20,12 +22,12 @@ export default async ( moduleDeclaration?: InternalModuleDeclaration ): Promise => { const entities = Object.values( - AuthenticationModules + AuthModels ) as unknown as EntitySchema[] const pathToMigrations = __dirname + "/../migrations" await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.AUTHENTICATION, + moduleName: Modules.AUTH, entities, container, options, diff --git a/packages/authentication/src/loaders/container.ts b/packages/auth/src/loaders/container.ts similarity index 100% rename from packages/authentication/src/loaders/container.ts rename to packages/auth/src/loaders/container.ts diff --git a/packages/authentication/src/loaders/index.ts b/packages/auth/src/loaders/index.ts similarity index 100% rename from packages/authentication/src/loaders/index.ts rename to packages/auth/src/loaders/index.ts diff --git a/packages/auth/src/loaders/providers.ts b/packages/auth/src/loaders/providers.ts new file mode 100644 index 0000000000..4f7c11048e --- /dev/null +++ b/packages/auth/src/loaders/providers.ts @@ -0,0 +1,71 @@ +import * as defaultProviders from "@providers" + +import { + asClass, + AwilixContainer, + ClassOrFunctionReturning, + Constructor, + Resolver, +} from "awilix" +import { + AuthModuleProviderConfig, + AuthProviderScope, + LoaderOptions, + ModulesSdkTypes, +} from "@medusajs/types" + +type AuthModuleProviders = { + providers: AuthModuleProviderConfig[] +} + +export default async ({ + container, + options, +}: LoaderOptions< + ( + | ModulesSdkTypes.ModuleServiceInitializeOptions + | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions + ) & + AuthModuleProviders +>): Promise => { + const providerMap = new Map( + options?.providers?.map((provider) => [provider.name, provider.scopes]) ?? + [] + ) + // if(options?.providers?.length) { + // TODO: implement plugin provider registration + // } + + const providersToLoad = Object.values(defaultProviders) + + for (const provider of providersToLoad) { + container.register({ + [`auth_provider_${provider.PROVIDER}`]: asClass( + provider as Constructor + ) + .singleton() + .inject(() => ({ scopes: providerMap.get(provider.PROVIDER) ?? {} })), + }) + } + + container.register({ + [`auth_providers`]: asArray(providersToLoad, providerMap), + }) +} + +function asArray( + resolvers: (ClassOrFunctionReturning | Resolver)[], + providerScopeMap: Map> +): { resolve: (container: AwilixContainer) => unknown[] } { + return { + resolve: (container: AwilixContainer) => + resolvers.map((resolver) => + asClass(resolver as Constructor) + .inject(() => ({ + // @ts-ignore + scopes: providerScopeMap.get(resolver.PROVIDER) ?? {}, + })) + .resolve(container) + ), + } +} diff --git a/packages/authentication/src/migrations/.snapshot-medusa-authentication.json b/packages/auth/src/migrations/.snapshot-medusa-authentication.json similarity index 100% rename from packages/authentication/src/migrations/.snapshot-medusa-authentication.json rename to packages/auth/src/migrations/.snapshot-medusa-authentication.json diff --git a/packages/authentication/src/migrations/Migration20240122041959.ts b/packages/auth/src/migrations/Migration20240122041959.ts similarity index 100% rename from packages/authentication/src/migrations/Migration20240122041959.ts rename to packages/auth/src/migrations/Migration20240122041959.ts diff --git a/packages/authentication/src/models/auth-provider.ts b/packages/auth/src/models/auth-provider.ts similarity index 100% rename from packages/authentication/src/models/auth-provider.ts rename to packages/auth/src/models/auth-provider.ts diff --git a/packages/authentication/src/models/auth-user.ts b/packages/auth/src/models/auth-user.ts similarity index 100% rename from packages/authentication/src/models/auth-user.ts rename to packages/auth/src/models/auth-user.ts diff --git a/packages/authentication/src/models/index.ts b/packages/auth/src/models/index.ts similarity index 100% rename from packages/authentication/src/models/index.ts rename to packages/auth/src/models/index.ts diff --git a/packages/authentication/src/module-definition.ts b/packages/auth/src/module-definition.ts similarity index 85% rename from packages/authentication/src/module-definition.ts rename to packages/auth/src/module-definition.ts index 215e19c13a..601a85bbbe 100644 --- a/packages/authentication/src/module-definition.ts +++ b/packages/auth/src/module-definition.ts @@ -1,14 +1,15 @@ -import { Modules } from "@medusajs/modules-sdk" -import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" import * as Models from "@models" -import { AuthenticationModuleService } from "@services" + +import { AuthModuleService } from "@services" +import { ModuleExports } from "@medusajs/types" +import { Modules } from "@medusajs/modules-sdk" +import { ModulesSdkUtils } from "@medusajs/utils" import loadConnection from "./loaders/connection" import loadContainer from "./loaders/container" import loadProviders from "./loaders/providers" const migrationScriptOptions = { - moduleName: Modules.AUTHENTICATION, + moduleName: Modules.AUTH, models: Models, pathToMigrations: __dirname + "/migrations", } @@ -20,7 +21,7 @@ export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( migrationScriptOptions ) -const service = AuthenticationModuleService +const service = AuthModuleService const loaders = [loadContainer, loadConnection, loadProviders] as any export const moduleDefinition: ModuleExports = { diff --git a/packages/authentication/src/providers/username-password.ts b/packages/auth/src/providers/email-password.ts similarity index 79% rename from packages/authentication/src/providers/username-password.ts rename to packages/auth/src/providers/email-password.ts index 54b276b4e8..3e9760f991 100644 --- a/packages/authentication/src/providers/username-password.ts +++ b/packages/auth/src/providers/email-password.ts @@ -1,12 +1,12 @@ -import { AbstractAuthenticationModuleProvider, isString } from "@medusajs/utils" +import { AbstractAuthModuleProvider, isString } from "@medusajs/utils" +import { AuthenticationInput, AuthenticationResponse } from "@medusajs/types" import { AuthUserService } from "@services" -import { AuthenticationInput, AuthenticationResponse } from "@medusajs/types" import Scrypt from "scrypt-kdf" -class UsernamePasswordProvider extends AbstractAuthenticationModuleProvider { - public static PROVIDER = "usernamePassword" - public static DISPLAY_NAME = "Username/Password Authentication" +class EmailPasswordProvider extends AbstractAuthModuleProvider { + public static PROVIDER = "emailpass" + public static DISPLAY_NAME = "Email/Password Authentication" protected readonly authUserSerivce_: AuthUserService @@ -37,7 +37,7 @@ class UsernamePasswordProvider extends AbstractAuthenticationModuleProvider { const authUser = await this.authUserSerivce_.retrieveByProviderAndEntityId( email, - UsernamePasswordProvider.PROVIDER + EmailPasswordProvider.PROVIDER ) const password_hash = authUser.provider_metadata?.password @@ -61,4 +61,4 @@ class UsernamePasswordProvider extends AbstractAuthenticationModuleProvider { } } -export default UsernamePasswordProvider +export default EmailPasswordProvider diff --git a/packages/authentication/src/providers/google.ts b/packages/auth/src/providers/google.ts similarity index 98% rename from packages/authentication/src/providers/google.ts rename to packages/auth/src/providers/google.ts index c27c9b3871..5a94eb9922 100644 --- a/packages/authentication/src/providers/google.ts +++ b/packages/auth/src/providers/google.ts @@ -1,14 +1,14 @@ import { - AbstractAuthenticationModuleProvider, + AbstractAuthModuleProvider, MedusaError, } from "@medusajs/utils" -import { AuthProviderService, AuthUserService } from "@services" -import jwt, { JwtPayload } from "jsonwebtoken" import { + AuthProviderScope, AuthenticationInput, AuthenticationResponse, - AuthProviderScope, } from "@medusajs/types" +import { AuthProviderService, AuthUserService } from "@services" +import jwt, { JwtPayload } from "jsonwebtoken" import { AuthorizationCode } from "simple-oauth2" import url from "url" @@ -23,7 +23,7 @@ type ProviderConfig = { callbackURL: string } -class GoogleProvider extends AbstractAuthenticationModuleProvider { +class GoogleProvider extends AbstractAuthModuleProvider { public static PROVIDER = "google" public static DISPLAY_NAME = "Google Authentication" diff --git a/packages/auth/src/providers/index.ts b/packages/auth/src/providers/index.ts new file mode 100644 index 0000000000..7f7c8e594b --- /dev/null +++ b/packages/auth/src/providers/index.ts @@ -0,0 +1,2 @@ +export { default as EmailPasswordProvider } from "./email-password" +export { default as GoogleProvider } from "./google" \ No newline at end of file diff --git a/packages/authentication/src/repositories/index.ts b/packages/auth/src/repositories/index.ts similarity index 100% rename from packages/authentication/src/repositories/index.ts rename to packages/auth/src/repositories/index.ts diff --git a/packages/authentication/src/scripts/bin/run-seed.ts b/packages/auth/src/scripts/bin/run-seed.ts similarity index 78% rename from packages/authentication/src/scripts/bin/run-seed.ts rename to packages/auth/src/scripts/bin/run-seed.ts index 468808169a..468f26c11e 100644 --- a/packages/authentication/src/scripts/bin/run-seed.ts +++ b/packages/auth/src/scripts/bin/run-seed.ts @@ -11,7 +11,7 @@ export default (async () => { config() if (!path) { throw new Error( - `filePath is required.${EOL}Example: medusa-authentication-seed ` + `filePath is required.${EOL}Example: medusa-auth-seed ` ) } diff --git a/packages/authentication/src/scripts/seed.ts b/packages/auth/src/scripts/seed.ts similarity index 93% rename from packages/authentication/src/scripts/seed.ts rename to packages/auth/src/scripts/seed.ts index ac32d4d595..6fb087da3c 100644 --- a/packages/authentication/src/scripts/seed.ts +++ b/packages/auth/src/scripts/seed.ts @@ -1,9 +1,11 @@ -import { Modules } from "@medusajs/modules-sdk" -import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types" +import * as AuthModels from "@models" + import { DALUtils, ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as AuthenticationModels from "@models" +import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types" + import { EOL } from "os" +import { EntitySchema } from "@mikro-orm/core" +import { Modules } from "@medusajs/modules-sdk" import { resolve } from "path" export async function run({ @@ -32,11 +34,11 @@ export async function run({ }) const dbData = ModulesSdkUtils.loadDatabaseConfig( - Modules.AUTHENTICATION, + Modules.AUTH, options )! const entities = Object.values( - AuthenticationModels + AuthModels ) as unknown as EntitySchema[] const pathToMigrations = __dirname + "/../migrations" diff --git a/packages/authentication/src/services/__tests__/index.spec.ts b/packages/auth/src/services/__tests__/index.spec.ts similarity index 100% rename from packages/authentication/src/services/__tests__/index.spec.ts rename to packages/auth/src/services/__tests__/index.spec.ts diff --git a/packages/authentication/src/services/authentication-module.ts b/packages/auth/src/services/auth-module.ts similarity index 87% rename from packages/authentication/src/services/authentication-module.ts rename to packages/auth/src/services/auth-module.ts index 5cb604e929..2add4cf324 100644 --- a/packages/authentication/src/services/authentication-module.ts +++ b/packages/auth/src/services/auth-module.ts @@ -1,7 +1,7 @@ import { AuthenticationInput, AuthenticationResponse, - AuthenticationTypes, + AuthTypes, Context, DAL, FindConfig, @@ -16,7 +16,7 @@ import { joinerConfig } from "../joiner-config" import { AuthProviderService, AuthUserService } from "@services" import { - AbstractAuthenticationModuleProvider, + AbstractAuthModuleProvider, InjectManager, InjectTransactionManager, MedusaContext, @@ -30,7 +30,7 @@ import { FilterableAuthProviderProps, FilterableAuthUserProps, UpdateAuthUserDTO, -} from "@medusajs/types/dist/authentication/common" +} from "@medusajs/types" import { ServiceTypes } from "@types" type InjectedDependencies = { @@ -39,10 +39,10 @@ type InjectedDependencies = { authProviderService: AuthProviderService } -export default class AuthenticationModuleService< +export default class AuthModuleService< TAuthUser extends AuthUser = AuthUser, TAuthProvider extends AuthProvider = AuthProvider -> implements AuthenticationTypes.IAuthenticationModuleService +> implements AuthTypes.IAuthModuleService { __joinerConfig(): ModuleJoinerConfig { return joinerConfig @@ -83,7 +83,7 @@ export default class AuthenticationModuleService< sharedContext ) - return await this.baseRepository_.serialize( + return await this.baseRepository_.serialize( authProvider, { populate: true } ) @@ -101,7 +101,7 @@ export default class AuthenticationModuleService< ) return await this.baseRepository_.serialize< - AuthenticationTypes.AuthProviderDTO[] + AuthTypes.AuthProviderDTO[] >(authProviders, { populate: true }) } @@ -110,7 +110,7 @@ export default class AuthenticationModuleService< filters: FilterableAuthProviderProps = {}, config: FindConfig, @MedusaContext() sharedContext: Context = {} - ): Promise<[AuthenticationTypes.AuthProviderDTO[], number]> { + ): Promise<[AuthTypes.AuthProviderDTO[], number]> { const [authProviders, count] = await this.authProviderService_.listAndCount( filters, config, @@ -119,7 +119,7 @@ export default class AuthenticationModuleService< return [ await this.baseRepository_.serialize< - AuthenticationTypes.AuthProviderDTO[] + AuthTypes.AuthProviderDTO[] >(authProviders, { populate: true }), count, ] @@ -140,14 +140,14 @@ export default class AuthenticationModuleService< data: CreateAuthProviderDTO | CreateAuthProviderDTO[], @MedusaContext() sharedContext: Context = {} ): Promise< - AuthenticationTypes.AuthProviderDTO | AuthenticationTypes.AuthProviderDTO[] + AuthTypes.AuthProviderDTO | AuthTypes.AuthProviderDTO[] > { const input = Array.isArray(data) ? data : [data] const providers = await this.createAuthProviders_(input, sharedContext) const serializedProviders = await this.baseRepository_.serialize< - AuthenticationTypes.AuthProviderDTO[] + AuthTypes.AuthProviderDTO[] >(providers, { populate: true, }) @@ -164,29 +164,29 @@ export default class AuthenticationModuleService< } updateAuthProvider( - data: AuthenticationTypes.UpdateAuthProviderDTO[], + data: AuthTypes.UpdateAuthProviderDTO[], sharedContext?: Context ): Promise updateAuthProvider( - data: AuthenticationTypes.UpdateAuthProviderDTO, + data: AuthTypes.UpdateAuthProviderDTO, sharedContext?: Context ): Promise @InjectManager("baseRepository_") async updateAuthProvider( data: - | AuthenticationTypes.UpdateAuthProviderDTO[] - | AuthenticationTypes.UpdateAuthProviderDTO, + | AuthTypes.UpdateAuthProviderDTO[] + | AuthTypes.UpdateAuthProviderDTO, @MedusaContext() sharedContext: Context = {} ): Promise< - AuthenticationTypes.AuthProviderDTO | AuthenticationTypes.AuthProviderDTO[] + AuthTypes.AuthProviderDTO | AuthTypes.AuthProviderDTO[] > { const input = Array.isArray(data) ? data : [data] const providers = await this.updateAuthProvider_(input, sharedContext) const serializedProviders = await this.baseRepository_.serialize< - AuthenticationTypes.AuthProviderDTO[] + AuthTypes.AuthProviderDTO[] >(providers, { populate: true, }) @@ -195,7 +195,7 @@ export default class AuthenticationModuleService< } async updateAuthProvider_( - data: AuthenticationTypes.UpdateAuthProviderDTO[], + data: AuthTypes.UpdateAuthProviderDTO[], @MedusaContext() sharedContext: Context = {} ): Promise { return await this.authProviderService_.update(data, sharedContext) @@ -221,7 +221,7 @@ export default class AuthenticationModuleService< sharedContext ) - return await this.baseRepository_.serialize( + return await this.baseRepository_.serialize( authUser, { exclude: ["password_hash"], @@ -242,7 +242,7 @@ export default class AuthenticationModuleService< ) return await this.baseRepository_.serialize< - AuthenticationTypes.AuthUserDTO[] + AuthTypes.AuthUserDTO[] >(authUsers, { populate: true, }) @@ -261,7 +261,7 @@ export default class AuthenticationModuleService< ) return [ - await this.baseRepository_.serialize( + await this.baseRepository_.serialize( authUsers, { populate: true, @@ -285,14 +285,14 @@ export default class AuthenticationModuleService< data: CreateAuthUserDTO[] | CreateAuthUserDTO, @MedusaContext() sharedContext: Context = {} ): Promise< - AuthenticationTypes.AuthUserDTO | AuthenticationTypes.AuthUserDTO[] + AuthTypes.AuthUserDTO | AuthTypes.AuthUserDTO[] > { const input = Array.isArray(data) ? data : [data] const authUsers = await this.createAuthUsers_(input, sharedContext) const serializedUsers = await this.baseRepository_.serialize< - AuthenticationTypes.AuthUserDTO[] + AuthTypes.AuthUserDTO[] >(authUsers, { populate: true, }) @@ -322,14 +322,14 @@ export default class AuthenticationModuleService< data: UpdateAuthUserDTO | UpdateAuthUserDTO[], @MedusaContext() sharedContext: Context = {} ): Promise< - AuthenticationTypes.AuthUserDTO | AuthenticationTypes.AuthUserDTO[] + AuthTypes.AuthUserDTO | AuthTypes.AuthUserDTO[] > { const input = Array.isArray(data) ? data : [data] const updatedUsers = await this.updateAuthUsers_(input, sharedContext) const serializedUsers = await this.baseRepository_.serialize< - AuthenticationTypes.AuthUserDTO[] + AuthTypes.AuthUserDTO[] >(updatedUsers, { populate: true, }) @@ -356,8 +356,8 @@ export default class AuthenticationModuleService< protected getRegisteredAuthenticationProvider( provider: string, { scope }: AuthenticationInput - ): AbstractAuthenticationModuleProvider { - let containerProvider: AbstractAuthenticationModuleProvider + ): AbstractAuthModuleProvider { + let containerProvider: AbstractAuthModuleProvider try { containerProvider = this.__container__[`auth_provider_${provider}`] } catch (error) { diff --git a/packages/authentication/src/services/auth-provider.ts b/packages/auth/src/services/auth-provider.ts similarity index 100% rename from packages/authentication/src/services/auth-provider.ts rename to packages/auth/src/services/auth-provider.ts diff --git a/packages/authentication/src/services/auth-user.ts b/packages/auth/src/services/auth-user.ts similarity index 91% rename from packages/authentication/src/services/auth-user.ts rename to packages/auth/src/services/auth-user.ts index 8ee6285386..7625415da9 100644 --- a/packages/authentication/src/services/auth-user.ts +++ b/packages/auth/src/services/auth-user.ts @@ -1,4 +1,4 @@ -import { AuthenticationTypes, Context, DAL, FindConfig } from "@medusajs/types" +import { AuthTypes, Context, DAL, FindConfig } from "@medusajs/types" import { InjectManager, MedusaContext, @@ -29,7 +29,7 @@ export default class AuthUserService< @InjectManager("authUserRepository_") async retrieveByProviderAndEntityId< - TEntityMethod = AuthenticationTypes.AuthUserDTO + TEntityMethod = AuthTypes.AuthUserDTO >( entityId: string, provider: string, diff --git a/packages/authentication/src/services/index.ts b/packages/auth/src/services/index.ts similarity index 60% rename from packages/authentication/src/services/index.ts rename to packages/auth/src/services/index.ts index bacc64fd0e..03a3c0933d 100644 --- a/packages/authentication/src/services/index.ts +++ b/packages/auth/src/services/index.ts @@ -1,3 +1,3 @@ -export { default as AuthenticationModuleService } from "./authentication-module" +export { default as AuthModuleService } from "./auth-module" export { default as AuthProviderService } from "./auth-provider" export { default as AuthUserService } from "./auth-user" diff --git a/packages/authentication/src/types/index.ts b/packages/auth/src/types/index.ts similarity index 100% rename from packages/authentication/src/types/index.ts rename to packages/auth/src/types/index.ts diff --git a/packages/authentication/src/types/repositories/auth-provider.ts b/packages/auth/src/types/repositories/auth-provider.ts similarity index 100% rename from packages/authentication/src/types/repositories/auth-provider.ts rename to packages/auth/src/types/repositories/auth-provider.ts diff --git a/packages/authentication/src/types/repositories/auth-user.ts b/packages/auth/src/types/repositories/auth-user.ts similarity index 100% rename from packages/authentication/src/types/repositories/auth-user.ts rename to packages/auth/src/types/repositories/auth-user.ts diff --git a/packages/authentication/src/types/repositories/index.ts b/packages/auth/src/types/repositories/index.ts similarity index 100% rename from packages/authentication/src/types/repositories/index.ts rename to packages/auth/src/types/repositories/index.ts diff --git a/packages/authentication/src/types/services/auth-provider.ts b/packages/auth/src/types/services/auth-provider.ts similarity index 100% rename from packages/authentication/src/types/services/auth-provider.ts rename to packages/auth/src/types/services/auth-provider.ts diff --git a/packages/authentication/src/types/services/auth-user.ts b/packages/auth/src/types/services/auth-user.ts similarity index 100% rename from packages/authentication/src/types/services/auth-user.ts rename to packages/auth/src/types/services/auth-user.ts diff --git a/packages/authentication/src/types/services/index.ts b/packages/auth/src/types/services/index.ts similarity index 100% rename from packages/authentication/src/types/services/index.ts rename to packages/auth/src/types/services/index.ts diff --git a/packages/authentication/tsconfig.json b/packages/auth/tsconfig.json similarity index 100% rename from packages/authentication/tsconfig.json rename to packages/auth/tsconfig.json diff --git a/packages/authentication/tsconfig.spec.json b/packages/auth/tsconfig.spec.json similarity index 100% rename from packages/authentication/tsconfig.spec.json rename to packages/auth/tsconfig.spec.json diff --git a/packages/authentication/README.md b/packages/authentication/README.md deleted file mode 100644 index 2a50e750d4..0000000000 --- a/packages/authentication/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Authentication Module - -The Authentication Module is Medusa’s authentication engine engine. It provides functions to authenticate users through identity providers and store metadata about users that can be used for authorization purposes. diff --git a/packages/authentication/integration-tests/setup-env.js b/packages/authentication/integration-tests/setup-env.js deleted file mode 100644 index 2379774654..0000000000 --- a/packages/authentication/integration-tests/setup-env.js +++ /dev/null @@ -1,6 +0,0 @@ -if (typeof process.env.DB_TEMP_NAME === "undefined") { - const tempName = parseInt(process.env.JEST_WORKER_ID || "1") - process.env.DB_TEMP_NAME = `medusa-authentication-integration-${tempName}` -} - -process.env.MEDUSA_AUTHENTICATION_DB_SCHEMA = "public" diff --git a/packages/authentication/src/providers/index.ts b/packages/authentication/src/providers/index.ts deleted file mode 100644 index e00b4b1727..0000000000 --- a/packages/authentication/src/providers/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as UsernamePasswordProvider } from "./username-password" -export { default as GoogleProvider } from "./google" \ No newline at end of file diff --git a/packages/modules-sdk/src/definitions.ts b/packages/modules-sdk/src/definitions.ts index 3f6cdf12ae..f8024d5d33 100644 --- a/packages/modules-sdk/src/definitions.ts +++ b/packages/modules-sdk/src/definitions.ts @@ -15,7 +15,7 @@ export enum Modules { PRODUCT = "productService", PRICING = "pricingService", PROMOTION = "promotion", - AUTHENTICATION = "authentication", + AUTH = "auth", WORKFLOW_ENGINE = "workflows", SALES_CHANNEL = "salesChannel", CART = "cart", @@ -31,7 +31,7 @@ export enum ModuleRegistrationName { PRODUCT = "productModuleService", PRICING = "pricingModuleService", PROMOTION = "promotionModuleService", - AUTHENTICATION = "authenticationModuleService", + AUTH = "authModuleService", WORKFLOW_ENGINE = "workflowsModuleService", SALES_CHANNEL = "salesChannelModuleService", CART = "cartModuleService", @@ -48,7 +48,7 @@ export const MODULE_PACKAGE_NAMES = { [Modules.CACHE]: "@medusajs/cache-inmemory", [Modules.PRICING]: "@medusajs/pricing", [Modules.PROMOTION]: "@medusajs/promotion", - [Modules.AUTHENTICATION]: "@medusajs/authentication", + [Modules.AUTH]: "@medusajs/auth", [Modules.WORKFLOW_ENGINE]: "@medusajs/workflow-engine-inmemory", [Modules.SALES_CHANNEL]: "@medusajs/sales-channel", [Modules.CART]: "@medusajs/cart", @@ -157,11 +157,11 @@ export const ModulesDefinition: { [key: string | Modules]: ModuleDefinition } = resources: MODULE_RESOURCE_TYPE.SHARED, }, }, - [Modules.AUTHENTICATION]: { - key: Modules.AUTHENTICATION, - registrationName: ModuleRegistrationName.AUTHENTICATION, + [Modules.AUTH]: { + key: Modules.AUTH, + registrationName: ModuleRegistrationName.AUTH, defaultPackage: false, - label: upperCaseFirst(ModuleRegistrationName.AUTHENTICATION), + label: upperCaseFirst(ModuleRegistrationName.AUTH), isRequired: false, canOverride: true, isQueryable: true, diff --git a/packages/types/src/authentication/common/auth-provider.ts b/packages/types/src/auth/common/auth-provider.ts similarity index 100% rename from packages/types/src/authentication/common/auth-provider.ts rename to packages/types/src/auth/common/auth-provider.ts diff --git a/packages/types/src/authentication/common/auth-user.ts b/packages/types/src/auth/common/auth-user.ts similarity index 100% rename from packages/types/src/authentication/common/auth-user.ts rename to packages/types/src/auth/common/auth-user.ts diff --git a/packages/types/src/authentication/common/index.ts b/packages/types/src/auth/common/index.ts similarity index 100% rename from packages/types/src/authentication/common/index.ts rename to packages/types/src/auth/common/index.ts diff --git a/packages/types/src/auth/common/provider.ts b/packages/types/src/auth/common/provider.ts new file mode 100644 index 0000000000..03dfb74b2e --- /dev/null +++ b/packages/types/src/auth/common/provider.ts @@ -0,0 +1,22 @@ +export type AuthenticationResponse = { + success: boolean + authUser?: any + error?: string + location?: string +} + +export type AuthModuleProviderConfig = { + name: string + scopes: Record +} + +export type AuthProviderScope = { domain?: string } & Record + +export type AuthenticationInput = { + connection: { encrypted: boolean } + url: string + headers: Record + query: Record + body: Record + scope: string +} diff --git a/packages/types/src/authentication/index.ts b/packages/types/src/auth/index.ts similarity index 100% rename from packages/types/src/authentication/index.ts rename to packages/types/src/auth/index.ts diff --git a/packages/types/src/authentication/service.ts b/packages/types/src/auth/service.ts similarity index 97% rename from packages/types/src/authentication/service.ts rename to packages/types/src/auth/service.ts index 5d9b08d9ac..4f4bed7ecc 100644 --- a/packages/types/src/authentication/service.ts +++ b/packages/types/src/auth/service.ts @@ -15,7 +15,7 @@ import { Context } from "../shared-context" import { FindConfig } from "../common" import { IModuleService } from "../modules-sdk" -export interface IAuthenticationModuleService extends IModuleService { +export interface IAuthModuleService extends IModuleService { authenticate( provider: string, providerData: AuthenticationInput diff --git a/packages/types/src/bundles.ts b/packages/types/src/bundles.ts index ff2518bdf5..99dd3f5db9 100644 --- a/packages/types/src/bundles.ts +++ b/packages/types/src/bundles.ts @@ -1,4 +1,4 @@ -export * as AuthenticationTypes from "./authentication" +export * as AuthTypes from "./auth" export * as CacheTypes from "./cache" export * as CartTypes from "./cart" export * as CommonTypes from "./common" diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index c7cf134dd6..63caf03a82 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -1,5 +1,5 @@ export * from "./address" -export * from "./authentication" +export * from "./auth" export * from "./bundles" export * from "./cache" export * from "./cart" diff --git a/packages/utils/src/authentication/abstract-authentication-provider.ts b/packages/utils/src/auth/abstract-auth-provider.ts similarity index 89% rename from packages/utils/src/authentication/abstract-authentication-provider.ts rename to packages/utils/src/auth/abstract-auth-provider.ts index 925063bf02..e502e4b29e 100644 --- a/packages/utils/src/authentication/abstract-authentication-provider.ts +++ b/packages/utils/src/auth/abstract-auth-provider.ts @@ -1,7 +1,8 @@ -import { AuthenticationResponse, AuthProviderScope } from "@medusajs/types" +import { AuthProviderScope, AuthenticationResponse } from "@medusajs/types" + import { MedusaError } from "../common" -export abstract class AbstractAuthenticationModuleProvider { +export abstract class AbstractAuthModuleProvider { public static PROVIDER: string public static DISPLAY_NAME: string protected readonly scopes_: Record diff --git a/packages/utils/src/auth/index.ts b/packages/utils/src/auth/index.ts new file mode 100644 index 0000000000..c176b062eb --- /dev/null +++ b/packages/utils/src/auth/index.ts @@ -0,0 +1 @@ +export * from "./abstract-auth-provider" diff --git a/packages/utils/src/authentication/index.ts b/packages/utils/src/authentication/index.ts deleted file mode 100644 index 43c855ec7c..0000000000 --- a/packages/utils/src/authentication/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./abstract-authentication-provider" diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index d86097b681..c1ca69b9a3 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,4 +1,4 @@ -export * from "./authentication" +export * from "./auth" export * from "./bundles" export * from "./common" export * from "./dal" diff --git a/yarn.lock b/yarn.lock index aa9baf3b88..575604621c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7889,9 +7889,9 @@ __metadata: languageName: unknown linkType: soft -"@medusajs/authentication@workspace:packages/authentication": +"@medusajs/auth@workspace:packages/auth": version: 0.0.0-use.local - resolution: "@medusajs/authentication@workspace:packages/authentication" + resolution: "@medusajs/auth@workspace:packages/auth" dependencies: "@medusajs/modules-sdk": ^1.12.7 "@medusajs/types": ^1.11.11 @@ -7915,7 +7915,7 @@ __metadata: tsc-alias: ^1.8.6 typescript: ^5.1.6 bin: - medusa-authentication-seed: dist/scripts/bin/run-seed.js + medusa-auth-seed: dist/scripts/bin/run-seed.js languageName: unknown linkType: soft