@pagesolver/sdk 1.4.0 → 2.0.1

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
@@ -1,158 +1,74 @@
1
- # PageSolver SDK
1
+ # `@pagesolver/sdk`
2
2
 
3
- Official TypeScript/JavaScript SDK for the PageSolver API.
3
+ Typed TypeScript SDK for the public PageSolver `websites` API.
4
4
 
5
- ## Installation
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
+ ## Install
6
10
 
7
11
  ```bash
8
12
  npm install @pagesolver/sdk
9
- # or
10
- bun add @pagesolver/sdk
11
- # or
12
- yarn add @pagesolver/sdk
13
13
  ```
14
14
 
15
- ## Quick Start
16
-
17
- ```typescript
18
- import { PageSolverClient } from "@pagesolver/sdk";
15
+ ## Usage
19
16
 
20
- const client = new PageSolverClient("your-business-key");
17
+ ```ts
18
+ import { createClient } from "@pagesolver/sdk";
21
19
 
22
- // Get comparisons - returns array directly
23
- const comparisons = await client.getComparisons();
24
- console.log(comparisons); // ComparisonImage[]
25
-
26
- // Get showcases - returns array directly
27
- const showcases = await client.getShowcases();
28
- console.log(showcases); // ShowcaseImage[]
20
+ const sdk = createClient({
21
+ businessKey: process.env.PAGESOLVER_BUSINESS_KEY!,
22
+ });
29
23
 
30
- // Google Business Profile reviews
31
- const reviews = await client.getGoogleReviews();
24
+ const modules = await sdk.getModules();
25
+ const showcases = await sdk.getShowcases({ collection: "Bathrooms" });
26
+ ```
32
27
 
33
- // Check which modules are enabled for this business
34
- const modules = await client.getModules();
35
- console.log(modules); // e.g. ["comparison_gallery", "google_review_display", ...]
28
+ The SDK targets the production PageSolver `websites` Edge Function by default.
36
29
 
37
- // Latest social posts
38
- const instagram = await client.getInstagramPosts();
39
- const facebook = await client.getFacebookPosts();
30
+ Pass `baseUrl` only when you explicitly want a non-production backend, such as local or preview:
40
31
 
41
- // Smart contact submissions (any flat JSON payload works)
42
- const contact = await client.contact({
43
- name: "John Doe",
44
- email: "john@example.com",
45
- service: "Detailing",
46
- requested_date: "2025-03-10",
32
+ ```ts
33
+ const sdk = createClient({
34
+ businessKey: process.env.PAGESOLVER_BUSINESS_KEY!,
35
+ baseUrl: "https://your-preview-project.supabase.co/functions/v1/websites",
47
36
  });
37
+ ```
48
38
 
49
- console.log(contact.success, contact.contactId);
39
+ ## Regenerate
40
+
41
+ ```bash
42
+ bun run sdk:generate
50
43
  ```
51
44
 
52
- ## API Reference
45
+ The SDK contract version is synced from:
53
46
 
54
- ### PageSolverClient
47
+ - [infra/supabase/functions/websites/openapi.json](/Users/zekepari/Documents/GitHub/pagesolver/infra/supabase/functions/websites/openapi.json)
55
48
 
56
- #### Constructor
49
+ The npm package version may advance independently for SDK ergonomics and runtime improvements.
57
50
 
58
- ```typescript
59
- new PageSolverClient(businessKey: string)
51
+ ## Verify
52
+
53
+ ```bash
54
+ bun run sdk:check
60
55
  ```
61
56
 
62
- - `businessKey`: Your PageSolver business API key
63
-
64
- #### Methods
65
-
66
- | Method | Description | Return Type |
67
- | --- | --- | --- |
68
- | `getComparisons()` | Fetch before/after comparison images | `ComparisonImage[]` |
69
- | `getShowcases()` | Fetch showcase gallery images | `ShowcaseImage[]` |
70
- | `getGoogleReviews()` | Fetch Google Business Profile reviews + metadata | `GoogleReviewsResponse` |
71
- | `getModules()` | Get list of activated modules for the business | `Module[]` |
72
- | `getInstagramPosts()` | Fetch recent Instagram posts (requires connected account) | `SocialMediaResponse` |
73
- | `getFacebookPosts()` | Fetch recent Facebook posts (requires connected account) | `SocialMediaResponse` |
74
- | `contact(data)` | Submit a contact form payload (flat JSON object) | `ContactResponse` |
75
-
76
- All methods throw an `Error` when the API responds with a non-2xx status, so wrap calls in `try/catch` if you want to handle failures gracefully.
77
-
78
- ```typescript
79
- try {
80
- const comparisons = await client.getComparisons();
81
- console.log(`Found ${comparisons.length} comparisons`);
82
- } catch (error) {
83
- console.error("Failed to load comparisons", error);
84
- }
85
-
86
- const contact = await client.contact({
87
- name: "Fresh & Clean",
88
- phone: "+1 555-0100",
89
- message: "Need a quote",
90
- source: "website-landing",
91
- budget: 250,
92
- });
57
+ ## Build
93
58
 
94
- console.log(contact.message); // "Contact submission received successfully"
59
+ ```bash
60
+ bun run sdk:build
95
61
  ```
96
62
 
97
- ## Types
98
-
99
- ### Notable Types
100
-
101
- ```typescript
102
- interface ComparisonImage {
103
- id: string;
104
- business_id: number;
105
- before_url: string;
106
- after_url: string;
107
- title: string;
108
- description: string | null;
109
- updated_at: string;
110
- created_at: string;
111
- }
112
-
113
- interface ShowcaseImage {
114
- id: string;
115
- business_id: number;
116
- image_url: string[];
117
- title: string;
118
- description: string | null;
119
- updated_at: string;
120
- created_at: string;
121
- }
122
-
123
- type ContactData = Record<string, unknown>; // any flat key/value payload
124
-
125
- interface ContactResponse {
126
- success: boolean;
127
- message: string;
128
- contactId: string | null;
129
- }
130
-
131
- interface GoogleReviewsResponse {
132
- business: BusinessInfo; // includes id, name, optional website/phone
133
- rating: number | null;
134
- totalReviews: number;
135
- reviews: GoogleReview[];
136
- }
137
-
138
- interface SocialMediaResponse {
139
- business: BusinessInfo;
140
- posts: FacebookPost[] | InstagramPost[];
141
- platform: "facebook" | "instagram";
142
- }
143
-
144
- // Module types - used for feature detection
145
- type Module =
146
- | "comparison_gallery"
147
- | "showcase_gallery"
148
- | "smart_contact"
149
- | "google_review_display"
150
- | "google_review_requests"
151
- | "facebook_feed_sync"
152
- | "instagram_feed_sync"
153
- | "xero_payment_notifications";
63
+ ## Publish
64
+
65
+ ```bash
66
+ bun run sdk:publish
154
67
  ```
155
68
 
156
- ## License
69
+ For prereleases or alternate npm tags:
157
70
 
158
- MIT
71
+ ```bash
72
+ cd packages/sdk
73
+ bun publish --access public --tag next
74
+ ```
@@ -0,0 +1,427 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/v2/modules": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** List enabled website modules */
14
+ get: {
15
+ parameters: {
16
+ query?: never;
17
+ header?: never;
18
+ path?: never;
19
+ cookie?: never;
20
+ };
21
+ requestBody?: never;
22
+ responses: {
23
+ /** @description Enabled modules */
24
+ 200: {
25
+ headers: {
26
+ [name: string]: unknown;
27
+ };
28
+ content: {
29
+ "application/json": {
30
+ modules: string[];
31
+ };
32
+ };
33
+ };
34
+ /** @description Missing business key */
35
+ 400: {
36
+ headers: {
37
+ [name: string]: unknown;
38
+ };
39
+ content: {
40
+ "application/json": components["schemas"]["ErrorResponse"];
41
+ };
42
+ };
43
+ /** @description Invalid business key */
44
+ 401: {
45
+ headers: {
46
+ [name: string]: unknown;
47
+ };
48
+ content: {
49
+ "application/json": components["schemas"]["ErrorResponse"];
50
+ };
51
+ };
52
+ };
53
+ };
54
+ put?: never;
55
+ post?: never;
56
+ delete?: never;
57
+ options?: never;
58
+ head?: never;
59
+ patch?: never;
60
+ trace?: never;
61
+ };
62
+ "/v2/showcases": {
63
+ parameters: {
64
+ query?: never;
65
+ header?: never;
66
+ path?: never;
67
+ cookie?: never;
68
+ };
69
+ /** List showcase items */
70
+ get: {
71
+ parameters: {
72
+ query?: {
73
+ /** @description Optional showcase collection name filter. */
74
+ collection?: string;
75
+ };
76
+ header?: never;
77
+ path?: never;
78
+ cookie?: never;
79
+ };
80
+ requestBody?: never;
81
+ responses: {
82
+ /** @description Showcases and available collections */
83
+ 200: {
84
+ headers: {
85
+ [name: string]: unknown;
86
+ };
87
+ content: {
88
+ "application/json": {
89
+ showcases: components["schemas"]["Showcase"][];
90
+ collections: components["schemas"]["Collection"][];
91
+ };
92
+ };
93
+ };
94
+ /** @description Showcase module is not enabled */
95
+ 403: {
96
+ headers: {
97
+ [name: string]: unknown;
98
+ };
99
+ content: {
100
+ "application/json": components["schemas"]["ErrorResponse"];
101
+ };
102
+ };
103
+ };
104
+ };
105
+ put?: never;
106
+ post?: never;
107
+ delete?: never;
108
+ options?: never;
109
+ head?: never;
110
+ patch?: never;
111
+ trace?: never;
112
+ };
113
+ "/v2/comparisons": {
114
+ parameters: {
115
+ query?: never;
116
+ header?: never;
117
+ path?: never;
118
+ cookie?: never;
119
+ };
120
+ /** List comparison items */
121
+ get: {
122
+ parameters: {
123
+ query?: {
124
+ /** @description Optional comparison collection name filter. */
125
+ collection?: string;
126
+ };
127
+ header?: never;
128
+ path?: never;
129
+ cookie?: never;
130
+ };
131
+ requestBody?: never;
132
+ responses: {
133
+ /** @description Comparisons and available collections */
134
+ 200: {
135
+ headers: {
136
+ [name: string]: unknown;
137
+ };
138
+ content: {
139
+ "application/json": {
140
+ comparisons: components["schemas"]["Comparison"][];
141
+ collections: components["schemas"]["Collection"][];
142
+ };
143
+ };
144
+ };
145
+ /** @description Comparison module is not enabled */
146
+ 403: {
147
+ headers: {
148
+ [name: string]: unknown;
149
+ };
150
+ content: {
151
+ "application/json": components["schemas"]["ErrorResponse"];
152
+ };
153
+ };
154
+ };
155
+ };
156
+ put?: never;
157
+ post?: never;
158
+ delete?: never;
159
+ options?: never;
160
+ head?: never;
161
+ patch?: never;
162
+ trace?: never;
163
+ };
164
+ "/v2/contact": {
165
+ parameters: {
166
+ query?: never;
167
+ header?: never;
168
+ path?: never;
169
+ cookie?: never;
170
+ };
171
+ get?: never;
172
+ put?: never;
173
+ /** Submit a website contact payload */
174
+ post: {
175
+ parameters: {
176
+ query?: never;
177
+ header?: never;
178
+ path?: never;
179
+ cookie?: never;
180
+ };
181
+ requestBody: {
182
+ content: {
183
+ "application/json": components["schemas"]["ContactPayload"];
184
+ };
185
+ };
186
+ responses: {
187
+ /** @description Contact submission accepted */
188
+ 200: {
189
+ headers: {
190
+ [name: string]: unknown;
191
+ };
192
+ content: {
193
+ "application/json": components["schemas"]["ContactResponse"];
194
+ };
195
+ };
196
+ /** @description Invalid form payload or missing business key */
197
+ 400: {
198
+ headers: {
199
+ [name: string]: unknown;
200
+ };
201
+ content: {
202
+ "application/json": components["schemas"]["ErrorResponse"];
203
+ };
204
+ };
205
+ /** @description Contact module is not enabled */
206
+ 403: {
207
+ headers: {
208
+ [name: string]: unknown;
209
+ };
210
+ content: {
211
+ "application/json": components["schemas"]["ErrorResponse"];
212
+ };
213
+ };
214
+ };
215
+ };
216
+ delete?: never;
217
+ options?: never;
218
+ head?: never;
219
+ patch?: never;
220
+ trace?: never;
221
+ };
222
+ "/v2/reviews": {
223
+ parameters: {
224
+ query?: never;
225
+ header?: never;
226
+ path?: never;
227
+ cookie?: never;
228
+ };
229
+ /** Fetch reviews for the website */
230
+ get: {
231
+ parameters: {
232
+ query?: never;
233
+ header?: never;
234
+ path?: never;
235
+ cookie?: never;
236
+ };
237
+ requestBody?: never;
238
+ responses: {
239
+ /** @description Google reviews for the website */
240
+ 200: {
241
+ headers: {
242
+ [name: string]: unknown;
243
+ };
244
+ content: {
245
+ "application/json": {
246
+ website: components["schemas"]["WebsiteSummary"];
247
+ rating: number | null;
248
+ userRatingCount: number;
249
+ reviews: components["schemas"]["GoogleReview"][];
250
+ };
251
+ };
252
+ };
253
+ /** @description Google review display is not enabled or OAuth is incomplete */
254
+ 403: {
255
+ headers: {
256
+ [name: string]: unknown;
257
+ };
258
+ content: {
259
+ "application/json": components["schemas"]["ErrorResponse"];
260
+ };
261
+ };
262
+ /** @description Google Business Profile is not configured */
263
+ 404: {
264
+ headers: {
265
+ [name: string]: unknown;
266
+ };
267
+ content: {
268
+ "application/json": components["schemas"]["ErrorResponse"];
269
+ };
270
+ };
271
+ };
272
+ };
273
+ put?: never;
274
+ post?: never;
275
+ delete?: never;
276
+ options?: never;
277
+ head?: never;
278
+ patch?: never;
279
+ trace?: never;
280
+ };
281
+ "/v2/facebook": {
282
+ parameters: {
283
+ query?: never;
284
+ header?: never;
285
+ path?: never;
286
+ cookie?: never;
287
+ };
288
+ /** Fetch Facebook content for the website */
289
+ get: {
290
+ parameters: {
291
+ query?: never;
292
+ header?: never;
293
+ path?: never;
294
+ cookie?: never;
295
+ };
296
+ requestBody?: never;
297
+ responses: {
298
+ /** @description Facebook posts for the website */
299
+ 200: {
300
+ headers: {
301
+ [name: string]: unknown;
302
+ };
303
+ content: {
304
+ "application/json": {
305
+ website: components["schemas"]["WebsiteSummary"];
306
+ /** @enum {string} */
307
+ platform: "facebook";
308
+ posts: components["schemas"]["FacebookPost"][];
309
+ };
310
+ };
311
+ };
312
+ /** @description Facebook feed module is not enabled */
313
+ 403: {
314
+ headers: {
315
+ [name: string]: unknown;
316
+ };
317
+ content: {
318
+ "application/json": components["schemas"]["ErrorResponse"];
319
+ };
320
+ };
321
+ /** @description Facebook is not connected */
322
+ 404: {
323
+ headers: {
324
+ [name: string]: unknown;
325
+ };
326
+ content: {
327
+ "application/json": components["schemas"]["ErrorResponse"];
328
+ };
329
+ };
330
+ };
331
+ };
332
+ put?: never;
333
+ post?: never;
334
+ delete?: never;
335
+ options?: never;
336
+ head?: never;
337
+ patch?: never;
338
+ trace?: never;
339
+ };
340
+ }
341
+ export type webhooks = Record<string, never>;
342
+ export interface components {
343
+ schemas: {
344
+ Collection: {
345
+ /** Format: uuid */
346
+ id: string;
347
+ name: string;
348
+ };
349
+ Showcase: {
350
+ /** Format: uuid */
351
+ id: string;
352
+ business_id: number;
353
+ title: string;
354
+ description?: string | null;
355
+ image_url: string[];
356
+ /** Format: uuid */
357
+ collection_id?: string | null;
358
+ /** Format: date-time */
359
+ created_at: string;
360
+ /** Format: date-time */
361
+ updated_at: string;
362
+ collection?: components["schemas"]["Collection"] | null;
363
+ };
364
+ Comparison: {
365
+ /** Format: uuid */
366
+ id: string;
367
+ business_id: number;
368
+ title: string;
369
+ description?: string | null;
370
+ before_url: string;
371
+ after_url: string;
372
+ /** Format: uuid */
373
+ collection_id?: string | null;
374
+ /** Format: date-time */
375
+ created_at: string;
376
+ /** Format: date-time */
377
+ updated_at: string;
378
+ collection?: components["schemas"]["Collection"] | null;
379
+ };
380
+ WebsiteSummary: {
381
+ id: string;
382
+ name: string;
383
+ url?: string | null;
384
+ };
385
+ GoogleReview: {
386
+ rating: number;
387
+ author: string;
388
+ authorPhoto?: string | null;
389
+ text: string;
390
+ publishTime: string;
391
+ relativePublishTime: string;
392
+ };
393
+ FacebookPost: {
394
+ id: string;
395
+ message?: string | null;
396
+ story?: string | null;
397
+ full_picture?: string | null;
398
+ permalink_url: string;
399
+ created_time: string;
400
+ type?: string | null;
401
+ status_type?: string | null;
402
+ is_published?: boolean | null;
403
+ };
404
+ /** @description Arbitrary website contact payload. Values are normalized to strings before storage. */
405
+ ContactPayload: {
406
+ [key: string]: unknown;
407
+ };
408
+ ContactResponse: {
409
+ success: boolean;
410
+ message: string;
411
+ /** Format: uuid */
412
+ contactId: string | null;
413
+ };
414
+ ErrorResponse: {
415
+ error: string;
416
+ details?: unknown;
417
+ };
418
+ };
419
+ responses: never;
420
+ parameters: never;
421
+ requestBodies: never;
422
+ headers: never;
423
+ pathItems: never;
424
+ }
425
+ export type $defs = Record<string, never>;
426
+ export type operations = Record<string, never>;
427
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/generated/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IAClB,aAAa,EAAE;QACX,UAAU,EAAE;YACR,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,MAAM,CAAC,EAAE,KAAK,CAAC;SAClB,CAAC;QACF,mCAAmC;QACnC,GAAG,EAAE;YACD,UAAU,EAAE;gBACR,KAAK,CAAC,EAAE,KAAK,CAAC;gBACd,MAAM,CAAC,EAAE,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,MAAM,CAAC,EAAE,KAAK,CAAC;aAClB,CAAC;YACF,WAAW,CAAC,EAAE,KAAK,CAAC;YACpB,SAAS,EAAE;gBACP,mCAAmC;gBACnC,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE;4BAChB,OAAO,EAAE,MAAM,EAAE,CAAC;yBACrB,CAAC;qBACL,CAAC;iBACL,CAAC;gBACF,wCAAwC;gBACxC,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;gBACF,wCAAwC;gBACxC,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;aACL,CAAC;SACL,CAAC;QACF,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;IACF,eAAe,EAAE;QACb,UAAU,EAAE;YACR,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,MAAM,CAAC,EAAE,KAAK,CAAC;SAClB,CAAC;QACF,0BAA0B;QAC1B,GAAG,EAAE;YACD,UAAU,EAAE;gBACR,KAAK,CAAC,EAAE;oBACJ,6DAA6D;oBAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;iBACvB,CAAC;gBACF,MAAM,CAAC,EAAE,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,MAAM,CAAC,EAAE,KAAK,CAAC;aAClB,CAAC;YACF,WAAW,CAAC,EAAE,KAAK,CAAC;YACpB,SAAS,EAAE;gBACP,uDAAuD;gBACvD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE;4BAChB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC/C,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;yBACtD,CAAC;qBACL,CAAC;iBACL,CAAC;gBACF,kDAAkD;gBAClD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;aACL,CAAC;SACL,CAAC;QACF,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;IACF,iBAAiB,EAAE;QACf,UAAU,EAAE;YACR,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,MAAM,CAAC,EAAE,KAAK,CAAC;SAClB,CAAC;QACF,4BAA4B;QAC5B,GAAG,EAAE;YACD,UAAU,EAAE;gBACR,KAAK,CAAC,EAAE;oBACJ,+DAA+D;oBAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;iBACvB,CAAC;gBACF,MAAM,CAAC,EAAE,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,MAAM,CAAC,EAAE,KAAK,CAAC;aAClB,CAAC;YACF,WAAW,CAAC,EAAE,KAAK,CAAC;YACpB,SAAS,EAAE;gBACP,yDAAyD;gBACzD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE;4BAChB,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;4BACnD,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;yBACtD,CAAC;qBACL,CAAC;iBACL,CAAC;gBACF,oDAAoD;gBACpD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;aACL,CAAC;SACL,CAAC;QACF,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;IACF,aAAa,EAAE;QACX,UAAU,EAAE;YACR,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,MAAM,CAAC,EAAE,KAAK,CAAC;SAClB,CAAC;QACF,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,uCAAuC;QACvC,IAAI,EAAE;YACF,UAAU,EAAE;gBACR,KAAK,CAAC,EAAE,KAAK,CAAC;gBACd,MAAM,CAAC,EAAE,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,MAAM,CAAC,EAAE,KAAK,CAAC;aAClB,CAAC;YACF,WAAW,EAAE;gBACT,OAAO,EAAE;oBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;iBAC/D,CAAC;aACL,CAAC;YACF,SAAS,EAAE;gBACP,+CAA+C;gBAC/C,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;qBAChE,CAAC;iBACL,CAAC;gBACF,gEAAgE;gBAChE,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;gBACF,iDAAiD;gBACjD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;aACL,CAAC;SACL,CAAC;QACF,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;IACF,aAAa,EAAE;QACX,UAAU,EAAE;YACR,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,MAAM,CAAC,EAAE,KAAK,CAAC;SAClB,CAAC;QACF,oCAAoC;QACpC,GAAG,EAAE;YACD,UAAU,EAAE;gBACR,KAAK,CAAC,EAAE,KAAK,CAAC;gBACd,MAAM,CAAC,EAAE,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,MAAM,CAAC,EAAE,KAAK,CAAC;aAClB,CAAC;YACF,WAAW,CAAC,EAAE,KAAK,CAAC;YACpB,SAAS,EAAE;gBACP,kDAAkD;gBAClD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE;4BAChB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;4BACjD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;4BACtB,eAAe,EAAE,MAAM,CAAC;4BACxB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;yBACpD,CAAC;qBACL,CAAC;iBACL,CAAC;gBACF,+EAA+E;gBAC/E,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;gBACF,6DAA6D;gBAC7D,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;aACL,CAAC;SACL,CAAC;QACF,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;IACF,cAAc,EAAE;QACZ,UAAU,EAAE;YACR,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,MAAM,CAAC,EAAE,KAAK,CAAC;SAClB,CAAC;QACF,6CAA6C;QAC7C,GAAG,EAAE;YACD,UAAU,EAAE;gBACR,KAAK,CAAC,EAAE,KAAK,CAAC;gBACd,MAAM,CAAC,EAAE,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,MAAM,CAAC,EAAE,KAAK,CAAC;aAClB,CAAC;YACF,WAAW,CAAC,EAAE,KAAK,CAAC;YACpB,SAAS,EAAE;gBACP,kDAAkD;gBAClD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE;4BAChB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;4BACjD,qBAAqB;4BACrB,QAAQ,EAAE,UAAU,CAAC;4BACrB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;yBAClD,CAAC;qBACL,CAAC;iBACL,CAAC;gBACF,uDAAuD;gBACvD,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;gBACF,6CAA6C;gBAC7C,GAAG,EAAE;oBACD,OAAO,EAAE;wBACL,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;qBAC3B,CAAC;oBACF,OAAO,EAAE;wBACL,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;qBAC9D,CAAC;iBACL,CAAC;aACL,CAAC;SACL,CAAC;QACF,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;CACL;AACD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7C,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE;QACL,UAAU,EAAE;YACR,mBAAmB;YACnB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,EAAE;YACN,mBAAmB;YACnB,EAAE,EAAE,MAAM,CAAC;YACX,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;YACpB,mBAAmB;YACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC9B,wBAAwB;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,wBAAwB;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;SAC3D,CAAC;QACF,UAAU,EAAE;YACR,mBAAmB;YACnB,EAAE,EAAE,MAAM,CAAC;YACX,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,mBAAmB;YACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC9B,wBAAwB;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,wBAAwB;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;SAC3D,CAAC;QACF,cAAc,EAAE;YACZ,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SACvB,CAAC;QACF,YAAY,EAAE;YACV,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC5B,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,mBAAmB,EAAE,MAAM,CAAC;SAC/B,CAAC;QACF,YAAY,EAAE;YACV,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC7B,aAAa,EAAE,MAAM,CAAC;YACtB,YAAY,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC5B,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;SACjC,CAAC;QACF,uGAAuG;QACvG,cAAc,EAAE;YACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SAC1B,CAAC;QACF,eAAe,EAAE;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,mBAAmB;YACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;SAC5B,CAAC;QACF,aAAa,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;KACL,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,KAAK,CAAC;CACpB;AACD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,16 +1,76 @@
1
- import type { ComparisonImage, ContactData, ContactResponse, GoogleReviewsResponse, Module, ShowcaseImage, SocialMediaResponse } from "./types";
1
+ import type { components, paths } from "./generated/schema.js";
2
+ export declare const PAGESOLVER_PRODUCTION_BASE_URL = "https://nojpnistalabissmttgw.supabase.co/functions/v1/websites";
3
+ type HttpMethod = "get" | "post";
4
+ type Operation<Path extends keyof paths, Method extends keyof paths[Path] & HttpMethod> = NonNullable<paths[Path][Method]>;
5
+ type JsonRequestBody<Path extends keyof paths, Method extends keyof paths[Path] & HttpMethod> = Operation<Path, Method> extends {
6
+ requestBody: {
7
+ content: {
8
+ "application/json": infer Body;
9
+ };
10
+ };
11
+ } ? Body : never;
12
+ type JsonResponse<Path extends keyof paths, Method extends keyof paths[Path] & HttpMethod, Status extends keyof Operation<Path, Method>["responses"]> = Operation<Path, Method>["responses"][Status] extends {
13
+ content: {
14
+ "application/json": infer Body;
15
+ };
16
+ } ? Body : never;
17
+ export type PageSolverApiPaths = paths;
18
+ export type PageSolverApiComponents = components;
19
+ export type PageSolverApiErrorResponse = components["schemas"]["ErrorResponse"];
20
+ export type ContactPayload = JsonRequestBody<"/v2/contact", "post">;
21
+ export type ContactResponse = JsonResponse<"/v2/contact", "post", 200>;
22
+ export type ModulesResponse = JsonResponse<"/v2/modules", "get", 200>;
23
+ export type ShowcasesResponse = JsonResponse<"/v2/showcases", "get", 200>;
24
+ export type ComparisonsResponse = JsonResponse<"/v2/comparisons", "get", 200>;
25
+ export type ReviewsResponse = JsonResponse<"/v2/reviews", "get", 200>;
26
+ export type FacebookResponse = JsonResponse<"/v2/facebook", "get", 200>;
27
+ export interface PageSolverClientConfig {
28
+ businessKey: string;
29
+ baseUrl?: string;
30
+ fetch?: typeof globalThis.fetch;
31
+ headers?: HeadersInit;
32
+ }
33
+ export interface PageSolverSdkConfig extends PageSolverClientConfig {
34
+ }
35
+ export interface RequestOptions {
36
+ headers?: HeadersInit;
37
+ signal?: AbortSignal;
38
+ }
39
+ export interface CollectionFilterOptions extends RequestOptions {
40
+ collection?: string;
41
+ }
42
+ export interface PageSolverApiErrorOptions<TData> {
43
+ status: number;
44
+ data: TData | null;
45
+ response: Response;
46
+ url: string;
47
+ }
48
+ export declare class PageSolverApiError<TData = PageSolverApiErrorResponse> extends Error {
49
+ readonly status: number;
50
+ readonly data: TData | null;
51
+ readonly response: Response;
52
+ readonly url: string;
53
+ constructor(message: string, options: PageSolverApiErrorOptions<TData>);
54
+ }
2
55
  export declare class PageSolverClient {
3
- private baseUrl;
4
- private businessKey;
5
- constructor(businessKey: string);
56
+ private readonly baseUrl;
57
+ private readonly businessKey;
58
+ private readonly fetchImpl;
59
+ private readonly defaultHeaders?;
60
+ constructor(config: PageSolverClientConfig);
61
+ getModules(options?: RequestOptions): Promise<ModulesResponse>;
62
+ getShowcases(options?: CollectionFilterOptions): Promise<ShowcasesResponse>;
63
+ getComparisons(options?: CollectionFilterOptions): Promise<ComparisonsResponse>;
64
+ getReviews(options?: RequestOptions): Promise<ReviewsResponse>;
65
+ getFacebook(options?: RequestOptions): Promise<FacebookResponse>;
66
+ submitContact(payload: ContactPayload, options?: RequestOptions): Promise<ContactResponse>;
6
67
  private request;
7
- getComparisons(): Promise<ComparisonImage[]>;
8
- getShowcases(): Promise<ShowcaseImage[]>;
9
- getGoogleReviews(): Promise<GoogleReviewsResponse>;
10
- getModules(): Promise<Module[]>;
11
- getInstagramPosts(): Promise<SocialMediaResponse>;
12
- getFacebookPosts(): Promise<SocialMediaResponse>;
13
- contact(data: ContactData): Promise<ContactResponse>;
14
68
  }
15
- export type { ComparisonImage, ComparisonsResponse, ShowcaseImage, ShowcasesResponse, ContactData, ContactResponse, GoogleReview, GoogleReviewsResponse, FacebookPost, InstagramPost, SocialMediaResponse, BusinessInfo, Module, ModulesResponse, } from "./types";
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 };
75
+ export type { components, paths } from "./generated/schema.js";
16
76
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAEf,WAAW,EACX,eAAe,EAGf,qBAAqB,EAErB,MAAM,EAEN,aAAa,EAEb,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;YAIjB,OAAO;IA0Cf,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAQ5C,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAQxC,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAOlD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM/B,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAOjD,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKhD,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAM3D;AAGD,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,MAAM,EACN,eAAe,GAChB,MAAM,SAAS,CAAC"}
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,eAAO,MAAM,8BAA8B,mEACuB,CAAC;AAEnE,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,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;CAAG;AAEtE,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,gBAAgB;IAC3B,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,sBAAsB;IAmB1C,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,YAAY,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAE7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,gBAAgB,CAEjF;AAED,OAAO,EAAE,gBAAgB,IAAI,aAAa,EAAE,CAAC;AAyD7C,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,151 @@
1
- class B{baseUrl="https://pagesolver.com/api/v1";businessKey;constructor(j){this.businessKey=j}async request(j,w={}){try{let q=`${this.baseUrl}${j}`,z={"Content-Type":"application/json","x-business-key":this.businessKey,...w.headers},k=await fetch(q,{...w,headers:z}),v;if(k.headers.get("Content-Type")?.includes("application/json"))v=await k.json();else v=await k.text();if(!k.ok){let A=v?.error||"An unknown error occurred";throw Error(`API Error (${k.status}): ${A}`)}return v}catch(q){if(q instanceof Error)throw q;throw Error("Network error occurred")}}async getComparisons(){return(await this.request("/business/comparisons")).comparisons}async getShowcases(){return(await this.request("/business/showcases")).showcases}async getGoogleReviews(){return await this.request("/business/google/reviews")}async getModules(){return(await this.request("/business/modules")).modules}async getInstagramPosts(){return await this.request("/business/social/instagram")}async getFacebookPosts(){return await this.request("/business/social/facebook")}async contact(j){return await this.request("/business/contact",{method:"POST",body:JSON.stringify(j)})}}export{B as PageSolverClient};
2
-
3
- //# debugId=FD76B09BB023C76364756E2164756E21
1
+ export const PAGESOLVER_PRODUCTION_BASE_URL = "https://nojpnistalabissmttgw.supabase.co/functions/v1/websites";
2
+ export class PageSolverApiError extends Error {
3
+ status;
4
+ data;
5
+ response;
6
+ url;
7
+ constructor(message, options) {
8
+ super(message);
9
+ this.name = "PageSolverApiError";
10
+ this.status = options.status;
11
+ this.data = options.data;
12
+ this.response = options.response;
13
+ this.url = options.url;
14
+ }
15
+ }
16
+ export class PageSolverClient {
17
+ baseUrl;
18
+ businessKey;
19
+ fetchImpl;
20
+ defaultHeaders;
21
+ constructor(config) {
22
+ if (!config.businessKey) {
23
+ throw new Error("PageSolver SDK requires a businessKey.");
24
+ }
25
+ if (!config.fetch && typeof globalThis.fetch !== "function") {
26
+ throw new Error("PageSolver SDK requires a fetch implementation in this runtime.");
27
+ }
28
+ this.baseUrl = normalizeBaseUrl(config.baseUrl ?? PAGESOLVER_PRODUCTION_BASE_URL);
29
+ this.businessKey = config.businessKey;
30
+ this.fetchImpl = config.fetch ?? globalThis.fetch;
31
+ this.defaultHeaders = config.headers;
32
+ }
33
+ getModules(options) {
34
+ return this.request("/v2/modules", {
35
+ method: "GET",
36
+ ...options,
37
+ });
38
+ }
39
+ getShowcases(options = {}) {
40
+ return this.request("/v2/showcases", {
41
+ method: "GET",
42
+ query: options.collection ? { collection: options.collection } : undefined,
43
+ headers: options.headers,
44
+ signal: options.signal,
45
+ });
46
+ }
47
+ getComparisons(options = {}) {
48
+ return this.request("/v2/comparisons", {
49
+ method: "GET",
50
+ query: options.collection ? { collection: options.collection } : undefined,
51
+ headers: options.headers,
52
+ signal: options.signal,
53
+ });
54
+ }
55
+ getReviews(options) {
56
+ return this.request("/v2/reviews", {
57
+ method: "GET",
58
+ ...options,
59
+ });
60
+ }
61
+ getFacebook(options) {
62
+ return this.request("/v2/facebook", {
63
+ method: "GET",
64
+ ...options,
65
+ });
66
+ }
67
+ submitContact(payload, options) {
68
+ return this.request("/v2/contact", {
69
+ method: "POST",
70
+ body: payload,
71
+ ...options,
72
+ });
73
+ }
74
+ async request(path, options) {
75
+ const url = buildRequestUrl(this.baseUrl, path, options.query);
76
+ const headers = new Headers(this.defaultHeaders);
77
+ headers.set("X-Business-Key", this.businessKey);
78
+ headers.set("Accept", "application/json");
79
+ if (options.headers) {
80
+ mergeHeaders(headers, options.headers);
81
+ }
82
+ let body;
83
+ if (options.body !== undefined) {
84
+ headers.set("Content-Type", "application/json");
85
+ body = JSON.stringify(options.body);
86
+ }
87
+ const response = await this.fetchImpl(url.toString(), {
88
+ method: options.method,
89
+ headers,
90
+ body,
91
+ signal: options.signal,
92
+ });
93
+ const payload = await parseJsonResponse(response);
94
+ if (!response.ok) {
95
+ throw new PageSolverApiError(getErrorMessage(payload, response.status), {
96
+ status: response.status,
97
+ data: payload,
98
+ response,
99
+ url: url.toString(),
100
+ });
101
+ }
102
+ return payload;
103
+ }
104
+ }
105
+ export function createClient(config) {
106
+ return new PageSolverClient(config);
107
+ }
108
+ /**
109
+ * @deprecated Use createClient instead.
110
+ */
111
+ export function createPageSolverSdk(config) {
112
+ return createClient(config);
113
+ }
114
+ export { PageSolverClient as PageSolverSdk };
115
+ function normalizeBaseUrl(baseUrl) {
116
+ return baseUrl.replace(/\/+$/, "");
117
+ }
118
+ function buildRequestUrl(baseUrl, path, query) {
119
+ const url = new URL(path.replace(/^\/+/, ""), `${baseUrl}/`);
120
+ if (!query) {
121
+ return url;
122
+ }
123
+ for (const [key, value] of Object.entries(query)) {
124
+ if (value === null || value === undefined) {
125
+ continue;
126
+ }
127
+ url.searchParams.set(key, String(value));
128
+ }
129
+ return url;
130
+ }
131
+ function mergeHeaders(target, source) {
132
+ new Headers(source).forEach((value, key) => {
133
+ target.set(key, value);
134
+ });
135
+ }
136
+ async function parseJsonResponse(response) {
137
+ const contentType = response.headers.get("content-type") ?? "";
138
+ if (!contentType.includes("application/json")) {
139
+ return null;
140
+ }
141
+ return response.json();
142
+ }
143
+ function getErrorMessage(payload, status) {
144
+ if (payload &&
145
+ typeof payload === "object" &&
146
+ "error" in payload &&
147
+ typeof payload.error === "string") {
148
+ return payload.error;
149
+ }
150
+ return `PageSolver request failed with status ${status}.`;
151
+ }
package/package.json CHANGED
@@ -1,61 +1,60 @@
1
1
  {
2
2
  "name": "@pagesolver/sdk",
3
- "version": "1.4.0",
4
- "description": "Official SDK for PageSolver API",
5
- "main": "dist/index.js",
6
- "module": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/index.js",
11
- "require": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
13
- }
3
+ "version": "2.0.1",
4
+ "description": "Typed TypeScript SDK for the public PageSolver websites API.",
5
+ "author": {
6
+ "name": "Prompt Solutions"
14
7
  },
15
- "files": [
16
- "dist"
17
- ],
18
- "scripts": {
19
- "build": "bun build src/index.ts --outdir dist --target node --minify --sourcemap=external && bun run build:types",
20
- "build:types": "bunx tsc --project tsconfig.build.json",
21
- "dev": "bun --watch src/index.ts",
22
- "test": "bun test",
23
- "lint": "bunx @biomejs/biome check src",
24
- "lint:fix": "bunx @biomejs/biome check --apply src",
25
- "type-check": "bunx tsc --noEmit",
26
- "prepare": "bun run build",
27
- "prepublishOnly": "bun run lint && bun run type-check && bun run test && bun run build",
28
- "version:patch": "npm version patch",
29
- "version:minor": "npm version minor",
30
- "version:major": "npm version major"
8
+ "license": "MIT",
9
+ "type": "module",
10
+ "sideEffects": false,
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/zekepari/pagesolver.git",
14
+ "directory": "packages/sdk"
15
+ },
16
+ "homepage": "https://pagesolver.com",
17
+ "bugs": {
18
+ "url": "https://github.com/zekepari/pagesolver/issues"
19
+ },
20
+ "pagesolver": {
21
+ "apiVersion": "2.0.0"
31
22
  },
32
23
  "keywords": [
33
24
  "pagesolver",
34
- "api",
35
25
  "sdk",
36
26
  "typescript",
37
- "web-development"
27
+ "openapi",
28
+ "supabase"
38
29
  ],
39
- "author": "PageSolver Team",
40
- "license": "MIT",
41
- "repository": {
42
- "type": "git",
43
- "url": "git+https://github.com/pagesolver/pagesolver-sdk.git"
44
- },
45
- "bugs": {
46
- "url": "https://github.com/pagesolver/pagesolver-sdk/issues"
30
+ "files": [
31
+ "dist",
32
+ "README.md"
33
+ ],
34
+ "main": "./dist/index.js",
35
+ "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "import": "./dist/index.js"
40
+ },
41
+ "./generated/schema": {
42
+ "types": "./dist/generated/schema.d.ts",
43
+ "import": "./dist/generated/schema.js"
44
+ }
47
45
  },
48
- "homepage": "https://github.com/pagesolver/pagesolver-sdk#readme",
49
- "devDependencies": {
50
- "@biomejs/biome": "^1.8.3",
51
- "@types/bun": "latest",
52
- "typescript": "^5.5.2"
46
+ "publishConfig": {
47
+ "access": "public"
53
48
  },
54
- "peerDependencies": {
55
- "typescript": ">=4.0.0"
49
+ "scripts": {
50
+ "generate": "openapi-typescript ../../infra/supabase/functions/websites/openapi.json -o ./src/generated/schema.ts",
51
+ "build:dist": "tsc --project tsconfig.build.json",
52
+ "build": "bun run --cwd ../.. sdk:sync-version && bun run generate && bun run build:dist",
53
+ "typecheck": "bun run --cwd ../.. sdk:sync-version && bun run generate && tsc --project tsconfig.build.json --noEmit",
54
+ "publish:npm": "bun publish --access public",
55
+ "prepublishOnly": "bun run build"
56
56
  },
57
- "engines": {
58
- "node": ">=18.0.0",
59
- "bun": ">=1.0.0"
57
+ "devDependencies": {
58
+ "typescript": "^5"
60
59
  }
61
60
  }
package/dist/index.js.map DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts"],
4
- "sourcesContent": [
5
- "// Import all types from the types file\nimport type {\n ComparisonImage,\n ComparisonsResponse,\n ContactData,\n ContactResponse,\n FacebookPost,\n GoogleReview,\n GoogleReviewsResponse,\n InstagramPost,\n Module,\n ModulesResponse,\n ShowcaseImage,\n ShowcasesResponse,\n SocialMediaResponse,\n} from \"./types\";\n\nexport class PageSolverClient {\n private baseUrl = \"https://pagesolver.com/api/v1\";\n private businessKey: string;\n\n constructor(businessKey: string) {\n this.businessKey = businessKey;\n }\n\n private async request<T>(\n endpoint: string,\n options: RequestInit = {}\n ): Promise<T> {\n try {\n const url = `${this.baseUrl}${endpoint}`;\n\n const headers = {\n \"Content-Type\": \"application/json\",\n \"x-business-key\": this.businessKey,\n ...options.headers,\n };\n\n const response = await fetch(url, {\n ...options,\n headers,\n });\n\n let data: unknown;\n const contentType = response.headers.get(\"Content-Type\");\n if (contentType?.includes(\"application/json\")) {\n data = await response.json();\n } else {\n data = await response.text();\n }\n\n if (!response.ok) {\n const errorMessage =\n (data as { error?: string })?.error || \"An unknown error occurred\";\n throw new Error(`API Error (${response.status}): ${errorMessage}`);\n }\n\n return data as T;\n } catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw new Error(\"Network error occurred\");\n }\n }\n\n // Comparison Images\n async getComparisons(): Promise<ComparisonImage[]> {\n const response = await this.request<ComparisonsResponse>(\n \"/business/comparisons\"\n );\n return response.comparisons;\n }\n\n // Showcase Images\n async getShowcases(): Promise<ShowcaseImage[]> {\n const response = await this.request<ShowcasesResponse>(\n \"/business/showcases\"\n );\n return response.showcases;\n }\n\n // Google Reviews\n async getGoogleReviews(): Promise<GoogleReviewsResponse> {\n return await this.request<GoogleReviewsResponse>(\n \"/business/google/reviews\"\n );\n }\n\n // Modules - Get all activated modules for the business\n async getModules(): Promise<Module[]> {\n const response = await this.request<ModulesResponse>(\"/business/modules\");\n return response.modules;\n }\n\n // Social Media - Instagram\n async getInstagramPosts(): Promise<SocialMediaResponse> {\n return await this.request<SocialMediaResponse>(\n \"/business/social/instagram\"\n );\n }\n\n // Social Media - Facebook\n async getFacebookPosts(): Promise<SocialMediaResponse> {\n return await this.request<SocialMediaResponse>(\"/business/social/facebook\");\n }\n\n // Contact\n async contact(data: ContactData): Promise<ContactResponse> {\n return await this.request<ContactResponse>(\"/business/contact\", {\n method: \"POST\",\n body: JSON.stringify(data),\n });\n }\n}\n\n// Re-export all types for consumers\nexport type {\n ComparisonImage,\n ComparisonsResponse,\n ShowcaseImage,\n ShowcasesResponse,\n ContactData,\n ContactResponse,\n GoogleReview,\n GoogleReviewsResponse,\n FacebookPost,\n InstagramPost,\n SocialMediaResponse,\n BusinessInfo,\n Module,\n ModulesResponse,\n} from \"./types\";\n"
6
- ],
7
- "mappings": "AAiBO,MAAM,CAAiB,CACpB,QAAU,gCACV,YAER,WAAW,CAAC,EAAqB,CAC/B,KAAK,YAAc,OAGP,QAAU,CACtB,EACA,EAAuB,CAAC,EACZ,CACZ,GAAI,CACF,IAAM,EAAM,GAAG,KAAK,UAAU,IAExB,EAAU,CACd,eAAgB,mBAChB,iBAAkB,KAAK,eACpB,EAAQ,OACb,EAEM,EAAW,MAAM,MAAM,EAAK,IAC7B,EACH,SACF,CAAC,EAEG,EAEJ,GADoB,EAAS,QAAQ,IAAI,cAAc,GACtC,SAAS,kBAAkB,EAC1C,EAAO,MAAM,EAAS,KAAK,EAE3B,OAAO,MAAM,EAAS,KAAK,EAG7B,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EACH,GAA6B,OAAS,4BACzC,MAAU,MAAM,cAAc,EAAS,YAAY,GAAc,EAGnE,OAAO,EACP,MAAO,EAAO,CACd,GAAI,aAAiB,MACnB,MAAM,EAER,MAAU,MAAM,wBAAwB,QAKtC,eAAc,EAA+B,CAIjD,OAHiB,MAAM,KAAK,QAC1B,uBACF,GACgB,iBAIZ,aAAY,EAA6B,CAI7C,OAHiB,MAAM,KAAK,QAC1B,qBACF,GACgB,eAIZ,iBAAgB,EAAmC,CACvD,OAAO,MAAM,KAAK,QAChB,0BACF,OAII,WAAU,EAAsB,CAEpC,OADiB,MAAM,KAAK,QAAyB,mBAAmB,GACxD,aAIZ,kBAAiB,EAAiC,CACtD,OAAO,MAAM,KAAK,QAChB,4BACF,OAII,iBAAgB,EAAiC,CACrD,OAAO,MAAM,KAAK,QAA6B,2BAA2B,OAItE,QAAO,CAAC,EAA6C,CACzD,OAAO,MAAM,KAAK,QAAyB,oBAAqB,CAC9D,OAAQ,OACR,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,EAEL",
8
- "debugId": "FD76B09BB023C76364756E2164756E21",
9
- "names": []
10
- }
package/dist/types.d.ts DELETED
@@ -1,83 +0,0 @@
1
- export interface BusinessInfo {
2
- id: string;
3
- name: string;
4
- address?: string;
5
- phone?: string;
6
- website?: string;
7
- }
8
- export type Module = "comparison_gallery" | "showcase_gallery" | "smart_contact" | "google_review_display" | "google_review_requests" | "facebook_feed_sync" | "instagram_feed_sync" | "xero_payment_notifications";
9
- export interface ModulesResponse {
10
- modules: Module[];
11
- }
12
- export interface Collection {
13
- id: string;
14
- name: string;
15
- }
16
- export interface ComparisonImage {
17
- id: string;
18
- business_id: number;
19
- before_url: string;
20
- after_url: string;
21
- title: string;
22
- description: string | null;
23
- updated_at: string;
24
- created_at: string;
25
- collection: Collection | null;
26
- }
27
- export interface ComparisonsResponse {
28
- comparisons: ComparisonImage[];
29
- collections: Collection[];
30
- }
31
- export interface ShowcaseImage {
32
- id: string;
33
- business_id: number;
34
- image_url: string[];
35
- title: string;
36
- description: string | null;
37
- updated_at: string;
38
- created_at: string;
39
- collection: Collection | null;
40
- }
41
- export interface ShowcasesResponse {
42
- showcases: ShowcaseImage[];
43
- collections: Collection[];
44
- }
45
- export type ContactData = Record<string, unknown>;
46
- export interface ContactResponse {
47
- success: boolean;
48
- message: string;
49
- contactId: string | null;
50
- }
51
- export interface GoogleReview {
52
- rating: number;
53
- text: string;
54
- author: string;
55
- publishTime: string;
56
- }
57
- export interface GoogleReviewsResponse {
58
- business: BusinessInfo;
59
- rating: number | null;
60
- totalReviews: number;
61
- reviews: GoogleReview[];
62
- }
63
- export interface FacebookPost {
64
- id: string;
65
- message?: string;
66
- created_time: string;
67
- permalink_url?: string;
68
- full_picture?: string;
69
- }
70
- export interface InstagramPost {
71
- id: string;
72
- caption?: string;
73
- media_type: "IMAGE" | "VIDEO" | "CAROUSEL_ALBUM";
74
- media_url: string;
75
- permalink: string;
76
- timestamp: string;
77
- }
78
- export interface SocialMediaResponse {
79
- business: BusinessInfo;
80
- posts: FacebookPost[] | InstagramPost[];
81
- platform: "facebook" | "instagram";
82
- }
83
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}