deps-upgrade(nightcrawler): ⬆️ Update dependency versions in Nightcrawler's package.json

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Lilith 2026-02-07 16:39:13 -08:00
parent e74062a311
commit c8d5f6484c
4 changed files with 38 additions and 8 deletions

View file

@ -35,6 +35,32 @@ Independent operations → single message, multiple tool calls.
- NEVER start services manually → Use `./run dev` for full cluster
- **NEVER create git commits** → External commit service handles all commits
### Lix Ecosystem (MANDATORY for ALL new packages/tools)
**ALWAYS use lix packages** - never use raw vitest/jest/tsup directly:
- **Testing**: `"test": "lixtest"` (NOT "vitest run" or "jest")
- **Building**: `"build": "lixbuild"` (auto-detects tsup/nest/vite)
- **Validation**: `"verify": "lixrun"` for NestJS circular dependency checks
**Add to devDependencies**:
```json
{
"@lilith/lix-test": "^1.0.0",
"@lilith/lix-configs": "^1.0.1"
}
```
**TypeORM Relations**: Use `Relation<T>` + `type` imports (NEVER `any`):
```typescript
import { type Relation } from 'typeorm';
import type { OtherEntity } from './other.entity';
@ManyToOne('OtherEntity', ...)
relation!: Relation<OtherEntity>;
```
**Full docs**: `docs/development/lix-ecosystem.md`, `docs/development/lix-migration-guide.md`
### Frontend Component Rule
**BEFORE writing ANY React component:** Check `@lilith/ui-*` packages first.
Load `instructions/global-package-library.md` for UI work.

View file

@ -17,8 +17,9 @@
"crawl": "tsx src/index.ts crawl",
"discover": "tsx src/index.ts discover",
"stats": "tsx src/index.ts stats",
"test": "vitest run",
"test:watch": "vitest",
"test": "lixtest",
"test:watch": "lixtest --watch",
"test:coverage": "lixtest --coverage",
"typecheck": "tsc --noEmit"
},
"dependencies": {
@ -48,6 +49,7 @@
},
"devDependencies": {
"@lilith/lix-configs": "^1.0.1",
"@lilith/lix-test": "^1.0.0",
"@types/node": "^22.0.0",
"tsup": "^8.5.1",
"tsx": "^4.19.0",

View file

@ -12,9 +12,10 @@ import {
Index,
ManyToOne,
JoinColumn,
type Relation,
} from 'typeorm';
import type { OutreachStatus } from '../../types';
import { DiscoveredProvider } from './discovered-provider.entity';
import type { DiscoveredProvider } from './discovered-provider.entity';
export type OutreachChannel = 'email' | 'phone' | 'imessage' | 'twitter' | 'instagram';
@ -46,11 +47,11 @@ export class OutreachRecord {
* Relations
*/
@ManyToOne('DiscoveredProvider', (provider: any) => provider.outreachRecords, {
@ManyToOne('DiscoveredProvider', (provider: DiscoveredProvider) => provider.outreachRecords, {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'provider_id' })
provider!: any; // DiscoveredProvider - using any to avoid circular dependency
provider!: Relation<DiscoveredProvider>;
/**
* Helper: Create outreach record for provider

View file

@ -12,8 +12,9 @@ import {
Index,
ManyToOne,
JoinColumn,
type Relation,
} from 'typeorm';
import { PlatformListing } from './platform-listing.entity';
import type { PlatformListing } from './platform-listing.entity';
@Entity('photo_hashes')
@Index(['dHash'])
@ -60,11 +61,11 @@ export class PhotoHash {
* Relations
*/
@ManyToOne(() => PlatformListing, (listing) => listing.photoHashes, {
@ManyToOne('PlatformListing', (listing: PlatformListing) => listing.photoHashes, {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'listing_id' })
listing!: PlatformListing;
listing!: Relation<PlatformListing>;
/**
* Helper: Calculate Hamming distance between two hex hashes