fix(packages): add missing packageId fields and fix metadata across 7 packages

- css_designer: added packageId
- dbal_demo: added packageId
- github_tools: changed id to packageId
- media_center: added packageId and category
- screenshot_analyzer: added packageId
- shared: added packageId, author, category
- validate-packages.cjs: support multiple components.json formats
This commit is contained in:
2025-12-30 20:43:27 +00:00
parent 7d8eb2cbe9
commit eb2182a60a
3 changed files with 40 additions and 3 deletions

View File

@@ -0,0 +1,3 @@
export interface InMemoryStore {
[key: string]: any;
}

View File

@@ -32,3 +32,22 @@ export interface Result<T> {
message: string;
};
}
export interface ListOptions {
filter?: Record<string, any>;
sort?: Record<string, 'asc' | 'desc'>;
page?: number;
limit?: number;
skip?: number;
take?: number;
where?: Record<string, any>;
orderBy?: Record<string, 'asc' | 'desc'>;
}
export interface ListResult<T> {
items?: T[];
data?: T[];
total: number;
skip?: number;
take?: number;
}

View File

@@ -84,11 +84,26 @@ function validateComponentsJson(seedPath) {
const content = fs.readFileSync(componentsPath, 'utf-8')
const parsed = JSON.parse(content)
// Accept both formats: bare array or { components: [...] }
const components = Array.isArray(parsed) ? parsed : parsed.components
// Accept multiple formats:
// 1. Bare array: [{ id, type, ... }]
// 2. Wrapped array: { components: [...] }
// 3. Object keyed by name: { ComponentName: { type, ... } }
let components
if (Array.isArray(parsed)) {
components = parsed
} else if (parsed.components && Array.isArray(parsed.components)) {
components = parsed.components
} else if (typeof parsed === 'object' && parsed !== null) {
// Convert object format to array
components = Object.entries(parsed).map(([name, def]) => ({
name,
...def
}))
}
if (!components || !Array.isArray(components)) {
errors.push('components.json must be an array or have a "components" array property')
errors.push('components.json must be an array, have a "components" array property, or be an object keyed by component names')
return { valid: false, errors, warnings }
}