@pagesolver/sdk 2.0.0 → 2.0.2
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 +28 -34
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -6
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Typed TypeScript SDK for the public PageSolver `websites` API.
|
|
4
4
|
|
|
5
|
-
This package is generated from:
|
|
6
|
-
|
|
7
|
-
- [infra/supabase/functions/websites/openapi.json](/Users/zekepari/Documents/GitHub/pagesolver/infra/supabase/functions/websites/openapi.json)
|
|
8
|
-
|
|
9
5
|
## Install
|
|
10
6
|
|
|
11
7
|
```bash
|
|
@@ -15,10 +11,9 @@ npm install @pagesolver/sdk
|
|
|
15
11
|
## Usage
|
|
16
12
|
|
|
17
13
|
```ts
|
|
18
|
-
import {
|
|
14
|
+
import { createClient } from "@pagesolver/sdk";
|
|
19
15
|
|
|
20
|
-
const sdk =
|
|
21
|
-
baseUrl: "https://your-project.supabase.co/functions/v1/websites",
|
|
16
|
+
const sdk = createClient({
|
|
22
17
|
businessKey: process.env.PAGESOLVER_BUSINESS_KEY!,
|
|
23
18
|
});
|
|
24
19
|
|
|
@@ -26,39 +21,38 @@ const modules = await sdk.getModules();
|
|
|
26
21
|
const showcases = await sdk.getShowcases({ collection: "Bathrooms" });
|
|
27
22
|
```
|
|
28
23
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
bun run sdk:generate
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
The SDK package version is synced from:
|
|
36
|
-
|
|
37
|
-
- [infra/supabase/functions/websites/openapi.json](/Users/zekepari/Documents/GitHub/pagesolver/infra/supabase/functions/websites/openapi.json)
|
|
38
|
-
|
|
39
|
-
So when the OpenAPI `info.version` changes, the package version should change with it.
|
|
24
|
+
The SDK targets the production PageSolver `websites` API by default.
|
|
40
25
|
|
|
41
|
-
|
|
26
|
+
Pass `baseUrl` only when you explicitly want a non-production backend, such as local or preview:
|
|
42
27
|
|
|
43
|
-
```
|
|
44
|
-
|
|
28
|
+
```ts
|
|
29
|
+
const sdk = createClient({
|
|
30
|
+
businessKey: process.env.PAGESOLVER_BUSINESS_KEY!,
|
|
31
|
+
baseUrl: "https://your-preview-project.supabase.co/functions/v1/websites",
|
|
32
|
+
});
|
|
45
33
|
```
|
|
46
34
|
|
|
47
|
-
##
|
|
35
|
+
## API
|
|
48
36
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
37
|
+
- `getModules()`
|
|
38
|
+
- `getShowcases({ collection? })`
|
|
39
|
+
- `getComparisons({ collection? })`
|
|
40
|
+
- `getReviews()`
|
|
41
|
+
- `getFacebook()`
|
|
42
|
+
- `submitContact(payload)`
|
|
52
43
|
|
|
53
|
-
##
|
|
44
|
+
## Errors
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
bun run sdk:publish
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
For prereleases or alternate npm tags:
|
|
46
|
+
Non-2xx responses throw `PageSolverApiError`.
|
|
60
47
|
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
```ts
|
|
49
|
+
import { PageSolverApiError } from "@pagesolver/sdk";
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
await sdk.getModules();
|
|
53
|
+
} catch (error) {
|
|
54
|
+
if (error instanceof PageSolverApiError) {
|
|
55
|
+
console.error(error.status, error.data);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
64
58
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { components, paths } from "./generated/schema.js";
|
|
2
|
+
export declare const PAGESOLVER_PRODUCTION_BASE_URL = "https://nojpnistalabissmttgw.supabase.co/functions/v1/websites";
|
|
2
3
|
type HttpMethod = "get" | "post";
|
|
3
4
|
type Operation<Path extends keyof paths, Method extends keyof paths[Path] & HttpMethod> = NonNullable<paths[Path][Method]>;
|
|
4
5
|
type JsonRequestBody<Path extends keyof paths, Method extends keyof paths[Path] & HttpMethod> = Operation<Path, Method> extends {
|
|
@@ -23,12 +24,14 @@ export type ShowcasesResponse = JsonResponse<"/v2/showcases", "get", 200>;
|
|
|
23
24
|
export type ComparisonsResponse = JsonResponse<"/v2/comparisons", "get", 200>;
|
|
24
25
|
export type ReviewsResponse = JsonResponse<"/v2/reviews", "get", 200>;
|
|
25
26
|
export type FacebookResponse = JsonResponse<"/v2/facebook", "get", 200>;
|
|
26
|
-
export interface
|
|
27
|
-
baseUrl: string;
|
|
27
|
+
export interface PageSolverClientConfig {
|
|
28
28
|
businessKey: string;
|
|
29
|
+
baseUrl?: string;
|
|
29
30
|
fetch?: typeof globalThis.fetch;
|
|
30
31
|
headers?: HeadersInit;
|
|
31
32
|
}
|
|
33
|
+
export interface PageSolverSdkConfig extends PageSolverClientConfig {
|
|
34
|
+
}
|
|
32
35
|
export interface RequestOptions {
|
|
33
36
|
headers?: HeadersInit;
|
|
34
37
|
signal?: AbortSignal;
|
|
@@ -49,12 +52,12 @@ export declare class PageSolverApiError<TData = PageSolverApiErrorResponse> exte
|
|
|
49
52
|
readonly url: string;
|
|
50
53
|
constructor(message: string, options: PageSolverApiErrorOptions<TData>);
|
|
51
54
|
}
|
|
52
|
-
export declare class
|
|
55
|
+
export declare class PageSolverClient {
|
|
53
56
|
private readonly baseUrl;
|
|
54
57
|
private readonly businessKey;
|
|
55
58
|
private readonly fetchImpl;
|
|
56
59
|
private readonly defaultHeaders?;
|
|
57
|
-
constructor(config:
|
|
60
|
+
constructor(config: PageSolverClientConfig);
|
|
58
61
|
getModules(options?: RequestOptions): Promise<ModulesResponse>;
|
|
59
62
|
getShowcases(options?: CollectionFilterOptions): Promise<ShowcasesResponse>;
|
|
60
63
|
getComparisons(options?: CollectionFilterOptions): Promise<ComparisonsResponse>;
|
|
@@ -63,6 +66,11 @@ export declare class PageSolverSdk {
|
|
|
63
66
|
submitContact(payload: ContactPayload, options?: RequestOptions): Promise<ContactResponse>;
|
|
64
67
|
private request;
|
|
65
68
|
}
|
|
66
|
-
export declare function
|
|
69
|
+
export declare function createClient(config: PageSolverClientConfig): PageSolverClient;
|
|
70
|
+
/**
|
|
71
|
+
* @deprecated Use createClient instead.
|
|
72
|
+
*/
|
|
73
|
+
export declare function createPageSolverSdk(config: PageSolverSdkConfig): PageSolverClient;
|
|
74
|
+
export { PageSolverClient as PageSolverSdk };
|
|
67
75
|
export type { components, paths } from "./generated/schema.js";
|
|
68
76
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;AACjC,KAAK,SAAS,CACZ,IAAI,SAAS,MAAM,KAAK,EACxB,MAAM,SAAS,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,IAC3C,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAErC,KAAK,eAAe,CAClB,IAAI,SAAS,MAAM,KAAK,EACxB,MAAM,SAAS,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,IAC3C,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS;IAClC,WAAW,EAAE;QACX,OAAO,EAAE;YACP,kBAAkB,EAAE,MAAM,IAAI,CAAC;SAChC,CAAC;KACH,CAAC;CACH,GACG,IAAI,GACJ,KAAK,CAAC;AAEV,KAAK,YAAY,CACf,IAAI,SAAS,MAAM,KAAK,EACxB,MAAM,SAAS,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,EAC7C,MAAM,SAAS,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,IACvD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,SAAS;IACvD,OAAO,EAAE;QACP,kBAAkB,EAAE,MAAM,IAAI,CAAC;KAChC,CAAC;CACH,GACG,IAAI,GACJ,KAAK,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACvC,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC;AACjD,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAExE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export const PAGESOLVER_PRODUCTION_BASE_URL = "https://nojpnistalabissmttgw.supabase.co/functions/v1/websites";
|
|
1
2
|
export class PageSolverApiError extends Error {
|
|
2
3
|
status;
|
|
3
4
|
data;
|
|
@@ -12,22 +13,19 @@ export class PageSolverApiError extends Error {
|
|
|
12
13
|
this.url = options.url;
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
|
-
export class
|
|
16
|
+
export class PageSolverClient {
|
|
16
17
|
baseUrl;
|
|
17
18
|
businessKey;
|
|
18
19
|
fetchImpl;
|
|
19
20
|
defaultHeaders;
|
|
20
21
|
constructor(config) {
|
|
21
|
-
if (!config.baseUrl) {
|
|
22
|
-
throw new Error("PageSolver SDK requires a baseUrl.");
|
|
23
|
-
}
|
|
24
22
|
if (!config.businessKey) {
|
|
25
23
|
throw new Error("PageSolver SDK requires a businessKey.");
|
|
26
24
|
}
|
|
27
25
|
if (!config.fetch && typeof globalThis.fetch !== "function") {
|
|
28
26
|
throw new Error("PageSolver SDK requires a fetch implementation in this runtime.");
|
|
29
27
|
}
|
|
30
|
-
this.baseUrl = normalizeBaseUrl(config.baseUrl);
|
|
28
|
+
this.baseUrl = normalizeBaseUrl(config.baseUrl ?? PAGESOLVER_PRODUCTION_BASE_URL);
|
|
31
29
|
this.businessKey = config.businessKey;
|
|
32
30
|
this.fetchImpl = config.fetch ?? globalThis.fetch;
|
|
33
31
|
this.defaultHeaders = config.headers;
|
|
@@ -104,9 +102,16 @@ export class PageSolverSdk {
|
|
|
104
102
|
return payload;
|
|
105
103
|
}
|
|
106
104
|
}
|
|
105
|
+
export function createClient(config) {
|
|
106
|
+
return new PageSolverClient(config);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated Use createClient instead.
|
|
110
|
+
*/
|
|
107
111
|
export function createPageSolverSdk(config) {
|
|
108
|
-
return
|
|
112
|
+
return createClient(config);
|
|
109
113
|
}
|
|
114
|
+
export { PageSolverClient as PageSolverSdk };
|
|
110
115
|
function normalizeBaseUrl(baseUrl) {
|
|
111
116
|
return baseUrl.replace(/\/+$/, "");
|
|
112
117
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagesolver/sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Typed TypeScript SDK for the public PageSolver websites API.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Prompt Solutions"
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
"bugs": {
|
|
18
18
|
"url": "https://github.com/zekepari/pagesolver/issues"
|
|
19
19
|
},
|
|
20
|
+
"pagesolver": {
|
|
21
|
+
"apiVersion": "2.0.0"
|
|
22
|
+
},
|
|
20
23
|
"keywords": [
|
|
21
24
|
"pagesolver",
|
|
22
25
|
"sdk",
|