sizebay-core-sdk 1.11.0-dev.2 → 1.11.0-dev.5
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.dev.md +2 -2
- package/README.md +1 -0
- package/dist/modules/tracker.d.ts +1 -1
- package/dist/sizebay-core-sdk.es.js +14 -7
- package/dist/sizebay-core-sdk.umd.js +1 -1
- package/dist/types/event/responses/track-response.dto.d.ts +1 -1
- package/dist/types/product/product.dto.d.ts +1 -0
- package/package.json +1 -1
package/README.dev.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Sizebay Core SDK - Development Guide
|
|
2
2
|
|
|
3
3
|
This guide is intended to help developers understand the project structure, how to create and integrate new modules, run tests, and configure automated releases with Semantic Release.
|
|
4
|
-
|
|
4
|
+
-- teste bot publish
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Project Structure
|
|
8
8
|
|
|
9
|
-
The project is organized as follows:
|
|
9
|
+
The project is organized as follows:
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
📦src
|
package/README.md
CHANGED
|
@@ -532,6 +532,7 @@ await client.sendProfile(profilePayload);
|
|
|
532
532
|
| `additionalImageLinks` | string[] | Yes | A list of additional image URLs for the product. |
|
|
533
533
|
| `suitableSizes` | SuitableSizeDto[] | No | Size recommendations from Sizebay's What Fits Me feature, including comfort scores.<br>This is populated when personalized sizing is available. |
|
|
534
534
|
| `clothType` | ClothType | No | The standardized clothing type, used for recommendations and size chart matching. |
|
|
535
|
+
| `catalogTableCode` | number | No | The id of the modeling table of the product |
|
|
535
536
|
<!-- /DOCGEN -->
|
|
536
537
|
|
|
537
538
|
#### `TrackData`
|
|
@@ -56,7 +56,14 @@ class S {
|
|
|
56
56
|
const o = await i.text();
|
|
57
57
|
throw new Error(`Request error: ${i.status} - ${o}`);
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
try {
|
|
60
|
+
return await i.json();
|
|
61
|
+
} catch {
|
|
62
|
+
return {
|
|
63
|
+
statusCode: 201,
|
|
64
|
+
message: "Event successfully created."
|
|
65
|
+
};
|
|
66
|
+
}
|
|
60
67
|
} catch (i) {
|
|
61
68
|
throw i;
|
|
62
69
|
}
|
|
@@ -310,7 +317,7 @@ class T {
|
|
|
310
317
|
});
|
|
311
318
|
}
|
|
312
319
|
}
|
|
313
|
-
class
|
|
320
|
+
class u {
|
|
314
321
|
constructor(t) {
|
|
315
322
|
this.sid = null, this.sessionId = null;
|
|
316
323
|
const e = t.getEndpoint("session");
|
|
@@ -366,13 +373,13 @@ class O {
|
|
|
366
373
|
}
|
|
367
374
|
}
|
|
368
375
|
}
|
|
369
|
-
const
|
|
376
|
+
const O = [
|
|
370
377
|
S,
|
|
371
378
|
T,
|
|
372
|
-
|
|
379
|
+
u
|
|
373
380
|
];
|
|
374
381
|
function m(r = {}) {
|
|
375
|
-
const t = new l(r), e =
|
|
382
|
+
const t = new l(r), e = O.map((n) => new n(t)), s = {};
|
|
376
383
|
return e.forEach((n) => {
|
|
377
384
|
[
|
|
378
385
|
...Object.getOwnPropertyNames(n),
|
|
@@ -395,7 +402,7 @@ const E = {
|
|
|
395
402
|
WETSUIT_FULL_BODY: "WETSUIT_FULL_BODY",
|
|
396
403
|
WETSUIT_BOTTOM: "WETSUIT_BOTTOM",
|
|
397
404
|
WETSUIT_TOP: "WETSUIT_TOP"
|
|
398
|
-
},
|
|
405
|
+
}, y = {
|
|
399
406
|
T_SHIRT: "t-shirt",
|
|
400
407
|
SHIRT: "shirt",
|
|
401
408
|
BLOUSE: "blouse",
|
|
@@ -438,6 +445,6 @@ const E = {
|
|
|
438
445
|
};
|
|
439
446
|
export {
|
|
440
447
|
E as ClothType,
|
|
441
|
-
|
|
448
|
+
y as ProductClass,
|
|
442
449
|
m as createClient
|
|
443
450
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(o,a){typeof exports=="object"&&typeof module<"u"?a(exports):typeof define=="function"&&define.amd?define(["exports"],a):(o=typeof globalThis<"u"?globalThis:o||self,a(o["sizebay-core-sdk"]={}))})(this,(function(o){"use strict";const a={tracker:{production:"https://data-event-service.internalsizebay.com",development:"https://data-event-service-dev.internalsizebay.com"},aiImageService:{production:"https://ai-image-service.internalsizebay.com",development:"https://ai-image-service-dev.internalsizebay.com"},session:{production:"https://vfr-v3-production.sizebay.technology/api/me",development:"https://vfr-v3-staging.sizebay.eu/api/me"}};class l{constructor(e){const t=e.env||"development";this.serviceOverrides=e.services||{},this.endpoints={};for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)){const i=a[s][t];if(!i)continue;this.endpoints[s]=i}}getEndpoint(e){const t=this.endpoints[e];if(!t)throw new Error(`Endpoint for service '${e}' is not configured.`);return t}getServiceConfig(e){return this.serviceOverrides[e]||{}}}class
|
|
1
|
+
(function(o,a){typeof exports=="object"&&typeof module<"u"?a(exports):typeof define=="function"&&define.amd?define(["exports"],a):(o=typeof globalThis<"u"?globalThis:o||self,a(o["sizebay-core-sdk"]={}))})(this,(function(o){"use strict";const a={tracker:{production:"https://data-event-service.internalsizebay.com",development:"https://data-event-service-dev.internalsizebay.com"},aiImageService:{production:"https://ai-image-service.internalsizebay.com",development:"https://ai-image-service-dev.internalsizebay.com"},session:{production:"https://vfr-v3-production.sizebay.technology/api/me",development:"https://vfr-v3-staging.sizebay.eu/api/me"}};class l{constructor(e){const t=e.env||"development";this.serviceOverrides=e.services||{},this.endpoints={};for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)){const i=a[s][t];if(!i)continue;this.endpoints[s]=i}}getEndpoint(e){const t=this.endpoints[e];if(!t)throw new Error(`Endpoint for service '${e}' is not configured.`);return t}getServiceConfig(e){return this.serviceOverrides[e]||{}}}class u{constructor(e){this.endpoint=e.getEndpoint("tracker")}async track(e,t){const s={eventName:e,...t},n=new URL(`${this.endpoint}/events`);try{const i=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!i.ok){const r=await i.text();throw new Error(`Request error: ${i.status} - ${r}`)}try{return await i.json()}catch{return{statusCode:201,message:"Event successfully created."}}}catch(i){throw i}}}class p extends Error{constructor(e,t){let s;try{const n=JSON.parse(t);s=(n==null?void 0:n.message)||t}catch{s=t}super(s),this.statusCode=e,this.details=t,Object.setPrototypeOf(this,p.prototype)}}async function d(c,e){let t;try{t=await fetch(c,e)}catch(n){throw new p(0,n.message)}const s=await t.text();if(!t.ok)throw new p(t.status,s);return JSON.parse(s)}class S{constructor(e){this.endpoint=e.getEndpoint("aiImageService")}appendQueryParams(e,t){Object.entries(t).forEach(([s,n])=>{n!=null&&e.searchParams.append(s,String(n))})}getSimilarProducts(e){const t=new URL(`${this.endpoint}/recommendations/similar`);return this.appendQueryParams(t,e),d(t.toString(),{method:"GET",headers:{"Content-Type":"application/json"}})}getComplementaryProducts(e){const t=new URL(`${this.endpoint}/recommendations/complementary`);return this.appendQueryParams(t,e),d(t.toString(),{method:"GET",headers:{"Content-Type":"application/json"}})}searchSimilarByImage(e){const t=`${this.endpoint}/image-search/similar`;return d(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}searchComplementaryByImage(e){const t=`${this.endpoint}/image-search/complementary`;return d(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}searchSimilarByPermalink(e){const t=`${this.endpoint}/image-search/similar-by-permalink`;return d(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}searchComplementaryByPermalink(e){const t=`${this.endpoint}/image-search/complementary-by-permalink`;return d(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}class T{constructor(e){this.sid=null,this.sessionId=null;const t=e.getEndpoint("session");this.sessionEndpoint=`${t}/`,this.profileEndpoint=`${t}/user/profile`}async getSessionInfo(){if(this.sid&&this.sessionId!==null)return{sid:this.sid,sessionId:this.sessionId};const e=await fetch(this.sessionEndpoint,{credentials:"include"});if(!e.ok){const s=await e.text();throw new Error(`Failed to fetch session info: ${e.status} – ${s}`)}const t=await e.json();return this.sid=t.catalogUser.id,this.sessionId=t.sessionId,{sid:this.sid,sessionId:this.sessionId}}async sendProfile(e,t){const s=t??(await this.getSessionInfo()).sid,n=new URL(this.profileEndpoint);n.searchParams.set("sid",s);const i=await fetch(n.toString(),{credentials:"include",method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:s,id:null,...e})});if(!i.ok){const r=await i.text();throw new Error(`Failed to send profile: ${i.status} – ${r}`)}}}const O=[u,S,T];function m(c={}){const e=new l(c),t=O.map(n=>new n(e)),s={};return t.forEach(n=>{[...Object.getOwnPropertyNames(n),...Object.getOwnPropertyNames(Object.getPrototypeOf(n))].forEach(r=>{if(r==="constructor")return;const h=n[r];typeof h=="function"&&(s[r]||(s[r]=(...y)=>h.apply(n,y)))})}),s}const f={TOP:"TOP",BOTTOM:"BOTTOM",SHOE_ACCESSORY:"SHOE_ACCESSORY",FULL_BODY:"FULL_BODY",UNDERWEAR_FULL_BODY:"UNDERWEAR_FULL_BODY",UNDERWEAR_BOTTOM:"UNDERWEAR_BOTTOM",UNDERWEAR_TOP:"UNDERWEAR_TOP",WETSUIT_FULL_BODY:"WETSUIT_FULL_BODY",WETSUIT_BOTTOM:"WETSUIT_BOTTOM",WETSUIT_TOP:"WETSUIT_TOP"},E={T_SHIRT:"t-shirt",SHIRT:"shirt",BLOUSE:"blouse",SWEATER:"sweater",HOODIE:"hoodie",JACKET:"jacket",COAT:"coat",CARDIGAN:"cardigan",BLAZER:"blazer",VEST:"vest",SWEATSHIRT:"sweatshirt",POLO_SHIRT:"polo shirt",TANK_TOP:"tank top",SKIRT:"skirt",TROUSERS:"trousers",JEANS:"jeans",SHORTS:"shorts",SNEAKERS:"sneakers",RUNNING_SHOES:"running shoes",BOOTS:"boots",ANKLE_BOOTS:"ankle boots",HIGH_HEELS:"high heels",FLATS:"flats",LOAFERS:"loafers",OXFORDS:"oxfords",SLIPPERS:"slippers",SANDALS:"sandals",DRESS:"dress",JUMPSUIT:"jumpsuit",SUIT:"suit",PANTIES:"panties",BRA:"bra",BIKINI:"bikini",BRIEFS:"briefs",BOXERS:"boxers",THONG:"thong",SWIMSUIT:"swimsuit",ONE_PIECE_SWIMSUIT:"one-piece swimsuit",WETSUIT:"wetsuit"};o.ClothType=f,o.ProductClass=E,o.createClient=m,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TrackSuccessResponse } from './track-success-response.dto';
|
|
2
1
|
import { TrackBadRequestResponse } from './track-bad-request-response.dto';
|
|
3
2
|
import { TrackServerErrorResponse } from './track-server-error-response.dto';
|
|
3
|
+
import { TrackSuccessResponse } from './track-success-response.dto';
|
|
4
4
|
export type TrackResponse = TrackSuccessResponse | TrackBadRequestResponse | TrackServerErrorResponse;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sizebay-core-sdk",
|
|
3
|
-
"version": "1.11.0-dev.
|
|
3
|
+
"version": "1.11.0-dev.5",
|
|
4
4
|
"description": "A SDK designed for integrating multiple services (such as event tracking, AI services, etc.) into your application.",
|
|
5
5
|
"main": "dist/sizebay-core-sdk.umd.js",
|
|
6
6
|
"module": "dist/sizebay-core-sdk.es.js",
|