@advplyr/partner-hub-embedded 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +12 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +39 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/react.d.ts +15 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +35 -0
- package/dist/react.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +40 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CancelResult, ListPlansResult, PartnerHubEmbeddedClientOptions, SubscribeResult } from "./types.js";
|
|
2
|
+
export declare function createPartnerHubEmbeddedClient(options: PartnerHubEmbeddedClientOptions): {
|
|
3
|
+
listPlans(): Promise<ListPlansResult>;
|
|
4
|
+
subscribe(input: {
|
|
5
|
+
planHandle: string;
|
|
6
|
+
}): Promise<SubscribeResult>;
|
|
7
|
+
cancel(input?: {
|
|
8
|
+
cancelAtPeriodEnd?: boolean;
|
|
9
|
+
}): Promise<CancelResult>;
|
|
10
|
+
};
|
|
11
|
+
export type PartnerHubEmbeddedClient = ReturnType<typeof createPartnerHubEmbeddedClient>;
|
|
12
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,+BAA+B,EAC/B,eAAe,EAChB,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,+BAA+B;;qBAMlE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;mBAOzB;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE;EAOhD;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PartnerHubEmbeddedError } from "./types.js";
|
|
2
|
+
async function embeddedFetch(options, path, init) {
|
|
3
|
+
const fetchImpl = options.fetch ?? fetch;
|
|
4
|
+
const base = `${options.baseUrl.replace(/\/$/, "")}/api/embedded/legacy-billing`;
|
|
5
|
+
const token = await options.getSessionToken();
|
|
6
|
+
const response = await fetchImpl(`${base}${path}`, {
|
|
7
|
+
...init,
|
|
8
|
+
headers: {
|
|
9
|
+
Authorization: `Bearer ${token}`,
|
|
10
|
+
"Content-Type": "application/json",
|
|
11
|
+
...init?.headers,
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
const body = (await response.json().catch(() => ({})));
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
throw new PartnerHubEmbeddedError(body.error ?? `Request failed (${response.status})`, response.status);
|
|
17
|
+
}
|
|
18
|
+
return body;
|
|
19
|
+
}
|
|
20
|
+
export function createPartnerHubEmbeddedClient(options) {
|
|
21
|
+
return {
|
|
22
|
+
listPlans() {
|
|
23
|
+
return embeddedFetch(options, "/plans");
|
|
24
|
+
},
|
|
25
|
+
subscribe(input) {
|
|
26
|
+
return embeddedFetch(options, "/subscribe", {
|
|
27
|
+
method: "POST",
|
|
28
|
+
body: JSON.stringify(input),
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
cancel(input = {}) {
|
|
32
|
+
return embeddedFetch(options, "/cancel", {
|
|
33
|
+
method: "POST",
|
|
34
|
+
body: JSON.stringify({ cancelAtPeriodEnd: input.cancelAtPeriodEnd ?? false }),
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,KAAK,UAAU,aAAa,CAC1B,OAAwC,EACxC,IAAY,EACZ,IAAkB;IAElB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;QACjD,GAAG,IAAI;QACP,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;YAClC,GAAG,IAAI,EAAE,OAAO;SACjB;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;IAE7E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,uBAAuB,CAC/B,IAAI,CAAC,KAAK,IAAI,mBAAmB,QAAQ,CAAC,MAAM,GAAG,EACnD,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAwC;IACrF,OAAO;QACL,SAAS;YACP,OAAO,aAAa,CAAkB,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;QAED,SAAS,CAAC,KAA6B;YACrC,OAAO,aAAa,CAAkB,OAAO,EAAE,YAAY,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,QAAyC,EAAE;YAChD,OAAO,aAAa,CAAe,OAAO,EAAE,SAAS,EAAE;gBACrD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,KAAK,EAAE,CAAC;aAC9E,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createPartnerHubEmbeddedClient, type PartnerHubEmbeddedClient, } from "./client.js";
|
|
2
|
+
export { PartnerHubEmbeddedError, type CancelResult, type CatalogPlan, type ListPlansResult, type PartnerHubEmbeddedClientOptions, type SubscribeResult, } from "./types.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,+BAA+B,EACpC,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,GAE/B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,GAMxB,MAAM,YAAY,CAAC"}
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CancelResult, ListPlansResult, PartnerHubEmbeddedClientOptions, SubscribeResult } from "./types.js";
|
|
2
|
+
export type UsePartnerHubOptions = PartnerHubEmbeddedClientOptions;
|
|
3
|
+
export interface UsePartnerHubResult {
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: string | null;
|
|
6
|
+
listPlans: () => Promise<ListPlansResult>;
|
|
7
|
+
subscribe: (input: {
|
|
8
|
+
planHandle: string;
|
|
9
|
+
}) => Promise<SubscribeResult>;
|
|
10
|
+
cancel: (input?: {
|
|
11
|
+
cancelAtPeriodEnd?: boolean;
|
|
12
|
+
}) => Promise<CancelResult>;
|
|
13
|
+
}
|
|
14
|
+
export declare function usePartnerHub(options: UsePartnerHubOptions): UsePartnerHubResult;
|
|
15
|
+
//# sourceMappingURL=react.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,+BAA+B,EAC/B,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,oBAAoB,GAAG,+BAA+B,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C,SAAS,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5E;AACD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAmChF"}
|
package/dist/react.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useCallback, useMemo, useState } from "react";
|
|
2
|
+
import { createPartnerHubEmbeddedClient } from "./client.js";
|
|
3
|
+
import { PartnerHubEmbeddedError } from "./types.js";
|
|
4
|
+
export function usePartnerHub(options) {
|
|
5
|
+
const client = useMemo(() => createPartnerHubEmbeddedClient(options), [options.baseUrl, options.getSessionToken, options.fetch]);
|
|
6
|
+
const [loading, setLoading] = useState(false);
|
|
7
|
+
const [error, setError] = useState(null);
|
|
8
|
+
const run = useCallback(async function run(operation) {
|
|
9
|
+
setLoading(true);
|
|
10
|
+
setError(null);
|
|
11
|
+
try {
|
|
12
|
+
return await operation();
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
const message = err instanceof PartnerHubEmbeddedError
|
|
16
|
+
? err.message
|
|
17
|
+
: err instanceof Error
|
|
18
|
+
? err.message
|
|
19
|
+
: "Partner Hub request failed";
|
|
20
|
+
setError(message);
|
|
21
|
+
throw err;
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
setLoading(false);
|
|
25
|
+
}
|
|
26
|
+
}, []);
|
|
27
|
+
return {
|
|
28
|
+
loading,
|
|
29
|
+
error,
|
|
30
|
+
listPlans: () => run(() => client.listPlans()),
|
|
31
|
+
subscribe: (input) => run(() => client.subscribe(input)),
|
|
32
|
+
cancel: (input) => run(() => client.cancel(input)),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAO7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAWrD,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,8BAA8B,CAAC,OAAO,CAAC,EAC7C,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAC1D,CAAC;IAEF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,UAAU,GAAG,CAAI,SAA2B;QACvE,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,uBAAuB;gBACpC,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,GAAG,YAAY,KAAK;oBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;oBACb,CAAC,CAAC,4BAA4B,CAAC;YACrC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,OAAO;QACP,KAAK;QACL,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACnD,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface CatalogPlan {
|
|
2
|
+
id: string;
|
|
3
|
+
handle: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string | null;
|
|
6
|
+
amountCents: number;
|
|
7
|
+
currencyCode: string;
|
|
8
|
+
billingPeriod: string;
|
|
9
|
+
trialDays: number;
|
|
10
|
+
usageCapCents: number | null;
|
|
11
|
+
usageTerms: string | null;
|
|
12
|
+
developerStoreOnly: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PartnerHubEmbeddedClientOptions {
|
|
15
|
+
baseUrl: string;
|
|
16
|
+
getSessionToken: () => Promise<string>;
|
|
17
|
+
fetch?: typeof fetch;
|
|
18
|
+
}
|
|
19
|
+
export interface ListPlansResult {
|
|
20
|
+
plans: CatalogPlan[];
|
|
21
|
+
}
|
|
22
|
+
export interface CancelResult {
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface SubscribeResult {
|
|
26
|
+
subscriptionId: string;
|
|
27
|
+
status: "pending" | "active";
|
|
28
|
+
confirmationUrl: string | null;
|
|
29
|
+
planHandle: string;
|
|
30
|
+
features: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
export declare class PartnerHubEmbeddedError extends Error {
|
|
33
|
+
readonly statusCode: number;
|
|
34
|
+
constructor(message: string, statusCode: number);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAG9C,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAD3B,OAAO,EAAE,MAAM,EACN,UAAU,EAAE,MAAM;CAK9B"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoCA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAGrC;IAFX,YACE,OAAe,EACN,UAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,eAAU,GAAV,UAAU,CAAQ;QAG3B,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@advplyr/partner-hub-embedded",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Partner Hub embedded app SDK",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./react": {
|
|
12
|
+
"types": "./dist/react.d.ts",
|
|
13
|
+
"default": "./dist/react.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public",
|
|
21
|
+
"registry": "https://registry.npmjs.org"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"react": ">=18"
|
|
25
|
+
},
|
|
26
|
+
"peerDependenciesMeta": {
|
|
27
|
+
"react": {
|
|
28
|
+
"optional": true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/react": "^19.1.6",
|
|
33
|
+
"react": "^19.1.0"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc",
|
|
37
|
+
"dev": "tsc --watch",
|
|
38
|
+
"typecheck": "tsc --noEmit"
|
|
39
|
+
}
|
|
40
|
+
}
|