spine-framework 0.3.65 → 0.3.66

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.
@@ -124,17 +124,18 @@ function validateRequiredFiles(appPath: string, manifest: Manifest): void {
124
124
  function validateAllowedDirectories(appPath: string): void {
125
125
  const allowedDirs = [
126
126
  'pages', 'components', 'hooks', 'utils', 'functions',
127
- 'seed', 'public', '.devin'
127
+ 'seed', 'public'
128
128
  ]
129
129
 
130
130
  const entries = readdirSync(appPath, { withFileTypes: true })
131
131
  .filter(dirent => dirent.isDirectory())
132
132
  .map(dirent => dirent.name)
133
133
 
134
- const unknownDirs = entries.filter(dir => !allowedDirs.includes(dir))
134
+ // Filter out .devin/ since it's optional and handled separately
135
+ const unknownDirs = entries.filter(dir => !allowedDirs.includes(dir) && dir !== '.devin')
135
136
 
136
137
  if (unknownDirs.length > 0) {
137
- throw new ValidationError(`❌ Unknown directories found: ${unknownDirs.join(', ')}. Allowed directories: ${allowedDirs.join(', ')}`)
138
+ throw new ValidationError(`❌ Unknown directories found: ${unknownDirs.join(', ')}. Allowed directories: ${allowedDirs.join(', ')} (plus optional .devin/)`)
138
139
  }
139
140
  }
140
141
 
@@ -162,6 +163,10 @@ function validateDevinDirectory(appPath: string): void {
162
163
  }
163
164
  }
164
165
  }
166
+
167
+ console.log(`✅ .devin/ directory valid (if present)`)
168
+ } else {
169
+ console.log(`✅ .devin/ directory not present (optional)`)
165
170
  }
166
171
  }
167
172
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spine-framework",
3
- "version": "0.3.65",
3
+ "version": "0.3.66",
4
4
  "description": "Multi-tenant, modular application platform for modern SaaS systems",
5
5
  "type": "module",
6
6
  "bin": {