@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 +84 -0
- package/README.md +154 -0
- package/lib/spyne-cms-plugin.min.js +2 -0
- package/lib/spyne-cms-plugin.min.js.LICENSE.txt +1 -0
- package/package.json +74 -0
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.
|