@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.
- package/CHANGELOG.md +11 -0
- package/README.md +35 -0
- package/dist/deliverables.test.d.ts +2 -0
- package/dist/deliverables.test.d.ts.map +1 -0
- package/dist/deliverables.test.js +232 -0
- package/dist/deliverables.test.js.map +1 -0
- package/dist/domain/entities.d.ts +25 -1
- package/dist/domain/entities.d.ts.map +1 -1
- package/dist/domain/entities.js +153 -0
- package/dist/domain/entities.js.map +1 -1
- package/dist/domain/events.d.ts +31 -3
- package/dist/domain/events.d.ts.map +1 -1
- package/dist/domain/events.js.map +1 -1
- package/dist/engine/index.d.ts +8 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +164 -1
- package/dist/engine/index.js.map +1 -1
- package/dist/store/firebase.d.ts +6 -1
- package/dist/store/firebase.d.ts.map +1 -1
- package/dist/store/firebase.js +41 -0
- package/dist/store/firebase.js.map +1 -1
- package/dist/store/index.d.ts +15 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +38 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite.d.ts +7 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +94 -5
- package/dist/store/sqlite.js.map +1 -1
- package/dist/types/index.d.ts +33 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/workflow.d.ts +1 -0
- package/dist/utils/workflow.d.ts.map +1 -1
- package/dist/utils/workflow.js +37 -0
- package/dist/utils/workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/deliverables.test.ts +284 -0
- package/src/domain/entities.ts +185 -2
- package/src/domain/events.ts +28 -3
- package/src/engine/index.ts +188 -2
- package/src/store/firebase.ts +47 -1
- package/src/store/index.ts +54 -1
- package/src/store/sqlite.ts +135 -4
- package/src/types/index.ts +51 -1
- package/src/utils/workflow.ts +38 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/domain/events.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { Task, Project, Workflow, Iteration, Team, TaskContainer, TaskDependency, TimeEntry, Comment, CommentReaction, Attachment } from '../types/index.js';
|
|
1
|
+
import type { Task, Project, Workflow, Iteration, Team, TaskContainer, TaskDependency, TimeEntry, Comment, CommentReaction, Attachment, Deliverable } from '../types/index.js';
|
|
2
2
|
export interface DomainEvent<TPayload = Record<string, unknown>> {
|
|
3
3
|
readonly id: string;
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly aggregateId: string;
|
|
6
|
-
readonly aggregateType: 'Task' | 'Project' | 'Workflow' | 'Iteration' | 'Team' | 'Container' | 'Dependency' | 'Comment' | 'Attachment';
|
|
6
|
+
readonly aggregateType: 'Task' | 'Project' | 'Workflow' | 'Iteration' | 'Team' | 'Container' | 'Dependency' | 'Comment' | 'Attachment' | 'Deliverable';
|
|
7
7
|
readonly occurredAt: string;
|
|
8
8
|
readonly payload: TPayload;
|
|
9
9
|
}
|
|
@@ -160,7 +160,35 @@ export interface ContainerCreatedEvent extends DomainEvent<{
|
|
|
160
160
|
readonly name: 'container.created';
|
|
161
161
|
readonly aggregateType: 'Container';
|
|
162
162
|
}
|
|
163
|
-
export
|
|
163
|
+
export interface DeliverableCreatedEvent extends DomainEvent<{
|
|
164
|
+
deliverable: Deliverable;
|
|
165
|
+
}> {
|
|
166
|
+
readonly name: 'deliverable.created';
|
|
167
|
+
readonly aggregateType: 'Deliverable';
|
|
168
|
+
}
|
|
169
|
+
export interface DeliverableUpdatedEvent extends DomainEvent<{
|
|
170
|
+
deliverable: Deliverable;
|
|
171
|
+
previous: Deliverable;
|
|
172
|
+
}> {
|
|
173
|
+
readonly name: 'deliverable.updated';
|
|
174
|
+
readonly aggregateType: 'Deliverable';
|
|
175
|
+
}
|
|
176
|
+
export interface DeliverableStatusChangedEvent extends DomainEvent<{
|
|
177
|
+
deliverable: Deliverable;
|
|
178
|
+
previousStatus: string;
|
|
179
|
+
newStatus: string;
|
|
180
|
+
}> {
|
|
181
|
+
readonly name: 'deliverable.status_changed';
|
|
182
|
+
readonly aggregateType: 'Deliverable';
|
|
183
|
+
}
|
|
184
|
+
export interface DeliverableDeletedEvent extends DomainEvent<{
|
|
185
|
+
deliverableId: string;
|
|
186
|
+
projectId: string;
|
|
187
|
+
}> {
|
|
188
|
+
readonly name: 'deliverable.deleted';
|
|
189
|
+
readonly aggregateType: 'Deliverable';
|
|
190
|
+
}
|
|
191
|
+
export type CriticalPathDomainEvent = TaskCreatedEvent | TaskUpdatedEvent | TaskStatusChangedEvent | TaskDeletedEvent | TimeLoggedEvent | CommentAddedEvent | CommentUpdatedEvent | CommentDeletedEvent | CommentReactionAddedEvent | CommentReactionRemovedEvent | AttachmentCreatedEvent | AttachmentDeletedEvent | TaskDependencyAddedEvent | ProjectCreatedEvent | ProjectUpdatedEvent | WorkflowCreatedEvent | WorkflowUpdatedEvent | WorkflowDeletedEvent | IterationStartedEvent | IterationCompletedEvent | TeamCreatedEvent | ContainerCreatedEvent | DeliverableCreatedEvent | DeliverableUpdatedEvent | DeliverableStatusChangedEvent | DeliverableDeletedEvent;
|
|
164
192
|
export type DomainEventHandler<T extends DomainEvent = DomainEvent> = (event: T) => Promise<void> | void;
|
|
165
193
|
export declare class DomainEventBus {
|
|
166
194
|
private handlers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,cAAc,EACd,SAAS,EACT,OAAO,EACP,eAAe,EACf,UAAU,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"AA6LA,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAG,IAAI,GAAG,EAA0C,CAAC;IAErE,SAAS,CACP,SAA0B,EAC1B,OAA8B;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,SAAS,EACT,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CACzC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAkB;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAE7D,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,2DAA2D;gBAC3D,OAAO,CAAC,KAAK,CAAC,4CAA4C,KAAK,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAqB;QACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CriticalPathConfig, Project, Task, TaskDependency, TaskDependencyGraph, Team, TaskContainer, Iteration, Comment, Attachment, FileStorageAdapter, UploadFileInput, PresignedUrlOptions, PresignedUploadResult, TimeEntry, Workflow, CreateTaskInput } from '../types/index.js';
|
|
1
|
+
import type { CriticalPathConfig, Project, Task, TaskDependency, TaskDependencyGraph, Team, TaskContainer, Iteration, Comment, Attachment, FileStorageAdapter, UploadFileInput, PresignedUrlOptions, PresignedUploadResult, TimeEntry, Workflow, CreateTaskInput, Deliverable, DeliverableSummary, CreateDeliverableInput } from '../types/index.js';
|
|
2
2
|
import { StorageAdapter } from '../store/index.js';
|
|
3
3
|
import { PluginRegistry } from '../plugins/index.js';
|
|
4
4
|
import { type TaskLifecycleState } from '../utils/status.js';
|
|
@@ -8,6 +8,7 @@ export declare class CriticalPathEngine {
|
|
|
8
8
|
readonly fileStorage?: FileStorageAdapter;
|
|
9
9
|
readonly plugins: PluginRegistry;
|
|
10
10
|
readonly events: DomainEventBus;
|
|
11
|
+
readonly ready: Promise<void>;
|
|
11
12
|
constructor(config?: CriticalPathConfig);
|
|
12
13
|
private seedInitialData;
|
|
13
14
|
getWorkflows(): Promise<Workflow[]>;
|
|
@@ -72,6 +73,12 @@ export declare class CriticalPathEngine {
|
|
|
72
73
|
createContainer(container: Omit<TaskContainer, 'id' | 'createdAt' | 'updatedAt'>): Promise<TaskContainer>;
|
|
73
74
|
updateContainer(id: string, updates: Partial<TaskContainer>): Promise<TaskContainer | null>;
|
|
74
75
|
deleteContainer(id: string): Promise<boolean>;
|
|
76
|
+
getDeliverables(projectId: string): Promise<Deliverable[]>;
|
|
77
|
+
getDeliverable(id: string): Promise<Deliverable | null>;
|
|
78
|
+
createDeliverable(input: CreateDeliverableInput): Promise<Deliverable>;
|
|
79
|
+
updateDeliverable(id: string, updates: Partial<Deliverable>): Promise<Deliverable | null>;
|
|
80
|
+
deleteDeliverable(id: string): Promise<boolean>;
|
|
81
|
+
getDeliverableSummary(deliverableId: string): Promise<DeliverableSummary | null>;
|
|
75
82
|
getIterations(projectId: string): Promise<Iteration[]>;
|
|
76
83
|
getIteration(id: string): Promise<Iteration | null>;
|
|
77
84
|
createIteration(iteration: Omit<Iteration, 'id' | 'createdAt'>): Promise<Iteration>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,SAAS,EACT,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EAET,QAAQ,EACR,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export class CriticalPathEngine {
|
|
|
12
12
|
fileStorage;
|
|
13
13
|
plugins;
|
|
14
14
|
events;
|
|
15
|
+
ready = Promise.resolve();
|
|
15
16
|
constructor(config = {}) {
|
|
16
17
|
this.store = typeof config.store === 'object' && config.store !== null
|
|
17
18
|
? config.store
|
|
@@ -25,7 +26,7 @@ export class CriticalPathEngine {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
if (config.initialData) {
|
|
28
|
-
this.seedInitialData(config.initialData);
|
|
29
|
+
this.ready = this.seedInitialData(config.initialData);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
async seedInitialData(data) {
|
|
@@ -49,6 +50,11 @@ export class CriticalPathEngine {
|
|
|
49
50
|
await this.store.createContainer(c);
|
|
50
51
|
}
|
|
51
52
|
}
|
|
53
|
+
if (data.deliverables) {
|
|
54
|
+
for (const d of data.deliverables) {
|
|
55
|
+
await this.store.createDeliverable(d);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
52
58
|
if (data.iterations) {
|
|
53
59
|
for (const it of data.iterations) {
|
|
54
60
|
await this.store.createIteration(it);
|
|
@@ -251,6 +257,7 @@ export class CriticalPathEngine {
|
|
|
251
257
|
iterationId: processedInput.iterationId ?? taskInput.iterationId,
|
|
252
258
|
teamId: processedInput.teamId ?? taskInput.teamId,
|
|
253
259
|
containerId: processedInput.containerId ?? taskInput.containerId,
|
|
260
|
+
deliverableId: processedInput.deliverableId ?? taskInput.deliverableId,
|
|
254
261
|
plannedStartDate: processedInput.plannedStartDate ?? taskInput.plannedStartDate,
|
|
255
262
|
actualStartDate,
|
|
256
263
|
actualEndDate,
|
|
@@ -765,6 +772,162 @@ export class CriticalPathEngine {
|
|
|
765
772
|
async deleteContainer(id) {
|
|
766
773
|
return this.store.deleteContainer(id);
|
|
767
774
|
}
|
|
775
|
+
// --- Deliverables ---
|
|
776
|
+
async getDeliverables(projectId) {
|
|
777
|
+
return this.store.getDeliverables(projectId);
|
|
778
|
+
}
|
|
779
|
+
async getDeliverable(id) {
|
|
780
|
+
return this.store.getDeliverable(id);
|
|
781
|
+
}
|
|
782
|
+
async createDeliverable(input) {
|
|
783
|
+
const project = await this.store.getProject(input.projectId);
|
|
784
|
+
if (project?.customFieldDefinitions && input.customFields) {
|
|
785
|
+
validateCustomFieldValues(project.customFieldDefinitions, input.customFields);
|
|
786
|
+
}
|
|
787
|
+
const created = await this.store.createDeliverable({
|
|
788
|
+
...input,
|
|
789
|
+
status: input.status || 'planned',
|
|
790
|
+
outputUrls: input.outputUrls ?? [],
|
|
791
|
+
customFields: input.customFields ?? {}
|
|
792
|
+
});
|
|
793
|
+
const now = new Date().toISOString();
|
|
794
|
+
const event = {
|
|
795
|
+
id: `evt_${Math.random().toString(36).substring(2, 9)}`,
|
|
796
|
+
name: 'deliverable.created',
|
|
797
|
+
aggregateId: created.id,
|
|
798
|
+
aggregateType: 'Deliverable',
|
|
799
|
+
occurredAt: now,
|
|
800
|
+
payload: { deliverable: created }
|
|
801
|
+
};
|
|
802
|
+
await this.events.publish(event);
|
|
803
|
+
await this.store.logActivity({
|
|
804
|
+
projectId: created.projectId,
|
|
805
|
+
actorId: 'system',
|
|
806
|
+
action: 'deliverable.created',
|
|
807
|
+
details: { title: created.title, format: created.format }
|
|
808
|
+
});
|
|
809
|
+
this.dispatchWebhook('deliverable.created', { deliverable: created });
|
|
810
|
+
return created;
|
|
811
|
+
}
|
|
812
|
+
async updateDeliverable(id, updates) {
|
|
813
|
+
const existing = await this.store.getDeliverable(id);
|
|
814
|
+
if (!existing)
|
|
815
|
+
return null;
|
|
816
|
+
if (updates.status && updates.status === 'delivered' && !existing.deliveredAt && !updates.deliveredAt) {
|
|
817
|
+
updates.deliveredAt = new Date().toISOString();
|
|
818
|
+
}
|
|
819
|
+
const updated = await this.store.updateDeliverable(id, updates);
|
|
820
|
+
if (updated) {
|
|
821
|
+
const now = new Date().toISOString();
|
|
822
|
+
if (updates.status && updates.status !== existing.status) {
|
|
823
|
+
const statusEvent = {
|
|
824
|
+
id: `evt_${Math.random().toString(36).substring(2, 9)}`,
|
|
825
|
+
name: 'deliverable.status_changed',
|
|
826
|
+
aggregateId: updated.id,
|
|
827
|
+
aggregateType: 'Deliverable',
|
|
828
|
+
occurredAt: now,
|
|
829
|
+
payload: {
|
|
830
|
+
deliverable: updated,
|
|
831
|
+
previousStatus: existing.status,
|
|
832
|
+
newStatus: updated.status
|
|
833
|
+
}
|
|
834
|
+
};
|
|
835
|
+
await this.events.publish(statusEvent);
|
|
836
|
+
this.dispatchWebhook('deliverable.status_changed', {
|
|
837
|
+
deliverable: updated,
|
|
838
|
+
previousStatus: existing.status,
|
|
839
|
+
newStatus: updated.status
|
|
840
|
+
});
|
|
841
|
+
}
|
|
842
|
+
const updateEvent = {
|
|
843
|
+
id: `evt_${Math.random().toString(36).substring(2, 9)}`,
|
|
844
|
+
name: 'deliverable.updated',
|
|
845
|
+
aggregateId: updated.id,
|
|
846
|
+
aggregateType: 'Deliverable',
|
|
847
|
+
occurredAt: now,
|
|
848
|
+
payload: { deliverable: updated, previous: existing }
|
|
849
|
+
};
|
|
850
|
+
await this.events.publish(updateEvent);
|
|
851
|
+
await this.store.logActivity({
|
|
852
|
+
projectId: updated.projectId,
|
|
853
|
+
actorId: 'system',
|
|
854
|
+
action: 'deliverable.updated',
|
|
855
|
+
details: { title: updated.title, status: updated.status }
|
|
856
|
+
});
|
|
857
|
+
this.dispatchWebhook('deliverable.updated', { deliverable: updated });
|
|
858
|
+
}
|
|
859
|
+
return updated;
|
|
860
|
+
}
|
|
861
|
+
async deleteDeliverable(id) {
|
|
862
|
+
const existing = await this.store.getDeliverable(id);
|
|
863
|
+
if (!existing)
|
|
864
|
+
return false;
|
|
865
|
+
const deleted = await this.store.deleteDeliverable(id);
|
|
866
|
+
if (deleted) {
|
|
867
|
+
const now = new Date().toISOString();
|
|
868
|
+
const event = {
|
|
869
|
+
id: `evt_${Math.random().toString(36).substring(2, 9)}`,
|
|
870
|
+
name: 'deliverable.deleted',
|
|
871
|
+
aggregateId: id,
|
|
872
|
+
aggregateType: 'Deliverable',
|
|
873
|
+
occurredAt: now,
|
|
874
|
+
payload: { deliverableId: id, projectId: existing.projectId }
|
|
875
|
+
};
|
|
876
|
+
await this.events.publish(event);
|
|
877
|
+
await this.store.logActivity({
|
|
878
|
+
projectId: existing.projectId,
|
|
879
|
+
actorId: 'system',
|
|
880
|
+
action: 'deliverable.deleted',
|
|
881
|
+
details: { title: existing.title }
|
|
882
|
+
});
|
|
883
|
+
this.dispatchWebhook('deliverable.deleted', { deliverableId: id, projectId: existing.projectId });
|
|
884
|
+
}
|
|
885
|
+
return deleted;
|
|
886
|
+
}
|
|
887
|
+
async getDeliverableSummary(deliverableId) {
|
|
888
|
+
const deliverable = await this.store.getDeliverable(deliverableId);
|
|
889
|
+
if (!deliverable)
|
|
890
|
+
return null;
|
|
891
|
+
const project = await this.store.getProject(deliverable.projectId);
|
|
892
|
+
const workflow = await this.resolveProjectWorkflow(deliverable.projectId);
|
|
893
|
+
const allTasks = await this.store.getTasks(deliverable.projectId);
|
|
894
|
+
const tasks = allTasks.filter((t) => t.deliverableId === deliverableId);
|
|
895
|
+
const totalTasks = tasks.length;
|
|
896
|
+
let completedTasks = 0;
|
|
897
|
+
let activeTasks = 0;
|
|
898
|
+
let estimatedHours = 0;
|
|
899
|
+
let loggedHours = 0;
|
|
900
|
+
let totalProgress = 0;
|
|
901
|
+
for (const task of tasks) {
|
|
902
|
+
const statusDef = resolveStatusDefinition(task.status, project?.statusDefinitions || workflow?.statuses);
|
|
903
|
+
if (statusDef.completionState === 'done') {
|
|
904
|
+
completedTasks++;
|
|
905
|
+
}
|
|
906
|
+
else if (statusDef.executionState === 'active') {
|
|
907
|
+
activeTasks++;
|
|
908
|
+
}
|
|
909
|
+
if (task.estimatedHours)
|
|
910
|
+
estimatedHours += task.estimatedHours;
|
|
911
|
+
if (task.loggedHours)
|
|
912
|
+
loggedHours += task.loggedHours;
|
|
913
|
+
if (typeof task.progress === 'number') {
|
|
914
|
+
totalProgress += task.progress;
|
|
915
|
+
}
|
|
916
|
+
else {
|
|
917
|
+
totalProgress += statusDef.completionState === 'done' ? 100 : 0;
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
const progressPercentage = totalTasks > 0 ? Math.round(totalProgress / totalTasks) : 0;
|
|
921
|
+
return {
|
|
922
|
+
deliverable,
|
|
923
|
+
totalTasks,
|
|
924
|
+
completedTasks,
|
|
925
|
+
activeTasks,
|
|
926
|
+
progressPercentage,
|
|
927
|
+
estimatedHours,
|
|
928
|
+
loggedHours
|
|
929
|
+
};
|
|
930
|
+
}
|
|
768
931
|
// --- Iterations ---
|
|
769
932
|
async getIterations(projectId) {
|
|
770
933
|
return this.store.getIterations(projectId);
|
package/dist/engine/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/store/firebase.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StorageAdapter } from './index.js';
|
|
2
|
-
import type { Project, Task, Iteration, Team, TaskContainer, Comment, Attachment, TimeEntry, Activity, Webhook, TaskDependency, Workflow } from '../types/index.js';
|
|
2
|
+
import type { Project, Task, Iteration, Team, TaskContainer, Comment, Attachment, TimeEntry, Activity, Webhook, TaskDependency, Workflow, Deliverable, CreateDeliverableInput } from '../types/index.js';
|
|
3
3
|
export interface FirestoreDBInterface {
|
|
4
4
|
collection(name: string): {
|
|
5
5
|
doc(id?: string): {
|
|
@@ -92,6 +92,11 @@ export declare class FirebaseStore implements StorageAdapter {
|
|
|
92
92
|
createContainer(container: Omit<TaskContainer, 'id' | 'createdAt' | 'updatedAt'>): Promise<TaskContainer>;
|
|
93
93
|
updateContainer(id: string, updates: Partial<TaskContainer>): Promise<TaskContainer | null>;
|
|
94
94
|
deleteContainer(id: string): Promise<boolean>;
|
|
95
|
+
getDeliverables(projectId: string): Promise<Deliverable[]>;
|
|
96
|
+
getDeliverable(id: string): Promise<Deliverable | null>;
|
|
97
|
+
createDeliverable(deliverable: CreateDeliverableInput): Promise<Deliverable>;
|
|
98
|
+
updateDeliverable(id: string, updates: Partial<Deliverable>): Promise<Deliverable | null>;
|
|
99
|
+
deleteDeliverable(id: string): Promise<boolean>;
|
|
95
100
|
getTasks(projectId?: string): Promise<Task[]>;
|
|
96
101
|
getTask(id: string): Promise<Task | null>;
|
|
97
102
|
createTask(task: Omit<Task, 'id' | 'createdAt' | 'updatedAt'>): Promise<Task>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../src/store/firebase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,aAAa,EACb,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,cAAc,EACd,QAAQ,
|
|
1
|
+
{"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../src/store/firebase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,aAAa,EACb,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,cAAc,EACd,QAAQ,EACR,WAAW,EACX,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;QACxB,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG;YAChB,EAAE,EAAE,MAAM,CAAC;YACX,GAAG,IAAI,OAAO,CAAC;gBAAE,MAAM,EAAE,OAAO,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,IAAI,GAAG,CAAA;aAAE,CAAC,CAAC;YAC7D,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;SACzB,CAAC;QACF,GAAG,IAAI,OAAO,CAAC;YAAE,IAAI,EAAE,KAAK,CAAC;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,IAAI,GAAG,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG;YAC5C,GAAG,IAAI,OAAO,CAAC;gBAAE,IAAI,EAAE,KAAK,CAAC;oBAAE,EAAE,EAAE,MAAM,CAAC;oBAAC,IAAI,IAAI,GAAG,CAAA;iBAAE,CAAC,CAAA;aAAE,CAAC,CAAC;SAC9D,CAAC;KACH,CAAC;CACH;AAED,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,OAAO,CAAC,WAAW,CAAuC;IAE1D,OAAO,CAAC,gBAAgB;IAOxB,UAAU,CAAC,IAAI,EAAE,MAAM;iBAIV,MAAM;;;;;;;sBAYK,GAAG,YAAY;gBAAE,KAAK,CAAC,EAAE,OAAO,CAAA;aAAE;;;;;;;;;qBAmBzC,MAAM,MAAM,MAAM,SAAS,GAAG;;;;;;;;;CAkBhD;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,EAAE,EAAE,oBAAoB,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAclD;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,EAAE,CAAuB;gBAErB,MAAM,EAAE,mBAAmB;IAUjC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAM/C,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IASzF,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ3C,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKnC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAMjD,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQ7F,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAahF,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5C,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAK3B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAMzC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IASpE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK1D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAMvD,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAQzG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAS3F,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAK1D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAMvD,iBAAiB,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB5E,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASzF,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAU7C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAMzC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAapE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKtD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAMnD,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAQnF,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IASnF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK/C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAM/C,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQtF,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAepG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAUvG,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAc3G,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMrD,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAQrG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9C,aAAa,CAAC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYpF,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS5E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKpD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAStE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAK1D,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAQvE,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKjC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAO/E"}
|
package/dist/store/firebase.js
CHANGED
|
@@ -226,6 +226,47 @@ export class FirebaseStore {
|
|
|
226
226
|
await this.db.collection('containers').doc(id).delete();
|
|
227
227
|
return true;
|
|
228
228
|
}
|
|
229
|
+
// --- Deliverables ---
|
|
230
|
+
async getDeliverables(projectId) {
|
|
231
|
+
const snap = await this.db.collection('deliverables').where('projectId', '==', projectId).get();
|
|
232
|
+
return snap.docs.map((doc) => ({ ...doc.data(), id: doc.id }));
|
|
233
|
+
}
|
|
234
|
+
async getDeliverable(id) {
|
|
235
|
+
const snap = await this.db.collection('deliverables').doc(id).get();
|
|
236
|
+
if (!snap.exists)
|
|
237
|
+
return null;
|
|
238
|
+
return { ...snap.data(), id: snap.id };
|
|
239
|
+
}
|
|
240
|
+
async createDeliverable(deliverable) {
|
|
241
|
+
const docRef = this.db.collection('deliverables').doc();
|
|
242
|
+
const now = new Date().toISOString();
|
|
243
|
+
const newDeliverable = {
|
|
244
|
+
...deliverable,
|
|
245
|
+
id: docRef.id,
|
|
246
|
+
status: deliverable.status || 'planned',
|
|
247
|
+
outputUrls: deliverable.outputUrls ? [...deliverable.outputUrls] : [],
|
|
248
|
+
customFields: deliverable.customFields ? { ...deliverable.customFields } : {},
|
|
249
|
+
createdAt: now,
|
|
250
|
+
updatedAt: now
|
|
251
|
+
};
|
|
252
|
+
await docRef.set(sanitizeFirestoreData(newDeliverable));
|
|
253
|
+
return newDeliverable;
|
|
254
|
+
}
|
|
255
|
+
async updateDeliverable(id, updates) {
|
|
256
|
+
const existing = await this.getDeliverable(id);
|
|
257
|
+
if (!existing)
|
|
258
|
+
return null;
|
|
259
|
+
const updated = { ...existing, ...updates, updatedAt: new Date().toISOString() };
|
|
260
|
+
await this.db.collection('deliverables').doc(id).set(sanitizeFirestoreData(updated), { merge: true });
|
|
261
|
+
return updated;
|
|
262
|
+
}
|
|
263
|
+
async deleteDeliverable(id) {
|
|
264
|
+
const existing = await this.getDeliverable(id);
|
|
265
|
+
if (!existing)
|
|
266
|
+
return false;
|
|
267
|
+
await this.db.collection('deliverables').doc(id).delete();
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
229
270
|
// --- Tasks ---
|
|
230
271
|
async getTasks(projectId) {
|
|
231
272
|
let snap;
|