@critical-path/core 0.11.0 → 0.12.0

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +35 -0
  3. package/dist/deliverables.test.d.ts +2 -0
  4. package/dist/deliverables.test.d.ts.map +1 -0
  5. package/dist/deliverables.test.js +232 -0
  6. package/dist/deliverables.test.js.map +1 -0
  7. package/dist/domain/entities.d.ts +25 -1
  8. package/dist/domain/entities.d.ts.map +1 -1
  9. package/dist/domain/entities.js +153 -0
  10. package/dist/domain/entities.js.map +1 -1
  11. package/dist/domain/events.d.ts +31 -3
  12. package/dist/domain/events.d.ts.map +1 -1
  13. package/dist/domain/events.js.map +1 -1
  14. package/dist/engine/index.d.ts +8 -1
  15. package/dist/engine/index.d.ts.map +1 -1
  16. package/dist/engine/index.js +164 -1
  17. package/dist/engine/index.js.map +1 -1
  18. package/dist/store/firebase.d.ts +6 -1
  19. package/dist/store/firebase.d.ts.map +1 -1
  20. package/dist/store/firebase.js +41 -0
  21. package/dist/store/firebase.js.map +1 -1
  22. package/dist/store/index.d.ts +15 -2
  23. package/dist/store/index.d.ts.map +1 -1
  24. package/dist/store/index.js +38 -0
  25. package/dist/store/index.js.map +1 -1
  26. package/dist/store/sqlite.d.ts +7 -1
  27. package/dist/store/sqlite.d.ts.map +1 -1
  28. package/dist/store/sqlite.js +94 -5
  29. package/dist/store/sqlite.js.map +1 -1
  30. package/dist/types/index.d.ts +33 -1
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/utils/workflow.d.ts +1 -0
  33. package/dist/utils/workflow.d.ts.map +1 -1
  34. package/dist/utils/workflow.js +37 -0
  35. package/dist/utils/workflow.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/deliverables.test.ts +284 -0
  38. package/src/domain/entities.ts +185 -2
  39. package/src/domain/events.ts +28 -3
  40. package/src/engine/index.ts +188 -2
  41. package/src/store/firebase.ts +47 -1
  42. package/src/store/index.ts +54 -1
  43. package/src/store/sqlite.ts +135 -4
  44. package/src/types/index.ts +51 -1
  45. package/src/utils/workflow.ts +38 -0
  46. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @critical-path/core
2
2
 
3
+ ## 0.12.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 5a5930f: Add first-class Deliverable entity, Creative Workflow presets, and reactive UI bindings:
8
+ - `@critical-path/core`: Added `Deliverable` entity, `DeliverableSummary` rollup computation, `DEFAULT_CREATIVE_WORKFLOW` preset, `deliverableId` on tasks, store implementations (InMemory, SQLite, Firebase), domain events, and webhook integration.
9
+ - `@critical-path/server`: Added RESTful API endpoints for `/deliverables` and `/deliverables/:id/summary`.
10
+ - `@critical-path/client`: Added deliverable management and summary methods to `CriticalPathClient`.
11
+ - `@critical-path/react`: Added `useDeliverables` and `useDeliverableSummary` React hooks.
12
+ - `@critical-path/svelte`: Added `DeliverableState` and `createDeliverableState` Svelte 5 Runes state management.
13
+
3
14
  ## 0.11.0
4
15
 
5
16
  ### Minor Changes
package/README.md CHANGED
@@ -22,6 +22,10 @@
22
22
  - `FirebaseStorageAdapter`: Google Cloud Storage & Firebase Storage bucket adapter.
23
23
  - **Threaded Conversations, Discussions & Emoji Reactions**:
24
24
  - Nested replies (`parentId`), multi-author taxonomy (`user`, `agent`, `system`), emoji reactions (`addCommentReaction`, `removeCommentReaction`), and real-time domain event streaming (`comment.created`, `comment.updated`, `comment.deleted`, `comment.reaction.added`, `comment.reaction.removed`).
25
+ - **Creative Workflows & First-Class Deliverables**:
26
+ - `DeliverableEntity` aggregate with automatic delivery timestamps (`deliveredAt`) and URL registry (`outputUrls`).
27
+ - `DEFAULT_CREATIVE_WORKFLOW` template tailored for creative agencies and content production pipelines.
28
+ - Rollup calculations via `getDeliverableSummary()` delivering progress percentages, completed tasks, and total estimated/logged hours across assigned tasks.
25
29
 
26
30
  ---
27
31
 
@@ -88,6 +92,37 @@ try {
88
92
  }
89
93
  ```
90
94
 
95
+ ### 4. Tracking Creative Deliverables & Rollup Metrics
96
+
97
+ ```ts
98
+ import { CriticalPathEngine, DEFAULT_CREATIVE_WORKFLOW } from '@critical-path/core';
99
+
100
+ const engine = new CriticalPathEngine();
101
+
102
+ // 1. Create deliverable
103
+ const deliverable = await engine.createDeliverable({
104
+ projectId: 'proj_1',
105
+ title: 'Brand Hero Video 30s',
106
+ format: 'ProRes 422HQ',
107
+ specs: { resolution: '3840x2160', fps: 24 }
108
+ });
109
+
110
+ // 2. Attach tasks to deliverable
111
+ await engine.createTask({
112
+ projectId: 'proj_1',
113
+ deliverableId: deliverable.id,
114
+ title: 'Storyboard & Animatic',
115
+ status: 'approved',
116
+ estimatedHours: 12,
117
+ loggedHours: 12,
118
+ progress: 100
119
+ });
120
+
121
+ // 3. Rollup metrics
122
+ const summary = await engine.getDeliverableSummary(deliverable.id);
123
+ console.log(`Progress: ${summary?.progressPercentage}%, Total tasks: ${summary?.totalTasks}`);
124
+ ```
125
+
91
126
  ---
92
127
 
93
128
  ## 🔌 Creating a Custom Plugin
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deliverables.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverables.test.d.ts","sourceRoot":"","sources":["../src/deliverables.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,232 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { CriticalPathEngine, InMemoryStore, SQLiteStore, FirebaseStore, InMemoryFirestoreMock, DeliverableEntity, DEFAULT_CREATIVE_WORKFLOW, validateTransition } from './index.js';
3
+ describe('Deliverable Entity & Creative Workflows', () => {
4
+ it('creates a DeliverableEntity with defaults and emits domain event', () => {
5
+ const entity = DeliverableEntity.create({
6
+ projectId: 'proj_1',
7
+ title: 'Hero 30s Spot - Cutdown 16:9',
8
+ format: 'ProRes 422HQ',
9
+ specs: { resolution: '3840x2160', fps: 24 }
10
+ });
11
+ expect(entity.id).toMatch(/^deliv_/);
12
+ expect(entity.status).toBe('planned');
13
+ expect(entity.format).toBe('ProRes 422HQ');
14
+ expect(entity.specs).toEqual({ resolution: '3840x2160', fps: 24 });
15
+ expect(entity.outputUrls).toEqual([]);
16
+ const events = entity.getUncommittedEvents();
17
+ expect(events).toHaveLength(1);
18
+ expect(events[0].name).toBe('deliverable.created');
19
+ });
20
+ it('transitions deliverable status and auto-records deliveredAt timestamp', () => {
21
+ const entity = DeliverableEntity.create({
22
+ projectId: 'proj_1',
23
+ title: 'Packaging Key Visual'
24
+ });
25
+ entity.clearEvents();
26
+ entity.transitionTo('in_progress');
27
+ expect(entity.status).toBe('in_progress');
28
+ expect(entity.deliveredAt).toBeUndefined();
29
+ entity.transitionTo('delivered');
30
+ expect(entity.status).toBe('delivered');
31
+ expect(entity.deliveredAt).toBeDefined();
32
+ const events = entity.getUncommittedEvents();
33
+ expect(events.map((e) => e.name)).toContain('deliverable.status_changed');
34
+ });
35
+ it('adds output URLs without duplicates and emits deliverable.updated', () => {
36
+ const entity = DeliverableEntity.create({
37
+ projectId: 'proj_1',
38
+ title: 'Brand Mascot 3D Render'
39
+ });
40
+ entity.clearEvents();
41
+ entity.addOutputUrl('https://cdn.example.com/renders/v1.mov');
42
+ expect(entity.outputUrls).toContain('https://cdn.example.com/renders/v1.mov');
43
+ entity.addOutputUrl('https://cdn.example.com/renders/v1.mov');
44
+ expect(entity.outputUrls).toHaveLength(1);
45
+ entity.addOutputUrl('https://cdn.example.com/renders/v2.mov');
46
+ expect(entity.outputUrls).toHaveLength(2);
47
+ const events = entity.getUncommittedEvents();
48
+ expect(events.filter((e) => e.name === 'deliverable.updated')).toHaveLength(2);
49
+ });
50
+ it('validates DEFAULT_CREATIVE_WORKFLOW stages and transitions', () => {
51
+ expect(DEFAULT_CREATIVE_WORKFLOW.id).toBe('wf_creative_default');
52
+ const statusKeys = DEFAULT_CREATIVE_WORKFLOW.statuses.map((s) => s.key);
53
+ expect(statusKeys).toContain('briefing');
54
+ expect(statusKeys).toContain('concept');
55
+ expect(statusKeys).toContain('in_production');
56
+ expect(statusKeys).toContain('internal_review');
57
+ expect(statusKeys).toContain('client_review');
58
+ expect(statusKeys).toContain('revision_requested');
59
+ expect(statusKeys).toContain('approved');
60
+ expect(statusKeys).toContain('delivered');
61
+ expect(validateTransition(DEFAULT_CREATIVE_WORKFLOW, 'briefing', 'concept')).toBe(true);
62
+ expect(validateTransition(DEFAULT_CREATIVE_WORKFLOW, 'concept', 'in_production')).toBe(true);
63
+ expect(validateTransition(DEFAULT_CREATIVE_WORKFLOW, 'internal_review', 'revision_requested')).toBe(true);
64
+ expect(validateTransition(DEFAULT_CREATIVE_WORKFLOW, 'client_review', 'approved')).toBe(true);
65
+ expect(validateTransition(DEFAULT_CREATIVE_WORKFLOW, 'approved', 'delivered')).toBe(true);
66
+ });
67
+ });
68
+ describe('Store Adapters Deliverable CRUD', () => {
69
+ it('supports Deliverable CRUD in InMemoryStore', async () => {
70
+ const store = new InMemoryStore();
71
+ const created = await store.createDeliverable({
72
+ projectId: 'proj_1',
73
+ title: 'Billboard Print 600dpi',
74
+ format: 'TIFF'
75
+ });
76
+ expect(created.id).toBeDefined();
77
+ expect(created.status).toBe('planned');
78
+ const fetched = await store.getDeliverable(created.id);
79
+ expect(fetched?.title).toBe('Billboard Print 600dpi');
80
+ const list = await store.getDeliverables('proj_1');
81
+ expect(list).toHaveLength(1);
82
+ const updated = await store.updateDeliverable(created.id, { status: 'in_review' });
83
+ expect(updated?.status).toBe('in_review');
84
+ const deleted = await store.deleteDeliverable(created.id);
85
+ expect(deleted).toBe(true);
86
+ expect(await store.getDeliverable(created.id)).toBeNull();
87
+ });
88
+ it('supports Deliverable CRUD in SQLiteStore', async () => {
89
+ const store = new SQLiteStore({ filename: ':memory:' });
90
+ const created = await store.createDeliverable({
91
+ projectId: 'proj_sql',
92
+ title: 'Social Video 9:16',
93
+ format: 'MP4',
94
+ specs: { codec: 'h264', bitrate: '12mbps' },
95
+ outputUrls: ['https://storage.google.com/bucket/output.mp4']
96
+ });
97
+ expect(created.id).toBeDefined();
98
+ expect(created.status).toBe('planned');
99
+ expect(created.specs).toEqual({ codec: 'h264', bitrate: '12mbps' });
100
+ expect(created.outputUrls).toEqual(['https://storage.google.com/bucket/output.mp4']);
101
+ const fetched = await store.getDeliverable(created.id);
102
+ expect(fetched?.title).toBe('Social Video 9:16');
103
+ expect(fetched?.specs).toEqual({ codec: 'h264', bitrate: '12mbps' });
104
+ const list = await store.getDeliverables('proj_sql');
105
+ expect(list).toHaveLength(1);
106
+ const updated = await store.updateDeliverable(created.id, {
107
+ status: 'delivered',
108
+ deliveredAt: '2026-09-04T12:00:00Z'
109
+ });
110
+ expect(updated?.status).toBe('delivered');
111
+ expect(updated?.deliveredAt).toBe('2026-09-04T12:00:00Z');
112
+ const deleted = await store.deleteDeliverable(created.id);
113
+ expect(deleted).toBe(true);
114
+ expect(await store.getDeliverable(created.id)).toBeNull();
115
+ });
116
+ it('supports Deliverable CRUD in FirebaseStore mock', async () => {
117
+ const mockDb = new InMemoryFirestoreMock();
118
+ const store = new FirebaseStore({ db: mockDb });
119
+ const created = await store.createDeliverable({
120
+ projectId: 'proj_fb',
121
+ title: 'Animated Web Banner 300x250',
122
+ format: 'HTML5/Zip'
123
+ });
124
+ expect(created.id).toBeDefined();
125
+ const fetched = await store.getDeliverable(created.id);
126
+ expect(fetched?.title).toBe('Animated Web Banner 300x250');
127
+ const list = await store.getDeliverables('proj_fb');
128
+ expect(list).toHaveLength(1);
129
+ const updated = await store.updateDeliverable(created.id, { status: 'in_progress' });
130
+ expect(updated?.status).toBe('in_progress');
131
+ const deleted = await store.deleteDeliverable(created.id);
132
+ expect(deleted).toBe(true);
133
+ expect(await store.getDeliverable(created.id)).toBeNull();
134
+ });
135
+ });
136
+ describe('CriticalPathEngine Deliverables & Rollup Metrics', () => {
137
+ it('manages deliverable lifecycle, fires events and computes summary metrics', async () => {
138
+ const engine = new CriticalPathEngine();
139
+ // Setup project with creative workflow
140
+ const project = await engine.createProject({
141
+ name: 'Autumn Ad Campaign'
142
+ });
143
+ await engine.createWorkflow(DEFAULT_CREATIVE_WORKFLOW);
144
+ await engine.updateProject(project.id, { workflowId: DEFAULT_CREATIVE_WORKFLOW.id });
145
+ // Track domain events
146
+ const eventLog = [];
147
+ engine.events.subscribe('*', (evt) => {
148
+ eventLog.push(evt.name);
149
+ });
150
+ // 1. Create Deliverable
151
+ const deliverable = await engine.createDeliverable({
152
+ projectId: project.id,
153
+ title: 'Hero Commercial Cutdown (15s)',
154
+ format: 'ProRes QuickTime',
155
+ dueDate: '2026-10-01'
156
+ });
157
+ expect(deliverable.id).toBeDefined();
158
+ expect(eventLog).toContain('deliverable.created');
159
+ // 2. Create tasks assigned to this deliverable
160
+ const task1 = await engine.createTask({
161
+ projectId: project.id,
162
+ title: 'Storyboard 15s Cut',
163
+ status: 'approved',
164
+ estimatedHours: 8,
165
+ loggedHours: 8,
166
+ progress: 100,
167
+ deliverableId: deliverable.id
168
+ });
169
+ expect(task1.deliverableId).toBe(deliverable.id);
170
+ const task2 = await engine.createTask({
171
+ projectId: project.id,
172
+ title: 'Color Grading 15s Cut',
173
+ status: 'in_production',
174
+ estimatedHours: 12,
175
+ loggedHours: 6,
176
+ progress: 50,
177
+ deliverableId: deliverable.id
178
+ });
179
+ const task3 = await engine.createTask({
180
+ projectId: project.id,
181
+ title: 'Sound Design & Final Mix',
182
+ status: 'briefing',
183
+ estimatedHours: 6,
184
+ loggedHours: 0,
185
+ progress: 0,
186
+ deliverableId: deliverable.id
187
+ });
188
+ // 3. Compute Deliverable Summary / Rollup
189
+ const summary = await engine.getDeliverableSummary(deliverable.id);
190
+ expect(summary).not.toBeNull();
191
+ expect(summary.totalTasks).toBe(3);
192
+ expect(summary.completedTasks).toBe(1); // 'approved' has completionState 'done'
193
+ expect(summary.activeTasks).toBe(1); // 'in_production' has executionState 'active'
194
+ expect(summary.estimatedHours).toBe(26); // 8 + 12 + 6
195
+ expect(summary.loggedHours).toBe(14); // 8 + 6 + 0
196
+ expect(summary.progressPercentage).toBe(50); // (100 + 50 + 0) / 3 = 50%
197
+ // 4. Update Deliverable to delivered
198
+ const updated = await engine.updateDeliverable(deliverable.id, {
199
+ status: 'delivered'
200
+ });
201
+ expect(updated?.status).toBe('delivered');
202
+ expect(updated?.deliveredAt).toBeDefined();
203
+ expect(eventLog).toContain('deliverable.status_changed');
204
+ expect(eventLog).toContain('deliverable.updated');
205
+ // 5. Delete Deliverable
206
+ const deleted = await engine.deleteDeliverable(deliverable.id);
207
+ expect(deleted).toBe(true);
208
+ expect(eventLog).toContain('deliverable.deleted');
209
+ });
210
+ it('seeds deliverables from initialData', async () => {
211
+ const engine = new CriticalPathEngine({
212
+ initialData: {
213
+ projects: [{ id: 'p_init', name: 'Init Proj', key: 'INIT', createdAt: '', updatedAt: '' }],
214
+ deliverables: [
215
+ {
216
+ id: 'deliv_seeded',
217
+ projectId: 'p_init',
218
+ title: 'Seeded Deliverable',
219
+ status: 'planned',
220
+ createdAt: '2026-01-01',
221
+ updatedAt: '2026-01-01'
222
+ }
223
+ ]
224
+ }
225
+ });
226
+ await engine.ready;
227
+ const deliverables = await engine.getDeliverables('p_init');
228
+ expect(deliverables).toHaveLength(1);
229
+ expect(deliverables[0].id).toBe('deliv_seeded');
230
+ });
231
+ });
232
+ //# sourceMappingURL=deliverables.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverables.test.js","sourceRoot":"","sources":["../src/deliverables.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Task, Project, Workflow, TimeEntry, Priority, TaskStatus, TaskTodoItem, CustomFieldDefinition, CreateTaskInput, CreateProjectInput } from '../types/index.js';
1
+ import type { Task, Project, Workflow, TimeEntry, Priority, TaskStatus, TaskTodoItem, CustomFieldDefinition, CreateTaskInput, CreateProjectInput, Deliverable, DeliverableStatus, CreateDeliverableInput } from '../types/index.js';
2
2
  import type { DomainEvent } from './events.js';
3
3
  export declare abstract class BaseEntity {
4
4
  readonly id: string;
@@ -25,6 +25,7 @@ export declare class TaskEntity extends BaseEntity {
25
25
  iterationId?: string;
26
26
  teamId?: string;
27
27
  containerId?: string;
28
+ deliverableId?: string;
28
29
  plannedStartDate?: string;
29
30
  actualStartDate?: string;
30
31
  actualEndDate?: string;
@@ -83,6 +84,29 @@ export declare class ProjectEntity extends BaseEntity {
83
84
  validateCustomFields(values?: Record<string, unknown>): void;
84
85
  toPlain(): Project;
85
86
  }
87
+ export declare class DeliverableEntity extends BaseEntity {
88
+ projectId: string;
89
+ title: string;
90
+ description?: string;
91
+ status: DeliverableStatus;
92
+ format?: string;
93
+ specs?: Record<string, unknown>;
94
+ leadId?: string;
95
+ reviewerId?: string;
96
+ dueDate?: string;
97
+ deliveredAt?: string;
98
+ outputUrls?: string[];
99
+ customFields?: Record<string, unknown>;
100
+ constructor(data: Deliverable);
101
+ static create(input: CreateDeliverableInput, options?: {
102
+ id?: string;
103
+ customFieldDefs?: CustomFieldDefinition[];
104
+ }): DeliverableEntity;
105
+ transitionTo(newStatus: DeliverableStatus): this;
106
+ addOutputUrl(url: string): this;
107
+ update(updates: Partial<Deliverable>, customFieldDefs?: CustomFieldDefinition[]): this;
108
+ toPlain(): Deliverable;
109
+ }
86
110
  export declare class AttachmentValidationError extends Error {
87
111
  constructor(message: string);
88
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/domain/entities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/domain/entities.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ export class TaskEntity extends BaseEntity {
40
40
  iterationId;
41
41
  teamId;
42
42
  containerId;
43
+ deliverableId;
43
44
  plannedStartDate;
44
45
  actualStartDate;
45
46
  actualEndDate;
@@ -71,6 +72,7 @@ export class TaskEntity extends BaseEntity {
71
72
  this.iterationId = data.iterationId;
72
73
  this.teamId = data.teamId;
73
74
  this.containerId = data.containerId;
75
+ this.deliverableId = data.deliverableId;
74
76
  this.plannedStartDate = data.plannedStartDate;
75
77
  this.actualStartDate = data.actualStartDate;
76
78
  this.actualEndDate = data.actualEndDate;
@@ -299,6 +301,7 @@ export class TaskEntity extends BaseEntity {
299
301
  iterationId: this.iterationId,
300
302
  teamId: this.teamId,
301
303
  containerId: this.containerId,
304
+ deliverableId: this.deliverableId,
302
305
  plannedStartDate: this.plannedStartDate,
303
306
  actualStartDate: this.actualStartDate,
304
307
  actualEndDate: this.actualEndDate,
@@ -393,6 +396,156 @@ export class ProjectEntity extends BaseEntity {
393
396
  };
394
397
  }
395
398
  }
399
+ export class DeliverableEntity extends BaseEntity {
400
+ projectId;
401
+ title;
402
+ description;
403
+ status;
404
+ format;
405
+ specs;
406
+ leadId;
407
+ reviewerId;
408
+ dueDate;
409
+ deliveredAt;
410
+ outputUrls;
411
+ customFields;
412
+ constructor(data) {
413
+ super(data.id, data.createdAt, data.updatedAt);
414
+ this.projectId = data.projectId;
415
+ this.title = data.title;
416
+ this.description = data.description;
417
+ this.status = data.status;
418
+ this.format = data.format;
419
+ this.specs = data.specs ? { ...data.specs } : undefined;
420
+ this.leadId = data.leadId;
421
+ this.reviewerId = data.reviewerId;
422
+ this.dueDate = data.dueDate;
423
+ this.deliveredAt = data.deliveredAt;
424
+ this.outputUrls = data.outputUrls ? [...data.outputUrls] : [];
425
+ this.customFields = data.customFields ? { ...data.customFields } : {};
426
+ }
427
+ static create(input, options) {
428
+ const id = options?.id || `deliv_${Math.random().toString(36).substring(2, 9)}`;
429
+ const now = new Date().toISOString();
430
+ if (options?.customFieldDefs) {
431
+ validateCustomFieldValues(options.customFieldDefs, input.customFields);
432
+ }
433
+ const deliverable = new DeliverableEntity({
434
+ ...input,
435
+ id,
436
+ createdAt: now,
437
+ updatedAt: now,
438
+ status: input.status || 'planned',
439
+ outputUrls: input.outputUrls ?? [],
440
+ customFields: input.customFields ?? {}
441
+ });
442
+ const createdEvent = {
443
+ id: `evt_${Math.random().toString(36).substring(2, 9)}`,
444
+ name: 'deliverable.created',
445
+ aggregateId: deliverable.id,
446
+ aggregateType: 'Deliverable',
447
+ occurredAt: now,
448
+ payload: { deliverable: deliverable.toPlain() }
449
+ };
450
+ deliverable.raiseEvent(createdEvent);
451
+ return deliverable;
452
+ }
453
+ transitionTo(newStatus) {
454
+ if (this.status === newStatus)
455
+ return this;
456
+ const previousStatus = this.status;
457
+ this.status = newStatus;
458
+ const now = new Date().toISOString();
459
+ if (newStatus === 'delivered' && !this.deliveredAt) {
460
+ this.deliveredAt = now;
461
+ }
462
+ this.markUpdated();
463
+ const event = {
464
+ id: `evt_${Math.random().toString(36).substring(2, 9)}`,
465
+ name: 'deliverable.status_changed',
466
+ aggregateId: this.id,
467
+ aggregateType: 'Deliverable',
468
+ occurredAt: now,
469
+ payload: {
470
+ deliverable: this.toPlain(),
471
+ previousStatus,
472
+ newStatus
473
+ }
474
+ };
475
+ this.raiseEvent(event);
476
+ return this;
477
+ }
478
+ addOutputUrl(url) {
479
+ if (!this.outputUrls) {
480
+ this.outputUrls = [];
481
+ }
482
+ if (!this.outputUrls.includes(url)) {
483
+ const previous = this.toPlain();
484
+ this.outputUrls.push(url);
485
+ this.markUpdated();
486
+ const event = {
487
+ id: `evt_${Math.random().toString(36).substring(2, 9)}`,
488
+ name: 'deliverable.updated',
489
+ aggregateId: this.id,
490
+ aggregateType: 'Deliverable',
491
+ occurredAt: new Date().toISOString(),
492
+ payload: {
493
+ deliverable: this.toPlain(),
494
+ previous
495
+ }
496
+ };
497
+ this.raiseEvent(event);
498
+ }
499
+ return this;
500
+ }
501
+ update(updates, customFieldDefs) {
502
+ const previous = this.toPlain();
503
+ if (updates.customFields && customFieldDefs) {
504
+ validateCustomFieldValues(customFieldDefs, {
505
+ ...this.customFields,
506
+ ...updates.customFields
507
+ });
508
+ }
509
+ if (updates.status && updates.status !== this.status) {
510
+ this.transitionTo(updates.status);
511
+ delete updates.status;
512
+ }
513
+ Object.assign(this, updates);
514
+ this.markUpdated();
515
+ const event = {
516
+ id: `evt_${Math.random().toString(36).substring(2, 9)}`,
517
+ name: 'deliverable.updated',
518
+ aggregateId: this.id,
519
+ aggregateType: 'Deliverable',
520
+ occurredAt: new Date().toISOString(),
521
+ payload: {
522
+ deliverable: this.toPlain(),
523
+ previous
524
+ }
525
+ };
526
+ this.raiseEvent(event);
527
+ return this;
528
+ }
529
+ toPlain() {
530
+ return {
531
+ id: this.id,
532
+ projectId: this.projectId,
533
+ title: this.title,
534
+ description: this.description,
535
+ status: this.status,
536
+ format: this.format,
537
+ specs: this.specs ? { ...this.specs } : undefined,
538
+ leadId: this.leadId,
539
+ reviewerId: this.reviewerId,
540
+ dueDate: this.dueDate,
541
+ deliveredAt: this.deliveredAt,
542
+ outputUrls: this.outputUrls ? [...this.outputUrls] : [],
543
+ customFields: this.customFields ? { ...this.customFields } : {},
544
+ createdAt: this.createdAt,
545
+ updatedAt: this.updatedAt
546
+ };
547
+ }
548
+ }
396
549
  export class AttachmentValidationError extends Error {
397
550
  constructor(message) {
398
551
  super(message);
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/domain/entities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/domain/entities.ts"],"names":[],"mappings":"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"}