@managemint-solutions/sdk 0.8.0 → 0.16.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 (74) hide show
  1. package/README.md +73 -1
  2. package/dist/additional-details/index.d.ts +3 -1
  3. package/dist/additional-details/index.js +15 -28
  4. package/dist/additional-details/index.js.map +1 -1
  5. package/dist/audit/dto.d.ts +13 -0
  6. package/dist/audit/dto.js +90 -0
  7. package/dist/audit/dto.js.map +1 -0
  8. package/dist/audit/index.d.ts +104 -0
  9. package/dist/audit/index.js +308 -0
  10. package/dist/audit/index.js.map +1 -0
  11. package/dist/billing/dto.d.ts +33 -0
  12. package/dist/billing/dto.js +71 -0
  13. package/dist/billing/dto.js.map +1 -0
  14. package/dist/billing/index.d.ts +35 -0
  15. package/dist/billing/index.js +115 -0
  16. package/dist/billing/index.js.map +1 -0
  17. package/dist/client.d.ts +12 -0
  18. package/dist/client.js +23 -7
  19. package/dist/client.js.map +1 -1
  20. package/dist/clients/index.d.ts +3 -1
  21. package/dist/clients/index.js +25 -62
  22. package/dist/clients/index.js.map +1 -1
  23. package/dist/index.d.ts +8 -0
  24. package/dist/index.js +8 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/nest/index.d.ts +22 -0
  27. package/dist/nest/index.js +28 -1
  28. package/dist/nest/index.js.map +1 -1
  29. package/dist/notes/index.d.ts +3 -1
  30. package/dist/notes/index.js +16 -27
  31. package/dist/notes/index.js.map +1 -1
  32. package/dist/notifications/dto.d.ts +10 -0
  33. package/dist/notifications/dto.js +63 -0
  34. package/dist/notifications/dto.js.map +1 -0
  35. package/dist/notifications/index.d.ts +139 -0
  36. package/dist/notifications/index.js +354 -0
  37. package/dist/notifications/index.js.map +1 -0
  38. package/dist/organizations/dto.d.ts +62 -0
  39. package/dist/organizations/dto.js +445 -0
  40. package/dist/organizations/dto.js.map +1 -0
  41. package/dist/organizations/index.d.ts +72 -0
  42. package/dist/organizations/index.js +221 -0
  43. package/dist/organizations/index.js.map +1 -0
  44. package/dist/permissions/dto.d.ts +27 -0
  45. package/dist/permissions/dto.js +215 -0
  46. package/dist/permissions/dto.js.map +1 -0
  47. package/dist/permissions/index.d.ts +36 -0
  48. package/dist/permissions/index.js +110 -0
  49. package/dist/permissions/index.js.map +1 -0
  50. package/dist/projects/index.d.ts +3 -1
  51. package/dist/projects/index.js +25 -62
  52. package/dist/projects/index.js.map +1 -1
  53. package/dist/service-client/index.d.ts +72 -0
  54. package/dist/service-client/index.js +119 -0
  55. package/dist/service-client/index.js.map +1 -0
  56. package/dist/statuses/index.d.ts +3 -1
  57. package/dist/statuses/index.js +17 -28
  58. package/dist/statuses/index.js.map +1 -1
  59. package/dist/supporting-files/index.d.ts +3 -1
  60. package/dist/supporting-files/index.js +14 -20
  61. package/dist/supporting-files/index.js.map +1 -1
  62. package/dist/tasks/index.d.ts +3 -1
  63. package/dist/tasks/index.js +21 -50
  64. package/dist/tasks/index.js.map +1 -1
  65. package/dist/users/dto.d.ts +48 -0
  66. package/dist/users/dto.js +267 -0
  67. package/dist/users/dto.js.map +1 -0
  68. package/dist/users/index.d.ts +38 -0
  69. package/dist/users/index.js +144 -0
  70. package/dist/users/index.js.map +1 -0
  71. package/dist/webhook-events/index.d.ts +65 -0
  72. package/dist/webhook-events/index.js +109 -0
  73. package/dist/webhook-events/index.js.map +1 -0
  74. package/package.json +2 -2
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ProjectsResource = void 0;
18
+ const enum_1 = require("@managemint-solutions/entities/audit-trail/enum");
19
+ const audit_1 = require("../audit");
18
20
  const errors_1 = require("../errors");
19
21
  const transforms_1 = require("../transforms");
20
22
  __exportStar(require("./dto"), exports);
@@ -104,9 +106,14 @@ const PROJECT_DETAIL_SELECT = `
104
106
  class ProjectsResource {
105
107
  supabase;
106
108
  auth;
107
- constructor(supabase, auth) {
109
+ table;
110
+ constructor(supabase, auth, audit) {
108
111
  this.supabase = supabase;
109
112
  this.auth = auth;
113
+ this.table = (0, audit_1.auditedTable)(supabase, auth, audit, {
114
+ table: 'projects',
115
+ entityType: enum_1.AuditTrailEntityType.PROJECTS,
116
+ });
110
117
  }
111
118
  async list(query) {
112
119
  const page = query.page;
@@ -198,101 +205,57 @@ class ProjectsResource {
198
205
  return data;
199
206
  }
200
207
  async create(input) {
201
- const { data, error } = await this.supabase
202
- .from('projects')
203
- .insert({
208
+ const row = await this.table.insert({
204
209
  ...input,
205
210
  start_date: (0, transforms_1.toDateInput)(input.start_date),
206
211
  end_date: (0, transforms_1.toDateInput)(input.end_date),
207
212
  organization_id: this.auth.organization_id,
208
213
  created_by: this.auth.mms_id,
209
214
  created_at: new Date().toISOString(),
210
- })
211
- .select('mms_id')
212
- .single();
213
- if (error)
214
- throw (0, errors_1.mapPostgrestError)(error);
215
- return this.getById(data.mms_id);
215
+ });
216
+ return this.getById(row.mms_id);
216
217
  }
217
218
  async update(projectId, input) {
218
- const { data, error } = await this.supabase
219
- .from('projects')
220
- .update({
219
+ await this.table.update(projectId, {
221
220
  ...input,
222
221
  start_date: (0, transforms_1.toDateInput)(input.start_date),
223
222
  end_date: (0, transforms_1.toDateInput)(input.end_date),
224
223
  last_updated_by: this.auth.mms_id,
225
224
  updated_at: new Date().toISOString(),
226
- })
227
- .eq('organization_id', this.auth.organization_id)
228
- .eq('mms_id', projectId)
229
- .select('mms_id')
230
- .single();
231
- if (error)
232
- throw (0, errors_1.mapPostgrestError)(error);
233
- return this.getById(data.mms_id);
225
+ });
226
+ return this.getById(projectId);
234
227
  }
235
228
  async archive(projectId) {
236
- const { data, error } = await this.supabase
237
- .from('projects')
238
- .update({
229
+ await this.table.transition(projectId, enum_1.AuditTrailAction.ARCHIVE, {
239
230
  archived: true,
240
231
  archived_at: new Date().toISOString(),
241
232
  archived_by: this.auth.mms_id,
242
- })
243
- .eq('organization_id', this.auth.organization_id)
244
- .eq('mms_id', projectId)
245
- .select('mms_id')
246
- .single();
247
- if (error)
248
- throw (0, errors_1.mapPostgrestError)(error);
249
- return this.getById(data.mms_id);
233
+ });
234
+ return this.getById(projectId);
250
235
  }
251
236
  async unarchive(projectId) {
252
- const { data, error } = await this.supabase
253
- .from('projects')
254
- .update({
237
+ await this.table.transition(projectId, enum_1.AuditTrailAction.UNARCHIVE, {
255
238
  archived: false,
256
239
  unarchived_at: new Date().toISOString(),
257
240
  unarchived_by: this.auth.mms_id,
258
- })
259
- .eq('organization_id', this.auth.organization_id)
260
- .eq('mms_id', projectId)
261
- .select('mms_id')
262
- .single();
263
- if (error)
264
- throw (0, errors_1.mapPostgrestError)(error);
265
- return this.getById(data.mms_id);
241
+ });
242
+ return this.getById(projectId);
266
243
  }
267
244
  async restore(projectId) {
268
- const { data, error } = await this.supabase
269
- .from('projects')
270
- .update({
245
+ await this.table.transition(projectId, enum_1.AuditTrailAction.RESTORE, {
271
246
  deleted: false,
272
247
  restored_at: new Date().toISOString(),
273
248
  restored_by: this.auth.mms_id,
274
- })
275
- .eq('organization_id', this.auth.organization_id)
276
- .eq('mms_id', projectId)
277
- .select('mms_id')
278
- .single();
279
- if (error)
280
- throw (0, errors_1.mapPostgrestError)(error);
281
- return this.getById(data.mms_id);
249
+ });
250
+ return this.getById(projectId);
282
251
  }
283
252
  /** Soft delete — the row stays, flagged `deleted`, and `restore()` brings it back. */
284
253
  async remove(projectId) {
285
- const { error } = await this.supabase
286
- .from('projects')
287
- .update({
254
+ await this.table.transition(projectId, enum_1.AuditTrailAction.DELETE, {
288
255
  deleted: true,
289
256
  deleted_at: new Date().toISOString(),
290
257
  deleted_by: this.auth.mms_id,
291
- })
292
- .eq('organization_id', this.auth.organization_id)
293
- .eq('mms_id', projectId);
294
- if (error)
295
- throw (0, errors_1.mapPostgrestError)(error);
258
+ });
296
259
  }
297
260
  }
298
261
  exports.ProjectsResource = ProjectsResource;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/projects/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/projects/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { AuditResource, type AuditActor, type AuditedTable, type AuditedTableOptions, type AuditErrorHandler } from '../audit';
2
+ import type { TypedSupabaseClient } from '../client';
3
+ import { BillingResource } from '../billing';
4
+ import { NotificationsOutboxResource } from '../notifications';
5
+ import { OrganizationsResource, OrganizationSignupResource } from '../organizations';
6
+ import { PermissionsResource } from '../permissions';
7
+ import { UsersResource } from '../users';
8
+ import { WebhookEventsResource } from '../webhook-events';
9
+ export type SupabaseServiceClientConfig = {
10
+ url: string;
11
+ /** Service-role key — every query bypasses RLS. */
12
+ serviceRoleKey: string;
13
+ /** Where a failed audit insert is reported. Defaults to `console.error`. */
14
+ onAuditError?: AuditErrorHandler;
15
+ };
16
+ /**
17
+ * The organization-scoped half of the service client. Everything here is attributed to one
18
+ * `AuditActor`, so writes land in `audit_logs` the same way a caller's own would — with
19
+ * `mms_id: null` when the actor is the system (a webhook, a queue worker, provisioning).
20
+ */
21
+ export declare class SupabaseOrganizationScope {
22
+ private readonly supabase;
23
+ readonly actor: AuditActor;
24
+ readonly audit: AuditResource;
25
+ readonly billing: BillingResource;
26
+ readonly organizations: OrganizationsResource;
27
+ readonly permissions: PermissionsResource;
28
+ readonly users: UsersResource;
29
+ constructor(supabase: TypedSupabaseClient, actor: AuditActor, onAuditError?: AuditErrorHandler);
30
+ /**
31
+ * An audited table bound to this organization and actor — the shape the api hand-rolls today
32
+ * as a local `auditedTables(client, organizationId)` factory in billing, provisioning,
33
+ * subscriptions and both webhook handler services.
34
+ */
35
+ table(options: AuditedTableOptions): AuditedTable;
36
+ }
37
+ /**
38
+ * The client for work that has no caller and no RLS context to run under: inbound webhooks
39
+ * (Paystack, Resend, the Supabase `send_email` hook), the notification queue worker, unauthenticated
40
+ * signup, and the writes RLS reserves for the service role outright — the ledger, the outbox, the
41
+ * webhook event logs, `organizations` INSERT, `permissions` INSERT/DELETE.
42
+ *
43
+ * It decodes no JWT, because there is none. Cross-org lookups (find the organization behind a
44
+ * Paystack customer code) hang off the client itself; anything attributable goes through
45
+ * `forOrganization`, which supplies the audit actor the resources need.
46
+ */
47
+ export declare class SupabaseServiceClient {
48
+ private readonly config;
49
+ readonly supabase: TypedSupabaseClient;
50
+ readonly notifications: NotificationsOutboxResource;
51
+ readonly signup: OrganizationSignupResource;
52
+ readonly paystackEvents: WebhookEventsResource;
53
+ readonly resendEvents: WebhookEventsResource;
54
+ constructor(config: SupabaseServiceClientConfig);
55
+ /**
56
+ * Scope to one organization once it is known. `actorMmsId` stays `null` for system work —
57
+ * `audit_logs.created_by` is nullable precisely so an unattributed write is still recorded.
58
+ */
59
+ forOrganization(organizationId: string, actorMmsId?: string | null): SupabaseOrganizationScope;
60
+ /**
61
+ * Finds the organization behind an external identifier — a Paystack customer or subscription
62
+ * code. Deliberately unscoped: a webhook knows only the provider's own id, and which tenant
63
+ * it belongs to is exactly what this answers.
64
+ */
65
+ findOrganizationBy(column: string, value: string): Promise<Record<string, unknown> | null>;
66
+ /**
67
+ * A ledger row by id alone. Also unscoped by necessity: a `charge.success` carries the
68
+ * transaction id in its metadata, and the row is what says which tenant it belongs to.
69
+ */
70
+ findTransaction(transactionId: string): Promise<Record<string, unknown> | null>;
71
+ }
72
+ export declare const createSupabaseServiceClient: (config: SupabaseServiceClientConfig) => SupabaseServiceClient;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSupabaseServiceClient = exports.SupabaseServiceClient = exports.SupabaseOrganizationScope = void 0;
4
+ const supabase_js_1 = require("@supabase/supabase-js");
5
+ const audit_1 = require("../audit");
6
+ const enum_1 = require("@managemint-solutions/entities/audit-trail/enum");
7
+ const billing_1 = require("../billing");
8
+ const notifications_1 = require("../notifications");
9
+ const errors_1 = require("../errors");
10
+ const organizations_1 = require("../organizations");
11
+ const permissions_1 = require("../permissions");
12
+ const users_1 = require("../users");
13
+ const webhook_events_1 = require("../webhook-events");
14
+ /**
15
+ * The organization-scoped half of the service client. Everything here is attributed to one
16
+ * `AuditActor`, so writes land in `audit_logs` the same way a caller's own would — with
17
+ * `mms_id: null` when the actor is the system (a webhook, a queue worker, provisioning).
18
+ */
19
+ class SupabaseOrganizationScope {
20
+ supabase;
21
+ actor;
22
+ audit;
23
+ billing;
24
+ organizations;
25
+ permissions;
26
+ users;
27
+ constructor(supabase, actor, onAuditError) {
28
+ this.supabase = supabase;
29
+ this.actor = actor;
30
+ this.audit = new audit_1.AuditResource(supabase, actor, onAuditError);
31
+ this.billing = new billing_1.BillingResource(supabase, actor, this.audit);
32
+ this.organizations = new organizations_1.OrganizationsResource(supabase, actor, this.audit);
33
+ this.permissions = new permissions_1.PermissionsResource(supabase, actor, this.audit);
34
+ this.users = new users_1.UsersResource(supabase, actor, this.audit);
35
+ }
36
+ /**
37
+ * An audited table bound to this organization and actor — the shape the api hand-rolls today
38
+ * as a local `auditedTables(client, organizationId)` factory in billing, provisioning,
39
+ * subscriptions and both webhook handler services.
40
+ */
41
+ table(options) {
42
+ return (0, audit_1.auditedTable)(this.supabase, this.actor, this.audit, options);
43
+ }
44
+ }
45
+ exports.SupabaseOrganizationScope = SupabaseOrganizationScope;
46
+ /**
47
+ * The client for work that has no caller and no RLS context to run under: inbound webhooks
48
+ * (Paystack, Resend, the Supabase `send_email` hook), the notification queue worker, unauthenticated
49
+ * signup, and the writes RLS reserves for the service role outright — the ledger, the outbox, the
50
+ * webhook event logs, `organizations` INSERT, `permissions` INSERT/DELETE.
51
+ *
52
+ * It decodes no JWT, because there is none. Cross-org lookups (find the organization behind a
53
+ * Paystack customer code) hang off the client itself; anything attributable goes through
54
+ * `forOrganization`, which supplies the audit actor the resources need.
55
+ */
56
+ class SupabaseServiceClient {
57
+ config;
58
+ supabase; // escape hatch for not-yet-migrated queries
59
+ notifications;
60
+ signup;
61
+ paystackEvents;
62
+ resendEvents;
63
+ constructor(config) {
64
+ this.config = config;
65
+ this.supabase = (0, supabase_js_1.createClient)(config.url, config.serviceRoleKey, {
66
+ auth: { persistSession: false, autoRefreshToken: false, detectSessionInUrl: false },
67
+ });
68
+ this.paystackEvents = new webhook_events_1.WebhookEventsResource(this.supabase, 'paystack_webhook_events');
69
+ this.resendEvents = new webhook_events_1.WebhookEventsResource(this.supabase, 'resend_webhook_events');
70
+ this.signup = new organizations_1.OrganizationSignupResource(this.supabase, (organizationId) => this.forOrganization(organizationId).audit);
71
+ // The outbox spans organizations — the row it is about carries its own — so it takes a
72
+ // factory and scopes per write rather than being built inside one organization's scope.
73
+ this.notifications = new notifications_1.NotificationsOutboxResource(this.supabase, (organizationId) => this.forOrganization(organizationId).table({
74
+ table: 'notifications',
75
+ entityType: enum_1.AuditTrailEntityType.NOTIFICATION,
76
+ }));
77
+ }
78
+ /**
79
+ * Scope to one organization once it is known. `actorMmsId` stays `null` for system work —
80
+ * `audit_logs.created_by` is nullable precisely so an unattributed write is still recorded.
81
+ */
82
+ forOrganization(organizationId, actorMmsId = null) {
83
+ return new SupabaseOrganizationScope(this.supabase, { mms_id: actorMmsId, organization_id: organizationId }, this.config.onAuditError);
84
+ }
85
+ /**
86
+ * Finds the organization behind an external identifier — a Paystack customer or subscription
87
+ * code. Deliberately unscoped: a webhook knows only the provider's own id, and which tenant
88
+ * it belongs to is exactly what this answers.
89
+ */
90
+ async findOrganizationBy(column, value) {
91
+ const { data, error } = await this.supabase
92
+ .from('organizations')
93
+ .select('*')
94
+ .eq(column, value)
95
+ .limit(1)
96
+ .maybeSingle();
97
+ if (error)
98
+ throw (0, errors_1.mapPostgrestError)(error);
99
+ return (data ?? null);
100
+ }
101
+ /**
102
+ * A ledger row by id alone. Also unscoped by necessity: a `charge.success` carries the
103
+ * transaction id in its metadata, and the row is what says which tenant it belongs to.
104
+ */
105
+ async findTransaction(transactionId) {
106
+ const { data, error } = await this.supabase
107
+ .from('billing_transactions')
108
+ .select('*')
109
+ .eq('mms_id', transactionId)
110
+ .maybeSingle();
111
+ if (error)
112
+ throw (0, errors_1.mapPostgrestError)(error);
113
+ return (data ?? null);
114
+ }
115
+ }
116
+ exports.SupabaseServiceClient = SupabaseServiceClient;
117
+ const createSupabaseServiceClient = (config) => new SupabaseServiceClient(config);
118
+ exports.createSupabaseServiceClient = createSupabaseServiceClient;
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service-client/index.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,14 @@ import type { StatusEntity } from '@managemint-solutions/entities/status';
2
2
  import type { AddStatusDto, UpdateStatusDto } from '@managemint-solutions/entities/status/dto';
3
3
  import { StatusEntityTypes } from '@managemint-solutions/entities/status/enum';
4
4
  import type { AuthContext } from '../auth';
5
+ import { type AuditResource } from '../audit';
5
6
  import type { TypedSupabaseClient } from '../client';
6
7
  export * from './dto';
7
8
  export declare class StatusesResource {
8
9
  private readonly supabase;
9
10
  private readonly auth;
10
- constructor(supabase: TypedSupabaseClient, auth: AuthContext);
11
+ private readonly table;
12
+ constructor(supabase: TypedSupabaseClient, auth: AuthContext, audit: AuditResource);
11
13
  list(entity: StatusEntityTypes): Promise<StatusEntity[]>;
12
14
  create(input: AddStatusDto): Promise<StatusEntity>;
13
15
  update(statusId: string, input: UpdateStatusDto): Promise<StatusEntity>;
@@ -15,18 +15,27 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.StatusesResource = void 0;
18
+ const enum_1 = require("@managemint-solutions/entities/audit-trail/enum");
19
+ const audit_1 = require("../audit");
18
20
  const errors_1 = require("../errors");
19
21
  __exportStar(require("./dto"), exports);
20
22
  // The public contract is the shared StatusEntity from @managemint-solutions/entities; the
21
23
  // `as StatusEntity` casts declare the shape the select string below produces (the columns are
22
24
  // defined in the api's supabase/migrations).
23
25
  const STATUS_SELECT = 'mms_id, label, colour';
26
+ // The audited write returns the whole row; the wire shape is the STATUS_SELECT columns.
27
+ const toStatus = (row) => ({ mms_id: row.mms_id, label: row.label, colour: row.colour });
24
28
  class StatusesResource {
25
29
  supabase;
26
30
  auth;
27
- constructor(supabase, auth) {
31
+ table;
32
+ constructor(supabase, auth, audit) {
28
33
  this.supabase = supabase;
29
34
  this.auth = auth;
35
+ this.table = (0, audit_1.auditedTable)(supabase, auth, audit, {
36
+ table: 'statuses',
37
+ entityType: enum_1.AuditTrailEntityType.STATUS,
38
+ });
30
39
  }
31
40
  async list(entity) {
32
41
  const { data, error } = await this.supabase
@@ -39,46 +48,26 @@ class StatusesResource {
39
48
  return data;
40
49
  }
41
50
  async create(input) {
42
- const { data, error } = await this.supabase
43
- .from('statuses')
44
- .insert({
51
+ const row = await this.table.insert({
45
52
  label: input.label,
46
53
  colour: input.colour,
47
54
  entity_type: input.entity,
48
55
  organization_id: this.auth.organization_id,
49
56
  created_by: this.auth.mms_id,
50
- })
51
- .select(STATUS_SELECT)
52
- .single();
53
- if (error)
54
- throw (0, errors_1.mapPostgrestError)(error);
55
- return data;
57
+ });
58
+ return toStatus(row);
56
59
  }
57
60
  async update(statusId, input) {
58
- const { data, error } = await this.supabase
59
- .from('statuses')
60
- .update({
61
+ const row = await this.table.update(statusId, {
61
62
  label: input.label,
62
63
  colour: input.colour,
63
64
  updated_at: new Date().toISOString(),
64
65
  last_updated_by: this.auth.mms_id,
65
- })
66
- .eq('mms_id', statusId)
67
- .eq('organization_id', this.auth.organization_id)
68
- .select(STATUS_SELECT)
69
- .single();
70
- if (error)
71
- throw (0, errors_1.mapPostgrestError)(error);
72
- return data;
66
+ });
67
+ return toStatus(row);
73
68
  }
74
69
  async remove(statusId) {
75
- const { error } = await this.supabase
76
- .from('statuses')
77
- .delete()
78
- .eq('mms_id', statusId)
79
- .eq('organization_id', this.auth.organization_id);
80
- if (error)
81
- throw (0, errors_1.mapPostgrestError)(error);
70
+ await this.table.remove(statusId);
82
71
  }
83
72
  }
84
73
  exports.StatusesResource = StatusesResource;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/statuses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA,sCAA8C;AAE9C,wCAAsB;AAEtB,0FAA0F;AAC1F,8FAA8F;AAC9F,6CAA6C;AAC7C,MAAM,aAAa,GAAG,uBAAgC,CAAC;AAEvD,MAAa,gBAAgB;IAER;IACA;IAFnB,YACmB,QAA6B,EAC7B,IAAiB;QADjB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,SAAI,GAAJ,IAAI,CAAa;IACjC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,aAAa,CAAC;aACrB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAmB;QAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAC;aACD,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAsB;QACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAClC,CAAC;aACD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aAClC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,EAAE;aACR,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AAzDD,4CAyDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/statuses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,0EAAuF;AAEvF,oCAA8F;AAE9F,sCAA8C;AAE9C,wCAAsB;AAEtB,0FAA0F;AAC1F,8FAA8F;AAC9F,6CAA6C;AAC7C,MAAM,aAAa,GAAG,uBAAgC,CAAC;AAEvD,wFAAwF;AACxF,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAgB,EAAE,CAC/C,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAA4B,CAAC;AAE5F,MAAa,gBAAgB;IAIR;IACA;IAJF,KAAK,CAAe;IAErC,YACmB,QAA6B,EAC7B,IAAiB,EAClC,KAAoB;QAFH,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,SAAI,GAAJ,IAAI,CAAa;QAGlC,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;YAC/C,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,2BAAoB,CAAC,MAAM;SACxC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,aAAa,CAAC;aACrB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAmB;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAsB;QACnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAClC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CACF;AAhDD,4CAgDC"}
@@ -2,13 +2,15 @@ import type { SupportingFileEntity, SupportingFilePresignedUrl } from '@managemi
2
2
  import type { UploadSupportingFilesDto } from '@managemint-solutions/entities/supporting-files/dto';
3
3
  import { SupportingFilesEntityTypes } from '@managemint-solutions/entities/supporting-files/enum';
4
4
  import type { AuthContext } from '../auth';
5
+ import { type AuditResource } from '../audit';
5
6
  import type { TypedSupabaseClient } from '../client';
6
7
  export * from './dto';
7
8
  export * from './paths';
8
9
  export declare class SupportingFilesResource {
9
10
  private readonly supabase;
10
11
  private readonly auth;
11
- constructor(supabase: TypedSupabaseClient, auth: AuthContext);
12
+ private readonly table;
13
+ constructor(supabase: TypedSupabaseClient, auth: AuthContext, audit: AuditResource);
12
14
  getPresignedUrl(supportingFileId: string): Promise<SupportingFilePresignedUrl>;
13
15
  list(entity: SupportingFilesEntityTypes, entityId: string): Promise<SupportingFileEntity[]>;
14
16
  upload(entity: SupportingFilesEntityTypes, entityId: string, input: UploadSupportingFilesDto): Promise<SupportingFileEntity[]>;
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.SupportingFilesResource = void 0;
18
+ const enum_1 = require("@managemint-solutions/entities/audit-trail/enum");
19
+ const audit_1 = require("../audit");
18
20
  const errors_1 = require("../errors");
19
21
  const paths_1 = require("./paths");
20
22
  __exportStar(require("./dto"), exports);
@@ -31,9 +33,14 @@ const UPLOAD_BATCH_SIZE = 5;
31
33
  class SupportingFilesResource {
32
34
  supabase;
33
35
  auth;
34
- constructor(supabase, auth) {
36
+ table;
37
+ constructor(supabase, auth, audit) {
35
38
  this.supabase = supabase;
36
39
  this.auth = auth;
40
+ this.table = (0, audit_1.auditedTable)(supabase, auth, audit, {
41
+ table: 'supporting_files',
42
+ entityType: enum_1.AuditTrailEntityType.SUPPORTING_FILES,
43
+ });
37
44
  }
38
45
  async getPresignedUrl(supportingFileId) {
39
46
  const { data, error } = await this.supabase
@@ -89,7 +96,7 @@ class SupportingFilesResource {
89
96
  // Only files without an existing row get one — the rest were refreshed in place above.
90
97
  const newFiles = input.files.filter((file) => !existingFileNames.includes(file.name));
91
98
  if (newFiles.length > 0) {
92
- const { error } = await this.supabase.from('supporting_files').insert(newFiles.map((file) => ({
99
+ await this.table.insertMany(newFiles.map((file) => ({
93
100
  ...(0, paths_1.splitFileName)(file.name),
94
101
  entity_type: entity,
95
102
  entity_id: entityId,
@@ -97,30 +104,17 @@ class SupportingFilesResource {
97
104
  created_at: new Date().toISOString(),
98
105
  created_by: this.auth.mms_id,
99
106
  })));
100
- if (error)
101
- throw (0, errors_1.mapPostgrestError)(error);
102
107
  }
103
108
  return this.list(entity, entityId);
104
109
  }
105
110
  async remove(supportingFileId) {
106
- const { data, error } = await this.supabase
107
- .from('supporting_files')
108
- .select('entity_type, entity_id, name, extension')
109
- .eq('mms_id', supportingFileId)
110
- .eq('organization_id', this.auth.organization_id)
111
- .single();
112
- if (error)
113
- throw (0, errors_1.mapPostgrestError)(error);
114
- const { error: deleteError } = await this.supabase
115
- .from('supporting_files')
116
- .delete()
117
- .eq('mms_id', supportingFileId)
118
- .eq('organization_id', this.auth.organization_id);
119
- if (deleteError)
120
- throw (0, errors_1.mapPostgrestError)(deleteError);
111
+ // The row goes first the helper's pre-read hands back what the object path is built from.
112
+ const data = await this.table.remove(supportingFileId);
121
113
  const { error: storageError } = await this.supabase.storage
122
114
  .from(BUCKET)
123
- .remove([(0, paths_1.storagePath)(data.entity_type, data.entity_id, data.name, data.extension)]);
115
+ .remove([
116
+ (0, paths_1.storagePath)(data.entity_type, data.entity_id, data.name, data.extension),
117
+ ]);
124
118
  if (storageError) {
125
119
  throw (0, errors_1.mapStorageError)(storageError, `Failed to delete file: ${data.name}.${data.extension}`);
126
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/supporting-files/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/supporting-files/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,0EAAuF;AAEvF,oCAA+E;AAE/E,sCAA+D;AAC/D,mCAAqD;AAErD,wCAAsB;AACtB,0CAAwB;AAExB,qDAAqD;AACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,qDAAqD;AACrD,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,wDAAwD;AACxD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,kGAAkG;AAClG,2FAA2F;AAC3F,6CAA6C;AAC7C,MAAa,uBAAuB;IAIf;IACA;IAJF,KAAK,CAAe;IAErC,YACmB,QAA6B,EAC7B,IAAiB,EAClC,KAAoB;QAFH,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,SAAI,GAAJ,IAAI,CAAa;QAGlC,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;YAC/C,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,2BAAoB,CAAC,gBAAgB;SAClD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,gBAAwB;QAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,kBAAkB,CAAC;aACxB,MAAM,CAAC,yCAAyC,CAAC;aACjD,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;aAC9B,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO;aACrE,IAAI,CAAC,MAAM,CAAC;aACZ,eAAe,CACd,IAAA,mBAAW,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EACxE,sBAAsB,CACvB,CAAC;QACJ,IAAI,WAAW;YAAE,MAAM,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAC;QAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAAkC,EAClC,QAAgB;QAEhB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,kBAAkB,CAAC;aACxB,MAAM,CAAC,yBAAyB,CAAC;aACjC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;aACzB,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;aACzB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAA8B,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAkC,EAClC,QAAgB,EAChB,KAA+B;QAE/B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACjE,IAAI,CAAC,kBAAkB,CAAC;aACxB,MAAM,CAAC,iBAAiB,CAAC;aACzB,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;aACzB,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;aACzB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,aAAa;YAAE,MAAM,IAAA,0BAAiB,EAAC,aAAa,CAAC,CAAC;QAE1D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAEnF,6FAA6F;QAC7F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,iBAAiB,EAAE,CAAC;YAC3E,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACrE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO;qBAC1C,IAAI,CAAC,MAAM,CAAC;qBACZ,MAAM,CAAC,GAAG,MAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;oBAClD,YAAY,EAAE,MAAM;oBACpB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBACL,IAAI,KAAK;oBAAE,MAAM,IAAA,wBAAe,EAAC,KAAK,EAAE,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACjF,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,uFAAuF;QACvF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtB,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,CAAC;gBAC3B,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,QAAQ;gBACnB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC1C,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aAC7B,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,gBAAwB;QACnC,4FAA4F;QAC5F,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEvD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO;aACxD,IAAI,CAAC,MAAM,CAAC;aACZ,MAAM,CAAC;YACN,IAAA,mBAAW,EACT,IAAI,CAAC,WAAqB,EAC1B,IAAI,CAAC,SAAmB,EACxB,IAAI,CAAC,IAAc,EACnB,IAAI,CAAC,SAAmB,CACzB;SACF,CAAC,CAAC;QACL,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAA,wBAAe,EAAC,YAAY,EAAE,0BAA0B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;CACF;AApHD,0DAoHC"}
@@ -1,13 +1,15 @@
1
1
  import type { MmsList } from '@managemint-solutions/entities/common';
2
2
  import type { TaskEntity, TaskSummary } from '@managemint-solutions/entities/tasks';
3
3
  import type { AuthContext } from '../auth';
4
+ import { type AuditResource } from '../audit';
4
5
  import type { TypedSupabaseClient } from '../client';
5
6
  import type { CreateTaskDto, GetTasksDto, UpdateTaskDto } from './dto';
6
7
  export * from './dto';
7
8
  export declare class TasksResource {
8
9
  private readonly supabase;
9
10
  private readonly auth;
10
- constructor(supabase: TypedSupabaseClient, auth: AuthContext);
11
+ private readonly table;
12
+ constructor(supabase: TypedSupabaseClient, auth: AuthContext, audit: AuditResource);
11
13
  list(query: GetTasksDto): Promise<MmsList<TaskSummary>>;
12
14
  getById(taskId: string): Promise<TaskEntity>;
13
15
  create(input: CreateTaskDto): Promise<TaskEntity>;