@famgia/omnify 2.0.13 → 2.0.15
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/README.md +49 -31
- package/package.json +8 -9
- package/scripts/postinstall.js +1 -25
package/README.md
CHANGED
|
@@ -176,22 +176,22 @@ options:
|
|
|
176
176
|
|
|
177
177
|
### Property Types
|
|
178
178
|
|
|
179
|
-
| Type
|
|
180
|
-
|
|
181
|
-
| `String`
|
|
182
|
-
| `Text`
|
|
183
|
-
| `Int`
|
|
184
|
-
| `BigInt`
|
|
185
|
-
| `Float`
|
|
186
|
-
| `Decimal`
|
|
187
|
-
| `Boolean`
|
|
188
|
-
| `Date`
|
|
189
|
-
| `DateTime`
|
|
190
|
-
| `Timestamp` | `timestamp`
|
|
191
|
-
| `Time`
|
|
192
|
-
| `Json`
|
|
193
|
-
| `Uuid`
|
|
194
|
-
| `Enum`
|
|
179
|
+
| Type | Laravel | TypeScript | Description |
|
|
180
|
+
| ----------- | --------------- | ------------------------- | --------------- |
|
|
181
|
+
| `String` | `string(255)` | `string` | Short text |
|
|
182
|
+
| `Text` | `text` | `string` | Long text |
|
|
183
|
+
| `Int` | `integer` | `number` | Integer |
|
|
184
|
+
| `BigInt` | `bigInteger` | `number` | Large integer |
|
|
185
|
+
| `Float` | `float` | `number` | Floating point |
|
|
186
|
+
| `Decimal` | `decimal(10,2)` | `number` | Precise decimal |
|
|
187
|
+
| `Boolean` | `boolean` | `boolean` | True/false |
|
|
188
|
+
| `Date` | `date` | `string` | Date only |
|
|
189
|
+
| `DateTime` | `dateTime` | `string` | Date and time |
|
|
190
|
+
| `Timestamp` | `timestamp` | `string` | Unix timestamp |
|
|
191
|
+
| `Time` | `time` | `string` | Time only |
|
|
192
|
+
| `Json` | `json` | `Record<string, unknown>` | JSON data |
|
|
193
|
+
| `Uuid` | `uuid` | `string` | UUID |
|
|
194
|
+
| `Enum` | `enum` | `union type` | Enumeration |
|
|
195
195
|
|
|
196
196
|
### Property Modifiers
|
|
197
197
|
|
|
@@ -248,12 +248,12 @@ properties:
|
|
|
248
248
|
inversedBy: posts
|
|
249
249
|
```
|
|
250
250
|
|
|
251
|
-
| Relation
|
|
252
|
-
|
|
253
|
-
| `ManyToOne`
|
|
254
|
-
| `OneToMany`
|
|
255
|
-
| `OneToOne`
|
|
256
|
-
| `ManyToMany` | Many-to-many
|
|
251
|
+
| Relation | Description | Creates Column |
|
|
252
|
+
| ------------ | ---------------------------- | ----------------- |
|
|
253
|
+
| `ManyToOne` | BelongsTo, has FK | Yes (`{name}_id`) |
|
|
254
|
+
| `OneToMany` | HasMany, inverse side | No |
|
|
255
|
+
| `OneToOne` | One-to-one, use `owningSide` | Owner side only |
|
|
256
|
+
| `ManyToMany` | Many-to-many | Pivot table |
|
|
257
257
|
|
|
258
258
|
**Options:** `onDelete`, `onUpdate` (`CASCADE`, `SET NULL`, `RESTRICT`), `nullable`, `inversedBy`, `mappedBy`
|
|
259
259
|
|
|
@@ -321,6 +321,23 @@ omnify generate --types-only # Only TypeScript
|
|
|
321
321
|
omnify generate --dry-run # Preview without writing
|
|
322
322
|
```
|
|
323
323
|
|
|
324
|
+
### `omnify ai-guides`
|
|
325
|
+
|
|
326
|
+
Generate AI guides (Cursor rules, Claude guides/rules, Antigravity rules).
|
|
327
|
+
|
|
328
|
+
> Requires installing `@famgia/omnify-ai-guides`:
|
|
329
|
+
>
|
|
330
|
+
> ```bash
|
|
331
|
+
> pnpm add -D @famgia/omnify-ai-guides
|
|
332
|
+
> ```
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
omnify ai-guides
|
|
336
|
+
|
|
337
|
+
# API-only (skip React)
|
|
338
|
+
omnify ai-guides --categories omnify,laravel
|
|
339
|
+
```
|
|
340
|
+
|
|
324
341
|
## Programmatic API
|
|
325
342
|
|
|
326
343
|
```typescript
|
|
@@ -464,15 +481,16 @@ properties:
|
|
|
464
481
|
|
|
465
482
|
## Packages
|
|
466
483
|
|
|
467
|
-
| Package
|
|
468
|
-
|
|
469
|
-
| [@famgia/omnify](https://www.npmjs.com/package/@famgia/omnify)
|
|
470
|
-
| [@famgia/omnify-cli](https://www.npmjs.com/package/@famgia/omnify-cli)
|
|
471
|
-
| [@famgia/omnify-core](https://www.npmjs.com/package/@famgia/omnify-core)
|
|
472
|
-
| [@famgia/omnify-types](https://www.npmjs.com/package/@famgia/omnify-types)
|
|
473
|
-
| [@famgia/omnify-laravel](https://www.npmjs.com/package/@famgia/omnify-laravel)
|
|
474
|
-
| [@famgia/omnify-atlas](https://www.npmjs.com/package/@famgia/omnify-atlas)
|
|
475
|
-
| [@famgia/omnify-japan](https://www.npmjs.com/package/@famgia/omnify-japan)
|
|
484
|
+
| Package | Description |
|
|
485
|
+
| ---------------------------------------------------------------------------------- | ------------------- |
|
|
486
|
+
| [@famgia/omnify](https://www.npmjs.com/package/@famgia/omnify) | Main entry point |
|
|
487
|
+
| [@famgia/omnify-cli](https://www.npmjs.com/package/@famgia/omnify-cli) | CLI tool |
|
|
488
|
+
| [@famgia/omnify-core](https://www.npmjs.com/package/@famgia/omnify-core) | Core engine |
|
|
489
|
+
| [@famgia/omnify-types](https://www.npmjs.com/package/@famgia/omnify-types) | Type definitions |
|
|
490
|
+
| [@famgia/omnify-laravel](https://www.npmjs.com/package/@famgia/omnify-laravel) | Laravel generator |
|
|
491
|
+
| [@famgia/omnify-atlas](https://www.npmjs.com/package/@famgia/omnify-atlas) | Atlas integration |
|
|
492
|
+
| [@famgia/omnify-japan](https://www.npmjs.com/package/@famgia/omnify-japan) | Japan types |
|
|
493
|
+
| [@famgia/omnify-ai-guides](https://www.npmjs.com/package/@famgia/omnify-ai-guides) | AI guides generator |
|
|
476
494
|
|
|
477
495
|
## Migration from @famgia/omnify (v0.12.x)
|
|
478
496
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@famgia/omnify",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.15",
|
|
4
4
|
"description": "Schema-driven database migration system with TypeScript types and Laravel migrations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,14 +26,13 @@
|
|
|
26
26
|
"README.md"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@famgia/omnify-
|
|
30
|
-
"@famgia/omnify-
|
|
31
|
-
"@famgia/omnify-types": "2.0.
|
|
32
|
-
"@famgia/omnify-typescript": "2.0.
|
|
33
|
-
"@famgia/omnify-laravel": "2.0.
|
|
34
|
-
"@famgia/omnify-atlas": "2.0.
|
|
35
|
-
"@famgia/omnify-
|
|
36
|
-
"@famgia/omnify-japan": "2.0.13"
|
|
29
|
+
"@famgia/omnify-cli": "2.0.15",
|
|
30
|
+
"@famgia/omnify-core": "2.0.15",
|
|
31
|
+
"@famgia/omnify-types": "2.0.15",
|
|
32
|
+
"@famgia/omnify-typescript": "2.0.15",
|
|
33
|
+
"@famgia/omnify-laravel": "2.0.15",
|
|
34
|
+
"@famgia/omnify-atlas": "2.0.15",
|
|
35
|
+
"@famgia/omnify-japan": "2.0.15"
|
|
37
36
|
},
|
|
38
37
|
"keywords": [
|
|
39
38
|
"omnify",
|
package/scripts/postinstall.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* 2. Copy AI guides to .claude/omnify/
|
|
9
9
|
* 3. Create/update CLAUDE.md
|
|
10
10
|
* 4. Create .cursor/rules/omnify.md
|
|
11
|
-
* 5. Configure Claude MCP server
|
|
11
|
+
* 5. (Optional) Configure Claude MCP server
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import fs from 'fs';
|
|
@@ -388,28 +388,6 @@ function setupCursorRules(projectRoot) {
|
|
|
388
388
|
fs.writeFileSync(path.join(dir, 'omnify.md'), CURSOR_RULES);
|
|
389
389
|
}
|
|
390
390
|
|
|
391
|
-
function setupClaudeMcp() {
|
|
392
|
-
const configPath = path.join(os.homedir(), '.claude', 'claude_desktop_config.json');
|
|
393
|
-
|
|
394
|
-
try {
|
|
395
|
-
const dir = path.dirname(configPath);
|
|
396
|
-
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
397
|
-
|
|
398
|
-
let config = { mcpServers: {} };
|
|
399
|
-
if (fs.existsSync(configPath)) {
|
|
400
|
-
try {
|
|
401
|
-
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
402
|
-
config.mcpServers = config.mcpServers || {};
|
|
403
|
-
} catch { /* use default */ }
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
if (!config.mcpServers.omnify) {
|
|
407
|
-
config.mcpServers.omnify = { command: 'npx', args: ['@famgia/omnify-mcp'] };
|
|
408
|
-
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
409
|
-
}
|
|
410
|
-
} catch { /* optional, ignore errors */ }
|
|
411
|
-
}
|
|
412
|
-
|
|
413
391
|
// ============================================================================
|
|
414
392
|
// Main
|
|
415
393
|
// ============================================================================
|
|
@@ -463,8 +441,6 @@ function main() {
|
|
|
463
441
|
results.push('✓ Updated .cursor/rules/omnify.md');
|
|
464
442
|
} catch { /* ignore */ }
|
|
465
443
|
|
|
466
|
-
setupClaudeMcp();
|
|
467
|
-
|
|
468
444
|
// Setup @omnify alias in config files
|
|
469
445
|
const omnifyPath = getOmnifyTypescriptPath(projectRoot) || 'src/omnify';
|
|
470
446
|
|