@managemint-solutions/sdk 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/auth-client/index.d.ts +4 -1
- package/dist/auth-client/index.js +5 -1
- package/dist/auth-client/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pricebooks/index.d.ts +19 -0
- package/dist/pricebooks/index.js +88 -0
- package/dist/pricebooks/index.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -241,6 +241,27 @@ export class AuthController {
|
|
|
241
241
|
}
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
+
## Pricebooks
|
|
245
|
+
|
|
246
|
+
The price catalog (`pricebooks`, `pricebook_modules`, `billing_modules`) is readable by `anon`
|
|
247
|
+
by design — an unauthenticated signup prices against it — so `pricebooks` hangs off the same
|
|
248
|
+
bearer-less `SupabaseAuthClient` as the auth flows, takes no auth context and scopes by nothing.
|
|
249
|
+
|
|
250
|
+
```ts
|
|
251
|
+
import { monthlyTotalMinor } from '@managemint-solutions/sdk';
|
|
252
|
+
import type { PricebookWithModules } from '@managemint-solutions/entities/modules';
|
|
253
|
+
|
|
254
|
+
const pricebook: PricebookWithModules = await auth.pricebooks.getActive();
|
|
255
|
+
await auth.pricebooks.getById(pricebookId); // e.g. the pricebook an organization is pinned to
|
|
256
|
+
|
|
257
|
+
// What the selected modules cost per month, in minor units. A module the pricebook does not
|
|
258
|
+
// price throws a 400 `Pricing Error`.
|
|
259
|
+
const total = monthlyTotalMinor(pricebook, ['CRM'], seatCount);
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Each pricebook comes back with its `modules` flattened to `PricedModule`s (the `pricebook_modules`
|
|
263
|
+
row joined with its `billing_modules` catalog entry). Exactly one pricebook is active at a time.
|
|
264
|
+
|
|
244
265
|
## Errors
|
|
245
266
|
|
|
246
267
|
Every error the SDK throws is a `SupabaseClientError` carrying the HTTP `status` to respond
|
|
@@ -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
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;AAAA,uDAA8F;AAY9F,sCAA8D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth-client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -27,4 +27,5 @@ __exportStar(require("./supporting-files"), exports);
|
|
|
27
27
|
__exportStar(require("./clients"), exports);
|
|
28
28
|
__exportStar(require("./projects"), exports);
|
|
29
29
|
__exportStar(require("./tasks"), exports);
|
|
30
|
+
__exportStar(require("./pricebooks"), exports);
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,gDAA8B;AAC9B,2CAAyB;AACzB,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,uDAAqC;AACrC,0CAAwB;AACxB,qDAAmC;AACnC,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,gDAA8B;AAC9B,2CAAyB;AACzB,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,uDAAqC;AACrC,0CAAwB;AACxB,qDAAmC;AACnC,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,+CAA6B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SupabaseClient as SupabaseJsClient } from '@supabase/supabase-js';
|
|
2
|
+
import type { PricebookWithModules } from '@managemint-solutions/entities/modules';
|
|
3
|
+
/**
|
|
4
|
+
* The public price catalog. `pricebooks`, `pricebook_modules` and `billing_modules` are readable
|
|
5
|
+
* by `anon` by design — unauthenticated signup prices against them — so this resource takes no
|
|
6
|
+
* auth context and scopes by nothing.
|
|
7
|
+
*/
|
|
8
|
+
export declare class PricebooksResource {
|
|
9
|
+
private readonly supabase;
|
|
10
|
+
constructor(supabase: SupabaseJsClient);
|
|
11
|
+
getActive(): Promise<PricebookWithModules>;
|
|
12
|
+
getById(pricebookId: string): Promise<PricebookWithModules>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* What the given modules cost per month, in minor units: every module's unit price summed and
|
|
16
|
+
* multiplied by the seat count. A module the pricebook does not price is a 400 — the caller
|
|
17
|
+
* asked for something that cannot be billed.
|
|
18
|
+
*/
|
|
19
|
+
export declare const monthlyTotalMinor: (pricebook: PricebookWithModules, moduleKeys: string[], seatCount: number) => number;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.monthlyTotalMinor = exports.PricebooksResource = void 0;
|
|
4
|
+
const errors_1 = require("../errors");
|
|
5
|
+
// The public contract is PricebookWithModules from @managemint-solutions/entities; the row
|
|
6
|
+
// types below only declare the shape this select string produces (the columns are defined in
|
|
7
|
+
// the api's supabase/migrations).
|
|
8
|
+
const PRICEBOOK_SELECT = `
|
|
9
|
+
mms_id,
|
|
10
|
+
name,
|
|
11
|
+
description,
|
|
12
|
+
active,
|
|
13
|
+
pricebook_modules (
|
|
14
|
+
module_id,
|
|
15
|
+
unit_amount_minor,
|
|
16
|
+
currency,
|
|
17
|
+
billing_modules (
|
|
18
|
+
module_key
|
|
19
|
+
)
|
|
20
|
+
)
|
|
21
|
+
`;
|
|
22
|
+
// A pricebook_modules row whose catalog entry did not come back leaves `module_key` undefined —
|
|
23
|
+
// the cast keeps the mapping honest about that rather than inventing a key.
|
|
24
|
+
const toPricebookWithModules = (row) => ({
|
|
25
|
+
mms_id: row.mms_id,
|
|
26
|
+
name: row.name,
|
|
27
|
+
active: row.active,
|
|
28
|
+
description: row.description,
|
|
29
|
+
modules: (row.pricebook_modules || []).map((pricedModule) => ({
|
|
30
|
+
module_id: pricedModule.module_id,
|
|
31
|
+
module_key: pricedModule.billing_modules?.module_key,
|
|
32
|
+
unit_amount_minor: pricedModule.unit_amount_minor,
|
|
33
|
+
currency: pricedModule.currency,
|
|
34
|
+
})),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* The public price catalog. `pricebooks`, `pricebook_modules` and `billing_modules` are readable
|
|
38
|
+
* by `anon` by design — unauthenticated signup prices against them — so this resource takes no
|
|
39
|
+
* auth context and scopes by nothing.
|
|
40
|
+
*/
|
|
41
|
+
class PricebooksResource {
|
|
42
|
+
supabase;
|
|
43
|
+
constructor(supabase) {
|
|
44
|
+
this.supabase = supabase;
|
|
45
|
+
}
|
|
46
|
+
async getActive() {
|
|
47
|
+
const { data, error } = await this.supabase
|
|
48
|
+
.from('pricebooks')
|
|
49
|
+
.select(PRICEBOOK_SELECT)
|
|
50
|
+
.eq('active', true)
|
|
51
|
+
.single();
|
|
52
|
+
if (error)
|
|
53
|
+
throw (0, errors_1.mapPostgrestError)(error);
|
|
54
|
+
return toPricebookWithModules(data);
|
|
55
|
+
}
|
|
56
|
+
async getById(pricebookId) {
|
|
57
|
+
const { data, error } = await this.supabase
|
|
58
|
+
.from('pricebooks')
|
|
59
|
+
.select(PRICEBOOK_SELECT)
|
|
60
|
+
.eq('mms_id', pricebookId)
|
|
61
|
+
.single();
|
|
62
|
+
if (error)
|
|
63
|
+
throw (0, errors_1.mapPostgrestError)(error);
|
|
64
|
+
return toPricebookWithModules(data);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.PricebooksResource = PricebooksResource;
|
|
68
|
+
/**
|
|
69
|
+
* What the given modules cost per month, in minor units: every module's unit price summed and
|
|
70
|
+
* multiplied by the seat count. A module the pricebook does not price is a 400 — the caller
|
|
71
|
+
* asked for something that cannot be billed.
|
|
72
|
+
*/
|
|
73
|
+
const monthlyTotalMinor = (pricebook, moduleKeys, seatCount) => {
|
|
74
|
+
const total = moduleKeys.reduce((sum, moduleKey) => {
|
|
75
|
+
const pricedModule = pricebook.modules.find((module) => module.module_key === moduleKey);
|
|
76
|
+
if (!pricedModule) {
|
|
77
|
+
throw new errors_1.SupabaseClientError({
|
|
78
|
+
status: 400,
|
|
79
|
+
error: 'Pricing Error',
|
|
80
|
+
message: `Module ${moduleKey} is not priced by pricebook ${pricebook.name}`,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return sum + pricedModule.unit_amount_minor;
|
|
84
|
+
}, 0);
|
|
85
|
+
return total * seatCount;
|
|
86
|
+
};
|
|
87
|
+
exports.monthlyTotalMinor = monthlyTotalMinor;
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pricebooks/index.ts"],"names":[],"mappings":";;;AAEA,sCAAmE;AAEnE,2FAA2F;AAC3F,6FAA6F;AAC7F,kCAAkC;AAClC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;CAaf,CAAC;AAoBX,gGAAgG;AAChG,4EAA4E;AAC5E,MAAM,sBAAsB,GAAG,CAAC,GAAiB,EAAwB,EAAE,CAAC,CAAC;IAC3E,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,OAAO,EAAE,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC5D,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,UAAU,EAAE,YAAY,CAAC,eAAe,EAAE,UAAU;QACpD,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;QACjD,QAAQ,EAAE,YAAY,CAAC,QAAQ;KAChC,CAAC,CAAmB;CACtB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAa,kBAAkB;IACA;IAA7B,YAA6B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;IAE3D,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,YAAY,CAAC;aAClB,MAAM,CAAC,gBAAgB,CAAC;aACxB,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;aAClB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,sBAAsB,CAAC,IAA+B,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,YAAY,CAAC;aAClB,MAAM,CAAC,gBAAgB,CAAC;aACxB,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;aACzB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,sBAAsB,CAAC,IAA+B,CAAC,CAAC;IACjE,CAAC;CACF;AAtBD,gDAsBC;AAED;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAC/B,SAA+B,EAC/B,UAAoB,EACpB,SAAiB,EACT,EAAE;IACV,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACjD,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QAEzF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,UAAU,SAAS,+BAA+B,SAAS,CAAC,IAAI,EAAE;aAC5E,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC;IAC9C,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,OAAO,KAAK,GAAG,SAAS,CAAC;AAC3B,CAAC,CAAC;AApBW,QAAA,iBAAiB,qBAoB5B"}
|
package/package.json
CHANGED