Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
e637962
chore: update setup to the latest Medusa v1 version
SalahAdDin Sep 27, 2024
5523b86
chore: replace settings icon
SalahAdDin Sep 27, 2024
1cbc7c5
chore: add MedusaJS admin UI required components
SalahAdDin Sep 30, 2024
4cc5250
refactor: role page now follows the Medusa admin design
SalahAdDin Sep 30, 2024
a01db5e
chore: add create permission modal
SalahAdDin Oct 1, 2024
4d7ecd7
chore: add missing create role, create types and header for delete promp
SalahAdDin Oct 1, 2024
fe0602c
refactor: reorder and group routes by domain
SalahAdDin Oct 1, 2024
8331ca9
chore: add Roles Table component
SalahAdDin Oct 1, 2024
90f0784
refactor: handle assign permissions in external modal component
SalahAdDin Oct 1, 2024
165ddb7
feat: enabling searching over the permissions and full replace perms
SalahAdDin Oct 2, 2024
defe5b0
refactor: make associate user modal and remove from page
SalahAdDin Oct 2, 2024
a471ba3
chore: improve remove permission and users from role
SalahAdDin Oct 3, 2024
deae24e
chore: show role's permissions labels and users count
SalahAdDin Oct 3, 2024
d283e6f
fix: adding types and small fixes
SalahAdDin Oct 3, 2024
92349bc
chore: debounce search term
SalahAdDin Oct 3, 2024
5949cd4
chore: rename files, format and fix routes
SalahAdDin Oct 3, 2024
c49e1a1
chore: update middleware
SalahAdDin Oct 3, 2024
1442831
chore: format fixes for resting files
SalahAdDin Oct 3, 2024
37f464a
chore: clean pages
SalahAdDin Oct 3, 2024
a732e64
fix: revert cleaning on pages and adding missing query key
SalahAdDin Oct 4, 2024
2f9bb84
chore: rename component
SalahAdDin Oct 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
let ignore = [`**/dist`]

// Jest needs to compile this code, but generally we don't want this copied
// to output folders
if (process.env.NODE_ENV !== `test`) {
ignore.push(`**/__tests__`)
}

module.exports = {
presets: [["babel-preset-medusa-package"], ["@babel/preset-typescript"]],
ignore,
}
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
allow:
- dependency-type: production
groups:
medusa:
patterns:
- "@medusajs*"
- "medusa*"
update-types:
- "minor"
- "patch"
ignore:
- dependency-name: "@medusajs*"
update-types: ["version-update:semver-major"]
- dependency-name: "medusa*"
update-types: ["version-update:semver-major"]
36 changes: 19 additions & 17 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
/dist
.env
.DS_Store
/uploads
/node_modules
yarn-error.log

.idea
/lib
node_modules
.DS_store
**/.DS_Store
.env*
/*.js

dist
coverage

api/
services/
models/
subscribers/
migrations/
loaders/
index.*

!src/**

./tsconfig.tsbuildinfo
./package-lock.json
./yarn.json
package-lock.json
yarn.lock
medusa-db.sql
build
.cache

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
1 change: 1 addition & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodeLinker: node-modules
50 changes: 50 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
const express = require("express")
const { GracefulShutdownServer } = require("medusa-core-utils")

const loaders = require("@medusajs/medusa/dist/loaders/index").default

;(async() => {
async function start() {
const app = express()
const directory = process.cwd()

try {
const { container } = await loaders({
directory,
expressApp: app
})
const configModule = container.resolve("configModule")
const port = process.env.PORT ?? configModule.projectConfig.port ?? 9000

const server = GracefulShutdownServer.create(
app.listen(port, (err) => {
if (err) {
return
}
console.log(`Server is ready on port: ${port}`)
})
)

// Handle graceful shutdown
const gracefulShutDown = () => {
server
.shutdown()
.then(() => {
console.info("Gracefully stopping the server.")
process.exit(0)
})
.catch((e) => {
console.error("Error received when shutting down the server.", e)
process.exit(1)
})
}
process.on("SIGTERM", gracefulShutDown)
process.on("SIGINT", gracefulShutDown)
} catch (err) {
console.error("Error starting server", err)
process.exit(1)
}
}

await start()
})()
56 changes: 56 additions & 0 deletions medusa-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
const dotenv = require("dotenv");

let ENV_FILE_NAME = "";
switch (process.env.NODE_ENV) {
case "production":
ENV_FILE_NAME = ".env.production";
break;
case "staging":
ENV_FILE_NAME = ".env.staging";
break;
case "test":
ENV_FILE_NAME = ".env.test";
break;
case "development":
default:
ENV_FILE_NAME = ".env";
break;
}

try {
dotenv.config({ path: process.cwd() + "/" + ENV_FILE_NAME });
} catch (e) {}

// CORS when consuming Medusa from admin
const ADMIN_CORS =
process.env.ADMIN_CORS || "http://localhost:7000,http://localhost:7001";

// CORS to avoid issues when consuming Medusa from a client
const STORE_CORS = process.env.STORE_CORS || "http://localhost:8000";

const DATABASE_URL =
process.env.DATABASE_URL || "postgres://localhost/medusa-starter-default";

const REDIS_URL = process.env.REDIS_URL || "redis://localhost:6379";

const plugins = [];

const modules = {};

/** @type {import('@medusajs/medusa').ConfigModule["projectConfig"]} */
const projectConfig = {
jwt_secret: process.env.JWT_SECRET || "supersecret",
cookie_secret: process.env.COOKIE_SECRET || "supersecret",
store_cors: STORE_CORS,
database_url: DATABASE_URL,
admin_cors: ADMIN_CORS,
// Uncomment the following lines to enable REDIS
// redis_url: REDIS_URL
};

/** @type {import('@medusajs/medusa').ConfigModule} */
module.exports = {
projectConfig,
plugins,
modules,
};
118 changes: 74 additions & 44 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,73 +3,103 @@
"version": "1.0.0",
"description": "Basic Roles and Permissions, for users",
"repository": {
"type": "git",
"url": "https://codetuple.io/"
"type": "git",
"url": "https://codetuple.io/"
},
"homepage": "",
"author": "codetuple",
"license": "MIT",
"keywords": [
"medusa-plugin",
"page",
"static-page",
"ecommerce",
"headless",
"medusa"
"sqlite",
"postgres",
"typescript",
"ecommerce",
"headless",
"medusa"
],
"scripts": {
"prepare": "cross-env NODE_ENV=production yarn run build",
"test": "jest --passWithNoTests src",
"build": "tsc -p ./tsconfig.server.json && medusa-admin bundle",
"watch": "tsc --watch"
"clean": "cross-env ./node_modules/.bin/rimraf dist",
"copy-assets": "cp -rv src/assets dist/assets",
"build": "cross-env npm run clean && npm run build:server && npm run build:admin",
"build:server": "cross-env npm run clean && tsc -p tsconfig.server.json",
"build:admin": "cross-env medusa-admin build",
"prepare": "cross-env NODE_ENV=production npm run build:server && npm run copy-assets && medusa-admin bundle",
"watch": "cross-env tsc --watch",
"test": "cross-env jest",
"seed": "cross-env medusa seed -f ./data/seed.json",
"start": "cross-env npm run build && medusa start",
"start:custom": "cross-env npm run build && node --preserve-symlinks --trace-warnings index.js",
"dev": "cross-env npm run build:server && medusa develop"
},
"dependencies": {
"@medusajs/admin": "^7.1.16",
"@medusajs/cache-redis": "^1.9.2",
"@medusajs/event-bus-local": "1.9.9",
"@medusajs/event-bus-redis": "^1.8.14",
"@medusajs/file-local": "1.0.4",
"@medusajs/icons": "^1.2.2",
"@tanstack/react-query": "4.22.0",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "16.3.1",
"express": "^4.17.2",
"medusa-interfaces": "1.3.10",
"medusa-react": "^9.0.18",
"prism-react-renderer": "^2.0.4",
"typeorm": "0.3.16"
},
"packageManager": "yarn@3.5.0",
"devDependencies": {
"@babel/cli": "^7.14.3",
"@babel/core": "^7.14.3",
"@babel/preset-typescript": "^7.21.4",
"@medusajs/medusa-cli": "^1.3.16",
"@medusajs/medusa": "1.20.9",
"@stdlib/number-float64-base-normalize": "0.0.8",
"@types/express": "^4.17.13",
"@types/jest": "^27.4.0",
"@types/mime": "1.3.5",
"@types/node": "^17.0.8",
"babel-preset-medusa-package": "^1.1.13",
"babel-preset-medusa-package": "^1.1.19",
"cross-env": "^7.0.3",
"eslint": "^6.8.0",
"jest": "^27.3.1",
"mongoose": "^5.13.14",
"rimraf": "^3.0.2",
"ts-jest": "^27.0.7",
"ts-loader": "^9.2.6",
"typescript": "^4.5.2"
},
"peerDependencies": {
"react": "^18.2.0",
"react-router-dom": "^6.13.0"
"@medusajs/medusa": "^1.20.9",
"react": "^18.2.0",
"react-router-dom": "^6.13.0"
},
"dependencies": {
"@medusajs/admin": "^7.1.1",
"@medusajs/cache-inmemory": "^1.8.8",
"@medusajs/cache-redis": "^1.8.8",
"@medusajs/event-bus-local": "^1.9.6",
"@medusajs/event-bus-redis": "^1.8.9",
"@medusajs/file-local": "^1.0.2",
"@medusajs/icons": "^1.0.0",
"@medusajs/medusa": "1.17.0",
"@medusajs/ui": "^1.0.0",
"@tanstack/react-query": "4.22.0",
"babel-preset-medusa-package": "^1.1.13",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "16.0.3",
"express": "^4.17.2",
"medusa-fulfillment-manual": "^1.1.38",
"medusa-interfaces": "^1.3.7",
"medusa-payment-manual": "^1.0.24",
"medusa-payment-stripe": "^6.0.5",
"medusa-react": "^9.0.7",
"prism-react-renderer": "^2.0.4",
"react-router-dom": "^6.16.0",
"ts-node": "^10.9.1",
"typeorm": "^0.3.16"
}
"jest": {
"globals": {
"ts-jest": {
"tsconfig": "tsconfig.spec.json"
}
},
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"testPathIgnorePatterns": [
"/node_modules/",
"<rootDir>/node_modules/"
],
"rootDir": "src",
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|js)$",
"transform": {
".ts": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "./coverage",
"testEnvironment": "node"
},
"resolutions": {
"glob": "^7.1.6"
},
"packageManager": "yarn@1.22.22"
}
Loading