@spynejs/cms 0.1.0

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/LICENSE.md ADDED
@@ -0,0 +1,84 @@
1
+ # License
2
+
3
+ Copyright © Relevant Context, Inc.
4
+ All rights reserved.
5
+
6
+ This software is part of the **SpyneJS Platform**, developed and maintained by **Relevant Context, Inc.**, a Delaware C-Corporation.
7
+
8
+ ---
9
+
10
+ ## Dual Licensing Model
11
+
12
+ This project is made available under a **dual-license model**:
13
+
14
+ 1. **GNU General Public License v3.0 (GPL-3.0)** — for open-source use
15
+ 2. **Commercial License** — for proprietary, enterprise, or closed-source use
16
+
17
+ You may choose **either** license depending on your intended use.
18
+
19
+ ---
20
+
21
+ ## Option 1: Open Source License (GPL-3.0)
22
+
23
+ This software may be used, modified, and distributed under the terms of the
24
+ **GNU General Public License version 3 (GPL-3.0)**.
25
+
26
+ Under this license:
27
+
28
+ - Any derivative works must also be licensed under GPL-3.0
29
+ - Source code must be made available when distributing modified versions
30
+ - The software is provided **without warranty**, as described in the GPL
31
+
32
+ The full GPL-3.0 license text can be found here:
33
+ https://www.gnu.org/licenses/gpl-3.0.html
34
+
35
+ ---
36
+
37
+ ## Option 2: Commercial License
38
+
39
+ A **commercial license** is required if you intend to:
40
+
41
+ - Use this software in a **proprietary or closed-source application**
42
+ - Distribute it as part of a **commercial SaaS or enterprise product**
43
+ - Modify or extend it **without releasing your changes under GPL-3.0**
44
+ - Integrate it into systems with usage restrictions, paid access, or gated features
45
+
46
+ Commercial licenses provide additional rights, which may include:
47
+ - Closed-source usage
48
+ - Enterprise deployment
49
+ - Internal modification without open-sourcing derivatives
50
+ - Access to premium plugins, tooling, or services
51
+
52
+ For commercial licensing inquiries, contact:
53
+
54
+ **licensing@relevantcontext.ai**
55
+ (or update with final address)
56
+
57
+ ---
58
+
59
+ ## Platform Components & Mixed Licensing
60
+
61
+ The SpyneJS platform consists of multiple components that may be distributed under **different terms**, including but not limited to:
62
+
63
+ - Client-side framework code
64
+ - CMS UI plugins
65
+ - Webpack / server-side plugins
66
+ - Premium or authenticated tooling
67
+ - Hosted services and APIs
68
+
69
+ Not all components are necessarily open-source, even when interoperating with GPL-licensed code.
70
+ Access to certain functionality may require authentication, subscription, or separate agreements.
71
+
72
+ ---
73
+
74
+ ## No Warranty
75
+
76
+ THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
77
+
78
+ ---
79
+
80
+ ## Questions
81
+
82
+ If you are unsure which license applies to your use case, please contact:
83
+
84
+ **frankbatista@relevantcontext.io**
package/README.md ADDED
@@ -0,0 +1,154 @@
1
+ # @spynejs/cms
2
+
3
+ @spynejs/cms is the **official CMS runtime plugin for SpyneJS**.
4
+
5
+ It provides a **WYSIWYG data authoring layer** for SpyneJS applications, enabling live editing of **structured JSON data** directly inside a running app — without modifying application code.
6
+
7
+ The CMS operates strictly on **application data**, preserving SpyneJS’s explicit View–Behavior–Logic architecture while enabling structured collaboration between developers, content authors, and AI-assisted workflows.
8
+
9
+ ---
10
+
11
+ ## What this is
12
+
13
+ - A **CMS runtime plugin**, not a standalone application
14
+ - Designed to run **inside SpyneJS applications**
15
+ - Enables WYSIWYG editing of structured JSON data
16
+ - Uses **deterministic, path-based updates**
17
+ - Built to support **human + AI copy / revise / validate workflows**
18
+
19
+ This package represents the **runtime CMS layer** of the SpyneJS platform.
20
+ Persistence, file access, and environment-specific behavior are handled by separate adapter packages.
21
+
22
+ ---
23
+
24
+ ## Who this is for
25
+
26
+ - Developers building SpyneJS applications that use structured JSON data
27
+ - Teams that want **safe, local-first content editing** during development
28
+ - Projects that require **explicit control over behavior wiring**
29
+ - AI-assisted authoring workflows that must remain deterministic and auditable
30
+
31
+ ---
32
+
33
+ ## How it fits into SpyneJS
34
+
35
+ SpyneJS applications treat **data, behavior, and rendering as distinct concerns**.
36
+
37
+ @spynejs/cms integrates at the **data layer only**:
38
+ - It tracks deterministic paths through application data
39
+ - Reflects edits live in the running application
40
+ - Stages changes without mutating application logic or templates
41
+
42
+ All behavior wiring, rendering logic, and application structure remain **fully controlled by the developer**.
43
+
44
+ ---
45
+
46
+ ## AppBuilder-generated applications
47
+
48
+ No setup required.
49
+
50
+ All AppBuilder-generated SpyneJS applications automatically:
51
+ - Load the CMS runtime plugin
52
+ - Pipe supported data sources through the CMS layer
53
+ - Enable WYSIWYG editing for local JSON data
54
+
55
+ ---
56
+
57
+ ## Custom SpyneJS applications
58
+
59
+ ### 1. Register the CMS plugin
60
+
61
+ ```js
62
+ SpyneApp.registerPlugin(spyneCmsPlugin);
63
+ ```
64
+
65
+ ---
66
+
67
+ ### 2. Pipe fetched data through the CMS mapper
68
+
69
+ When registering a fetch channel, route fetched data through the CMS mapping function:
70
+
71
+ ```js
72
+ SpyneApp.registerChannel(
73
+ new ChannelFetch("MY_JSON_DATA", {
74
+ url: myJSONDataURL,
75
+ map: SpyneApp.pluginsFn.mapCmsData,
76
+ }),
77
+ );
78
+ ```
79
+
80
+ This allows the CMS to:
81
+ - Track deterministic data paths
82
+ - Associate UI edits with source data
83
+ - Stage changes safely before persistence
84
+
85
+ ---
86
+
87
+ ## Local JSON editing (adapter required)
88
+
89
+ To edit **local JSON files**, an environment adapter must also be installed and running.
90
+
91
+ The adapter is responsible for:
92
+ - Reading JSON files from disk
93
+ - Applying path-based updates
94
+ - Writing updated JSON files
95
+ - Creating timestamped backups
96
+
97
+ 👉 See **@spynejs/cms-adapter** for installation and setup details.
98
+
99
+ ---
100
+
101
+ ## Release status
102
+
103
+ This package represents the **first public release** of the SpyneJS CMS runtime plugin.
104
+
105
+ It has been developed and used internally as a **private package for over two years** across production SpyneJS applications before being prepared for public release.
106
+
107
+ The current release focuses on a **stable, intentionally scoped feature set**:
108
+ - WYSIWYG authoring of structured JSON data
109
+ - Deterministic, path-based updates
110
+ - Safe integration with the SpyneJS runtime
111
+
112
+ The CMS will continue to evolve as part of the broader SpyneJS authoring platform, with future expansions including additional adapters, deeper tooling integration, and AI-assisted workflows.
113
+
114
+ ---
115
+
116
+ ## Scope & roadmap
117
+
118
+ **Current**
119
+ - WYSIWYG editing of structured JSON data
120
+ - Automatic integration with AppBuilder apps
121
+ - Manual integration with custom SpyneJS apps
122
+ - Deterministic, path-based update model
123
+
124
+ **Planned**
125
+ - Adapters for additional data sources (SQL, NoSQL, headless CMS)
126
+ - Deeper integration with Spyne Studio
127
+ - AI-assisted content editing and validation
128
+
129
+ ---
130
+
131
+ ## Important notes
132
+
133
+ - This CMS **does not edit JavaScript, HTML, or SCSS**
134
+ - It operates strictly on application data
135
+ - All behavior wiring remains explicit and controlled by the application
136
+
137
+ ---
138
+
139
+ ## License & ownership
140
+
141
+ © Relevant Context, Inc. All rights reserved.
142
+
143
+ This software is part of the SpyneJS platform and is developed and maintained by Relevant Context, Inc., a Delaware C-Corporation.
144
+
145
+ The final open-source license for this package has **not yet been designated**.
146
+ Until a license is explicitly published:
147
+
148
+ - This code is provided for evaluation and authorized use only
149
+ - Redistribution, modification, or commercial reuse may be restricted
150
+ - Certain functionality may require authentication or an active subscription
151
+
152
+ Parts of the SpyneJS CMS ecosystem — including runtime behavior, server-side plugins, and premium tooling — may be distributed separately under different terms.
153
+
154
+ A formal license (likely GPL-3.0 or a dual-license model) will be announced prior to public open-source release.