@algolia/client-common 5.0.0-alpha.100 → 5.0.0-alpha.102
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/client-common.cjs +24 -10
- package/dist/client-common.esm.node.js +24 -10
- package/dist/src/createEchoRequester.d.ts.map +1 -1
- package/dist/src/types/host.d.ts +4 -0
- package/dist/src/types/host.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/createEchoRequester.ts +23 -8
- package/src/transporter/helpers.ts +2 -2
- package/src/types/host.ts +5 -0
package/dist/client-common.cjs
CHANGED
|
@@ -17,16 +17,30 @@ function createAuth(appId, apiKey, authMode = 'WithinHeaders') {
|
|
|
17
17
|
|
|
18
18
|
function getUrlParams({
|
|
19
19
|
host,
|
|
20
|
-
|
|
20
|
+
search,
|
|
21
21
|
pathname
|
|
22
22
|
}) {
|
|
23
|
-
const
|
|
23
|
+
const urlSearchParams = search.split('?');
|
|
24
|
+
if (urlSearchParams.length === 1) {
|
|
25
|
+
return {
|
|
26
|
+
host,
|
|
27
|
+
algoliaAgent: '',
|
|
28
|
+
searchParams: undefined,
|
|
29
|
+
path: pathname
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const splitSearchParams = urlSearchParams[1].split('&');
|
|
33
|
+
let algoliaAgent = '';
|
|
24
34
|
const searchParams = {};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
if (splitSearchParams.length > 0) {
|
|
36
|
+
splitSearchParams.forEach(param => {
|
|
37
|
+
const [key, value] = param.split('=');
|
|
38
|
+
if (key === 'x-algolia-agent') {
|
|
39
|
+
algoliaAgent = value;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
searchParams[key] = value;
|
|
43
|
+
});
|
|
30
44
|
}
|
|
31
45
|
return {
|
|
32
46
|
host,
|
|
@@ -51,7 +65,7 @@ function createEchoRequester({
|
|
|
51
65
|
data: request.data ? JSON.parse(request.data) : undefined,
|
|
52
66
|
path,
|
|
53
67
|
host,
|
|
54
|
-
algoliaAgent
|
|
68
|
+
algoliaAgent,
|
|
55
69
|
searchParams
|
|
56
70
|
};
|
|
57
71
|
return Promise.resolve({
|
|
@@ -373,7 +387,7 @@ function shuffle(array) {
|
|
|
373
387
|
}
|
|
374
388
|
function serializeUrl(host, path, queryParameters) {
|
|
375
389
|
const queryParametersAsString = serializeQueryParameters(queryParameters);
|
|
376
|
-
let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
|
|
390
|
+
let url = `${host.protocol}://${host.url}${host.port ? `:${host.port}` : ''}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
|
|
377
391
|
if (queryParametersAsString.length) {
|
|
378
392
|
url += `?${queryParametersAsString}`;
|
|
379
393
|
}
|
|
@@ -381,7 +395,7 @@ function serializeUrl(host, path, queryParameters) {
|
|
|
381
395
|
}
|
|
382
396
|
function serializeQueryParameters(parameters) {
|
|
383
397
|
const isObjectOrArray = value => Object.prototype.toString.call(value) === '[object Object]' || Object.prototype.toString.call(value) === '[object Array]';
|
|
384
|
-
return Object.keys(parameters).map(key => `${key}=${encodeURIComponent(isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key])}`).join('&');
|
|
398
|
+
return Object.keys(parameters).map(key => `${key}=${encodeURIComponent(isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]).replaceAll('+', '%20')}`).join('&');
|
|
385
399
|
}
|
|
386
400
|
function serializeData(request, requestOptions) {
|
|
387
401
|
if (request.method === 'GET' || request.data === undefined && requestOptions.data === undefined) {
|
|
@@ -15,16 +15,30 @@ function createAuth(appId, apiKey, authMode = 'WithinHeaders') {
|
|
|
15
15
|
|
|
16
16
|
function getUrlParams({
|
|
17
17
|
host,
|
|
18
|
-
|
|
18
|
+
search,
|
|
19
19
|
pathname
|
|
20
20
|
}) {
|
|
21
|
-
const
|
|
21
|
+
const urlSearchParams = search.split('?');
|
|
22
|
+
if (urlSearchParams.length === 1) {
|
|
23
|
+
return {
|
|
24
|
+
host,
|
|
25
|
+
algoliaAgent: '',
|
|
26
|
+
searchParams: undefined,
|
|
27
|
+
path: pathname
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const splitSearchParams = urlSearchParams[1].split('&');
|
|
31
|
+
let algoliaAgent = '';
|
|
22
32
|
const searchParams = {};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
if (splitSearchParams.length > 0) {
|
|
34
|
+
splitSearchParams.forEach(param => {
|
|
35
|
+
const [key, value] = param.split('=');
|
|
36
|
+
if (key === 'x-algolia-agent') {
|
|
37
|
+
algoliaAgent = value;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
searchParams[key] = value;
|
|
41
|
+
});
|
|
28
42
|
}
|
|
29
43
|
return {
|
|
30
44
|
host,
|
|
@@ -49,7 +63,7 @@ function createEchoRequester({
|
|
|
49
63
|
data: request.data ? JSON.parse(request.data) : undefined,
|
|
50
64
|
path,
|
|
51
65
|
host,
|
|
52
|
-
algoliaAgent
|
|
66
|
+
algoliaAgent,
|
|
53
67
|
searchParams
|
|
54
68
|
};
|
|
55
69
|
return Promise.resolve({
|
|
@@ -371,7 +385,7 @@ function shuffle(array) {
|
|
|
371
385
|
}
|
|
372
386
|
function serializeUrl(host, path, queryParameters) {
|
|
373
387
|
const queryParametersAsString = serializeQueryParameters(queryParameters);
|
|
374
|
-
let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
|
|
388
|
+
let url = `${host.protocol}://${host.url}${host.port ? `:${host.port}` : ''}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
|
|
375
389
|
if (queryParametersAsString.length) {
|
|
376
390
|
url += `?${queryParametersAsString}`;
|
|
377
391
|
}
|
|
@@ -379,7 +393,7 @@ function serializeUrl(host, path, queryParameters) {
|
|
|
379
393
|
}
|
|
380
394
|
function serializeQueryParameters(parameters) {
|
|
381
395
|
const isObjectOrArray = value => Object.prototype.toString.call(value) === '[object Object]' || Object.prototype.toString.call(value) === '[object Array]';
|
|
382
|
-
return Object.keys(parameters).map(key => `${key}=${encodeURIComponent(isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key])}`).join('&');
|
|
396
|
+
return Object.keys(parameters).map(key => `${key}=${encodeURIComponent(isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]).replaceAll('+', '%20')}`).join('&');
|
|
383
397
|
}
|
|
384
398
|
function serializeData(request, requestOptions) {
|
|
385
399
|
if (request.method === 'GET' || request.data === undefined && requestOptions.data === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEchoRequester.d.ts","sourceRoot":"","sources":["../../src/createEchoRequester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,SAAS,EAAY,MAAM,SAAS,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"createEchoRequester.d.ts","sourceRoot":"","sources":["../../src/createEchoRequester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,SAAS,EAAY,MAAM,SAAS,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA0CF,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,MAAY,GACb,EAAE,mBAAmB,GAAG,SAAS,CAuBjC"}
|
package/dist/src/types/host.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/types/host.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/types/host.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAE3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC;CAC3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algolia/client-common",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.102",
|
|
4
4
|
"description": "Common package for the Algolia JavaScript API client.",
|
|
5
5
|
"repository": "algolia/algoliasearch-client-javascript",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@babel/preset-env": "7.23.9",
|
|
24
24
|
"@babel/preset-typescript": "7.23.3",
|
|
25
|
-
"@types/jest": "29.5.
|
|
26
|
-
"@types/node": "20.11.
|
|
25
|
+
"@types/jest": "29.5.12",
|
|
26
|
+
"@types/node": "20.11.19",
|
|
27
27
|
"jest": "29.7.0",
|
|
28
28
|
"jest-environment-jsdom": "29.7.0",
|
|
29
29
|
"ts-jest": "29.1.2",
|
|
@@ -7,18 +7,33 @@ export type EchoRequesterParams = {
|
|
|
7
7
|
|
|
8
8
|
function getUrlParams({
|
|
9
9
|
host,
|
|
10
|
-
|
|
10
|
+
search,
|
|
11
11
|
pathname,
|
|
12
12
|
}: URL): Pick<EchoResponse, 'algoliaAgent' | 'host' | 'path' | 'searchParams'> {
|
|
13
|
-
const
|
|
13
|
+
const urlSearchParams = search.split('?');
|
|
14
|
+
if (urlSearchParams.length === 1) {
|
|
15
|
+
return {
|
|
16
|
+
host,
|
|
17
|
+
algoliaAgent: '',
|
|
18
|
+
searchParams: undefined,
|
|
19
|
+
path: pathname,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const splitSearchParams = urlSearchParams[1].split('&');
|
|
24
|
+
let algoliaAgent = '';
|
|
14
25
|
const searchParams: Record<string, string> = {};
|
|
15
26
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
27
|
+
if (splitSearchParams.length > 0) {
|
|
28
|
+
splitSearchParams.forEach((param) => {
|
|
29
|
+
const [key, value] = param.split('=');
|
|
30
|
+
if (key === 'x-algolia-agent') {
|
|
31
|
+
algoliaAgent = value;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
20
34
|
|
|
21
|
-
|
|
35
|
+
searchParams[key] = value;
|
|
36
|
+
});
|
|
22
37
|
}
|
|
23
38
|
|
|
24
39
|
return {
|
|
@@ -44,7 +59,7 @@ export function createEchoRequester({
|
|
|
44
59
|
data: request.data ? JSON.parse(request.data) : undefined,
|
|
45
60
|
path,
|
|
46
61
|
host,
|
|
47
|
-
algoliaAgent
|
|
62
|
+
algoliaAgent,
|
|
48
63
|
searchParams,
|
|
49
64
|
};
|
|
50
65
|
|
|
@@ -30,7 +30,7 @@ export function serializeUrl(
|
|
|
30
30
|
queryParameters: QueryParameters
|
|
31
31
|
): string {
|
|
32
32
|
const queryParametersAsString = serializeQueryParameters(queryParameters);
|
|
33
|
-
let url = `${host.protocol}://${host.url}/${
|
|
33
|
+
let url = `${host.protocol}://${host.url}${host.port ? `:${host.port}` : ''}/${
|
|
34
34
|
path.charAt(0) === '/' ? path.substr(1) : path
|
|
35
35
|
}`;
|
|
36
36
|
|
|
@@ -53,7 +53,7 @@ export function serializeQueryParameters(parameters: QueryParameters): string {
|
|
|
53
53
|
isObjectOrArray(parameters[key])
|
|
54
54
|
? JSON.stringify(parameters[key])
|
|
55
55
|
: parameters[key]
|
|
56
|
-
)}`
|
|
56
|
+
).replaceAll('+', '%20')}`
|
|
57
57
|
)
|
|
58
58
|
.join('&');
|
|
59
59
|
}
|