@shadowob/flash-types 1.1.3
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/LICENSE +661 -0
- package/dist/api.d.ts +22 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +12 -0
- package/dist/api.js.map +1 -0
- package/dist/api.ts +28 -0
- package/dist/card.d.ts +483 -0
- package/dist/card.d.ts.map +1 -0
- package/dist/card.js +5 -0
- package/dist/card.js.map +1 -0
- package/dist/card.ts +529 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/index.ts +14 -0
- package/dist/models.d.ts +165 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +5 -0
- package/dist/models.js.map +1 -0
- package/dist/models.ts +172 -0
- package/dist/records.d.ts +92 -0
- package/dist/records.d.ts.map +1 -0
- package/dist/records.js +5 -0
- package/dist/records.js.map +1 -0
- package/dist/records.ts +94 -0
- package/dist/settings.d.ts +17 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +5 -0
- package/dist/settings.js.map +1 -0
- package/dist/settings.ts +19 -0
- package/dist/validate.d.ts +19 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +29 -0
- package/dist/validate.js.map +1 -0
- package/dist/validate.ts +1403 -0
- package/package.json +36 -0
package/dist/models.d.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { CardKind, CardMeta, CardPriority } from './card.js';
|
|
2
|
+
/** Knowledge card */
|
|
3
|
+
export interface Card {
|
|
4
|
+
id: string;
|
|
5
|
+
kind: CardKind;
|
|
6
|
+
title: string;
|
|
7
|
+
summary?: string;
|
|
8
|
+
content?: string;
|
|
9
|
+
thumbnail?: string;
|
|
10
|
+
sourceId: string | null;
|
|
11
|
+
linkedCardIds: string[];
|
|
12
|
+
meta: CardMeta;
|
|
13
|
+
tags: string[];
|
|
14
|
+
priority: CardPriority;
|
|
15
|
+
autoGenerated: boolean;
|
|
16
|
+
isStreaming?: boolean;
|
|
17
|
+
rating: number;
|
|
18
|
+
filePath?: string;
|
|
19
|
+
fileMime?: string;
|
|
20
|
+
deckIds: string[];
|
|
21
|
+
createdAt: number;
|
|
22
|
+
updatedAt: number;
|
|
23
|
+
}
|
|
24
|
+
/** Uploaded material file */
|
|
25
|
+
export interface Material {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
type: string;
|
|
29
|
+
mimeType?: string;
|
|
30
|
+
size: number;
|
|
31
|
+
status: 'uploading' | 'uploaded' | 'curating' | 'curated' | 'analyzing' | 'error';
|
|
32
|
+
summary?: string;
|
|
33
|
+
content?: string;
|
|
34
|
+
error?: string;
|
|
35
|
+
path?: string;
|
|
36
|
+
cardIds: string[];
|
|
37
|
+
uploadedAt: number;
|
|
38
|
+
}
|
|
39
|
+
/** Outline item */
|
|
40
|
+
export interface OutlineItem {
|
|
41
|
+
id: string;
|
|
42
|
+
slideIndex: number;
|
|
43
|
+
title: string;
|
|
44
|
+
type: 'cover' | 'toc' | 'section' | 'content' | 'chart' | 'ending' | 'image' | 'quote';
|
|
45
|
+
keyPoints: string[];
|
|
46
|
+
materialRefs: string[];
|
|
47
|
+
cardRefs: string[];
|
|
48
|
+
notes?: string;
|
|
49
|
+
}
|
|
50
|
+
/** Theme preset */
|
|
51
|
+
export interface ThemePreset {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
appearance: 'dark' | 'light';
|
|
55
|
+
colorScheme: {
|
|
56
|
+
dk1: string;
|
|
57
|
+
lt1: string;
|
|
58
|
+
dk2: string;
|
|
59
|
+
lt2: string;
|
|
60
|
+
accent1: string;
|
|
61
|
+
accent2: string;
|
|
62
|
+
accent3: string;
|
|
63
|
+
accent4: string;
|
|
64
|
+
accent5: string;
|
|
65
|
+
accent6: string;
|
|
66
|
+
};
|
|
67
|
+
fontScheme: {
|
|
68
|
+
majorFont: string;
|
|
69
|
+
minorFont: string;
|
|
70
|
+
};
|
|
71
|
+
preview?: string;
|
|
72
|
+
}
|
|
73
|
+
/** Deck — card collection */
|
|
74
|
+
export interface Deck {
|
|
75
|
+
id: string;
|
|
76
|
+
title: string;
|
|
77
|
+
description: string;
|
|
78
|
+
outline: OutlineItem[];
|
|
79
|
+
theme: ThemePreset;
|
|
80
|
+
autoCreatedReason?: string;
|
|
81
|
+
createdAt: number;
|
|
82
|
+
updatedAt: number;
|
|
83
|
+
}
|
|
84
|
+
export interface TodoItem {
|
|
85
|
+
id: string;
|
|
86
|
+
text: string;
|
|
87
|
+
done: boolean;
|
|
88
|
+
completionNote?: string;
|
|
89
|
+
createdAt: number;
|
|
90
|
+
}
|
|
91
|
+
export type TaskStatus = 'pending' | 'running' | 'completed' | 'error' | 'cancelled';
|
|
92
|
+
export interface TaskArtifact {
|
|
93
|
+
type: 'cards' | 'outline' | 'material_analysis' | 'research';
|
|
94
|
+
label: string;
|
|
95
|
+
url?: string;
|
|
96
|
+
count?: number;
|
|
97
|
+
}
|
|
98
|
+
export interface TaskRecord {
|
|
99
|
+
id: string;
|
|
100
|
+
name: string;
|
|
101
|
+
status: TaskStatus;
|
|
102
|
+
dependsOn: string[];
|
|
103
|
+
taskType: string;
|
|
104
|
+
startedAt: number;
|
|
105
|
+
completedAt?: number;
|
|
106
|
+
artifacts: TaskArtifact[];
|
|
107
|
+
logs: string[];
|
|
108
|
+
error?: string;
|
|
109
|
+
deckId?: string;
|
|
110
|
+
progress?: number;
|
|
111
|
+
pipelineId?: string;
|
|
112
|
+
requestId?: string;
|
|
113
|
+
}
|
|
114
|
+
export type ResearchStatus = 'idle' | 'running' | 'completed' | 'error';
|
|
115
|
+
export interface ResearchAngle {
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
description: string;
|
|
119
|
+
skillId?: string;
|
|
120
|
+
status: ResearchStatus;
|
|
121
|
+
cardIds: string[];
|
|
122
|
+
logs: string[];
|
|
123
|
+
startedAt?: number;
|
|
124
|
+
completedAt?: number;
|
|
125
|
+
}
|
|
126
|
+
export interface ResearchSession {
|
|
127
|
+
id: string;
|
|
128
|
+
topic: string;
|
|
129
|
+
angles: ResearchAngle[];
|
|
130
|
+
status: ResearchStatus;
|
|
131
|
+
totalCards: number;
|
|
132
|
+
createdAt: number;
|
|
133
|
+
completedAt?: number;
|
|
134
|
+
}
|
|
135
|
+
export type SkillStatus = 'available' | 'installed' | 'installing' | 'error';
|
|
136
|
+
export interface SkillDef {
|
|
137
|
+
id: string;
|
|
138
|
+
name: string;
|
|
139
|
+
emoji: string;
|
|
140
|
+
category: 'research' | 'drawing' | 'art' | 'analysis' | 'data' | 'utility';
|
|
141
|
+
description: string;
|
|
142
|
+
builtin: boolean;
|
|
143
|
+
status: SkillStatus;
|
|
144
|
+
skillPath: string;
|
|
145
|
+
version?: string;
|
|
146
|
+
}
|
|
147
|
+
export type ResearchGoal = 'academic' | 'business' | 'competitive' | 'trending' | 'technical' | 'creative';
|
|
148
|
+
export type ProjectStatus = 'idle' | 'analyzing' | 'curating' | 'outlining' | 'researching' | 'done' | 'error';
|
|
149
|
+
export interface Project {
|
|
150
|
+
id: string;
|
|
151
|
+
title: string;
|
|
152
|
+
materials: Material[];
|
|
153
|
+
cards: Card[];
|
|
154
|
+
decks: Deck[];
|
|
155
|
+
activeDeckId: string | null;
|
|
156
|
+
todos: TodoItem[];
|
|
157
|
+
tasks: TaskRecord[];
|
|
158
|
+
skills: SkillDef[];
|
|
159
|
+
researchSessions: ResearchSession[];
|
|
160
|
+
status: ProjectStatus;
|
|
161
|
+
sessionKey?: string;
|
|
162
|
+
createdAt: number;
|
|
163
|
+
updatedAt: number;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/models.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,wCAAwC;AACxC,kEAAkE"}
|
package/dist/models.ts
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════════════════════════
|
|
2
|
+
// @shadowob/flash-types — Domain Models
|
|
3
|
+
// ═══════════════════════════════════════════════════════════════
|
|
4
|
+
import type { CardKind, CardMeta, CardPriority } from './card.js';
|
|
5
|
+
/** Knowledge card */
|
|
6
|
+
export interface Card {
|
|
7
|
+
id: string;
|
|
8
|
+
kind: CardKind;
|
|
9
|
+
title: string;
|
|
10
|
+
summary?: string;
|
|
11
|
+
content?: string;
|
|
12
|
+
thumbnail?: string;
|
|
13
|
+
sourceId: string | null;
|
|
14
|
+
linkedCardIds: string[];
|
|
15
|
+
meta: CardMeta;
|
|
16
|
+
tags: string[];
|
|
17
|
+
priority: CardPriority;
|
|
18
|
+
autoGenerated: boolean;
|
|
19
|
+
isStreaming?: boolean;
|
|
20
|
+
rating: number;
|
|
21
|
+
filePath?: string;
|
|
22
|
+
fileMime?: string;
|
|
23
|
+
deckIds: string[];
|
|
24
|
+
createdAt: number;
|
|
25
|
+
updatedAt: number;
|
|
26
|
+
}
|
|
27
|
+
/** Uploaded material file */
|
|
28
|
+
export interface Material {
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
type: string;
|
|
32
|
+
mimeType?: string;
|
|
33
|
+
size: number;
|
|
34
|
+
status: 'uploading' | 'uploaded' | 'curating' | 'curated' | 'analyzing' | 'error';
|
|
35
|
+
summary?: string;
|
|
36
|
+
content?: string;
|
|
37
|
+
error?: string;
|
|
38
|
+
path?: string;
|
|
39
|
+
cardIds: string[];
|
|
40
|
+
uploadedAt: number;
|
|
41
|
+
}
|
|
42
|
+
/** Outline item */
|
|
43
|
+
export interface OutlineItem {
|
|
44
|
+
id: string;
|
|
45
|
+
slideIndex: number;
|
|
46
|
+
title: string;
|
|
47
|
+
type: 'cover' | 'toc' | 'section' | 'content' | 'chart' | 'ending' | 'image' | 'quote';
|
|
48
|
+
keyPoints: string[];
|
|
49
|
+
materialRefs: string[];
|
|
50
|
+
cardRefs: string[];
|
|
51
|
+
notes?: string;
|
|
52
|
+
}
|
|
53
|
+
/** Theme preset */
|
|
54
|
+
export interface ThemePreset {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
appearance: 'dark' | 'light';
|
|
58
|
+
colorScheme: {
|
|
59
|
+
dk1: string;
|
|
60
|
+
lt1: string;
|
|
61
|
+
dk2: string;
|
|
62
|
+
lt2: string;
|
|
63
|
+
accent1: string;
|
|
64
|
+
accent2: string;
|
|
65
|
+
accent3: string;
|
|
66
|
+
accent4: string;
|
|
67
|
+
accent5: string;
|
|
68
|
+
accent6: string;
|
|
69
|
+
};
|
|
70
|
+
fontScheme: {
|
|
71
|
+
majorFont: string;
|
|
72
|
+
minorFont: string;
|
|
73
|
+
};
|
|
74
|
+
preview?: string;
|
|
75
|
+
}
|
|
76
|
+
/** Deck — card collection */
|
|
77
|
+
export interface Deck {
|
|
78
|
+
id: string;
|
|
79
|
+
title: string;
|
|
80
|
+
description: string;
|
|
81
|
+
outline: OutlineItem[];
|
|
82
|
+
theme: ThemePreset;
|
|
83
|
+
autoCreatedReason?: string;
|
|
84
|
+
createdAt: number;
|
|
85
|
+
updatedAt: number;
|
|
86
|
+
}
|
|
87
|
+
// ── TODO ──
|
|
88
|
+
export interface TodoItem {
|
|
89
|
+
id: string;
|
|
90
|
+
text: string;
|
|
91
|
+
done: boolean;
|
|
92
|
+
completionNote?: string;
|
|
93
|
+
createdAt: number;
|
|
94
|
+
}
|
|
95
|
+
// ── Task Center ──
|
|
96
|
+
export type TaskStatus = 'pending' | 'running' | 'completed' | 'error' | 'cancelled';
|
|
97
|
+
export interface TaskArtifact {
|
|
98
|
+
type: 'cards' | 'outline' | 'material_analysis' | 'research';
|
|
99
|
+
label: string;
|
|
100
|
+
url?: string;
|
|
101
|
+
count?: number;
|
|
102
|
+
}
|
|
103
|
+
export interface TaskRecord {
|
|
104
|
+
id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
status: TaskStatus;
|
|
107
|
+
dependsOn: string[];
|
|
108
|
+
taskType: string;
|
|
109
|
+
startedAt: number;
|
|
110
|
+
completedAt?: number;
|
|
111
|
+
artifacts: TaskArtifact[];
|
|
112
|
+
logs: string[];
|
|
113
|
+
error?: string;
|
|
114
|
+
deckId?: string;
|
|
115
|
+
progress?: number;
|
|
116
|
+
pipelineId?: string;
|
|
117
|
+
requestId?: string;
|
|
118
|
+
}
|
|
119
|
+
// ── Research ──
|
|
120
|
+
export type ResearchStatus = 'idle' | 'running' | 'completed' | 'error';
|
|
121
|
+
export interface ResearchAngle {
|
|
122
|
+
id: string;
|
|
123
|
+
name: string;
|
|
124
|
+
description: string;
|
|
125
|
+
skillId?: string;
|
|
126
|
+
status: ResearchStatus;
|
|
127
|
+
cardIds: string[];
|
|
128
|
+
logs: string[];
|
|
129
|
+
startedAt?: number;
|
|
130
|
+
completedAt?: number;
|
|
131
|
+
}
|
|
132
|
+
export interface ResearchSession {
|
|
133
|
+
id: string;
|
|
134
|
+
topic: string;
|
|
135
|
+
angles: ResearchAngle[];
|
|
136
|
+
status: ResearchStatus;
|
|
137
|
+
totalCards: number;
|
|
138
|
+
createdAt: number;
|
|
139
|
+
completedAt?: number;
|
|
140
|
+
}
|
|
141
|
+
// ── Skills ──
|
|
142
|
+
export type SkillStatus = 'available' | 'installed' | 'installing' | 'error';
|
|
143
|
+
export interface SkillDef {
|
|
144
|
+
id: string;
|
|
145
|
+
name: string;
|
|
146
|
+
emoji: string;
|
|
147
|
+
category: 'research' | 'drawing' | 'art' | 'analysis' | 'data' | 'utility';
|
|
148
|
+
description: string;
|
|
149
|
+
builtin: boolean;
|
|
150
|
+
status: SkillStatus;
|
|
151
|
+
skillPath: string;
|
|
152
|
+
version?: string;
|
|
153
|
+
}
|
|
154
|
+
export type ResearchGoal = 'academic' | 'business' | 'competitive' | 'trending' | 'technical' | 'creative';
|
|
155
|
+
// ── Project ──
|
|
156
|
+
export type ProjectStatus = 'idle' | 'analyzing' | 'curating' | 'outlining' | 'researching' | 'done' | 'error';
|
|
157
|
+
export interface Project {
|
|
158
|
+
id: string;
|
|
159
|
+
title: string;
|
|
160
|
+
materials: Material[];
|
|
161
|
+
cards: Card[];
|
|
162
|
+
decks: Deck[];
|
|
163
|
+
activeDeckId: string | null;
|
|
164
|
+
todos: TodoItem[];
|
|
165
|
+
tasks: TaskRecord[];
|
|
166
|
+
skills: SkillDef[];
|
|
167
|
+
researchSessions: ResearchSession[];
|
|
168
|
+
status: ProjectStatus;
|
|
169
|
+
sessionKey?: string;
|
|
170
|
+
createdAt: number;
|
|
171
|
+
updatedAt: number;
|
|
172
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface MaterialRecord {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
type: string;
|
|
5
|
+
mimeType: string;
|
|
6
|
+
size: number;
|
|
7
|
+
path: string;
|
|
8
|
+
content?: string;
|
|
9
|
+
status: string;
|
|
10
|
+
cardIds: string[];
|
|
11
|
+
uploadedAt: number;
|
|
12
|
+
projectId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CardRecord {
|
|
15
|
+
id: string;
|
|
16
|
+
kind: string;
|
|
17
|
+
title: string;
|
|
18
|
+
summary?: string;
|
|
19
|
+
content?: string;
|
|
20
|
+
sourceId: string | null;
|
|
21
|
+
linkedCardIds: string[];
|
|
22
|
+
meta: Record<string, unknown>;
|
|
23
|
+
tags: string[];
|
|
24
|
+
priority: string;
|
|
25
|
+
autoGenerated: boolean;
|
|
26
|
+
rating: number;
|
|
27
|
+
deckIds: string[];
|
|
28
|
+
filePath?: string;
|
|
29
|
+
fileMime?: string;
|
|
30
|
+
createdAt: number;
|
|
31
|
+
updatedAt: number;
|
|
32
|
+
projectId?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface DeckRecord {
|
|
35
|
+
id: string;
|
|
36
|
+
title: string;
|
|
37
|
+
description: string;
|
|
38
|
+
outline: OutlineItemRecord[];
|
|
39
|
+
theme: ThemeRefRecord | null;
|
|
40
|
+
autoCreatedReason?: string;
|
|
41
|
+
createdAt: number;
|
|
42
|
+
updatedAt: number;
|
|
43
|
+
projectId?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface OutlineItemRecord {
|
|
46
|
+
id: string;
|
|
47
|
+
slideIndex: number;
|
|
48
|
+
title: string;
|
|
49
|
+
type: string;
|
|
50
|
+
keyPoints: string[];
|
|
51
|
+
materialRefs: string[];
|
|
52
|
+
cardRefs: string[];
|
|
53
|
+
notes: string;
|
|
54
|
+
}
|
|
55
|
+
export interface ThemeRefRecord {
|
|
56
|
+
name?: string;
|
|
57
|
+
appearance?: string;
|
|
58
|
+
colorScheme?: Record<string, string>;
|
|
59
|
+
fontScheme?: Record<string, string>;
|
|
60
|
+
}
|
|
61
|
+
export interface SkillRecord {
|
|
62
|
+
id: string;
|
|
63
|
+
name: string;
|
|
64
|
+
emoji: string;
|
|
65
|
+
category: string;
|
|
66
|
+
description: string;
|
|
67
|
+
builtin: boolean;
|
|
68
|
+
status: string;
|
|
69
|
+
version: string;
|
|
70
|
+
skillPath?: string;
|
|
71
|
+
source?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface ThemeFolder {
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
path?: string;
|
|
77
|
+
componentCount?: number;
|
|
78
|
+
promptCount?: number;
|
|
79
|
+
_resolvedPath?: string;
|
|
80
|
+
_themeDescription?: string;
|
|
81
|
+
_keywords?: string;
|
|
82
|
+
_score?: number;
|
|
83
|
+
components?: ThemeComponent[];
|
|
84
|
+
promptContent?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface ThemeComponent {
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
notes: string;
|
|
90
|
+
jsxCode: string;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
|
package/dist/records.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.js","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,+DAA+D;AAC/D,kEAAkE"}
|
package/dist/records.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════════════════════════
|
|
2
|
+
// @shadowob/flash-types — Server-side Record Types (DAO layer)
|
|
3
|
+
// ═══════════════════════════════════════════════════════════════
|
|
4
|
+
export interface MaterialRecord {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
mimeType: string;
|
|
9
|
+
size: number;
|
|
10
|
+
path: string;
|
|
11
|
+
content?: string;
|
|
12
|
+
status: string;
|
|
13
|
+
cardIds: string[];
|
|
14
|
+
uploadedAt: number;
|
|
15
|
+
projectId?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CardRecord {
|
|
18
|
+
id: string;
|
|
19
|
+
kind: string;
|
|
20
|
+
title: string;
|
|
21
|
+
summary?: string;
|
|
22
|
+
content?: string;
|
|
23
|
+
sourceId: string | null;
|
|
24
|
+
linkedCardIds: string[];
|
|
25
|
+
meta: Record<string, unknown>;
|
|
26
|
+
tags: string[];
|
|
27
|
+
priority: string;
|
|
28
|
+
autoGenerated: boolean;
|
|
29
|
+
rating: number;
|
|
30
|
+
deckIds: string[];
|
|
31
|
+
filePath?: string;
|
|
32
|
+
fileMime?: string;
|
|
33
|
+
createdAt: number;
|
|
34
|
+
updatedAt: number;
|
|
35
|
+
projectId?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface DeckRecord {
|
|
38
|
+
id: string;
|
|
39
|
+
title: string;
|
|
40
|
+
description: string;
|
|
41
|
+
outline: OutlineItemRecord[];
|
|
42
|
+
theme: ThemeRefRecord | null;
|
|
43
|
+
autoCreatedReason?: string;
|
|
44
|
+
createdAt: number;
|
|
45
|
+
updatedAt: number;
|
|
46
|
+
projectId?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface OutlineItemRecord {
|
|
49
|
+
id: string;
|
|
50
|
+
slideIndex: number;
|
|
51
|
+
title: string;
|
|
52
|
+
type: string;
|
|
53
|
+
keyPoints: string[];
|
|
54
|
+
materialRefs: string[];
|
|
55
|
+
cardRefs: string[];
|
|
56
|
+
notes: string;
|
|
57
|
+
}
|
|
58
|
+
export interface ThemeRefRecord {
|
|
59
|
+
name?: string;
|
|
60
|
+
appearance?: string;
|
|
61
|
+
colorScheme?: Record<string, string>;
|
|
62
|
+
fontScheme?: Record<string, string>;
|
|
63
|
+
}
|
|
64
|
+
export interface SkillRecord {
|
|
65
|
+
id: string;
|
|
66
|
+
name: string;
|
|
67
|
+
emoji: string;
|
|
68
|
+
category: string;
|
|
69
|
+
description: string;
|
|
70
|
+
builtin: boolean;
|
|
71
|
+
status: string;
|
|
72
|
+
version: string;
|
|
73
|
+
skillPath?: string;
|
|
74
|
+
source?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface ThemeFolder {
|
|
77
|
+
id: string;
|
|
78
|
+
name: string;
|
|
79
|
+
path?: string;
|
|
80
|
+
componentCount?: number;
|
|
81
|
+
promptCount?: number;
|
|
82
|
+
_resolvedPath?: string;
|
|
83
|
+
_themeDescription?: string;
|
|
84
|
+
_keywords?: string;
|
|
85
|
+
_score?: number;
|
|
86
|
+
components?: ThemeComponent[];
|
|
87
|
+
promptContent?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface ThemeComponent {
|
|
90
|
+
id: string;
|
|
91
|
+
name: string;
|
|
92
|
+
notes: string;
|
|
93
|
+
jsxCode: string;
|
|
94
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface UserSettings {
|
|
2
|
+
displayName: string;
|
|
3
|
+
language: string;
|
|
4
|
+
aiLanguage: string;
|
|
5
|
+
defaultResearchGoals: string[];
|
|
6
|
+
autoCurate: boolean;
|
|
7
|
+
autoPipeline: boolean;
|
|
8
|
+
notifications: boolean;
|
|
9
|
+
autoInspire: boolean;
|
|
10
|
+
autoResearch: boolean;
|
|
11
|
+
heartbeatInterval: number;
|
|
12
|
+
autoConsumeTodos: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface AppSettings {
|
|
15
|
+
userSettings: UserSettings;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAA;CAC3B"}
|
package/dist/settings.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,mCAAmC;AACnC,kEAAkE"}
|
package/dist/settings.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════════════════════════
|
|
2
|
+
// @shadowob/flash-types — Settings
|
|
3
|
+
// ═══════════════════════════════════════════════════════════════
|
|
4
|
+
export interface UserSettings {
|
|
5
|
+
displayName: string;
|
|
6
|
+
language: string;
|
|
7
|
+
aiLanguage: string;
|
|
8
|
+
defaultResearchGoals: string[];
|
|
9
|
+
autoCurate: boolean;
|
|
10
|
+
autoPipeline: boolean;
|
|
11
|
+
notifications: boolean;
|
|
12
|
+
autoInspire: boolean;
|
|
13
|
+
autoResearch: boolean;
|
|
14
|
+
heartbeatInterval: number;
|
|
15
|
+
autoConsumeTodos: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface AppSettings {
|
|
18
|
+
userSettings: UserSettings;
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import typia from 'typia';
|
|
2
|
+
import type { CardRecord, DeckRecord, MaterialRecord, SkillRecord } from './records.js';
|
|
3
|
+
import type { AppSettings, UserSettings } from './settings.js';
|
|
4
|
+
export declare const validateCard: (input: unknown) => typia.IValidation<CardRecord>;
|
|
5
|
+
export declare const isCard: (input: unknown) => input is CardRecord;
|
|
6
|
+
export declare const assertCard: (input: unknown) => CardRecord;
|
|
7
|
+
export declare const validateMaterial: (input: unknown) => typia.IValidation<MaterialRecord>;
|
|
8
|
+
export declare const isMaterial: (input: unknown) => input is MaterialRecord;
|
|
9
|
+
export declare const assertMaterial: (input: unknown) => MaterialRecord;
|
|
10
|
+
export declare const validateDeck: (input: unknown) => typia.IValidation<DeckRecord>;
|
|
11
|
+
export declare const isDeck: (input: unknown) => input is DeckRecord;
|
|
12
|
+
export declare const assertDeck: (input: unknown) => DeckRecord;
|
|
13
|
+
export declare const validateSkill: (input: unknown) => typia.IValidation<SkillRecord>;
|
|
14
|
+
export declare const isSkill: (input: unknown) => input is SkillRecord;
|
|
15
|
+
export declare const validateUserSettings: (input: unknown) => typia.IValidation<UserSettings>;
|
|
16
|
+
export declare const validateAppSettings: (input: unknown) => typia.IValidation<AppSettings>;
|
|
17
|
+
export declare const validatePartialCard: (input: unknown) => typia.IValidation<Partial<CardRecord>>;
|
|
18
|
+
export declare const validatePartialDeck: (input: unknown) => typia.IValidation<Partial<DeckRecord>>;
|
|
19
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAI9D,eAAO,MAAM,YAAY,mDAAqC,CAAA;AAC9D,eAAO,MAAM,MAAM,yCAA+B,CAAA;AAClD,eAAO,MAAM,UAAU,gCAAmC,CAAA;AAI1D,eAAO,MAAM,gBAAgB,uDAAyC,CAAA;AACtE,eAAO,MAAM,UAAU,6CAAmC,CAAA;AAC1D,eAAO,MAAM,cAAc,oCAAuC,CAAA;AAIlE,eAAO,MAAM,YAAY,mDAAqC,CAAA;AAC9D,eAAO,MAAM,MAAM,yCAA+B,CAAA;AAClD,eAAO,MAAM,UAAU,gCAAmC,CAAA;AAI1D,eAAO,MAAM,aAAa,oDAAsC,CAAA;AAChE,eAAO,MAAM,OAAO,0CAAgC,CAAA;AAIpD,eAAO,MAAM,oBAAoB,qDAAuC,CAAA;AACxE,eAAO,MAAM,mBAAmB,oDAAsC,CAAA;AAItE,eAAO,MAAM,mBAAmB,4DAA8C,CAAA;AAC9E,eAAO,MAAM,mBAAmB,4DAA8C,CAAA"}
|
package/dist/validate.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════════════════════════
|
|
2
|
+
// @shadowob/flash-types — Typia Validators
|
|
3
|
+
//
|
|
4
|
+
// Runtime validation powered by typia.
|
|
5
|
+
// Import and call these to validate data at system boundaries.
|
|
6
|
+
// ═══════════════════════════════════════════════════════════════
|
|
7
|
+
import typia from 'typia';
|
|
8
|
+
// ── Card ──
|
|
9
|
+
export const validateCard = typia.createValidate();
|
|
10
|
+
export const isCard = typia.createIs();
|
|
11
|
+
export const assertCard = typia.createAssert();
|
|
12
|
+
// ── Material ──
|
|
13
|
+
export const validateMaterial = typia.createValidate();
|
|
14
|
+
export const isMaterial = typia.createIs();
|
|
15
|
+
export const assertMaterial = typia.createAssert();
|
|
16
|
+
// ── Deck ──
|
|
17
|
+
export const validateDeck = typia.createValidate();
|
|
18
|
+
export const isDeck = typia.createIs();
|
|
19
|
+
export const assertDeck = typia.createAssert();
|
|
20
|
+
// ── Skill ──
|
|
21
|
+
export const validateSkill = typia.createValidate();
|
|
22
|
+
export const isSkill = typia.createIs();
|
|
23
|
+
// ── Settings ──
|
|
24
|
+
export const validateUserSettings = typia.createValidate();
|
|
25
|
+
export const validateAppSettings = typia.createValidate();
|
|
26
|
+
// ── Partial updates ──
|
|
27
|
+
export const validatePartialCard = typia.createValidate();
|
|
28
|
+
export const validatePartialDeck = typia.createValidate();
|
|
29
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,2CAA2C;AAC3C,EAAE;AACF,uCAAuC;AACvC,+DAA+D;AAC/D,kEAAkE;AAElE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,aAAa;AAEb,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,EAAc,CAAA;AAC9D,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAc,CAAA;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,EAAc,CAAA;AAE1D,iBAAiB;AAEjB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,EAAkB,CAAA;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAkB,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,EAAkB,CAAA;AAElE,aAAa;AAEb,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,EAAc,CAAA;AAC9D,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAc,CAAA;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,EAAc,CAAA;AAE1D,cAAc;AAEd,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,EAAe,CAAA;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAe,CAAA;AAEpD,iBAAiB;AAEjB,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,EAAgB,CAAA;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,EAAe,CAAA;AAEtE,wBAAwB;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,EAAuB,CAAA;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,EAAuB,CAAA"}
|