@managemint-solutions/sdk 0.17.0 → 0.18.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 (55) hide show
  1. package/dist/audit/index.d.ts +23 -2
  2. package/dist/audit/index.js +56 -21
  3. package/dist/audit/index.js.map +1 -1
  4. package/dist/auth-client/index.d.ts +1 -6
  5. package/dist/auth-client/index.js +3 -18
  6. package/dist/auth-client/index.js.map +1 -1
  7. package/dist/auth.d.ts +36 -1
  8. package/dist/auth.js +52 -22
  9. package/dist/auth.js.map +1 -1
  10. package/dist/billing/index.d.ts +0 -1
  11. package/dist/billing/index.js +2 -12
  12. package/dist/billing/index.js.map +1 -1
  13. package/dist/client.d.ts +16 -1
  14. package/dist/client.js +8 -6
  15. package/dist/client.js.map +1 -1
  16. package/dist/clients/index.js +13 -75
  17. package/dist/clients/index.js.map +1 -1
  18. package/dist/errors.d.ts +4 -1
  19. package/dist/errors.js +7 -58
  20. package/dist/errors.js.map +1 -1
  21. package/dist/index.d.ts +48 -22
  22. package/dist/index.js +116 -36
  23. package/dist/index.js.map +1 -1
  24. package/dist/nest/index.d.ts +26 -3
  25. package/dist/nest/index.js +54 -15
  26. package/dist/nest/index.js.map +1 -1
  27. package/dist/notifications/index.d.ts +0 -1
  28. package/dist/notifications/index.js +4 -16
  29. package/dist/notifications/index.js.map +1 -1
  30. package/dist/organization-invites/index.d.ts +29 -0
  31. package/dist/organization-invites/index.js +48 -0
  32. package/dist/organization-invites/index.js.map +1 -0
  33. package/dist/organizations/index.js +4 -9
  34. package/dist/organizations/index.js.map +1 -1
  35. package/dist/permissions/index.d.ts +8 -0
  36. package/dist/permissions/index.js +16 -1
  37. package/dist/permissions/index.js.map +1 -1
  38. package/dist/projects/index.js +12 -75
  39. package/dist/projects/index.js.map +1 -1
  40. package/dist/service-client/index.d.ts +2 -0
  41. package/dist/service-client/index.js +7 -6
  42. package/dist/service-client/index.js.map +1 -1
  43. package/dist/supporting-files/index.js +31 -15
  44. package/dist/supporting-files/index.js.map +1 -1
  45. package/dist/supporting-files/paths.d.ts +19 -5
  46. package/dist/supporting-files/paths.js +46 -10
  47. package/dist/supporting-files/paths.js.map +1 -1
  48. package/dist/tasks/index.js +7 -33
  49. package/dist/tasks/index.js.map +1 -1
  50. package/dist/transforms.d.ts +43 -0
  51. package/dist/transforms.js +73 -2
  52. package/dist/transforms.js.map +1 -1
  53. package/dist/users/index.js +4 -14
  54. package/dist/users/index.js.map +1 -1
  55. package/package.json +6 -2
@@ -14,6 +14,12 @@ export type AuditActor = {
14
14
  };
15
15
  /** A flat database row — always `select('*')`, never an entity shape with embedded joins. */
16
16
  export type AuditRow = Record<string, unknown>;
17
+ /**
18
+ * Drops the internal `id bigint` from a row on its way out of the SDK. Every table has one
19
+ * alongside its public `mms_id uuid`, and only the database is meant to see it — a caller that
20
+ * never learns the sequence cannot come to depend on it, or leak how many rows there are.
21
+ */
22
+ export declare const withoutInternalId: <T extends Record<string, unknown>>(row: T) => Omit<T, "id">;
17
23
  export type AuditChanges = Record<string, {
18
24
  old: unknown;
19
25
  new: unknown;
@@ -34,15 +40,30 @@ export type AuditErrorHandler = (error: unknown, entries: AuditEntry[]) => void;
34
40
  * pair, which becomes `related_entity_*` on the audit row instead.
35
41
  */
36
42
  export declare const AUDIT_EXCLUDED_COLUMNS: ReadonlySet<string>;
43
+ /**
44
+ * Columns whose *value* never reaches the trail. `audit_logs` is readable by any member with
45
+ * `read_logs`, so a value copied into `changes` is a value published to the whole organization —
46
+ * and these are either provider credentials and identifiers (the `paystack_*` customer and
47
+ * subscription codes, card metadata, tokens, an idempotency key that would let a replay be
48
+ * forged) or content the base table deliberately withholds (`authenticated` has no grant on
49
+ * `notifications.rendered_content`, so the rendered email must not arrive by the back door).
50
+ * The column still shows up in the trail — that it changed is the point — with both sides
51
+ * replaced by `'[redacted]'`.
52
+ */
53
+ export declare const AUDIT_REDACTED_COLUMNS: ReadonlySet<string>;
54
+ /** True for a named redacted column, and for every provider-issued `paystack_*` identifier. */
55
+ export declare const isRedactedColumn: (name: string) => boolean;
37
56
  /**
38
57
  * The fields that differ between two flat rows, as `{ field: { old, new } }`. Values stay real
39
58
  * JSON (booleans stay booleans, jsonb stays an object) and are compared by serialized value, so
40
- * arrays and objects are equal when their contents are.
59
+ * arrays and objects are equal when their contents are. A redacted column is compared on its
60
+ * real values and only then redacted, so it is reported when — and only when — it truly moved.
41
61
  */
42
62
  export declare const diffChanges: (before: AuditRow, after: AuditRow) => AuditChanges;
43
63
  /**
44
64
  * A whole row as a change set — `'new'` for an insert, `'old'` for a hard delete — so the trail
45
- * stays self-contained once the row is gone. Columns that hold nothing are left out.
65
+ * stays self-contained once the row is gone. Columns that hold nothing are left out; a redacted
66
+ * column that holds something is present, as `'[redacted]'`.
46
67
  */
47
68
  export declare const snapshotChanges: (row: AuditRow, side: "new" | "old") => AuditChanges;
48
69
  /**
@@ -14,10 +14,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.auditedTable = exports.AuditResource = exports.snapshotChanges = exports.diffChanges = exports.AUDIT_EXCLUDED_COLUMNS = void 0;
17
+ exports.auditedTable = exports.AuditResource = exports.snapshotChanges = exports.diffChanges = exports.isRedactedColumn = exports.AUDIT_REDACTED_COLUMNS = exports.AUDIT_EXCLUDED_COLUMNS = exports.withoutInternalId = void 0;
18
18
  const enum_1 = require("@managemint-solutions/entities/audit-trail/enum");
19
19
  const errors_1 = require("../errors");
20
+ const transforms_1 = require("../transforms");
20
21
  __exportStar(require("./dto"), exports);
22
+ /**
23
+ * Drops the internal `id bigint` from a row on its way out of the SDK. Every table has one
24
+ * alongside its public `mms_id uuid`, and only the database is meant to see it — a caller that
25
+ * never learns the sequence cannot come to depend on it, or leak how many rows there are.
26
+ */
27
+ const withoutInternalId = (row) => {
28
+ const { id: _id, ...rest } = row;
29
+ return rest;
30
+ };
31
+ exports.withoutInternalId = withoutInternalId;
21
32
  /**
22
33
  * Bookkeeping columns a diff never reports: identity, tenancy and the who/when stamps of the
23
34
  * transition itself (the action already says what happened), plus the `entity_type`/`entity_id`
@@ -43,12 +54,40 @@ exports.AUDIT_EXCLUDED_COLUMNS = new Set([
43
54
  'entity_type',
44
55
  'entity_id',
45
56
  ]);
57
+ /**
58
+ * Columns whose *value* never reaches the trail. `audit_logs` is readable by any member with
59
+ * `read_logs`, so a value copied into `changes` is a value published to the whole organization —
60
+ * and these are either provider credentials and identifiers (the `paystack_*` customer and
61
+ * subscription codes, card metadata, tokens, an idempotency key that would let a replay be
62
+ * forged) or content the base table deliberately withholds (`authenticated` has no grant on
63
+ * `notifications.rendered_content`, so the rendered email must not arrive by the back door).
64
+ * The column still shows up in the trail — that it changed is the point — with both sides
65
+ * replaced by `'[redacted]'`.
66
+ */
67
+ exports.AUDIT_REDACTED_COLUMNS = new Set([
68
+ 'rendered_content',
69
+ 'template_variables',
70
+ 'idempotency_key',
71
+ 'provider_message_id',
72
+ 'card_expiry_date',
73
+ 'card_description',
74
+ 'card_brand',
75
+ 'access_token',
76
+ 'refresh_token',
77
+ 'password',
78
+ ]);
79
+ /** True for a named redacted column, and for every provider-issued `paystack_*` identifier. */
80
+ const isRedactedColumn = (name) => exports.AUDIT_REDACTED_COLUMNS.has(name) || name.startsWith('paystack_');
81
+ exports.isRedactedColumn = isRedactedColumn;
82
+ /** What a redacted column shows instead of its value. */
83
+ const REDACTED = '[redacted]';
46
84
  /** `undefined` and `null` are the same absent value as far as a row diff is concerned. */
47
85
  const normalize = (value) => value ?? null;
48
86
  /**
49
87
  * The fields that differ between two flat rows, as `{ field: { old, new } }`. Values stay real
50
88
  * 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.
89
+ * arrays and objects are equal when their contents are. A redacted column is compared on its
90
+ * real values and only then redacted, so it is reported when — and only when — it truly moved.
52
91
  */
53
92
  const diffChanges = (before, after) => {
54
93
  const changes = {};
@@ -59,21 +98,25 @@ const diffChanges = (before, after) => {
59
98
  const newValue = normalize(after[key]);
60
99
  if (JSON.stringify(oldValue) === JSON.stringify(newValue))
61
100
  continue;
62
- changes[key] = { old: oldValue, new: newValue };
101
+ changes[key] = (0, exports.isRedactedColumn)(key)
102
+ ? { old: REDACTED, new: REDACTED }
103
+ : { old: oldValue, new: newValue };
63
104
  }
64
105
  return changes;
65
106
  };
66
107
  exports.diffChanges = diffChanges;
67
108
  /**
68
109
  * 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.
110
+ * stays self-contained once the row is gone. Columns that hold nothing are left out; a redacted
111
+ * column that holds something is present, as `'[redacted]'`.
70
112
  */
71
113
  const snapshotChanges = (row, side) => {
72
114
  const changes = {};
73
115
  for (const [key, value] of Object.entries(row)) {
74
116
  if (exports.AUDIT_EXCLUDED_COLUMNS.has(key) || value === null || value === undefined)
75
117
  continue;
76
- changes[key] = side === 'new' ? { old: null, new: value } : { old: value, new: null };
118
+ const recorded = (0, exports.isRedactedColumn)(key) ? REDACTED : value;
119
+ changes[key] = side === 'new' ? { old: null, new: recorded } : { old: recorded, new: null };
77
120
  }
78
121
  return changes;
79
122
  };
@@ -163,17 +206,7 @@ class AuditResource {
163
206
  const { data, error, count } = await auditTrailQuery;
164
207
  if (error)
165
208
  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
- };
209
+ return (0, transforms_1.toMmsList)(data, page, pageSize, count);
177
210
  }
178
211
  }
179
212
  exports.AuditResource = AuditResource;
@@ -224,7 +257,9 @@ const auditedTable = (supabase, actor, audit, options) => {
224
257
  throw (0, errors_1.mapPostgrestError)(error);
225
258
  const after = data;
226
259
  await recordWrite(id, action, before, after);
227
- return after;
260
+ // `before` stays whole — it is internal to the diff — but what the caller gets does not
261
+ // carry the internal `id`.
262
+ return (0, exports.withoutInternalId)(after);
228
263
  };
229
264
  const writeWhere = async (id, guard, payload) => {
230
265
  const before = await read(id);
@@ -239,7 +274,7 @@ const auditedTable = (supabase, actor, audit, options) => {
239
274
  return null;
240
275
  const after = data;
241
276
  await recordWrite(id, enum_1.AuditTrailAction.UPDATE, before, after);
242
- return after;
277
+ return (0, exports.withoutInternalId)(after);
243
278
  };
244
279
  return {
245
280
  async insert(payload) {
@@ -258,7 +293,7 @@ const auditedTable = (supabase, actor, audit, options) => {
258
293
  changes: (0, exports.snapshotChanges)(row, 'new'),
259
294
  ...relatedOf(row),
260
295
  });
261
- return row;
296
+ return (0, exports.withoutInternalId)(row);
262
297
  },
263
298
  async insertMany(payloads) {
264
299
  if (payloads.length === 0)
@@ -274,7 +309,7 @@ const auditedTable = (supabase, actor, audit, options) => {
274
309
  changes: (0, exports.snapshotChanges)(row, 'new'),
275
310
  ...relatedOf(row),
276
311
  })));
277
- return rows;
312
+ return rows.map(exports.withoutInternalId);
278
313
  },
279
314
  update(id, payload) {
280
315
  return write(id, enum_1.AuditTrailAction.UPDATE, payload);
@@ -300,7 +335,7 @@ const auditedTable = (supabase, actor, audit, options) => {
300
335
  changes: (0, exports.snapshotChanges)(before, 'old'),
301
336
  ...relatedOf(before),
302
337
  });
303
- return before;
338
+ return (0, exports.withoutInternalId)(before);
304
339
  },
305
340
  };
306
341
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,0EAGyD;AAEzD,sCAA8C;AAG9C,wCAAsB;AAyBtB;;;;GAIG;AACU,QAAA,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,IAAI;IACJ,QAAQ;IACR,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,eAAe;IACf,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,aAAa;IACb,WAAW;CACZ,CAAC,CAAC;AAEH,0FAA0F;AAC1F,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;AAE7D;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,KAAe,EAAgB,EAAE;IAC7E,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,8BAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAE9C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEpE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAdW,QAAA,WAAW,eActB;AAEF;;;GAGG;AACI,MAAM,eAAe,GAAG,CAAC,GAAa,EAAE,IAAmB,EAAgB,EAAE;IAClF,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,8BAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QACvF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACxF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;OAUX,CAAC;AAEjB;;;GAGG;AACH,MAAa,aAAa;IAEL;IACA;IACA;IAHnB,YACmB,QAA0B,EAC1B,KAAiB,EACjB,OAA2B;QAF3B,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,UAAK,GAAL,KAAK,CAAY;QACjB,YAAO,GAAP,OAAO,CAAoB;IAC3C,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,KAAgC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC7B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;gBACnD,iBAAiB,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;gBAC/C,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC,CACJ,CAAC;YACF,IAAI,KAAK;gBAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAe,EAAE,MAAoB,EAAE,EAAE,CACxE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAuB;QAChC,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;QAErC,2FAA2F;QAC3F,0DAA0D;QAC1D,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ;aAChC,IAAI,CAAC,YAAY,CAAC;aAClB,MAAM,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aAClD,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;aACjD,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aACzC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAAC;QACrD,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,CAAkC;YACtD,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;CACF;AA3FD,sCA2FC;AAeD,qFAAqF;AACrF,MAAM,WAAW,GAAG,CAClB,QAA0B,EAC1B,KAAa,EACb,EAAU,EACV,OAAiB,EACjB,cAA6B,EAC7B,EAAE;IACF,4FAA4F;IAC5F,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClE,IAAI,cAAc,KAAK,IAAI;QAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AA2BF;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAC1B,QAA0B,EAC1B,KAAiB,EACjB,KAAoB,EACpB,OAA4B,EACd,EAAE;IAChB,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK,CAAC;IAErD,8FAA8F;IAC9F,sFAAsF;IACtF,MAAM,SAAS,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC;QACpC,iBAAiB,EAAG,GAAG,CAAC,WAAyC,IAAI,IAAI;QACzE,eAAe,EAAG,GAAG,CAAC,SAAuC,IAAI,IAAI;KACtE,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,KAAK,EAAE,EAAU,EAAqB,EAAE;QACnD,4FAA4F;QAC5F,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;QAEvE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAgB,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,MAAgB,EAAE,OAAuB,EAAE,EAAE,CACzE,WAAW,CACT,QAAQ,EACR,OAAO,CAAC,KAAK,EACb,EAAE,EACF,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EACzD,kBAAkB,CACnB,CAAC;IAEJ,MAAM,WAAW,GAAG,CAAC,EAAU,EAAE,MAAwB,EAAE,MAAgB,EAAE,KAAe,EAAE,EAAE,CAC9F,KAAK,CAAC,MAAM,CAAC;QACX,MAAM;QACN,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC;QACnC,GAAG,SAAS,CAAC,MAAM,CAAC;KACrB,CAAC,CAAC;IAEL,MAAM,KAAK,GAAG,KAAK,EACjB,EAAU,EACV,MAAwB,EACxB,OAAuB,EACJ,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACjF,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAgB,CAAC;QAE/B,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EACtB,EAAU,EACV,KAAiB,EACjB,OAAuB,EACG,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9B,0FAA0F;QAC1F,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;aAC/D,MAAM,CAAC,GAAG,CAAC;aACX,WAAW,EAAE,CAAC;QACjB,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,gFAAgF;QAChF,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,IAAgB,CAAC;QAE/B,MAAM,WAAW,CAAC,EAAE,EAAE,uBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAE9D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;iBACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;iBACnB,MAAM,CAAC,OAAO,CAAC;iBACf,MAAM,CAAC,GAAG,CAAC;iBACX,MAAM,EAAE,CAAC;YACZ,IAAI,KAAK;gBAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAgB,CAAC;YAE7B,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,uBAAgB,CAAC,MAAM;gBAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,GAAG,CAAC,MAAgB;gBAC9B,OAAO,EAAE,IAAA,uBAAe,EAAC,GAAG,EAAE,KAAK,CAAC;gBACpC,GAAG,SAAS,CAAC,GAAG,CAAC;aAClB,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,QAAQ;YACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAErC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxF,IAAI,KAAK;gBAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAe,CAAC;YAExC,MAAM,KAAK,CAAC,MAAM,CAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjB,MAAM,EAAE,uBAAgB,CAAC,MAAM;gBAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,GAAG,CAAC,MAAgB;gBAC9B,OAAO,EAAE,IAAA,uBAAe,EAAC,GAAG,EAAE,KAAK,CAAC;gBACpC,GAAG,SAAS,CAAC,GAAG,CAAC;aAClB,CAAC,CAAC,CACJ,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,EAAE,EAAE,OAAO;YAChB,OAAO,KAAK,CAAC,EAAE,EAAE,uBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAED,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO;YAC5B,OAAO,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO;YAC5B,OAAO,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAE;YACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YAE9B,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnE,IAAI,MAAM;gBAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;YAEvE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC;YAC9B,IAAI,KAAK;gBAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;YAE1C,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,uBAAgB,CAAC,MAAM;gBAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC;gBACvC,GAAG,SAAS,CAAC,MAAM,CAAC;aACrB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AA3JW,QAAA,YAAY,gBA2JvB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
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
4
  import { PricebooksResource } from '../pricebooks';
@@ -20,11 +20,6 @@ export declare class SupabaseAuthClient {
20
20
  constructor(config: SupabaseAuthClientConfig);
21
21
  signIn(input: loginDto): Promise<LoginResponse>;
22
22
  refreshSession(input: ExchangeRefreshTokenDto): Promise<ExchangeTokenResponse>;
23
- /**
24
- * Parity with the api: this client never holds a session (`persistSession` is off), so
25
- * server-side there is nothing to revoke and the call is a no-op. Kept as the api had it.
26
- */
27
- signOut(): Promise<void>;
28
23
  /** `redirectTo` is passed in — the SDK reads no environment variables. */
29
24
  sendPasswordResetEmail(input: SendPasswordResetEmailDto, redirectTo: string): Promise<void>;
30
25
  exchangeRecoveryToken(input: ExchangeTokenHashDto): Promise<ExchangeTokenResponse>;
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.createSupabaseAuthClient = exports.SupabaseAuthClient = void 0;
18
- const supabase_js_1 = require("@supabase/supabase-js");
18
+ const auth_1 = require("../auth");
19
19
  const errors_1 = require("../errors");
20
20
  const pricebooks_1 = require("../pricebooks");
21
21
  __exportStar(require("./dto"), exports);
@@ -37,10 +37,7 @@ class SupabaseAuthClient {
37
37
  pricebooks;
38
38
  constructor(config) {
39
39
  this.config = config;
40
- this.supabase = (0, supabase_js_1.createClient)(config.url, config.key, {
41
- // Server-side and stateless: nothing is stored, refreshed or read out of a URL.
42
- auth: { persistSession: false, autoRefreshToken: false, detectSessionInUrl: false },
43
- });
40
+ this.supabase = (0, auth_1.createRawClient)(config.url, config.key);
44
41
  this.pricebooks = new pricebooks_1.PricebooksResource(this.supabase);
45
42
  }
46
43
  async signIn(input) {
@@ -66,15 +63,6 @@ class SupabaseAuthClient {
66
63
  throw noSession('Token exchange failed: No session data returned');
67
64
  return toTokens(data.session);
68
65
  }
69
- /**
70
- * Parity with the api: this client never holds a session (`persistSession` is off), so
71
- * server-side there is nothing to revoke and the call is a no-op. Kept as the api had it.
72
- */
73
- async signOut() {
74
- const { error } = await this.supabase.auth.signOut();
75
- if (error)
76
- throw (0, errors_1.mapAuthError)(error);
77
- }
78
66
  /** `redirectTo` is passed in — the SDK reads no environment variables. */
79
67
  async sendPasswordResetEmail(input, redirectTo) {
80
68
  const { error } = await this.supabase.auth.resetPasswordForEmail(input.email, { redirectTo });
@@ -123,10 +111,7 @@ class SupabaseAuthClient {
123
111
  * ignored, a failed stamp must not fail the login.
124
112
  */
125
113
  async stampLastLoggedIn(accessToken, userId) {
126
- const asUser = (0, supabase_js_1.createClient)(this.config.url, this.config.key, {
127
- global: { headers: { Authorization: `Bearer ${accessToken}` } },
128
- auth: { persistSession: false, autoRefreshToken: false },
129
- });
114
+ const asUser = (0, auth_1.createRawClient)(this.config.url, this.config.key, accessToken);
130
115
  await asUser
131
116
  .from('users')
132
117
  .update({ last_logged_in: new Date().toISOString() })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth-client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAA8F;AAY9F,sCAA8D;AAC9D,8CAAmD;AAEnD,wCAAsB;AAOtB,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAAC,OAAe,EAAuB,EAAE,CACzD,IAAI,4BAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnF,MAAM,QAAQ,GAAG,CAAC,OAGjB,EAAyB,EAAE,CAAC,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;IAClC,aAAa,EAAE,OAAO,CAAC,aAAa;CACrC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAa,kBAAkB;IAIA;IAHpB,QAAQ,CAAmB,CAAC,iDAAiD;IAC7E,UAAU,CAAqB;IAExC,YAA6B,MAAgC;QAAhC,WAAM,GAAN,MAAM,CAA0B;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAA,0BAAY,EAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;YACnD,gFAAgF;YAChF,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE;SACpF,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,+BAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAe;QAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAClE,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,IAAI,KAAK;YAAE,MAAM,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,SAAS,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtE,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAA8B;QACjD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9D,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,IAAI,KAAK;YAAE,MAAM,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAEtF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,KAAK;YAAE,MAAM,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,sBAAsB,CAC1B,KAAgC,EAChC,UAAkB;QAElB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9F,IAAI,KAAK;YAAE,MAAM,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAA2B;QACrD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACzD,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;QACH,IAAI,KAAK;YAAE,MAAM,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAEtF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAA2B;QACpD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACzD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;QACH,IAAI,KAAK;YAAE,MAAM,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAEtF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAuB;QACzC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YAClE,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,IAAI,YAAY;YAAE,MAAM,IAAA,qBAAY,EAAC,YAAY,CAAC,CAAC;QAEnD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACjE,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,IAAI,WAAW;YAAE,MAAM,IAAA,qBAAY,EAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,MAAc;QACjE,MAAM,MAAM,GAAG,IAAA,0BAAY,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAC5D,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,EAAE;YAC/D,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;SACzD,CAAC,CAAC;QACH,MAAM,MAAM;aACT,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;aACpD,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AA1GD,gDA0GC;AAEM,MAAM,wBAAwB,GAAG,CAAC,MAAgC,EAAsB,EAAE,CAC/F,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AADpB,QAAA,wBAAwB,4BACJ"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth-client/index.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts CHANGED
@@ -1,5 +1,40 @@
1
+ import { type SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
2
+ /**
3
+ * A raw supabase-js client, built the one way the SDK ever needs one: server-side and stateless —
4
+ * nothing is stored, refreshed or read out of a URL — carrying the caller's bearer token when
5
+ * there is one, so RLS sees them.
6
+ */
7
+ export declare const createRawClient: (url: string, key: string, accessToken?: string) => SupabaseJsClient;
8
+ /** Who a request is running as: the GoTrue subject and the tenant its `users` row belongs to. */
1
9
  export type AuthContext = {
2
10
  mms_id: string;
3
11
  organization_id: string;
4
12
  };
5
- export declare const decodeAuthContext: (accessToken: string) => AuthContext;
13
+ /** What a verified bearer token resolves to: the GoTrue subject plus the caller's `users` row. */
14
+ export type VerifiedAuth = AuthContext & {
15
+ email: string | null;
16
+ name: string | null;
17
+ surname: string | null;
18
+ };
19
+ export type VerifyAccessTokenConfig = {
20
+ url: string;
21
+ key: string;
22
+ accessToken: string;
23
+ /**
24
+ * A raw client already built for this url/key/token, so a caller that goes on to build a
25
+ * `SupabaseClient` from the same token has one supabase-js client rather than two. Defaults to
26
+ * building its own.
27
+ */
28
+ client?: SupabaseJsClient;
29
+ };
30
+ /**
31
+ * Establishes who the caller is, from a token whose signature is actually checked.
32
+ *
33
+ * Identity comes from the verified JWT and tenancy comes from `public.users` — never from
34
+ * `user_metadata`, which the end user can rewrite through GoTrue. The profile read runs under the
35
+ * caller's own RLS (a user may read their own row), so the `organization_id` returned here is the
36
+ * same one `current_user_organization_id()` gives every policy.
37
+ *
38
+ * The token itself is never logged: a failure says only that it was rejected.
39
+ */
40
+ export declare const verifyAccessToken: ({ url, key, accessToken, client, }: VerifyAccessTokenConfig) => Promise<VerifiedAuth>;
package/dist/auth.js CHANGED
@@ -1,30 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeAuthContext = void 0;
3
+ exports.verifyAccessToken = exports.createRawClient = void 0;
4
+ const supabase_js_1 = require("@supabase/supabase-js");
4
5
  const errors_1 = require("./errors");
6
+ /**
7
+ * A raw supabase-js client, built the one way the SDK ever needs one: server-side and stateless —
8
+ * nothing is stored, refreshed or read out of a URL — carrying the caller's bearer token when
9
+ * there is one, so RLS sees them.
10
+ */
11
+ const createRawClient = (url, key, accessToken) => (0, supabase_js_1.createClient)(url, key, {
12
+ ...(accessToken ? { global: { headers: { Authorization: `Bearer ${accessToken}` } } } : {}),
13
+ auth: { persistSession: false, autoRefreshToken: false, detectSessionInUrl: false },
14
+ });
15
+ exports.createRawClient = createRawClient;
5
16
  const authError = (message) => new errors_1.SupabaseClientError({ status: 401, error: 'Authentication Error', message });
6
- const decodeBase64Url = (segment) => typeof Buffer !== 'undefined'
7
- ? Buffer.from(segment, 'base64url').toString('utf8')
8
- : atob(segment.replace(/-/g, '+').replace(/_/g, '/')); // browser (portal later)
9
- const decodeAuthContext = (accessToken) => {
10
- const parts = accessToken.split('.');
11
- if (parts.length !== 3)
12
- throw authError('Malformed JWT');
13
- let payload;
14
- try {
15
- payload = JSON.parse(decodeBase64Url(parts[1]));
17
+ /**
18
+ * Establishes who the caller is, from a token whose signature is actually checked.
19
+ *
20
+ * Identity comes from the verified JWT and tenancy comes from `public.users` — never from
21
+ * `user_metadata`, which the end user can rewrite through GoTrue. The profile read runs under the
22
+ * caller's own RLS (a user may read their own row), so the `organization_id` returned here is the
23
+ * same one `current_user_organization_id()` gives every policy.
24
+ *
25
+ * The token itself is never logged: a failure says only that it was rejected.
26
+ */
27
+ const verifyAccessToken = async ({ url, key, accessToken, client = (0, exports.createRawClient)(url, key, accessToken), }) => {
28
+ // Verifies the signature locally against the project's JWKS for asymmetric keys, and against
29
+ // the auth server for HS256 projects. Either way the token is checked, not merely decoded.
30
+ const { data, error } = await client.auth.getClaims(accessToken);
31
+ const mms_id = data?.claims?.sub;
32
+ if (error || typeof mms_id !== 'string' || mms_id === '') {
33
+ throw authError('Invalid or expired token');
16
34
  }
17
- catch {
18
- throw authError('Invalid JWT payload');
35
+ const { data: profile, error: profileError } = await client
36
+ .from('users')
37
+ .select('organization_id, active, email, name, surname')
38
+ .eq('mms_id', mms_id)
39
+ .maybeSingle();
40
+ if (profileError)
41
+ throw (0, errors_1.mapPostgrestError)(profileError);
42
+ if (!profile)
43
+ throw authError('No user profile exists for this account');
44
+ if (profile.active === false) {
45
+ throw new errors_1.SupabaseClientError({
46
+ status: 403,
47
+ error: 'Authentication Error',
48
+ message: 'Your account has been deactivated',
49
+ });
19
50
  }
20
- const mms_id = payload.sub;
21
- const organization_id = payload.user_metadata?.organization_id;
22
- if (typeof mms_id !== 'string' ||
23
- typeof organization_id !== 'string' ||
24
- organization_id.trim() === '') {
25
- throw authError('JWT is missing mms_id/organization_id claims');
26
- }
27
- return { mms_id, organization_id };
51
+ return {
52
+ mms_id,
53
+ organization_id: profile.organization_id,
54
+ email: profile.email ?? null,
55
+ name: profile.name ?? null,
56
+ surname: profile.surname ?? null,
57
+ };
28
58
  };
29
- exports.decodeAuthContext = decodeAuthContext;
59
+ exports.verifyAccessToken = verifyAccessToken;
30
60
  //# sourceMappingURL=auth.js.map
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAI/C,MAAM,SAAS,GAAG,CAAC,OAAe,EAAuB,EAAE,CACzD,IAAI,4BAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAU,EAAE,CAClD,OAAO,MAAM,KAAK,WAAW;IAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB;AAE7E,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAe,EAAE;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;IAEzD,IAAI,OAAyE,CAAC;IAC9E,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAC3B,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC;IAC/D,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAC7B,CAAC;QACD,MAAM,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACrC,CAAC,CAAC;AAtBW,QAAA,iBAAiB,qBAsB5B"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":";;;AAAA,uDAA8F;AAC9F,qCAAkE;AAElE;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAC7B,GAAW,EACX,GAAW,EACX,WAAoB,EACF,EAAE,CACpB,IAAA,0BAAY,EAAC,GAAG,EAAE,GAAG,EAAE;IACrB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE;CACpF,CAAC,CAAC;AARQ,QAAA,eAAe,mBAQvB;AAwBL,MAAM,SAAS,GAAG,CAAC,OAAe,EAAuB,EAAE,CACzD,IAAI,4BAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnF;;;;;;;;;GASG;AACI,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,GAAG,EACH,GAAG,EACH,WAAW,EACX,MAAM,GAAG,IAAA,uBAAe,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,GACvB,EAAyB,EAAE;IACnD,6FAA6F;IAC7F,2FAA2F;IAC3F,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC;IACjC,IAAI,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM;SACxD,IAAI,CAAC,OAAO,CAAC;SACb,MAAM,CAAC,+CAA+C,CAAC;SACvD,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACpB,WAAW,EAAE,CAAC;IACjB,IAAI,YAAY;QAAE,MAAM,IAAA,0BAAiB,EAAC,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO;QAAE,MAAM,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,4BAAmB,CAAC;YAC5B,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,mCAAmC;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM;QACN,eAAe,EAAE,OAAO,CAAC,eAAyB;QAClD,KAAK,EAAG,OAAO,CAAC,KAAuB,IAAI,IAAI;QAC/C,IAAI,EAAG,OAAO,CAAC,IAAsB,IAAI,IAAI;QAC7C,OAAO,EAAG,OAAO,CAAC,OAAyB,IAAI,IAAI;KACpD,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,iBAAiB,qBAoC5B"}
@@ -12,7 +12,6 @@ export declare class BillingReadsResource {
12
12
  protected readonly supabase: TypedSupabaseClient;
13
13
  protected readonly actor: AuditActor;
14
14
  constructor(supabase: TypedSupabaseClient, actor: AuditActor);
15
- getTransaction(transactionId: string): Promise<BillingTransactionRow | null>;
16
15
  /** The one open transaction, if the organization has one. */
17
16
  openTransaction(openStatuses: string[]): Promise<BillingTransactionRow | null>;
18
17
  /** The replay lookup: the same key must never raise a second charge. */
@@ -37,16 +37,6 @@ class BillingReadsResource {
37
37
  this.supabase = supabase;
38
38
  this.actor = actor;
39
39
  }
40
- async getTransaction(transactionId) {
41
- const { data, error } = await this.supabase
42
- .from('billing_transactions')
43
- .select('*')
44
- .eq('mms_id', transactionId)
45
- .maybeSingle();
46
- if (error)
47
- throw (0, errors_1.mapPostgrestError)(error);
48
- return (data ?? null);
49
- }
50
40
  /** The one open transaction, if the organization has one. */
51
41
  async openTransaction(openStatuses) {
52
42
  const { data, error } = await this.supabase
@@ -57,7 +47,7 @@ class BillingReadsResource {
57
47
  .maybeSingle();
58
48
  if (error)
59
49
  throw (0, errors_1.mapPostgrestError)(error);
60
- return (data ?? null);
50
+ return data ? (0, audit_1.withoutInternalId)(data) : null;
61
51
  }
62
52
  /** The replay lookup: the same key must never raise a second charge. */
63
53
  async transactionByIdempotencyKey(idempotencyKey) {
@@ -69,7 +59,7 @@ class BillingReadsResource {
69
59
  .maybeSingle();
70
60
  if (error)
71
61
  throw (0, errors_1.mapPostgrestError)(error);
72
- return (data ?? null);
62
+ return data ? (0, audit_1.withoutInternalId)(data) : null;
73
63
  }
74
64
  /** Whether a catalog module is still on sale. The catalog is public, not tenant-scoped. */
75
65
  async isModuleActive(moduleId) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
1
+ import type { SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
2
2
  import { type AuthContext } from './auth';
3
3
  import { AuditResource, type AuditErrorHandler } from './audit';
4
4
  import { AdditionalDetailsResource } from './additional-details';
@@ -18,9 +18,24 @@ export type SupabaseClientConfig = {
18
18
  url: string;
19
19
  key: string;
20
20
  accessToken: string;
21
+ /**
22
+ * Who the request runs as. The caller must already have **verified** the token this came from
23
+ * (`verifyAccessToken`) — the client trusts this outright and scopes every query to it.
24
+ */
25
+ auth: AuthContext;
21
26
  /** Where a failed audit insert is reported. Defaults to `console.error`. */
22
27
  onAuditError?: AuditErrorHandler;
28
+ /**
29
+ * A raw client already built for this url/key/token — what `verifyAccessToken` was handed, so
30
+ * one request builds one supabase-js client. Defaults to building its own.
31
+ */
32
+ client?: TypedSupabaseClient;
23
33
  };
34
+ /**
35
+ * The caller's data client: every query carries their bearer token, so RLS decides what they
36
+ * may see. It performs no authentication of its own — build it from a `VerifiedAuth`, never from
37
+ * a token you have only decoded.
38
+ */
24
39
  export declare class SupabaseClient {
25
40
  readonly supabase: TypedSupabaseClient;
26
41
  readonly auth: AuthContext;
package/dist/client.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSupabaseClient = exports.SupabaseClient = void 0;
4
- const supabase_js_1 = require("@supabase/supabase-js");
5
4
  const auth_1 = require("./auth");
6
5
  const audit_1 = require("./audit");
7
6
  const additional_details_1 = require("./additional-details");
@@ -16,6 +15,11 @@ const statuses_1 = require("./statuses");
16
15
  const supporting_files_1 = require("./supporting-files");
17
16
  const tasks_1 = require("./tasks");
18
17
  const users_1 = require("./users");
18
+ /**
19
+ * The caller's data client: every query carries their bearer token, so RLS decides what they
20
+ * may see. It performs no authentication of its own — build it from a `VerifiedAuth`, never from
21
+ * a token you have only decoded.
22
+ */
19
23
  class SupabaseClient {
20
24
  supabase; // escape hatch for not-yet-migrated queries
21
25
  auth;
@@ -33,11 +37,9 @@ class SupabaseClient {
33
37
  projects;
34
38
  tasks;
35
39
  constructor(config) {
36
- this.auth = (0, auth_1.decodeAuthContext)(config.accessToken);
37
- this.supabase = (0, supabase_js_1.createClient)(config.url, config.key, {
38
- global: { headers: { Authorization: `Bearer ${config.accessToken}` } },
39
- auth: { persistSession: false, autoRefreshToken: false },
40
- });
40
+ this.auth = config.auth;
41
+ this.supabase =
42
+ config.client ?? (0, auth_1.createRawClient)(config.url, config.key, config.accessToken);
41
43
  // Built before the resources: every write they make goes through it.
42
44
  this.audit = new audit_1.AuditResource(this.supabase, this.auth, config.onAuditError);
43
45
  this.statuses = new statuses_1.StatusesResource(this.supabase, this.auth, this.audit);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}