spine-framework 0.3.3 → 0.3.5

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.
@@ -127,8 +127,23 @@ function copyFrameworkFiles(dryRun: boolean): void {
127
127
  }
128
128
 
129
129
  if (existsSync(dest)) {
130
- console.log(` ⏭️ ${item.dest} already exists, skipping`)
131
- continue
130
+ // For package.json: only skip if it already has scripts (i.e. it's a real project package.json)
131
+ // A bare stub created by `npm install` has no scripts and should be overwritten
132
+ if (item.template) {
133
+ try {
134
+ const existing = JSON.parse(readFileSync(dest, 'utf8'))
135
+ if (existing.scripts && Object.keys(existing.scripts).length > 0) {
136
+ console.log(` ⏭️ ${item.dest} already exists, skipping`)
137
+ continue
138
+ }
139
+ // Fall through — bare stub, overwrite it
140
+ } catch {
141
+ // Unparseable — overwrite it
142
+ }
143
+ } else {
144
+ console.log(` ⏭️ ${item.dest} already exists, skipping`)
145
+ continue
146
+ }
132
147
  }
133
148
 
134
149
  if (dryRun) {
package/README.md ADDED
@@ -0,0 +1,129 @@
1
+ # Spine Framework
2
+
3
+ **We're building Spine in the open.** The source is visible, the roadmap is public, and we share what we learn along the way. That said, Spine is not open source — commercial use requires a license. See [LICENSE.md](./LICENSE.md) for details.
4
+
5
+ ---
6
+
7
+ Spine is an enterprise application framework for agentic IDEs. It gives Windsurf, Cursor, and other AI coding tools a production-ready backend to build on — multi-tenant data model, auth, roles, permissions, Netlify functions, and a CLI for installation and app management.
8
+
9
+ You bring the use case. Spine brings the infrastructure.
10
+
11
+ ## Requirements
12
+
13
+ - Node.js 18+
14
+ - A [Supabase](https://supabase.com) project
15
+ - [Netlify CLI](https://docs.netlify.com/cli/get-started/) (`npm install -g netlify-cli`)
16
+
17
+ ## Getting Started
18
+
19
+ ### 1. Install Spine
20
+
21
+ In a new empty directory:
22
+
23
+ ```bash
24
+ npm install spine-framework@latest
25
+ ```
26
+
27
+ ### 2. Initialize the project
28
+
29
+ ```bash
30
+ npx spine-framework init
31
+ ```
32
+
33
+ This scaffolds the project structure, writes a full `package.json`, and creates a `.env` file for your Supabase credentials.
34
+
35
+ ### 3. Add your Supabase credentials
36
+
37
+ Edit `.env`:
38
+
39
+ ```
40
+ SUPABASE_URL=https://<project>.supabase.co
41
+ SUPABASE_ANON_KEY=<anon-key>
42
+ SUPABASE_SERVICE_ROLE_KEY=<service-role-key>
43
+ SUPABASE_DB_PASSWORD=<db-password>
44
+ ```
45
+
46
+ Get these from **Supabase Dashboard → Your Project → Settings → API**.
47
+
48
+ ### 4. Run migrations
49
+
50
+ ```bash
51
+ npx spine-framework migrate
52
+ ```
53
+
54
+ Applies the foundation schema and seed data to your Supabase project.
55
+
56
+ ### 5. Install apps (optional)
57
+
58
+ ```bash
59
+ npx spine-framework install-app spine-framework-portal@latest
60
+ npx spine-framework install-app spine-framework-cortex@latest
61
+ ```
62
+
63
+ ### 6. Start the dev server
64
+
65
+ ```bash
66
+ npm run assemble && netlify dev
67
+ ```
68
+
69
+ ## CLI Reference
70
+
71
+ ```
72
+ npx spine-framework <command>
73
+
74
+ Commands:
75
+ init Scaffold a new Spine project
76
+ migrate Apply database migrations
77
+ install-app Install a Spine app from npm
78
+ uninstall-app Remove an installed app
79
+ update-app Update an installed app to a newer version
80
+ status Show installed apps and framework version
81
+ migrate Run pending migrations
82
+ ```
83
+
84
+ Run `npx spine-framework <command> --help` for options on any command.
85
+
86
+ ## Project Structure
87
+
88
+ After `init`, your project will look like this:
89
+
90
+ ```
91
+ .framework/ # Framework internals (do not edit)
92
+ cli/ # CLI commands
93
+ config/ # Framework configuration
94
+ functions/ # Netlify function handlers
95
+ migrations/ # SQL migrations
96
+ src/ # React components and core UI
97
+ bin/ # CLI entry point
98
+ config/ # Vite, Tailwind, TypeScript config
99
+ scripts/ # Assembly scripts
100
+ custom/ # Your code lives here
101
+ apps/ # Custom or installed apps
102
+ functions/ # Custom Netlify functions
103
+ components/ # Custom React components
104
+ migrations/ # Custom SQL migrations
105
+ tests/ # Custom tests
106
+ .env # Supabase credentials (not committed)
107
+ ```
108
+
109
+ ## Apps
110
+
111
+ Spine apps are npm packages. Install them with the CLI:
112
+
113
+ ```bash
114
+ npx spine-framework install-app spine-framework-portal@latest
115
+ ```
116
+
117
+ Each app seeds its own roles, types, and configuration into your database and integrates with the Spine navigation and permission system.
118
+
119
+ ## License
120
+
121
+ Spine Framework is **source-available, free for internal use**. Commercial use — including SaaS, resale, managed services, and white-labeling — requires a separate commercial license.
122
+
123
+ See [LICENSE.md](./LICENSE.md) for full terms.
124
+
125
+ For commercial licensing: [spine-framework.com](https://spine-framework.com) · webmaster@spine-framework.com
126
+
127
+ ---
128
+
129
+ Copyright © 2026 Dahl Ventures Inc. All rights reserved.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/init.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuKxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAcpD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/init.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsLxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAcpD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spine-framework",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "private": false,
5
5
  "description": "Spine — enterprise application framework built on Supabase + Netlify + React",
6
6
  "type": "module",