@faststore/api 2.2.44 → 2.2.46
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/cjs/package.json +3 -3
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.js +29 -35
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/fetch.d.ts +5 -1
- package/dist/cjs/src/platforms/vtex/clients/fetch.js +5 -2
- package/dist/cjs/src/platforms/vtex/clients/fetch.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/index.d.ts +0 -3
- package/dist/cjs/src/platforms/vtex/clients/index.js +0 -3
- package/dist/cjs/src/platforms/vtex/clients/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/search/index.js +5 -3
- package/dist/cjs/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/index.d.ts +1 -0
- package/dist/cjs/src/platforms/vtex/index.js +1 -0
- package/dist/cjs/src/platforms/vtex/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/validateCart.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/cookies.d.ts +3 -0
- package/dist/cjs/src/platforms/vtex/utils/cookies.js +16 -0
- package/dist/cjs/src/platforms/vtex/utils/cookies.js.map +1 -0
- package/dist/esm/package.json +3 -3
- package/dist/esm/src/platforms/vtex/clients/commerce/index.js +29 -35
- package/dist/esm/src/platforms/vtex/clients/commerce/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/fetch.d.ts +5 -1
- package/dist/esm/src/platforms/vtex/clients/fetch.js +5 -2
- package/dist/esm/src/platforms/vtex/clients/fetch.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/index.d.ts +0 -3
- package/dist/esm/src/platforms/vtex/clients/index.js +0 -3
- package/dist/esm/src/platforms/vtex/clients/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/search/index.js +5 -3
- package/dist/esm/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/index.d.ts +1 -0
- package/dist/esm/src/platforms/vtex/index.js +1 -0
- package/dist/esm/src/platforms/vtex/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/validateCart.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/cookies.d.ts +3 -0
- package/dist/esm/src/platforms/vtex/utils/cookies.js +11 -0
- package/dist/esm/src/platforms/vtex/utils/cookies.js.map +1 -0
- package/package.json +4 -4
- package/src/platforms/vtex/clients/commerce/index.ts +69 -47
- package/src/platforms/vtex/clients/fetch.ts +14 -2
- package/src/platforms/vtex/clients/index.ts +0 -3
- package/src/platforms/vtex/clients/search/index.ts +11 -3
- package/src/platforms/vtex/index.ts +12 -10
- package/src/platforms/vtex/resolvers/validateCart.ts +1 -0
- package/src/platforms/vtex/utils/cookies.ts +19 -0
- package/dist/cjs/src/platforms/vtex/clients/sp/index.d.ts +0 -14
- package/dist/cjs/src/platforms/vtex/clients/sp/index.js +0 -49
- package/dist/cjs/src/platforms/vtex/clients/sp/index.js.map +0 -1
- package/dist/esm/src/platforms/vtex/clients/sp/index.d.ts +0 -14
- package/dist/esm/src/platforms/vtex/clients/sp/index.js +0 -45
- package/dist/esm/src/platforms/vtex/clients/sp/index.js.map +0 -1
- package/src/platforms/vtex/clients/sp/index.ts +0 -66
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Context } from '../index'
|
|
2
|
+
|
|
3
|
+
const MATCH_DOMAIN_REGEXP = /(?:^|;\s*)(?:domain=)([^;]+)/i
|
|
4
|
+
|
|
5
|
+
export const setCookie = (headers: Headers, ctx: Context) => {
|
|
6
|
+
const faststoreAPIHostname = new URL(`https://${ctx.headers.host}`).hostname
|
|
7
|
+
|
|
8
|
+
headers
|
|
9
|
+
.getSetCookie()
|
|
10
|
+
.forEach((cookie) =>
|
|
11
|
+
ctx.storage.cookies.add(
|
|
12
|
+
// Replaces original cookie domain for FastStore API's domain hostname
|
|
13
|
+
cookie.replace(MATCH_DOMAIN_REGEXP, `; domain=${faststoreAPIHostname}`)
|
|
14
|
+
)
|
|
15
|
+
)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const getStoreCookie = (ctx: Context) => (headers: Headers) =>
|
|
19
|
+
setCookie(headers, ctx)
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Options, Context } from '../../';
|
|
2
|
-
export type SearchEvent = {
|
|
3
|
-
type: 'search.query';
|
|
4
|
-
text: string;
|
|
5
|
-
misspelled: boolean;
|
|
6
|
-
match: number;
|
|
7
|
-
operator: 'and' | 'or';
|
|
8
|
-
locale: string;
|
|
9
|
-
session?: string;
|
|
10
|
-
anonymous?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const SP: ({ account }: Options, _: Context) => {
|
|
13
|
-
sendEvent: (options: SearchEvent) => Promise<any>;
|
|
14
|
-
};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SP = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Client for SP, Intelligent search's analytics event API
|
|
6
|
-
* More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
|
|
7
|
-
*/
|
|
8
|
-
const fetch_1 = require("../fetch");
|
|
9
|
-
const THIRTY_MINUTES_S = 30 * 60;
|
|
10
|
-
const ONE_YEAR_S = 365 * 24 * 3600;
|
|
11
|
-
const randomUUID = () => (Math.random() * 1e6).toFixed(0);
|
|
12
|
-
const timelapsed = (past) => (Date.now() - past) / 1e3;
|
|
13
|
-
const createId = (expiresSecond) => {
|
|
14
|
-
let payload = randomUUID();
|
|
15
|
-
let createdAt = Date.now();
|
|
16
|
-
return () => {
|
|
17
|
-
if (timelapsed(createdAt) > expiresSecond) {
|
|
18
|
-
payload = randomUUID();
|
|
19
|
-
createdAt = Date.now();
|
|
20
|
-
}
|
|
21
|
-
return payload;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
const user = {
|
|
25
|
-
anonymous: createId(ONE_YEAR_S),
|
|
26
|
-
session: createId(THIRTY_MINUTES_S),
|
|
27
|
-
};
|
|
28
|
-
const SP = ({ account }, _) => {
|
|
29
|
-
const base = `https://sp.vtex.com/event-api/v1/${account}/event`;
|
|
30
|
-
const sendEvent = (options) => {
|
|
31
|
-
return (0, fetch_1.fetchAPI)(base, {
|
|
32
|
-
method: 'POST',
|
|
33
|
-
body: JSON.stringify({
|
|
34
|
-
...options,
|
|
35
|
-
agent: '@faststore/api',
|
|
36
|
-
anonymous: user.anonymous(), // 'zZlNhqz1vFJP6iPG5Oqtt'
|
|
37
|
-
session: user.session(), // 'Om1TNluGvgmSgU5OOTvkkd'
|
|
38
|
-
}),
|
|
39
|
-
headers: {
|
|
40
|
-
'content-type': 'application/json',
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
return {
|
|
45
|
-
sendEvent,
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
exports.SP = SP;
|
|
49
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/sp/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,oCAAmC;AAGnC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,CAAA;AAChC,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEzD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA;AAE9D,MAAM,QAAQ,GAAG,CAAC,aAAqB,EAAE,EAAE;IACzC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAA;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE1B,OAAO,GAAG,EAAE;QACV,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;YAC1C,OAAO,GAAG,UAAU,EAAE,CAAA;YACtB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACpC,CAAA;AAaM,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAW,EAAE,CAAU,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,oCAAoC,OAAO,QAAQ,CAAA;IAEhE,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,EAAE;QACzC,OAAO,IAAA,gBAAQ,EAAC,IAAI,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,OAAO;gBACV,KAAK,EAAE,gBAAgB;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,0BAA0B;gBACvD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,2BAA2B;aACrD,CAAC;YACF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,EAAE,MAqBd"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Options, Context } from '../../';
|
|
2
|
-
export type SearchEvent = {
|
|
3
|
-
type: 'search.query';
|
|
4
|
-
text: string;
|
|
5
|
-
misspelled: boolean;
|
|
6
|
-
match: number;
|
|
7
|
-
operator: 'and' | 'or';
|
|
8
|
-
locale: string;
|
|
9
|
-
session?: string;
|
|
10
|
-
anonymous?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const SP: ({ account }: Options, _: Context) => {
|
|
13
|
-
sendEvent: (options: SearchEvent) => Promise<any>;
|
|
14
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client for SP, Intelligent search's analytics event API
|
|
3
|
-
* More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
|
|
4
|
-
*/
|
|
5
|
-
import { fetchAPI } from '../fetch';
|
|
6
|
-
const THIRTY_MINUTES_S = 30 * 60;
|
|
7
|
-
const ONE_YEAR_S = 365 * 24 * 3600;
|
|
8
|
-
const randomUUID = () => (Math.random() * 1e6).toFixed(0);
|
|
9
|
-
const timelapsed = (past) => (Date.now() - past) / 1e3;
|
|
10
|
-
const createId = (expiresSecond) => {
|
|
11
|
-
let payload = randomUUID();
|
|
12
|
-
let createdAt = Date.now();
|
|
13
|
-
return () => {
|
|
14
|
-
if (timelapsed(createdAt) > expiresSecond) {
|
|
15
|
-
payload = randomUUID();
|
|
16
|
-
createdAt = Date.now();
|
|
17
|
-
}
|
|
18
|
-
return payload;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
const user = {
|
|
22
|
-
anonymous: createId(ONE_YEAR_S),
|
|
23
|
-
session: createId(THIRTY_MINUTES_S),
|
|
24
|
-
};
|
|
25
|
-
export const SP = ({ account }, _) => {
|
|
26
|
-
const base = `https://sp.vtex.com/event-api/v1/${account}/event`;
|
|
27
|
-
const sendEvent = (options) => {
|
|
28
|
-
return fetchAPI(base, {
|
|
29
|
-
method: 'POST',
|
|
30
|
-
body: JSON.stringify({
|
|
31
|
-
...options,
|
|
32
|
-
agent: '@faststore/api',
|
|
33
|
-
anonymous: user.anonymous(), // 'zZlNhqz1vFJP6iPG5Oqtt'
|
|
34
|
-
session: user.session(), // 'Om1TNluGvgmSgU5OOTvkkd'
|
|
35
|
-
}),
|
|
36
|
-
headers: {
|
|
37
|
-
'content-type': 'application/json',
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
return {
|
|
42
|
-
sendEvent,
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/sp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGnC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,CAAA;AAChC,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEzD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA;AAE9D,MAAM,QAAQ,GAAG,CAAC,aAAqB,EAAE,EAAE;IACzC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAA;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE1B,OAAO,GAAG,EAAE;QACV,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;YAC1C,OAAO,GAAG,UAAU,EAAE,CAAA;YACtB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACpC,CAAA;AAaD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAW,EAAE,CAAU,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,oCAAoC,OAAO,QAAQ,CAAA;IAEhE,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,EAAE;QACzC,OAAO,QAAQ,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,OAAO;gBACV,KAAK,EAAE,gBAAgB;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,0BAA0B;gBACvD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,2BAA2B;aACrD,CAAC;YACF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client for SP, Intelligent search's analytics event API
|
|
3
|
-
* More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
|
|
4
|
-
*/
|
|
5
|
-
import { fetchAPI } from '../fetch'
|
|
6
|
-
import type { Options, Context } from '../../'
|
|
7
|
-
|
|
8
|
-
const THIRTY_MINUTES_S = 30 * 60
|
|
9
|
-
const ONE_YEAR_S = 365 * 24 * 3600
|
|
10
|
-
|
|
11
|
-
const randomUUID = () => (Math.random() * 1e6).toFixed(0)
|
|
12
|
-
|
|
13
|
-
const timelapsed = (past: number) => (Date.now() - past) / 1e3
|
|
14
|
-
|
|
15
|
-
const createId = (expiresSecond: number) => {
|
|
16
|
-
let payload = randomUUID()
|
|
17
|
-
let createdAt = Date.now()
|
|
18
|
-
|
|
19
|
-
return () => {
|
|
20
|
-
if (timelapsed(createdAt) > expiresSecond) {
|
|
21
|
-
payload = randomUUID()
|
|
22
|
-
createdAt = Date.now()
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return payload
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const user = {
|
|
30
|
-
anonymous: createId(ONE_YEAR_S),
|
|
31
|
-
session: createId(THIRTY_MINUTES_S),
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type SearchEvent = {
|
|
35
|
-
type: 'search.query'
|
|
36
|
-
text: string // 'zapatilha'
|
|
37
|
-
misspelled: boolean
|
|
38
|
-
match: number
|
|
39
|
-
operator: 'and' | 'or'
|
|
40
|
-
locale: string
|
|
41
|
-
session?: string
|
|
42
|
-
anonymous?: string
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const SP = ({ account }: Options, _: Context) => {
|
|
46
|
-
const base = `https://sp.vtex.com/event-api/v1/${account}/event`
|
|
47
|
-
|
|
48
|
-
const sendEvent = (options: SearchEvent) => {
|
|
49
|
-
return fetchAPI(base, {
|
|
50
|
-
method: 'POST',
|
|
51
|
-
body: JSON.stringify({
|
|
52
|
-
...options,
|
|
53
|
-
agent: '@faststore/api',
|
|
54
|
-
anonymous: user.anonymous(), // 'zZlNhqz1vFJP6iPG5Oqtt'
|
|
55
|
-
session: user.session(), // 'Om1TNluGvgmSgU5OOTvkkd'
|
|
56
|
-
}),
|
|
57
|
-
headers: {
|
|
58
|
-
'content-type': 'application/json',
|
|
59
|
-
},
|
|
60
|
-
})
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
sendEvent,
|
|
65
|
-
}
|
|
66
|
-
}
|