@orhancodestudio/ocsm-core 0.1.0-alpha.1

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 (67) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +47 -0
  3. package/package.json +53 -0
  4. package/src/admin/admin.module.css +1312 -0
  5. package/src/admin/admin.types.ts +85 -0
  6. package/src/admin/components/access-denied.tsx +12 -0
  7. package/src/admin/components/admin-shell.tsx +168 -0
  8. package/src/admin/components/content-list-view.tsx +83 -0
  9. package/src/admin/components/dashboard-view.tsx +113 -0
  10. package/src/admin/components/data-table.tsx +80 -0
  11. package/src/admin/components/document-delete-button.tsx +44 -0
  12. package/src/admin/components/icons.tsx +150 -0
  13. package/src/admin/components/modal.tsx +78 -0
  14. package/src/admin/components/page-builder.tsx +1334 -0
  15. package/src/admin/components/settings-view.tsx +334 -0
  16. package/src/admin/components/sign-out-button.tsx +22 -0
  17. package/src/admin/components/system-view.tsx +77 -0
  18. package/src/admin/components/users-panel.tsx +321 -0
  19. package/src/admin/index.ts +20 -0
  20. package/src/admin/ocsm-admin.tsx +259 -0
  21. package/src/auth/authenticate.ts +76 -0
  22. package/src/auth/index.ts +9 -0
  23. package/src/auth/password.ts +22 -0
  24. package/src/auth/permissions.ts +27 -0
  25. package/src/auth/session.ts +103 -0
  26. package/src/blocks/block-renderer.tsx +428 -0
  27. package/src/blocks/block.types.ts +401 -0
  28. package/src/blocks/index.ts +15 -0
  29. package/src/blocks/markdown.tsx +11 -0
  30. package/src/config/config.schema.ts +28 -0
  31. package/src/config/config.types.ts +16 -0
  32. package/src/config/define-config.ts +19 -0
  33. package/src/config/index.ts +13 -0
  34. package/src/config/resolve-config.ts +10 -0
  35. package/src/content/content-repository.ts +66 -0
  36. package/src/content/content-store.interface.ts +23 -0
  37. package/src/content/content.types.ts +25 -0
  38. package/src/content/create-content-store.ts +18 -0
  39. package/src/content/frontmatter.ts +25 -0
  40. package/src/content/index.ts +12 -0
  41. package/src/index.ts +10 -0
  42. package/src/layout/index.ts +1 -0
  43. package/src/layout/layout-store.ts +27 -0
  44. package/src/roles/index.ts +10 -0
  45. package/src/roles/role-store.ts +95 -0
  46. package/src/roles/role.types.ts +86 -0
  47. package/src/server/create-ocsm.ts +67 -0
  48. package/src/server/documents.ts +28 -0
  49. package/src/server/index.ts +59 -0
  50. package/src/server/render-mdx.tsx +14 -0
  51. package/src/storage/create-file-backend.ts +26 -0
  52. package/src/storage/file-backend.ts +26 -0
  53. package/src/storage/fs-file-backend.ts +43 -0
  54. package/src/storage/github-file-backend.ts +97 -0
  55. package/src/storage/index.ts +8 -0
  56. package/src/storage/json-store.ts +23 -0
  57. package/src/theme/css.ts +28 -0
  58. package/src/theme/index.ts +8 -0
  59. package/src/theme/theme-store.ts +19 -0
  60. package/src/theme/theme.types.ts +53 -0
  61. package/src/types/css-modules.d.ts +4 -0
  62. package/src/update/check-for-updates.ts +50 -0
  63. package/src/update/index.ts +1 -0
  64. package/src/users/index.ts +6 -0
  65. package/src/users/user-store.ts +120 -0
  66. package/src/users/user.types.ts +18 -0
  67. package/src/version.ts +11 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Changelog — @orhancodestudio/ocsm-core
2
+
3
+ ## 0.1.0-alpha.1
4
+
5
+ ### Added
6
+
7
+ - Config layer: `defineOcsmConfig`, `resolveOcsmConfig`, zod-validated schema.
8
+ - Content layer: `ContentStore` interface with `FileSystemContentStore` and
9
+ `GitHubContentStore`, plus the `createContentStore` factory.
10
+ - Server API: `createOcsm`, `writeDocument`, `deleteDocument`, `OcsmContent` (MDX),
11
+ and cookie-based admin auth.
12
+ - Admin panel: `OcsmAdmin` component (dashboard, list, MDX editor with optimistic save).
13
+ - `checkForUpdates` against the npm registry and the `OCSM_VERSION` constant.
package/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # @orhancodestudio/ocsm-core
2
+
3
+ The git-based CMS core for Next.js, powering **OCS Management** by
4
+ [Orhan Code Studio](https://orhancodestudio.com).
5
+
6
+ > ⚠️ Pre-release (`alpha`). APIs may change before `1.0.0`.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pnpm add @orhancodestudio/ocsm-core
12
+ ```
13
+
14
+ Then enable transpilation in `next.config.ts`:
15
+
16
+ ```ts
17
+ import type { NextConfig } from "next";
18
+
19
+ const nextConfig: NextConfig = {
20
+ transpilePackages: ["@orhancodestudio/ocsm-core"],
21
+ };
22
+
23
+ export default nextConfig;
24
+ ```
25
+
26
+ ## Entry points
27
+
28
+ | Import | Use |
29
+ | --- | --- |
30
+ | `@orhancodestudio/ocsm-core` | `defineOcsmConfig`, types, `OCSM_VERSION`, `checkForUpdates`. |
31
+ | `@orhancodestudio/ocsm-core/config` | `defineOcsmConfig`, config types. |
32
+ | `@orhancodestudio/ocsm-core/server` | `createOcsm`, content helpers, `OcsmContent`, auth — **server only**. |
33
+ | `@orhancodestudio/ocsm-core/admin` | `OcsmAdmin` panel component + action types. |
34
+
35
+ ## Environment variables
36
+
37
+ | Variable | Description |
38
+ | --- | --- |
39
+ | `OCSM_ADMIN_PASSWORD` | Password gating `/ocsm-admin`. Empty = open (local dev only). |
40
+ | `OCSM_GITHUB_TOKEN` | GitHub token; enables the GitHub content store (production). |
41
+ | `OCSM_GITHUB_REPO` | `owner/repo` to commit content to. |
42
+ | `OCSM_GITHUB_BRANCH` | Target branch (default `main`). |
43
+
44
+ If `OCSM_GITHUB_TOKEN` + `OCSM_GITHUB_REPO` are set, content is read/written via the
45
+ GitHub API; otherwise the local filesystem is used.
46
+
47
+ © Orhan Code Studio
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@orhancodestudio/ocsm-core",
3
+ "version": "0.1.0-alpha.1",
4
+ "description": "OCS Management — the git-based CMS core for Next.js. Built by Orhan Code Studio.",
5
+ "license": "MIT",
6
+ "author": "Orhan Code Studio (https://orhancodestudio.com)",
7
+ "homepage": "https://orhancodestudio.com",
8
+ "type": "module",
9
+ "sideEffects": false,
10
+ "files": ["src", "README.md", "CHANGELOG.md"],
11
+ "exports": {
12
+ ".": "./src/index.ts",
13
+ "./server": "./src/server/index.ts",
14
+ "./admin": "./src/admin/index.ts",
15
+ "./config": "./src/config/index.ts"
16
+ },
17
+ "scripts": {
18
+ "typecheck": "tsc --noEmit"
19
+ },
20
+ "keywords": [
21
+ "cms",
22
+ "nextjs",
23
+ "git-based",
24
+ "mdx",
25
+ "ocsm",
26
+ "orhan-code-studio"
27
+ ],
28
+ "peerDependencies": {
29
+ "next": ">=15",
30
+ "react": ">=19",
31
+ "react-dom": ">=19"
32
+ },
33
+ "dependencies": {
34
+ "@octokit/rest": "^21.0.2",
35
+ "gray-matter": "^4.0.3",
36
+ "react-markdown": "^9.0.1",
37
+ "remark-gfm": "^4.0.0",
38
+ "zod": "^3.24.1"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^22.10.2",
42
+ "@types/react": "^19.0.2",
43
+ "@types/react-dom": "^19.0.2",
44
+ "next": "^15.1.3",
45
+ "react": "^19.0.0",
46
+ "react-dom": "^19.0.0",
47
+ "typescript": "^5.7.2"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public",
51
+ "tag": "alpha"
52
+ }
53
+ }