From 824bcce3dd9916ede1cd83875b747bac60ca1fa8 Mon Sep 17 00:00:00 2001 From: fPolic Date: Thu, 11 Jan 2024 11:26:41 +0100 Subject: [PATCH] feat: Payment module package setup --- packages/modules-sdk/src/definitions.ts | 17 ++++++ packages/payment/.gitignore | 6 ++ packages/payment/CHANGELOG.md | 0 packages/payment/README.md | 3 + .../integration-tests/__tests__/index.spec.ts | 5 ++ .../payment/integration-tests/setup-env.js | 6 ++ packages/payment/integration-tests/setup.js | 3 + .../payment/integration-tests/utils/config.ts | 6 ++ .../integration-tests/utils/database.ts | 18 ++++++ .../payment/integration-tests/utils/index.ts | 2 + packages/payment/jest.config.js | 21 +++++++ packages/payment/mikro-orm.config.dev.ts | 8 +++ packages/payment/package.json | 61 +++++++++++++++++++ packages/payment/src/index.ts | 23 +++++++ packages/payment/src/initialize/index.ts | 27 ++++++++ packages/payment/src/joiner-config.ts | 31 ++++++++++ packages/payment/src/loaders/connection.ts | 34 +++++++++++ packages/payment/src/loaders/container.ts | 39 ++++++++++++ packages/payment/src/loaders/index.ts | 2 + packages/payment/src/models/index.ts | 1 + packages/payment/src/module-definition.ts | 14 +++++ packages/payment/src/repositories/index.ts | 1 + packages/payment/src/scripts/bin/run-seed.ts | 33 ++++++++++ packages/payment/src/scripts/seed-utils.ts | 8 +++ .../src/services/__tests__/index.spec.ts | 5 ++ packages/payment/src/services/index.ts | 1 + .../payment/src/services/payment-module.ts | 29 +++++++++ packages/payment/src/types/index.ts | 5 ++ packages/payment/tsconfig.json | 36 +++++++++++ packages/payment/tsconfig.spec.json | 8 +++ packages/types/src/index.ts | 2 +- packages/types/src/payment/index.ts | 1 + packages/types/src/payment/service.ts | 3 + yarn.lock | 27 ++++++++ 34 files changed, 485 insertions(+), 1 deletion(-) create mode 100644 packages/payment/.gitignore create mode 100644 packages/payment/CHANGELOG.md create mode 100644 packages/payment/README.md create mode 100644 packages/payment/integration-tests/__tests__/index.spec.ts create mode 100644 packages/payment/integration-tests/setup-env.js create mode 100644 packages/payment/integration-tests/setup.js create mode 100644 packages/payment/integration-tests/utils/config.ts create mode 100644 packages/payment/integration-tests/utils/database.ts create mode 100644 packages/payment/integration-tests/utils/index.ts create mode 100644 packages/payment/jest.config.js create mode 100644 packages/payment/mikro-orm.config.dev.ts create mode 100644 packages/payment/package.json create mode 100644 packages/payment/src/index.ts create mode 100644 packages/payment/src/initialize/index.ts create mode 100644 packages/payment/src/joiner-config.ts create mode 100644 packages/payment/src/loaders/connection.ts create mode 100644 packages/payment/src/loaders/container.ts create mode 100644 packages/payment/src/loaders/index.ts create mode 100644 packages/payment/src/models/index.ts create mode 100644 packages/payment/src/module-definition.ts create mode 100644 packages/payment/src/repositories/index.ts create mode 100644 packages/payment/src/scripts/bin/run-seed.ts create mode 100644 packages/payment/src/scripts/seed-utils.ts create mode 100644 packages/payment/src/services/__tests__/index.spec.ts create mode 100644 packages/payment/src/services/index.ts create mode 100644 packages/payment/src/services/payment-module.ts create mode 100644 packages/payment/src/types/index.ts create mode 100644 packages/payment/tsconfig.json create mode 100644 packages/payment/tsconfig.spec.json create mode 100644 packages/types/src/payment/index.ts create mode 100644 packages/types/src/payment/service.ts diff --git a/packages/modules-sdk/src/definitions.ts b/packages/modules-sdk/src/definitions.ts index 48cbe2eb16..a70b6f1b93 100644 --- a/packages/modules-sdk/src/definitions.ts +++ b/packages/modules-sdk/src/definitions.ts @@ -16,6 +16,7 @@ export enum Modules { PROMOTION = "promotion", AUTHENTICATION = "authentication", CART = "cart", + PAYMENT = "payment", } export enum ModuleRegistrationName { @@ -28,6 +29,7 @@ export enum ModuleRegistrationName { PROMOTION = "promotionModuleService", AUTHENTICATION = "authenticationModuleService", CART = "cartModuleService", + PAYMENT = "paymentModuleService", } export const MODULE_PACKAGE_NAMES = { @@ -40,6 +42,7 @@ export const MODULE_PACKAGE_NAMES = { [Modules.PROMOTION]: "@medusajs/promotion", [Modules.AUTHENTICATION]: "@medusajs/authentication", [Modules.CART]: "@medusajs/cart", + [Modules.PAYMENT]: "@medusajs/payment", } export const ModulesDefinition: { [key: string | Modules]: ModuleDefinition } = @@ -171,6 +174,20 @@ export const ModulesDefinition: { [key: string | Modules]: ModuleDefinition } = resources: MODULE_RESOURCE_TYPE.SHARED, }, }, + [Modules.PAYMENT]: { + key: Modules.PAYMENT, + registrationName: ModuleRegistrationName.PAYMENT, + defaultPackage: false, + label: upperCaseFirst(ModuleRegistrationName.PAYMENT), + isRequired: false, + canOverride: true, + isQueryable: true, + dependencies: ["logger"], + defaultModuleDeclaration: { + scope: MODULE_SCOPE.INTERNAL, + resources: MODULE_RESOURCE_TYPE.SHARED, + }, + }, } export const MODULE_DEFINITIONS: ModuleDefinition[] = diff --git a/packages/payment/.gitignore b/packages/payment/.gitignore new file mode 100644 index 0000000000..874c6c69d3 --- /dev/null +++ b/packages/payment/.gitignore @@ -0,0 +1,6 @@ +/dist +node_modules +.DS_store +.env* +.env +*.sql diff --git a/packages/payment/CHANGELOG.md b/packages/payment/CHANGELOG.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/payment/README.md b/packages/payment/README.md new file mode 100644 index 0000000000..5f233bc704 --- /dev/null +++ b/packages/payment/README.md @@ -0,0 +1,3 @@ +# Payment Module + +A Payment is the result of a series of financial transactions performed as part of collecting a payment of a purchase. The Payment holds information about the payment provider as well as the state of it. You can associate a Payment with a Cart, an Order, an OrderEdit, or any other resource you’d like to have your customers pay for. diff --git a/packages/payment/integration-tests/__tests__/index.spec.ts b/packages/payment/integration-tests/__tests__/index.spec.ts new file mode 100644 index 0000000000..728f6245c6 --- /dev/null +++ b/packages/payment/integration-tests/__tests__/index.spec.ts @@ -0,0 +1,5 @@ +describe("Noop test", () => { + it("noop check", async () => { + expect(true).toBe(true) + }) +}) diff --git a/packages/payment/integration-tests/setup-env.js b/packages/payment/integration-tests/setup-env.js new file mode 100644 index 0000000000..a6084bae66 --- /dev/null +++ b/packages/payment/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-payment-integration-${tempName}` +} + +process.env.MEDUSA_CART_DB_SCHEMA = "public" diff --git a/packages/payment/integration-tests/setup.js b/packages/payment/integration-tests/setup.js new file mode 100644 index 0000000000..43f99aab4a --- /dev/null +++ b/packages/payment/integration-tests/setup.js @@ -0,0 +1,3 @@ +import { JestUtils } from "medusa-test-utils" + +JestUtils.afterAllHookDropDatabase() diff --git a/packages/payment/integration-tests/utils/config.ts b/packages/payment/integration-tests/utils/config.ts new file mode 100644 index 0000000000..5017bc79f0 --- /dev/null +++ b/packages/payment/integration-tests/utils/config.ts @@ -0,0 +1,6 @@ +import { ModuleServiceInitializeOptions } from "@medusajs/types" + +export const databaseOptions: ModuleServiceInitializeOptions["database"] = { + schema: "public", + clientUrl: "medusa-payment-test", +} diff --git a/packages/payment/integration-tests/utils/database.ts b/packages/payment/integration-tests/utils/database.ts new file mode 100644 index 0000000000..0fbf6bdd1c --- /dev/null +++ b/packages/payment/integration-tests/utils/database.ts @@ -0,0 +1,18 @@ +import { TestDatabaseUtils } from "medusa-test-utils" + +import * as PaymentModules from "@models" + +const pathToMigrations = "../../src/migrations" +const mikroOrmEntities = PaymentModules as unknown as any[] + +export const MikroOrmWrapper = TestDatabaseUtils.getMikroOrmWrapper( + mikroOrmEntities, + pathToMigrations +) + +export const MikroOrmConfig = TestDatabaseUtils.getMikroOrmConfig( + mikroOrmEntities, + pathToMigrations +) + +export const DB_URL = TestDatabaseUtils.getDatabaseURL() diff --git a/packages/payment/integration-tests/utils/index.ts b/packages/payment/integration-tests/utils/index.ts new file mode 100644 index 0000000000..5ca5d1bdc0 --- /dev/null +++ b/packages/payment/integration-tests/utils/index.ts @@ -0,0 +1,2 @@ +export * from "./config" +export * from "./database" diff --git a/packages/payment/jest.config.js b/packages/payment/jest.config.js new file mode 100644 index 0000000000..860ba90a49 --- /dev/null +++ b/packages/payment/jest.config.js @@ -0,0 +1,21 @@ +module.exports = { + moduleNameMapper: { + "^@models": "/src/models", + "^@services": "/src/services", + "^@repositories": "/src/repositories", + }, + transform: { + "^.+\\.[jt]s?$": [ + "ts-jest", + { + tsConfig: "tsconfig.spec.json", + isolatedModules: true, + }, + ], + }, + testEnvironment: `node`, + moduleFileExtensions: [`js`, `ts`], + modulePathIgnorePatterns: ["dist/"], + setupFiles: ["/integration-tests/setup-env.js"], + setupFilesAfterEnv: ["/integration-tests/setup.js"], +} diff --git a/packages/payment/mikro-orm.config.dev.ts b/packages/payment/mikro-orm.config.dev.ts new file mode 100644 index 0000000000..9e03481768 --- /dev/null +++ b/packages/payment/mikro-orm.config.dev.ts @@ -0,0 +1,8 @@ +import * as entities from "./src/models" + +module.exports = { + entities: Object.values(entities), + schema: "public", + clientUrl: "postgres://postgres@localhost/medusa-payment", + type: "postgresql", +} diff --git a/packages/payment/package.json b/packages/payment/package.json new file mode 100644 index 0000000000..cfc0e8a564 --- /dev/null +++ b/packages/payment/package.json @@ -0,0 +1,61 @@ +{ + "name": "@medusajs/payment", + "version": "0.0.1", + "description": "Medusa Payment module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "engines": { + "node": ">=16" + }, + "bin": { + "medusa-payment-seed": "dist/scripts/bin/run-seed.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/medusajs/medusa", + "directory": "packages/payment" + }, + "publishConfig": { + "access": "public" + }, + "author": "Medusa", + "license": "MIT", + "scripts": { + "watch": "tsc --build --watch", + "watch:test": "tsc --build tsconfig.spec.json --watch", + "prepublishOnly": "cross-env NODE_ENV=production tsc --build && tsc-alias -p tsconfig.json", + "build": "rimraf dist && tsc --build && tsc-alias -p tsconfig.json", + "test": "jest --runInBand --bail --forceExit -- src/**/__tests__/**/*.ts", + "test:integration": "jest --runInBand --forceExit -- integration-tests/**/__tests__/**/*.ts", + "migration:generate": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:generate", + "migration:initial": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create --initial", + "migration:create": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create", + "migration:up": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:up", + "orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm cache:clear" + }, + "devDependencies": { + "@mikro-orm/cli": "5.9.7", + "cross-env": "^5.2.1", + "jest": "^29.6.3", + "medusa-test-utils": "^1.1.40", + "rimraf": "^3.0.2", + "ts-jest": "^29.1.1", + "ts-node": "^10.9.1", + "tsc-alias": "^1.8.6", + "typescript": "^5.1.6" + }, + "dependencies": { + "@medusajs/modules-sdk": "^1.12.5", + "@medusajs/types": "^1.11.9", + "@medusajs/utils": "^1.11.2", + "@mikro-orm/core": "5.9.7", + "@mikro-orm/migrations": "5.9.7", + "@mikro-orm/postgresql": "5.9.7", + "awilix": "^8.0.0", + "dotenv": "^16.1.4", + "knex": "2.4.2" + } +} diff --git a/packages/payment/src/index.ts b/packages/payment/src/index.ts new file mode 100644 index 0000000000..5ec1f1b289 --- /dev/null +++ b/packages/payment/src/index.ts @@ -0,0 +1,23 @@ +import { moduleDefinition } from "./module-definition" +import { Modules } from "@medusajs/modules-sdk" +import { ModulesSdkUtils } from "@medusajs/utils" + +import * as PaymentModels from "@models" + +export default moduleDefinition + +const migrationScriptOptions = { + moduleName: Modules.PAYMENT, + models: PaymentModels, + pathToMigrations: __dirname + "/migrations", +} + +export const runMigrations = ModulesSdkUtils.buildMigrationScript( + migrationScriptOptions +) +export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( + migrationScriptOptions +) + +export * from "./initialize" +export * from "./loaders" diff --git a/packages/payment/src/initialize/index.ts b/packages/payment/src/initialize/index.ts new file mode 100644 index 0000000000..37830dcf8a --- /dev/null +++ b/packages/payment/src/initialize/index.ts @@ -0,0 +1,27 @@ +import { + ExternalModuleDeclaration, + InternalModuleDeclaration, + MedusaModule, + MODULE_PACKAGE_NAMES, + Modules, +} from "@medusajs/modules-sdk" +import { IPaymentModuleService, ModulesSdkTypes } from "@medusajs/types" +import { moduleDefinition } from "../module-definition" +import { InitializeModuleInjectableDependencies } from "../types" + +export const initialize = async ( + options?: ModulesSdkTypes.ModuleBootstrapDeclaration, + injectedDependencies?: InitializeModuleInjectableDependencies +): Promise => { + const loaded = await MedusaModule.bootstrap({ + moduleKey: Modules.PAYMENT, + defaultPath: MODULE_PACKAGE_NAMES[Modules.PAYMENT], + declaration: options as + | InternalModuleDeclaration + | ExternalModuleDeclaration, + injectedDependencies, + moduleExports: moduleDefinition, + }) + + return loaded[Modules.PAYMENT] +} diff --git a/packages/payment/src/joiner-config.ts b/packages/payment/src/joiner-config.ts new file mode 100644 index 0000000000..a04381a6ef --- /dev/null +++ b/packages/payment/src/joiner-config.ts @@ -0,0 +1,31 @@ +import { Modules } from "@medusajs/modules-sdk" +import { ModuleJoinerConfig } from "@medusajs/types" +import { MapToConfig } from "@medusajs/utils" +import { Payment } from "@models" + +export const LinkableKeys = { + payment_id: Payment.name, +} + +const entityLinkableKeysMap: MapToConfig = {} +Object.entries(LinkableKeys).forEach(([key, value]) => { + entityLinkableKeysMap[value] ??= [] + entityLinkableKeysMap[value].push({ + mapTo: key, + valueFrom: key.split("_").pop()!, + }) +}) + +export const entityNameToLinkableKeysMap: MapToConfig = entityLinkableKeysMap + +export const joinerConfig: ModuleJoinerConfig = { + serviceName: Modules.PAYMENT, + primaryKeys: ["id"], + linkableKeys: LinkableKeys, + alias: { + name: ["payment", "payments"], + args: { + entity: Payment.name, + }, + }, +} diff --git a/packages/payment/src/loaders/connection.ts b/packages/payment/src/loaders/connection.ts new file mode 100644 index 0000000000..97eec362af --- /dev/null +++ b/packages/payment/src/loaders/connection.ts @@ -0,0 +1,34 @@ +import { + InternalModuleDeclaration, + LoaderOptions, + Modules, +} from "@medusajs/modules-sdk" +import { ModulesSdkTypes } from "@medusajs/types" +import { ModulesSdkUtils } from "@medusajs/utils" +import { EntitySchema } from "@mikro-orm/core" +import * as PaymentModels from "../models" + +export default async ( + { + options, + container, + logger, + }: LoaderOptions< + | ModulesSdkTypes.ModuleServiceInitializeOptions + | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions + >, + moduleDeclaration?: InternalModuleDeclaration +): Promise => { + const entities = Object.values(PaymentModels) as unknown as EntitySchema[] + const pathToMigrations = __dirname + "/../migrations" + + await ModulesSdkUtils.mikroOrmConnectionLoader({ + moduleName: Modules.PAYMENT, + entities, + container, + options, + moduleDeclaration, + logger, + pathToMigrations, + }) +} diff --git a/packages/payment/src/loaders/container.ts b/packages/payment/src/loaders/container.ts new file mode 100644 index 0000000000..ba1b855344 --- /dev/null +++ b/packages/payment/src/loaders/container.ts @@ -0,0 +1,39 @@ +import { LoaderOptions } from "@medusajs/modules-sdk" +import { ModulesSdkTypes } from "@medusajs/types" +import { loadCustomRepositories } from "@medusajs/utils" +import { asClass } from "awilix" + +import * as defaultRepositories from "@repositories" +import * as defaultServices from "@services" + +export default async ({ + container, + options, +}: LoaderOptions< + | ModulesSdkTypes.ModuleServiceInitializeOptions + | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions +>): Promise => { + const customRepositories = ( + options as ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions + )?.repositories + + container.register({ + // paymentService: asClass(defaultServices.PaymentService).singleton(), + }) + + if (customRepositories) { + loadCustomRepositories({ + defaultRepositories, + customRepositories, + container, + }) + } else { + loadDefaultRepositories({ container }) + } +} + +function loadDefaultRepositories({ container }) { + container.register({ + baseRepository: asClass(defaultRepositories.BaseRepository).singleton(), + }) +} diff --git a/packages/payment/src/loaders/index.ts b/packages/payment/src/loaders/index.ts new file mode 100644 index 0000000000..3614963d8c --- /dev/null +++ b/packages/payment/src/loaders/index.ts @@ -0,0 +1,2 @@ +export * from "./connection" +export * from "./container" diff --git a/packages/payment/src/models/index.ts b/packages/payment/src/models/index.ts new file mode 100644 index 0000000000..6810edbc6f --- /dev/null +++ b/packages/payment/src/models/index.ts @@ -0,0 +1 @@ +export { default as Payment } from "./payment" diff --git a/packages/payment/src/module-definition.ts b/packages/payment/src/module-definition.ts new file mode 100644 index 0000000000..543a6ef254 --- /dev/null +++ b/packages/payment/src/module-definition.ts @@ -0,0 +1,14 @@ +import { ModuleExports } from "@medusajs/types" + +import { PaymentModuleService } from "@services" + +import loadConnection from "./loaders/connection" +import loadContainer from "./loaders/container" + +const service = PaymentModuleService +const loaders = [loadContainer, loadConnection] as any + +export const moduleDefinition: ModuleExports = { + service, + loaders, +} diff --git a/packages/payment/src/repositories/index.ts b/packages/payment/src/repositories/index.ts new file mode 100644 index 0000000000..147c9cc259 --- /dev/null +++ b/packages/payment/src/repositories/index.ts @@ -0,0 +1 @@ +export { MikroOrmBaseRepository as BaseRepository } from "@medusajs/utils" diff --git a/packages/payment/src/scripts/bin/run-seed.ts b/packages/payment/src/scripts/bin/run-seed.ts new file mode 100644 index 0000000000..ab7eacb3f3 --- /dev/null +++ b/packages/payment/src/scripts/bin/run-seed.ts @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +import { EOL } from "os" +import { ModulesSdkUtils } from "@medusajs/utils" +import { Modules } from "@medusajs/modules-sdk" + +import * as PaymentModels from "@models" + +import { createPayments } from "../seed-utils" + +const args = process.argv +const path = args.pop() as string + +export default (async () => { + const { config } = await import("dotenv") + config() + if (!path) { + throw new Error( + `filePath is required.${EOL}Example: medusa-payment-seed ` + ) + } + + const run = ModulesSdkUtils.buildSeedScript({ + moduleName: Modules.PAYMENT, + models: PaymentModels, + pathToMigrations: __dirname + "/../../migrations", + seedHandler: async ({ manager, data }) => { + const { paymentsData } = data + await createPayments(manager, paymentsData) + }, + }) + await run({ path }) +})() diff --git a/packages/payment/src/scripts/seed-utils.ts b/packages/payment/src/scripts/seed-utils.ts new file mode 100644 index 0000000000..a507d0b6bc --- /dev/null +++ b/packages/payment/src/scripts/seed-utils.ts @@ -0,0 +1,8 @@ +import { SqlEntityManager } from "@mikro-orm/postgresql" + +export async function createPayments( + manager: SqlEntityManager, + paymentsData: any[] +): Promise { + return [] +} diff --git a/packages/payment/src/services/__tests__/index.spec.ts b/packages/payment/src/services/__tests__/index.spec.ts new file mode 100644 index 0000000000..728f6245c6 --- /dev/null +++ b/packages/payment/src/services/__tests__/index.spec.ts @@ -0,0 +1,5 @@ +describe("Noop test", () => { + it("noop check", async () => { + expect(true).toBe(true) + }) +}) diff --git a/packages/payment/src/services/index.ts b/packages/payment/src/services/index.ts new file mode 100644 index 0000000000..a4f5ea37ae --- /dev/null +++ b/packages/payment/src/services/index.ts @@ -0,0 +1 @@ +export { default as PaymentModuleService } from "./payment-module" diff --git a/packages/payment/src/services/payment-module.ts b/packages/payment/src/services/payment-module.ts new file mode 100644 index 0000000000..9dc1a7a406 --- /dev/null +++ b/packages/payment/src/services/payment-module.ts @@ -0,0 +1,29 @@ +import { + DAL, + InternalModuleDeclaration, + ModuleJoinerConfig, +} from "@medusajs/types" + +import { Payment } from "@models" + +import { joinerConfig } from "../joiner-config" + +type InjectedDependencies = { + baseRepository: DAL.RepositoryService +} + +// TODO: implement IPaymentModule +export default class PaymentModule { + protected baseRepository_: DAL.RepositoryService + + constructor( + { baseRepository }: InjectedDependencies, + protected readonly moduleDeclaration: InternalModuleDeclaration + ) { + this.baseRepository_ = baseRepository + } + + __joinerConfig(): ModuleJoinerConfig { + return joinerConfig + } +} diff --git a/packages/payment/src/types/index.ts b/packages/payment/src/types/index.ts new file mode 100644 index 0000000000..0f252977b0 --- /dev/null +++ b/packages/payment/src/types/index.ts @@ -0,0 +1,5 @@ +import { Logger } from "@medusajs/types" + +export type InitializeModuleInjectableDependencies = { + logger?: Logger +} diff --git a/packages/payment/tsconfig.json b/packages/payment/tsconfig.json new file mode 100644 index 0000000000..213e38fc55 --- /dev/null +++ b/packages/payment/tsconfig.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "lib": ["es2020"], + "target": "es2020", + "outDir": "./dist", + "esModuleInterop": true, + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "sourceMap": false, + "noImplicitReturns": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "noImplicitThis": true, + "allowJs": true, + "skipLibCheck": true, + "downlevelIteration": true, // to use ES5 specific tooling + "baseUrl": ".", + "resolveJsonModule": true, + "paths": { + "@models": ["./src/models"], + "@services": ["./src/services"], + "@repositories": ["./src/repositories"] + } + }, + "include": ["src"], + "exclude": [ + "dist", + "./src/**/__tests__", + "./src/**/__mocks__", + "./src/**/__fixtures__", + "node_modules" + ] +} diff --git a/packages/payment/tsconfig.spec.json b/packages/payment/tsconfig.spec.json new file mode 100644 index 0000000000..48e47e8cbb --- /dev/null +++ b/packages/payment/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "include": ["src", "integration-tests"], + "exclude": ["node_modules", "dist"], + "compilerOptions": { + "sourceMap": true + } +} diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index e9ed92dcbd..823b2eada2 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -16,6 +16,7 @@ export * from "./logger" export * from "./modules-sdk" export * from "./pricing" export * from "./product" +export * from "./payment" export * from "./product-category" export * from "./promotion" export * from "./region" @@ -25,4 +26,3 @@ export * from "./shared-context" export * from "./stock-location" export * from "./transaction-base" export * from "./workflow" - diff --git a/packages/types/src/payment/index.ts b/packages/types/src/payment/index.ts new file mode 100644 index 0000000000..9376fea807 --- /dev/null +++ b/packages/types/src/payment/index.ts @@ -0,0 +1 @@ +export * from "./service" diff --git a/packages/types/src/payment/service.ts b/packages/types/src/payment/service.ts new file mode 100644 index 0000000000..80c70e30da --- /dev/null +++ b/packages/types/src/payment/service.ts @@ -0,0 +1,3 @@ +import { IModuleService } from "../modules-sdk" + +export interface IPaymentModuleService extends IModuleService {} diff --git a/yarn.lock b/yarn.lock index 1a9b7e1666..3edcaca246 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8358,6 +8358,33 @@ __metadata: languageName: unknown linkType: soft +"@medusajs/payment@workspace:packages/payment": + version: 0.0.0-use.local + resolution: "@medusajs/payment@workspace:packages/payment" + dependencies: + "@medusajs/modules-sdk": ^1.12.5 + "@medusajs/types": ^1.11.9 + "@medusajs/utils": ^1.11.2 + "@mikro-orm/cli": 5.9.7 + "@mikro-orm/core": 5.9.7 + "@mikro-orm/migrations": 5.9.7 + "@mikro-orm/postgresql": 5.9.7 + awilix: ^8.0.0 + cross-env: ^5.2.1 + dotenv: ^16.1.4 + jest: ^29.6.3 + knex: 2.4.2 + medusa-test-utils: ^1.1.40 + rimraf: ^3.0.2 + ts-jest: ^29.1.1 + ts-node: ^10.9.1 + tsc-alias: ^1.8.6 + typescript: ^5.1.6 + bin: + medusa-payment-seed: dist/scripts/bin/run-seed.js + languageName: unknown + linkType: soft + "@medusajs/pricing@workspace:^, @medusajs/pricing@workspace:packages/pricing": version: 0.0.0-use.local resolution: "@medusajs/pricing@workspace:packages/pricing"