@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 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 { createPageSolverSdk } from "@pagesolver/sdk";
14
+ import { createClient } from "@pagesolver/sdk";
19
15
 
20
- const sdk = createPageSolverSdk({
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
- ## Regenerate
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
- ## Verify
26
+ Pass `baseUrl` only when you explicitly want a non-production backend, such as local or preview:
42
27
 
43
- ```bash
44
- bun run sdk:check
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
- ## Build
35
+ ## API
48
36
 
49
- ```bash
50
- bun run sdk:build
51
- ```
37
+ - `getModules()`
38
+ - `getShowcases({ collection? })`
39
+ - `getComparisons({ collection? })`
40
+ - `getReviews()`
41
+ - `getFacebook()`
42
+ - `submitContact(payload)`
52
43
 
53
- ## Publish
44
+ ## Errors
54
45
 
55
- ```bash
56
- bun run sdk:publish
57
- ```
58
-
59
- For prereleases or alternate npm tags:
46
+ Non-2xx responses throw `PageSolverApiError`.
60
47
 
61
- ```bash
62
- cd packages/sdk
63
- bun publish --access public --tag next
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 PageSolverSdkConfig {
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 PageSolverSdk {
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: PageSolverSdkConfig);
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 createPageSolverSdk(config: PageSolverSdkConfig): PageSolverSdk;
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
@@ -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,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,kBAAkB,CAAC,KAAK,GAAG,0BAA0B,CAAE,SAAQ,KAAK;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAET,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC;CAQvE;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAc;gBAElC,MAAM,EAAE,mBAAmB;IAqBvC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAO9D,YAAY,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS/E,cAAc,CACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAS/B,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAO9D,WAAW,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOhE,aAAa,CACX,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC;YAQb,OAAO;CA6CtB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAE9E;AAyDD,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC"}
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 PageSolverSdk {
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 new PageSolverSdk(config);
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.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",