@meridianjs/project 1.1.0 → 1.3.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/dist/index.d.mts CHANGED
@@ -29,6 +29,16 @@ declare class ProjectModuleService extends ProjectModuleService_base {
29
29
  retrieveProjectByShareToken(token: string): Promise<any | null>;
30
30
  /** Update position field for each status to match the provided orderedIds index. */
31
31
  reorderStatuses(projectId: string, orderedIds: string[]): Promise<void>;
32
+ /** List health updates for a project, newest first. */
33
+ listHealthUpdatesByProject(projectId: string): Promise<any[]>;
34
+ /** Create a project health update. */
35
+ createHealthUpdate(data: {
36
+ project_id: string;
37
+ health: string;
38
+ title?: string | null;
39
+ summary?: string | null;
40
+ created_by?: string | null;
41
+ }): Promise<any>;
32
42
  }
33
43
 
34
44
  declare const PROJECT_MODULE = "projectModuleService";
package/dist/index.d.ts CHANGED
@@ -29,6 +29,16 @@ declare class ProjectModuleService extends ProjectModuleService_base {
29
29
  retrieveProjectByShareToken(token: string): Promise<any | null>;
30
30
  /** Update position field for each status to match the provided orderedIds index. */
31
31
  reorderStatuses(projectId: string, orderedIds: string[]): Promise<void>;
32
+ /** List health updates for a project, newest first. */
33
+ listHealthUpdatesByProject(projectId: string): Promise<any[]>;
34
+ /** Create a project health update. */
35
+ createHealthUpdate(data: {
36
+ project_id: string;
37
+ health: string;
38
+ title?: string | null;
39
+ summary?: string | null;
40
+ created_by?: string | null;
41
+ }): Promise<any>;
32
42
  }
33
43
 
34
44
  declare const PROJECT_MODULE = "projectModuleService";
package/dist/index.js CHANGED
@@ -25,10 +25,10 @@ __export(index_exports, {
25
25
  default: () => index_default
26
26
  });
27
27
  module.exports = __toCommonJS(index_exports);
28
- var import_framework_utils7 = require("@meridianjs/framework-utils");
28
+ var import_framework_utils8 = require("@meridianjs/framework-utils");
29
29
 
30
30
  // src/service.ts
31
- var import_framework_utils5 = require("@meridianjs/framework-utils");
31
+ var import_framework_utils6 = require("@meridianjs/framework-utils");
32
32
  var import_crypto = require("crypto");
33
33
 
34
34
  // src/models/project.ts
@@ -100,12 +100,29 @@ var ProjectStatus = import_framework_utils4.model.define("project_status", {
100
100
  ]);
101
101
  var project_status_default = ProjectStatus;
102
102
 
103
+ // src/models/project-health-update.ts
104
+ var import_framework_utils5 = require("@meridianjs/framework-utils");
105
+ var ProjectHealthUpdate = import_framework_utils5.model.define("project_health_update", {
106
+ id: import_framework_utils5.model.id().primaryKey(),
107
+ project_id: import_framework_utils5.model.text(),
108
+ health: import_framework_utils5.model.enum(["on_track", "delayed", "on_hold", "completed"]),
109
+ title: import_framework_utils5.model.text().nullable(),
110
+ summary: import_framework_utils5.model.text().nullable(),
111
+ report_date: import_framework_utils5.model.text().nullable(),
112
+ created_by: import_framework_utils5.model.text().nullable(),
113
+ collaborators: import_framework_utils5.model.text().nullable()
114
+ }, [
115
+ { columns: ["project_id"] }
116
+ ]);
117
+ var project_health_update_default = ProjectHealthUpdate;
118
+
103
119
  // src/service.ts
104
- var ProjectModuleService = class extends (0, import_framework_utils5.MeridianService)({
120
+ var ProjectModuleService = class extends (0, import_framework_utils6.MeridianService)({
105
121
  Project: project_default,
106
122
  Label: label_default,
107
123
  Milestone: milestone_default,
108
- ProjectStatus: project_status_default
124
+ ProjectStatus: project_status_default,
125
+ ProjectHealthUpdate: project_health_update_default
109
126
  }) {
110
127
  container;
111
128
  constructor(container) {
@@ -198,34 +215,45 @@ var ProjectModuleService = class extends (0, import_framework_utils5.MeridianSer
198
215
  }
199
216
  await repo.flush();
200
217
  }
218
+ /** List health updates for a project, newest first. */
219
+ async listHealthUpdatesByProject(projectId) {
220
+ const repo = this.container.resolve("projectHealthUpdateRepository");
221
+ return repo.find({ project_id: projectId }, { orderBy: { created_at: "DESC" } });
222
+ }
223
+ /** Create a project health update. */
224
+ async createHealthUpdate(data) {
225
+ return this.createProjectHealthUpdate(data);
226
+ }
201
227
  };
202
228
 
203
229
  // src/loaders/default.ts
204
- var import_framework_utils6 = require("@meridianjs/framework-utils");
205
- var ProjectSchema = (0, import_framework_utils6.dmlToEntitySchema)(project_default);
206
- var LabelSchema = (0, import_framework_utils6.dmlToEntitySchema)(label_default);
207
- var MilestoneSchema = (0, import_framework_utils6.dmlToEntitySchema)(milestone_default);
208
- var ProjectStatusSchema = (0, import_framework_utils6.dmlToEntitySchema)(project_status_default);
209
- var entitySchemas = [ProjectSchema, LabelSchema, MilestoneSchema, ProjectStatusSchema];
230
+ var import_framework_utils7 = require("@meridianjs/framework-utils");
231
+ var ProjectSchema = (0, import_framework_utils7.dmlToEntitySchema)(project_default);
232
+ var LabelSchema = (0, import_framework_utils7.dmlToEntitySchema)(label_default);
233
+ var MilestoneSchema = (0, import_framework_utils7.dmlToEntitySchema)(milestone_default);
234
+ var ProjectStatusSchema = (0, import_framework_utils7.dmlToEntitySchema)(project_status_default);
235
+ var ProjectHealthUpdateSchema = (0, import_framework_utils7.dmlToEntitySchema)(project_health_update_default);
236
+ var entitySchemas = [ProjectSchema, LabelSchema, MilestoneSchema, ProjectStatusSchema, ProjectHealthUpdateSchema];
210
237
  async function defaultLoader({ container }) {
211
238
  const config = container.resolve("config");
212
239
  const { databaseUrl } = config.projectConfig;
213
- const orm = await (0, import_framework_utils6.createModuleOrm)(entitySchemas, databaseUrl);
240
+ const orm = await (0, import_framework_utils7.createModuleOrm)(entitySchemas, databaseUrl);
214
241
  const em = orm.em.fork();
215
242
  container.register({
216
- projectRepository: (0, import_framework_utils6.createRepository)(em, "project"),
217
- labelRepository: (0, import_framework_utils6.createRepository)(em, "label"),
218
- milestoneRepository: (0, import_framework_utils6.createRepository)(em, "milestone"),
219
- projectStatusRepository: (0, import_framework_utils6.createRepository)(em, "project_status"),
243
+ projectRepository: (0, import_framework_utils7.createRepository)(em, "project"),
244
+ labelRepository: (0, import_framework_utils7.createRepository)(em, "label"),
245
+ milestoneRepository: (0, import_framework_utils7.createRepository)(em, "milestone"),
246
+ projectStatusRepository: (0, import_framework_utils7.createRepository)(em, "project_status"),
247
+ projectHealthUpdateRepository: (0, import_framework_utils7.createRepository)(em, "project_health_update"),
220
248
  projectOrm: orm
221
249
  });
222
250
  }
223
251
 
224
252
  // src/index.ts
225
253
  var PROJECT_MODULE = "projectModuleService";
226
- var index_default = (0, import_framework_utils7.Module)(PROJECT_MODULE, {
254
+ var index_default = (0, import_framework_utils8.Module)(PROJECT_MODULE, {
227
255
  service: ProjectModuleService,
228
- models: [project_default, label_default, milestone_default, project_status_default],
256
+ models: [project_default, label_default, milestone_default, project_status_default, project_health_update_default],
229
257
  loaders: [defaultLoader],
230
258
  linkable: {
231
259
  project: { tableName: "project", primaryKey: "id" },
package/dist/index.mjs CHANGED
@@ -74,12 +74,29 @@ var ProjectStatus = model4.define("project_status", {
74
74
  ]);
75
75
  var project_status_default = ProjectStatus;
76
76
 
77
+ // src/models/project-health-update.ts
78
+ import { model as model5 } from "@meridianjs/framework-utils";
79
+ var ProjectHealthUpdate = model5.define("project_health_update", {
80
+ id: model5.id().primaryKey(),
81
+ project_id: model5.text(),
82
+ health: model5.enum(["on_track", "delayed", "on_hold", "completed"]),
83
+ title: model5.text().nullable(),
84
+ summary: model5.text().nullable(),
85
+ report_date: model5.text().nullable(),
86
+ created_by: model5.text().nullable(),
87
+ collaborators: model5.text().nullable()
88
+ }, [
89
+ { columns: ["project_id"] }
90
+ ]);
91
+ var project_health_update_default = ProjectHealthUpdate;
92
+
77
93
  // src/service.ts
78
94
  var ProjectModuleService = class extends MeridianService({
79
95
  Project: project_default,
80
96
  Label: label_default,
81
97
  Milestone: milestone_default,
82
- ProjectStatus: project_status_default
98
+ ProjectStatus: project_status_default,
99
+ ProjectHealthUpdate: project_health_update_default
83
100
  }) {
84
101
  container;
85
102
  constructor(container) {
@@ -172,6 +189,15 @@ var ProjectModuleService = class extends MeridianService({
172
189
  }
173
190
  await repo.flush();
174
191
  }
192
+ /** List health updates for a project, newest first. */
193
+ async listHealthUpdatesByProject(projectId) {
194
+ const repo = this.container.resolve("projectHealthUpdateRepository");
195
+ return repo.find({ project_id: projectId }, { orderBy: { created_at: "DESC" } });
196
+ }
197
+ /** Create a project health update. */
198
+ async createHealthUpdate(data) {
199
+ return this.createProjectHealthUpdate(data);
200
+ }
175
201
  };
176
202
 
177
203
  // src/loaders/default.ts
@@ -180,7 +206,8 @@ var ProjectSchema = dmlToEntitySchema(project_default);
180
206
  var LabelSchema = dmlToEntitySchema(label_default);
181
207
  var MilestoneSchema = dmlToEntitySchema(milestone_default);
182
208
  var ProjectStatusSchema = dmlToEntitySchema(project_status_default);
183
- var entitySchemas = [ProjectSchema, LabelSchema, MilestoneSchema, ProjectStatusSchema];
209
+ var ProjectHealthUpdateSchema = dmlToEntitySchema(project_health_update_default);
210
+ var entitySchemas = [ProjectSchema, LabelSchema, MilestoneSchema, ProjectStatusSchema, ProjectHealthUpdateSchema];
184
211
  async function defaultLoader({ container }) {
185
212
  const config = container.resolve("config");
186
213
  const { databaseUrl } = config.projectConfig;
@@ -191,6 +218,7 @@ async function defaultLoader({ container }) {
191
218
  labelRepository: createRepository(em, "label"),
192
219
  milestoneRepository: createRepository(em, "milestone"),
193
220
  projectStatusRepository: createRepository(em, "project_status"),
221
+ projectHealthUpdateRepository: createRepository(em, "project_health_update"),
194
222
  projectOrm: orm
195
223
  });
196
224
  }
@@ -199,7 +227,7 @@ async function defaultLoader({ container }) {
199
227
  var PROJECT_MODULE = "projectModuleService";
200
228
  var index_default = Module(PROJECT_MODULE, {
201
229
  service: ProjectModuleService,
202
- models: [project_default, label_default, milestone_default, project_status_default],
230
+ models: [project_default, label_default, milestone_default, project_status_default, project_health_update_default],
203
231
  loaders: [defaultLoader],
204
232
  linkable: {
205
233
  project: { tableName: "project", primaryKey: "id" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridianjs/project",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Meridian project module — Project, Label, Milestone domain models",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -25,8 +25,8 @@
25
25
  "prepublishOnly": "npm run build"
26
26
  },
27
27
  "dependencies": {
28
- "@meridianjs/framework-utils": "^1.11.0",
29
- "@meridianjs/types": "^1.11.0",
28
+ "@meridianjs/framework-utils": "^1.30.0",
29
+ "@meridianjs/types": "^1.30.0",
30
30
  "@mikro-orm/core": "^6.4.3",
31
31
  "@mikro-orm/postgresql": "^6.4.3"
32
32
  },