medusa-plugin-content 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/medusa-config.js +23 -0
- package/.medusa/server/src/admin/index.js +7517 -0
- package/.medusa/server/src/admin/index.mjs +7515 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/fields/[fieldId]/route.js +31 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/fields/route.js +36 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/activity/route.js +40 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/links/[linkId]/route.js +12 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/links/route.js +34 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/route.js +49 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/tags/route.js +36 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/items/route.js +43 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/relationships/[relId]/route.js +24 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/relationships/route.js +36 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/route.js +31 -0
- package/.medusa/server/src/api/admin/content/[collectionId]/upload/route.js +31 -0
- package/.medusa/server/src/api/admin/content/route.js +37 -0
- package/.medusa/server/src/api/admin/content-creators/[id]/activity/route.js +40 -0
- package/.medusa/server/src/api/admin/content-creators/[id]/route.js +33 -0
- package/.medusa/server/src/api/admin/content-creators/route.js +37 -0
- package/.medusa/server/src/api/admin/content-tags/[id]/route.js +31 -0
- package/.medusa/server/src/api/admin/content-tags/route.js +38 -0
- package/.medusa/server/src/api/content/[slug]/items/[itemSlug]/route.js +30 -0
- package/.medusa/server/src/api/content/[slug]/items/route.js +38 -0
- package/.medusa/server/src/api/content/[slug]/route.js +29 -0
- package/.medusa/server/src/api/content/route.js +33 -0
- package/.medusa/server/src/api/middlewares.js +423 -0
- package/.medusa/server/src/api/validators.js +172 -0
- package/.medusa/server/src/links/content-creator-activity-user.js +15 -0
- package/.medusa/server/src/links/content-item-activity-user.js +15 -0
- package/.medusa/server/src/links/user-content-creator-activity.js +18 -0
- package/.medusa/server/src/links/user-content-item-activity.js +18 -0
- package/.medusa/server/src/modules/content/index.js +10 -0
- package/.medusa/server/src/modules/content/migrations/Migration20260411221609.js +88 -0
- package/.medusa/server/src/modules/content/models/content-collection.js +40 -0
- package/.medusa/server/src/modules/content/models/content-creator-activity.js +21 -0
- package/.medusa/server/src/modules/content/models/content-creator.js +24 -0
- package/.medusa/server/src/modules/content/models/content-field.js +19 -0
- package/.medusa/server/src/modules/content/models/content-item-activity.js +24 -0
- package/.medusa/server/src/modules/content/models/content-item.js +49 -0
- package/.medusa/server/src/modules/content/models/content-link.js +19 -0
- package/.medusa/server/src/modules/content/models/content-relationship.js +26 -0
- package/.medusa/server/src/modules/content/models/content-tag.js +14 -0
- package/.medusa/server/src/modules/content/models/customer-activity.js +28 -0
- package/.medusa/server/src/modules/content/service.js +49 -0
- package/.medusa/server/src/workflows/file.js +26 -0
- package/LICENSE +21 -0
- package/README.md +56 -0
- package/package.json +86 -0
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# medusa-plugin-content
|
|
2
|
+
|
|
3
|
+
A headless CMS plugin for Medusa v2. Manage content collections, items, creators, tags, and relationships from the Medusa admin dashboard.
|
|
4
|
+
|
|
5
|
+
[Documentation](https://pevey.com/medusa-plugin-content)
|
|
6
|
+
|
|
7
|
+
If you are not familiar with Medusa, you can learn more on [the project web site](https://www.medusajs.com/).
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- Create content collections with configurable formats (HTML, Markdown, JSON, plain text, images)
|
|
12
|
+
- Full CRUD for content items with draft/published/archived status workflow
|
|
13
|
+
- Dynamic schema fields per collection (text, number, boolean, date, select, multiselect, rich text, image)
|
|
14
|
+
- Content creators with activity tracking
|
|
15
|
+
- Tagging system for content items
|
|
16
|
+
- Relationships between collections (many-to-many, one-to-many, many-to-one)
|
|
17
|
+
- Content item linking across collections
|
|
18
|
+
- Markdown editor with toolbar in the admin UI
|
|
19
|
+
- Image gallery view with file upload support
|
|
20
|
+
- Activity logging for content items and creators (edits, status changes, notes)
|
|
21
|
+
- Public store API with built-in caching for content delivery
|
|
22
|
+
- Product detail page widget for adding images to products from your content collection(s)
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
Inside your medusa backend root folder:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
yarn add medusa-plugin-content
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Replace "yarn add" with the correct command for your package manager if you are using (for example) npm, pnpm, or bun.
|
|
33
|
+
|
|
34
|
+
## Configuration
|
|
35
|
+
|
|
36
|
+
Enable in your `medusa-config.ts` file. Example:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
module.exports = defineConfig({
|
|
40
|
+
//... other config
|
|
41
|
+
plugins: [
|
|
42
|
+
{
|
|
43
|
+
resolve: 'medusa-plugin-content',
|
|
44
|
+
options: {}
|
|
45
|
+
}
|
|
46
|
+
// ... other plugins
|
|
47
|
+
]
|
|
48
|
+
})
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Usage
|
|
52
|
+
|
|
53
|
+
- Create and manage content collections from the Content section in the Medusa admin sidebar.
|
|
54
|
+
- Define custom fields per collection to create structured content schemas.
|
|
55
|
+
- Add content items to collections, assign creators, and manage publication status.
|
|
56
|
+
- Use the public store API to fetch published content for your storefront.
|
package/package.json
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "medusa-plugin-content",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Content management plugin for Medusa v2",
|
|
5
|
+
"author": "Lacey Pevey",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/pevey/medusa-plugins"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://pevey.com/medusa-plugin-content",
|
|
12
|
+
"files": [
|
|
13
|
+
".medusa/server"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
"./package.json": "./package.json",
|
|
17
|
+
"./admin": {
|
|
18
|
+
"import": "./.medusa/server/src/admin/index.mjs",
|
|
19
|
+
"require": "./.medusa/server/src/admin/index.js",
|
|
20
|
+
"default": "./.medusa/server/src/admin/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
23
|
+
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
24
|
+
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
25
|
+
"./*": "./.medusa/server/src/*.js",
|
|
26
|
+
".": "./.medusa/server/src/modules/content/index.js"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"medusa-plugin-integration",
|
|
30
|
+
"medusa-v2",
|
|
31
|
+
"medusa",
|
|
32
|
+
"cms",
|
|
33
|
+
"blog",
|
|
34
|
+
"content management",
|
|
35
|
+
"image hosting"
|
|
36
|
+
],
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@mdxeditor/editor": "3.54.0",
|
|
39
|
+
"multer": "^1.4.5-lts.1"
|
|
40
|
+
},
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "medusa plugin:build",
|
|
43
|
+
"clean:snapshots": "find . -name '.snapshot-*.json' -path '*/migrations/*' -delete",
|
|
44
|
+
"dev": "medusa plugin:develop",
|
|
45
|
+
"prepublishOnly": "medusa plugin:build",
|
|
46
|
+
"test:unit": "TEST_TYPE=unit NODE_OPTIONS=--experimental-vm-modules jest --silent --runInBand --detectOpenHandles --forceExit --passWithNoTests",
|
|
47
|
+
"test:integration:http": "TEST_TYPE=integration:http NODE_OPTIONS=--experimental-vm-modules jest --silent=false --runInBand --detectOpenHandles --forceExit"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@medusajs/admin-sdk": "2.13.6",
|
|
51
|
+
"@medusajs/cli": "2.13.6",
|
|
52
|
+
"@medusajs/framework": "2.13.6",
|
|
53
|
+
"@medusajs/icons": "2.13.6",
|
|
54
|
+
"@medusajs/js-sdk": "2.13.6",
|
|
55
|
+
"@medusajs/medusa": "2.13.6",
|
|
56
|
+
"@medusajs/test-utils": "2.13.6",
|
|
57
|
+
"@medusajs/ui": "4.0.25",
|
|
58
|
+
"@swc/core": "^1.7.28",
|
|
59
|
+
"@swc/jest": "^0.2.39",
|
|
60
|
+
"@types/jest": "^30.0.0",
|
|
61
|
+
"@types/multer": "2.1.0",
|
|
62
|
+
"@types/node": "^20.0.0",
|
|
63
|
+
"@types/react": "^18.3.2",
|
|
64
|
+
"@types/react-dom": "^18.2.25",
|
|
65
|
+
"jest": "^29.7.0",
|
|
66
|
+
"prop-types": "^15.8.1",
|
|
67
|
+
"react": "^18.2.0",
|
|
68
|
+
"react-dom": "^18.2.0",
|
|
69
|
+
"ts-node": "^10.9.2",
|
|
70
|
+
"typescript": "^5.6.2",
|
|
71
|
+
"vite": "^5.2.11",
|
|
72
|
+
"yalc": "^1.0.0-pre.53"
|
|
73
|
+
},
|
|
74
|
+
"peerDependencies": {
|
|
75
|
+
"@medusajs/admin-sdk": "2.13.6",
|
|
76
|
+
"@medusajs/cli": "2.13.6",
|
|
77
|
+
"@medusajs/framework": "2.13.6",
|
|
78
|
+
"@medusajs/icons": "2.13.6",
|
|
79
|
+
"@medusajs/medusa": "2.13.6",
|
|
80
|
+
"@medusajs/test-utils": "2.13.6",
|
|
81
|
+
"@medusajs/ui": "4.0.25"
|
|
82
|
+
},
|
|
83
|
+
"engines": {
|
|
84
|
+
"node": ">=20"
|
|
85
|
+
}
|
|
86
|
+
}
|