@managemint-solutions/sdk 0.7.0 → 0.9.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 (44) hide show
  1. package/README.md +94 -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 +89 -0
  9. package/dist/audit/index.js +285 -0
  10. package/dist/audit/index.js.map +1 -0
  11. package/dist/auth-client/index.d.ts +4 -1
  12. package/dist/auth-client/index.js +5 -1
  13. package/dist/auth-client/index.js.map +1 -1
  14. package/dist/client.d.ts +4 -0
  15. package/dist/client.js +11 -7
  16. package/dist/client.js.map +1 -1
  17. package/dist/clients/index.d.ts +3 -1
  18. package/dist/clients/index.js +25 -62
  19. package/dist/clients/index.js.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.js +2 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/nest/index.d.ts +11 -0
  24. package/dist/nest/index.js +12 -1
  25. package/dist/nest/index.js.map +1 -1
  26. package/dist/notes/index.d.ts +3 -1
  27. package/dist/notes/index.js +16 -27
  28. package/dist/notes/index.js.map +1 -1
  29. package/dist/pricebooks/index.d.ts +19 -0
  30. package/dist/pricebooks/index.js +88 -0
  31. package/dist/pricebooks/index.js.map +1 -0
  32. package/dist/projects/index.d.ts +3 -1
  33. package/dist/projects/index.js +25 -62
  34. package/dist/projects/index.js.map +1 -1
  35. package/dist/statuses/index.d.ts +3 -1
  36. package/dist/statuses/index.js +17 -28
  37. package/dist/statuses/index.js.map +1 -1
  38. package/dist/supporting-files/index.d.ts +3 -1
  39. package/dist/supporting-files/index.js +14 -20
  40. package/dist/supporting-files/index.js.map +1 -1
  41. package/dist/tasks/index.d.ts +3 -1
  42. package/dist/tasks/index.js +21 -50
  43. package/dist/tasks/index.js.map +1 -1
  44. package/package.json +1 -1
@@ -0,0 +1,285 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.auditedTable = exports.AuditResource = exports.snapshotChanges = exports.diffChanges = exports.AUDIT_EXCLUDED_COLUMNS = void 0;
18
+ const enum_1 = require("@managemint-solutions/entities/audit-trail/enum");
19
+ const errors_1 = require("../errors");
20
+ __exportStar(require("./dto"), exports);
21
+ /**
22
+ * Bookkeeping columns a diff never reports: identity, tenancy and the who/when stamps of the
23
+ * transition itself (the action already says what happened), plus the `entity_type`/`entity_id`
24
+ * pair, which becomes `related_entity_*` on the audit row instead.
25
+ */
26
+ exports.AUDIT_EXCLUDED_COLUMNS = new Set([
27
+ 'id',
28
+ 'mms_id',
29
+ 'organization_id',
30
+ 'created_at',
31
+ 'created_by',
32
+ 'user_id',
33
+ 'updated_at',
34
+ 'last_updated_by',
35
+ 'archived_at',
36
+ 'archived_by',
37
+ 'unarchived_at',
38
+ 'unarchived_by',
39
+ 'deleted_at',
40
+ 'deleted_by',
41
+ 'restored_at',
42
+ 'restored_by',
43
+ 'entity_type',
44
+ 'entity_id',
45
+ ]);
46
+ /** `undefined` and `null` are the same absent value as far as a row diff is concerned. */
47
+ const normalize = (value) => value ?? null;
48
+ /**
49
+ * The fields that differ between two flat rows, as `{ field: { old, new } }`. Values stay real
50
+ * JSON (booleans stay booleans, jsonb stays an object) and are compared by serialized value, so
51
+ * arrays and objects are equal when their contents are.
52
+ */
53
+ const diffChanges = (before, after) => {
54
+ const changes = {};
55
+ for (const key of new Set([...Object.keys(before), ...Object.keys(after)])) {
56
+ if (exports.AUDIT_EXCLUDED_COLUMNS.has(key))
57
+ continue;
58
+ const oldValue = normalize(before[key]);
59
+ const newValue = normalize(after[key]);
60
+ if (JSON.stringify(oldValue) === JSON.stringify(newValue))
61
+ continue;
62
+ changes[key] = { old: oldValue, new: newValue };
63
+ }
64
+ return changes;
65
+ };
66
+ exports.diffChanges = diffChanges;
67
+ /**
68
+ * A whole row as a change set — `'new'` for an insert, `'old'` for a hard delete — so the trail
69
+ * stays self-contained once the row is gone. Columns that hold nothing are left out.
70
+ */
71
+ const snapshotChanges = (row, side) => {
72
+ const changes = {};
73
+ for (const [key, value] of Object.entries(row)) {
74
+ if (exports.AUDIT_EXCLUDED_COLUMNS.has(key) || value === null || value === undefined)
75
+ continue;
76
+ changes[key] = side === 'new' ? { old: null, new: value } : { old: value, new: null };
77
+ }
78
+ return changes;
79
+ };
80
+ exports.snapshotChanges = snapshotChanges;
81
+ const AUDIT_TRAIL_SELECT = `
82
+ mms_id,
83
+ created_at,
84
+ action,
85
+ entity_type,
86
+ entity_id,
87
+ created_by:user_profiles!created_by (*),
88
+ related_entity_type,
89
+ related_entity_id,
90
+ changes
91
+ `;
92
+ /**
93
+ * The `audit_logs` table. Reads are the audit trail endpoint; writes go through `record`, which
94
+ * every audited write calls for itself — no feature ever writes an audit line by hand.
95
+ */
96
+ class AuditResource {
97
+ supabase;
98
+ actor;
99
+ onError;
100
+ constructor(supabase, actor, onError) {
101
+ this.supabase = supabase;
102
+ this.actor = actor;
103
+ this.onError = onError;
104
+ }
105
+ /**
106
+ * Writes the audit row(s) — one insert, however many entries. **Never throws**: a logging
107
+ * problem must not fail the business write, so a failure goes to `onAuditError`
108
+ * (default `console.error`) instead.
109
+ */
110
+ async record(entry) {
111
+ const entries = Array.isArray(entry) ? entry : [entry];
112
+ if (entries.length === 0)
113
+ return;
114
+ try {
115
+ const { error } = await this.supabase.from('audit_logs').insert(entries.map((item) => ({
116
+ created_by: this.actor.mms_id,
117
+ organization_id: this.actor.organization_id,
118
+ action: item.action,
119
+ entity_type: item.entityType,
120
+ entity_id: item.entityId,
121
+ related_entity_type: item.relatedEntityType ?? null,
122
+ related_entity_id: item.relatedEntityId ?? null,
123
+ changes: item.changes,
124
+ })));
125
+ if (error)
126
+ throw (0, errors_1.mapPostgrestError)(error);
127
+ }
128
+ catch (error) {
129
+ const handle = this.onError ?? ((thrown, failed) => console.error(thrown, failed));
130
+ handle(error, entries);
131
+ }
132
+ }
133
+ async list(query) {
134
+ const page = query.page;
135
+ const pageSize = query.page_size;
136
+ const offset = (page - 1) * pageSize;
137
+ // `order`/`range` return `this`, so the builder stays a filter builder and the conditional
138
+ // filters below can be reassigned onto it without a cast.
139
+ let auditTrailQuery = this.supabase
140
+ .from('audit_logs')
141
+ .select(AUDIT_TRAIL_SELECT, { count: 'estimated' })
142
+ .eq('organization_id', this.actor.organization_id)
143
+ .order('created_at', { ascending: false })
144
+ .range(offset, offset + pageSize - 1);
145
+ if (query.created_after) {
146
+ auditTrailQuery = auditTrailQuery.gte('created_at', query.created_after);
147
+ }
148
+ if (query.created_before) {
149
+ auditTrailQuery = auditTrailQuery.lte('created_at', query.created_before);
150
+ }
151
+ if (query.created_by) {
152
+ auditTrailQuery = auditTrailQuery.eq('created_by', query.created_by);
153
+ }
154
+ if (query.action) {
155
+ auditTrailQuery = auditTrailQuery.eq('action', query.action);
156
+ }
157
+ if (query.entity_type) {
158
+ auditTrailQuery = auditTrailQuery.eq('entity_type', query.entity_type);
159
+ }
160
+ if (query.entity_id) {
161
+ auditTrailQuery = auditTrailQuery.eq('entity_id', query.entity_id);
162
+ }
163
+ const { data, error, count } = await auditTrailQuery;
164
+ if (error)
165
+ throw (0, errors_1.mapPostgrestError)(error);
166
+ const totalEstimated = count ?? 0;
167
+ const totalPages = totalEstimated > 0 ? Math.ceil(totalEstimated / pageSize) : 0;
168
+ return {
169
+ results: (data ?? []),
170
+ page,
171
+ per_page: pageSize,
172
+ count: totalEstimated,
173
+ total_pages: totalPages,
174
+ has_next_page: page < totalPages,
175
+ has_previous_page: page > 1,
176
+ };
177
+ }
178
+ }
179
+ exports.AuditResource = AuditResource;
180
+ /**
181
+ * The audited write helper every resource writes through: it does the pre-read, the write, the
182
+ * diff and the `audit_logs` insert itself, so no feature carries audit code. The write fails
183
+ * loudly (`SupabaseClientError`); only the audit insert is swallowed.
184
+ */
185
+ const auditedTable = (supabase, actor, audit, options) => {
186
+ const scoped = options.scopeByOrganization !== false;
187
+ // Tables that hang off another entity (notes, additional details, supporting files) carry the
188
+ // owner in `entity_type`/`entity_id`; the audit row records it as the related entity.
189
+ const relatedOf = (row) => ({
190
+ relatedEntityType: row.entity_type ?? null,
191
+ relatedEntityId: row.entity_id ?? null,
192
+ });
193
+ const read = async (id) => {
194
+ // `eq` returns `this`, so the org filter can be reassigned onto the builder without a cast.
195
+ let query = supabase.from(options.table).select('*').eq('mms_id', id);
196
+ if (scoped)
197
+ query = query.eq('organization_id', actor.organization_id);
198
+ const { data, error } = await query.single();
199
+ if (error)
200
+ throw (0, errors_1.mapPostgrestError)(error);
201
+ return data;
202
+ };
203
+ const write = async (id, action, payload) => {
204
+ const before = await read(id);
205
+ let query = supabase
206
+ .from(options.table)
207
+ .update(typeof payload === 'function' ? payload(before) : payload)
208
+ .eq('mms_id', id);
209
+ if (scoped)
210
+ query = query.eq('organization_id', actor.organization_id);
211
+ const { data, error } = await query.select('*').single();
212
+ if (error)
213
+ throw (0, errors_1.mapPostgrestError)(error);
214
+ const after = data;
215
+ await audit.record({
216
+ action,
217
+ entityType: options.entityType,
218
+ entityId: id,
219
+ changes: (0, exports.diffChanges)(before, after),
220
+ ...relatedOf(before),
221
+ });
222
+ return after;
223
+ };
224
+ return {
225
+ async insert(payload) {
226
+ const { data, error } = await supabase
227
+ .from(options.table)
228
+ .insert(payload)
229
+ .select('*')
230
+ .single();
231
+ if (error)
232
+ throw (0, errors_1.mapPostgrestError)(error);
233
+ const row = data;
234
+ await audit.record({
235
+ action: enum_1.AuditTrailAction.INSERT,
236
+ entityType: options.entityType,
237
+ entityId: row.mms_id,
238
+ changes: (0, exports.snapshotChanges)(row, 'new'),
239
+ ...relatedOf(row),
240
+ });
241
+ return row;
242
+ },
243
+ async insertMany(payloads) {
244
+ if (payloads.length === 0)
245
+ return [];
246
+ const { data, error } = await supabase.from(options.table).insert(payloads).select('*');
247
+ if (error)
248
+ throw (0, errors_1.mapPostgrestError)(error);
249
+ const rows = (data ?? []);
250
+ await audit.record(rows.map((row) => ({
251
+ action: enum_1.AuditTrailAction.INSERT,
252
+ entityType: options.entityType,
253
+ entityId: row.mms_id,
254
+ changes: (0, exports.snapshotChanges)(row, 'new'),
255
+ ...relatedOf(row),
256
+ })));
257
+ return rows;
258
+ },
259
+ update(id, payload) {
260
+ return write(id, enum_1.AuditTrailAction.UPDATE, payload);
261
+ },
262
+ transition(id, action, payload) {
263
+ return write(id, action, payload);
264
+ },
265
+ async remove(id) {
266
+ const before = await read(id);
267
+ let query = supabase.from(options.table).delete().eq('mms_id', id);
268
+ if (scoped)
269
+ query = query.eq('organization_id', actor.organization_id);
270
+ const { error } = await query;
271
+ if (error)
272
+ throw (0, errors_1.mapPostgrestError)(error);
273
+ await audit.record({
274
+ action: enum_1.AuditTrailAction.DELETE,
275
+ entityType: options.entityType,
276
+ entityId: id,
277
+ changes: (0, exports.snapshotChanges)(before, 'old'),
278
+ ...relatedOf(before),
279
+ });
280
+ return before;
281
+ },
282
+ };
283
+ };
284
+ exports.auditedTable = auditedTable;
285
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,22 @@
1
1
  import { type SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
2
2
  import type { ExchangeTokenResponse, LoginResponse } from '@managemint-solutions/entities/auth';
3
3
  import type { ExchangeRefreshTokenDto, ExchangeTokenHashDto, loginDto, ResetPasswordDto, SendPasswordResetEmailDto } from '@managemint-solutions/entities/auth/dto';
4
+ import { PricebooksResource } from '../pricebooks';
4
5
  export * from './dto';
5
6
  export type SupabaseAuthClientConfig = {
6
7
  url: string;
7
8
  key: string;
8
9
  };
9
10
  /**
10
- * The auth flows, for callers that do not have a JWT yet. `SupabaseClient` needs the caller's
11
+ * The client for callers that do not have a JWT yet: the auth flows, and the public catalog
12
+ * (`pricebooks`) an unauthenticated signup prices against. `SupabaseClient` needs the caller's
11
13
  * token to build its RLS context, so sign-in, refresh and the password-reset exchanges live on
12
14
  * this separate client, built from the publishable key alone.
13
15
  */
14
16
  export declare class SupabaseAuthClient {
15
17
  private readonly config;
16
18
  readonly supabase: SupabaseJsClient;
19
+ readonly pricebooks: PricebooksResource;
17
20
  constructor(config: SupabaseAuthClientConfig);
18
21
  signIn(input: loginDto): Promise<LoginResponse>;
19
22
  refreshSession(input: ExchangeRefreshTokenDto): Promise<ExchangeTokenResponse>;
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.createSupabaseAuthClient = exports.SupabaseAuthClient = void 0;
18
18
  const supabase_js_1 = require("@supabase/supabase-js");
19
19
  const errors_1 = require("../errors");
20
+ const pricebooks_1 = require("../pricebooks");
20
21
  __exportStar(require("./dto"), exports);
21
22
  // The api's "no session/user returned" NotFoundException, as an SDK error.
22
23
  const noSession = (message) => new errors_1.SupabaseClientError({ status: 404, error: 'Authentication Error', message });
@@ -25,19 +26,22 @@ const toTokens = (session) => ({
25
26
  refresh_token: session.refresh_token,
26
27
  });
27
28
  /**
28
- * The auth flows, for callers that do not have a JWT yet. `SupabaseClient` needs the caller's
29
+ * The client for callers that do not have a JWT yet: the auth flows, and the public catalog
30
+ * (`pricebooks`) an unauthenticated signup prices against. `SupabaseClient` needs the caller's
29
31
  * token to build its RLS context, so sign-in, refresh and the password-reset exchanges live on
30
32
  * this separate client, built from the publishable key alone.
31
33
  */
32
34
  class SupabaseAuthClient {
33
35
  config;
34
36
  supabase; // escape hatch for flows not covered by a method
37
+ pricebooks;
35
38
  constructor(config) {
36
39
  this.config = config;
37
40
  this.supabase = (0, supabase_js_1.createClient)(config.url, config.key, {
38
41
  // Server-side and stateless: nothing is stored, refreshed or read out of a URL.
39
42
  auth: { persistSession: false, autoRefreshToken: false, detectSessionInUrl: false },
40
43
  });
44
+ this.pricebooks = new pricebooks_1.PricebooksResource(this.supabase);
41
45
  }
42
46
  async signIn(input) {
43
47
  const { data, error } = await this.supabase.auth.signInWithPassword({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth-client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth-client/index.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
2
2
  import { type AuthContext } from './auth';
3
+ import { AuditResource, type AuditErrorHandler } from './audit';
3
4
  import { AdditionalDetailsResource } from './additional-details';
4
5
  import { ClientsResource } from './clients';
5
6
  import { NotesResource } from './notes';
@@ -12,10 +13,13 @@ export type SupabaseClientConfig = {
12
13
  url: string;
13
14
  key: string;
14
15
  accessToken: string;
16
+ /** Where a failed audit insert is reported. Defaults to `console.error`. */
17
+ onAuditError?: AuditErrorHandler;
15
18
  };
16
19
  export declare class SupabaseClient {
17
20
  readonly supabase: TypedSupabaseClient;
18
21
  readonly auth: AuthContext;
22
+ readonly audit: AuditResource;
19
23
  readonly statuses: StatusesResource;
20
24
  readonly additionalDetails: AdditionalDetailsResource;
21
25
  readonly notes: NotesResource;
package/dist/client.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSupabaseClient = exports.SupabaseClient = void 0;
4
4
  const supabase_js_1 = require("@supabase/supabase-js");
5
5
  const auth_1 = require("./auth");
6
+ const audit_1 = require("./audit");
6
7
  const additional_details_1 = require("./additional-details");
7
8
  const clients_1 = require("./clients");
8
9
  const notes_1 = require("./notes");
@@ -13,6 +14,7 @@ const tasks_1 = require("./tasks");
13
14
  class SupabaseClient {
14
15
  supabase; // escape hatch for not-yet-migrated queries
15
16
  auth;
17
+ audit;
16
18
  statuses;
17
19
  additionalDetails;
18
20
  notes;
@@ -26,13 +28,15 @@ class SupabaseClient {
26
28
  global: { headers: { Authorization: `Bearer ${config.accessToken}` } },
27
29
  auth: { persistSession: false, autoRefreshToken: false },
28
30
  });
29
- this.statuses = new statuses_1.StatusesResource(this.supabase, this.auth);
30
- this.additionalDetails = new additional_details_1.AdditionalDetailsResource(this.supabase, this.auth);
31
- this.notes = new notes_1.NotesResource(this.supabase, this.auth);
32
- this.supportingFiles = new supporting_files_1.SupportingFilesResource(this.supabase, this.auth);
33
- this.clients = new clients_1.ClientsResource(this.supabase, this.auth);
34
- this.projects = new projects_1.ProjectsResource(this.supabase, this.auth);
35
- this.tasks = new tasks_1.TasksResource(this.supabase, this.auth);
31
+ // Built before the resources: every write they make goes through it.
32
+ this.audit = new audit_1.AuditResource(this.supabase, this.auth, config.onAuditError);
33
+ this.statuses = new statuses_1.StatusesResource(this.supabase, this.auth, this.audit);
34
+ this.additionalDetails = new additional_details_1.AdditionalDetailsResource(this.supabase, this.auth, this.audit);
35
+ this.notes = new notes_1.NotesResource(this.supabase, this.auth, this.audit);
36
+ this.supportingFiles = new supporting_files_1.SupportingFilesResource(this.supabase, this.auth, this.audit);
37
+ this.clients = new clients_1.ClientsResource(this.supabase, this.auth, this.audit);
38
+ this.projects = new projects_1.ProjectsResource(this.supabase, this.auth, this.audit);
39
+ this.tasks = new tasks_1.TasksResource(this.supabase, this.auth, this.audit);
36
40
  }
37
41
  }
38
42
  exports.SupabaseClient = SupabaseClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,uDAA8F;AAC9F,iCAA6D;AAC7D,6DAAiE;AACjE,uCAA4C;AAC5C,mCAAwC;AACxC,yCAA8C;AAC9C,yCAA8C;AAC9C,yDAA6D;AAC7D,mCAAwC;AAaxC,MAAa,cAAc;IAChB,QAAQ,CAAsB,CAAC,4CAA4C;IAC3E,IAAI,CAAc;IAClB,QAAQ,CAAmB;IAC3B,iBAAiB,CAA4B;IAC7C,KAAK,CAAgB;IACrB,eAAe,CAA0B;IACzC,OAAO,CAAkB;IACzB,QAAQ,CAAmB;IAC3B,KAAK,CAAgB;IAE9B,YAAY,MAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAA,0BAAY,EAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;YACnD,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE;YACtE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;SACzD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,8CAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,0CAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;CACF;AAzBD,wCAyBC;AAEM,MAAM,oBAAoB,GAAG,CAAC,MAA4B,EAAkB,EAAE,CACnF,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AADhB,QAAA,oBAAoB,wBACJ"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,uDAA8F;AAC9F,iCAA6D;AAC7D,mCAAgE;AAChE,6DAAiE;AACjE,uCAA4C;AAC5C,mCAAwC;AACxC,yCAA8C;AAC9C,yCAA8C;AAC9C,yDAA6D;AAC7D,mCAAwC;AAexC,MAAa,cAAc;IAChB,QAAQ,CAAsB,CAAC,4CAA4C;IAC3E,IAAI,CAAc;IAClB,KAAK,CAAgB;IACrB,QAAQ,CAAmB;IAC3B,iBAAiB,CAA4B;IAC7C,KAAK,CAAgB;IACrB,eAAe,CAA0B;IACzC,OAAO,CAAkB;IACzB,QAAQ,CAAmB;IAC3B,KAAK,CAAgB;IAE9B,YAAY,MAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAA,0BAAY,EAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;YACnD,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE;YACtE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;SACzD,CAAC,CAAC;QACH,qEAAqE;QACrE,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,iBAAiB,GAAG,IAAI,8CAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7F,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,0CAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;CACF;AA5BD,wCA4BC;AAEM,MAAM,oBAAoB,GAAG,CAAC,MAA4B,EAAkB,EAAE,CACnF,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AADhB,QAAA,oBAAoB,wBACJ"}
@@ -1,13 +1,15 @@
1
1
  import type { ClientEntity, ClientSummary } from '@managemint-solutions/entities/clients';
2
2
  import type { MmsList } from '@managemint-solutions/entities/common';
3
3
  import type { AuthContext } from '../auth';
4
+ import { type AuditResource } from '../audit';
4
5
  import type { TypedSupabaseClient } from '../client';
5
6
  import type { CreateClientDto, GetClientsDto, UpdateClientDto } from './dto';
6
7
  export * from './dto';
7
8
  export declare class ClientsResource {
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: GetClientsDto): Promise<MmsList<ClientSummary>>;
12
14
  getById(clientId: string): Promise<ClientEntity>;
13
15
  create(input: CreateClientDto): Promise<ClientEntity>;
@@ -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.ClientsResource = 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 ClientSummary / ClientEntity from
@@ -98,9 +100,14 @@ const CLIENT_DETAIL_SELECT = `
98
100
  class ClientsResource {
99
101
  supabase;
100
102
  auth;
101
- constructor(supabase, auth) {
103
+ table;
104
+ constructor(supabase, auth, audit) {
102
105
  this.supabase = supabase;
103
106
  this.auth = auth;
107
+ this.table = (0, audit_1.auditedTable)(supabase, auth, audit, {
108
+ table: 'clients',
109
+ entityType: enum_1.AuditTrailEntityType.CLIENTS,
110
+ });
104
111
  }
105
112
  async list(query) {
106
113
  const page = query.page;
@@ -169,97 +176,53 @@ class ClientsResource {
169
176
  return data;
170
177
  }
171
178
  async create(input) {
172
- const { data, error } = await this.supabase
173
- .from('clients')
174
- .insert({
179
+ const row = await this.table.insert({
175
180
  ...input,
176
181
  organization_id: this.auth.organization_id,
177
182
  created_by: this.auth.mms_id,
178
183
  created_at: new Date().toISOString(),
179
- })
180
- .select('mms_id')
181
- .single();
182
- if (error)
183
- throw (0, errors_1.mapPostgrestError)(error);
184
- return this.getById(data.mms_id);
184
+ });
185
+ return this.getById(row.mms_id);
185
186
  }
186
187
  async update(clientId, input) {
187
- const { data, error } = await this.supabase
188
- .from('clients')
189
- .update({
188
+ await this.table.update(clientId, {
190
189
  ...input,
191
190
  last_updated_by: this.auth.mms_id,
192
191
  updated_at: new Date().toISOString(),
193
- })
194
- .eq('organization_id', this.auth.organization_id)
195
- .eq('mms_id', clientId)
196
- .select('mms_id')
197
- .single();
198
- if (error)
199
- throw (0, errors_1.mapPostgrestError)(error);
200
- return this.getById(data.mms_id);
192
+ });
193
+ return this.getById(clientId);
201
194
  }
202
195
  async archive(clientId) {
203
- const { data, error } = await this.supabase
204
- .from('clients')
205
- .update({
196
+ await this.table.transition(clientId, enum_1.AuditTrailAction.ARCHIVE, {
206
197
  archived: true,
207
198
  archived_at: new Date().toISOString(),
208
199
  archived_by: this.auth.mms_id,
209
- })
210
- .eq('organization_id', this.auth.organization_id)
211
- .eq('mms_id', clientId)
212
- .select('mms_id')
213
- .single();
214
- if (error)
215
- throw (0, errors_1.mapPostgrestError)(error);
216
- return this.getById(data.mms_id);
200
+ });
201
+ return this.getById(clientId);
217
202
  }
218
203
  async unarchive(clientId) {
219
- const { data, error } = await this.supabase
220
- .from('clients')
221
- .update({
204
+ await this.table.transition(clientId, enum_1.AuditTrailAction.UNARCHIVE, {
222
205
  archived: false,
223
206
  unarchived_at: new Date().toISOString(),
224
207
  unarchived_by: this.auth.mms_id,
225
- })
226
- .eq('organization_id', this.auth.organization_id)
227
- .eq('mms_id', clientId)
228
- .select('mms_id')
229
- .single();
230
- if (error)
231
- throw (0, errors_1.mapPostgrestError)(error);
232
- return this.getById(data.mms_id);
208
+ });
209
+ return this.getById(clientId);
233
210
  }
234
211
  async restore(clientId) {
235
- const { data, error } = await this.supabase
236
- .from('clients')
237
- .update({
212
+ await this.table.transition(clientId, enum_1.AuditTrailAction.RESTORE, {
238
213
  deleted: false,
239
214
  restored_at: new Date().toISOString(),
240
215
  restored_by: this.auth.mms_id,
241
- })
242
- .eq('organization_id', this.auth.organization_id)
243
- .eq('mms_id', clientId)
244
- .select('mms_id')
245
- .single();
246
- if (error)
247
- throw (0, errors_1.mapPostgrestError)(error);
248
- return this.getById(data.mms_id);
216
+ });
217
+ return this.getById(clientId);
249
218
  }
250
219
  /** Soft delete — the row stays, flagged `deleted`, and `restore()` brings it back. */
251
220
  async remove(clientId) {
252
- const { error } = await this.supabase
253
- .from('clients')
254
- .update({
221
+ await this.table.transition(clientId, enum_1.AuditTrailAction.DELETE, {
255
222
  deleted: true,
256
223
  deleted_at: new Date().toISOString(),
257
224
  deleted_by: this.auth.mms_id,
258
- })
259
- .eq('organization_id', this.auth.organization_id)
260
- .eq('mms_id', clientId);
261
- if (error)
262
- throw (0, errors_1.mapPostgrestError)(error);
225
+ });
263
226
  }
264
227
  }
265
228
  exports.ClientsResource = ClientsResource;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,sCAA8C;AAG9C,wCAAsB;AAEtB,sEAAsE;AACtE,gGAAgG;AAChG,4EAA4E;AAC5E,MAAM,kBAAkB,GAAG;;;;;;;;;;;OAWX,CAAC;AAEjB,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8Db,CAAC;AAEjB,MAAa,eAAe;IAEP;IACA;IAFnB,YACmB,QAA6B,EAC7B,IAAiB;QADjB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,SAAI,GAAJ,IAAI,CAAa;IACjC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,KAAoB;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;QACrC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAE3C,2FAA2F;QAC3F,0DAA0D;QAC1D,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ;aAC7B,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aAClD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;aAC7B,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;aACpB,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aACzC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAExC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzD,YAAY,GAAG,YAAY,CAAC,EAAE,CAC5B,eAAe,aAAa,kBAAkB,aAAa,GAAG,CAC/D,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,CAAC;QAClD,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,KAAK,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,OAAO;YACL,OAAO,EAAE,CAAC,IAAI,IAAI,EAAE,CAA+B;YACnD,IAAI;YACJ,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,IAAI,GAAG,UAAU;YAChC,iBAAiB,EAAE,IAAI,GAAG,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC,oBAAoB,CAAC;aAC5B,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,wEAAwE;QACxE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,IAAI;gBACZ,eAAe,EAAE,KAAK;gBACtB,gBAAgB,EAAE,CAAC;aACO,CAAC;QAC/B,CAAC;QAED,OAAO,IAA+B,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC;YACN,GAAG,KAAK;YACR,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAC5B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAsB;QACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC;YACN,GAAG,KAAK;YACR,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACjC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC;YACN,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC9B,CAAC;aACD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC;YACN,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAChC,CAAC;aACD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC;YACN,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC9B,CAAC;aACD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aAClC,IAAI,CAAC,SAAS,CAAC;aACf,MAAM,CAAC;YACN,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAC;aACD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1B,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AArLD,0CAqLC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"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"}