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.
Files changed (48) hide show
  1. package/.medusa/server/medusa-config.js +23 -0
  2. package/.medusa/server/src/admin/index.js +7517 -0
  3. package/.medusa/server/src/admin/index.mjs +7515 -0
  4. package/.medusa/server/src/api/admin/content/[collectionId]/fields/[fieldId]/route.js +31 -0
  5. package/.medusa/server/src/api/admin/content/[collectionId]/fields/route.js +36 -0
  6. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/activity/route.js +40 -0
  7. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/links/[linkId]/route.js +12 -0
  8. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/links/route.js +34 -0
  9. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/route.js +49 -0
  10. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/tags/route.js +36 -0
  11. package/.medusa/server/src/api/admin/content/[collectionId]/items/route.js +43 -0
  12. package/.medusa/server/src/api/admin/content/[collectionId]/relationships/[relId]/route.js +24 -0
  13. package/.medusa/server/src/api/admin/content/[collectionId]/relationships/route.js +36 -0
  14. package/.medusa/server/src/api/admin/content/[collectionId]/route.js +31 -0
  15. package/.medusa/server/src/api/admin/content/[collectionId]/upload/route.js +31 -0
  16. package/.medusa/server/src/api/admin/content/route.js +37 -0
  17. package/.medusa/server/src/api/admin/content-creators/[id]/activity/route.js +40 -0
  18. package/.medusa/server/src/api/admin/content-creators/[id]/route.js +33 -0
  19. package/.medusa/server/src/api/admin/content-creators/route.js +37 -0
  20. package/.medusa/server/src/api/admin/content-tags/[id]/route.js +31 -0
  21. package/.medusa/server/src/api/admin/content-tags/route.js +38 -0
  22. package/.medusa/server/src/api/content/[slug]/items/[itemSlug]/route.js +30 -0
  23. package/.medusa/server/src/api/content/[slug]/items/route.js +38 -0
  24. package/.medusa/server/src/api/content/[slug]/route.js +29 -0
  25. package/.medusa/server/src/api/content/route.js +33 -0
  26. package/.medusa/server/src/api/middlewares.js +423 -0
  27. package/.medusa/server/src/api/validators.js +172 -0
  28. package/.medusa/server/src/links/content-creator-activity-user.js +15 -0
  29. package/.medusa/server/src/links/content-item-activity-user.js +15 -0
  30. package/.medusa/server/src/links/user-content-creator-activity.js +18 -0
  31. package/.medusa/server/src/links/user-content-item-activity.js +18 -0
  32. package/.medusa/server/src/modules/content/index.js +10 -0
  33. package/.medusa/server/src/modules/content/migrations/Migration20260411221609.js +88 -0
  34. package/.medusa/server/src/modules/content/models/content-collection.js +40 -0
  35. package/.medusa/server/src/modules/content/models/content-creator-activity.js +21 -0
  36. package/.medusa/server/src/modules/content/models/content-creator.js +24 -0
  37. package/.medusa/server/src/modules/content/models/content-field.js +19 -0
  38. package/.medusa/server/src/modules/content/models/content-item-activity.js +24 -0
  39. package/.medusa/server/src/modules/content/models/content-item.js +49 -0
  40. package/.medusa/server/src/modules/content/models/content-link.js +19 -0
  41. package/.medusa/server/src/modules/content/models/content-relationship.js +26 -0
  42. package/.medusa/server/src/modules/content/models/content-tag.js +14 -0
  43. package/.medusa/server/src/modules/content/models/customer-activity.js +28 -0
  44. package/.medusa/server/src/modules/content/service.js +49 -0
  45. package/.medusa/server/src/workflows/file.js +26 -0
  46. package/LICENSE +21 -0
  47. package/README.md +56 -0
  48. 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
+ }