@venizia/ardor-kernel 0.1.4-4 → 0.1.4
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 +2 -2
- package/dist/base/applications/abstract.d.ts.map +1 -1
- package/dist/base/applications/abstract.js +8 -1
- package/dist/base/applications/abstract.js.map +1 -1
- package/dist/base/decorators/api.d.ts +1 -1
- package/dist/base/decorators/api.d.ts.map +1 -1
- package/dist/base/decorators/api.js +3 -3
- package/dist/base/decorators/api.js.map +1 -1
- package/dist/base/services/auth.d.ts.map +1 -1
- package/dist/base/services/auth.js +6 -2
- package/dist/base/services/auth.js.map +1 -1
- package/dist/base/services/base.d.ts +2 -6
- package/dist/base/services/base.d.ts.map +1 -1
- package/dist/base/services/base.js +2 -5
- package/dist/base/services/base.js.map +1 -1
- package/dist/base/services/network-request.d.ts +75 -29
- package/dist/base/services/network-request.d.ts.map +1 -1
- package/dist/base/services/network-request.js +208 -210
- package/dist/base/services/network-request.js.map +1 -1
- package/dist/common/constants.d.ts +11 -5
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +26 -9
- package/dist/common/constants.js.map +1 -1
- package/dist/common/keys.d.ts +2 -0
- package/dist/common/keys.d.ts.map +1 -1
- package/dist/common/keys.js +8 -0
- package/dist/common/keys.js.map +1 -1
- package/dist/common/types.d.ts +25 -48
- package/dist/common/types.d.ts.map +1 -1
- package/dist/helpers/logger.d.ts +21 -15
- package/dist/helpers/logger.d.ts.map +1 -1
- package/dist/helpers/logger.js +20 -15
- package/dist/helpers/logger.js.map +1 -1
- package/dist/helpers/networks/base-request.d.ts +7 -7
- package/dist/helpers/networks/base-request.d.ts.map +1 -1
- package/dist/helpers/networks/base-request.js.map +1 -1
- package/dist/helpers/networks/fetchers/abstract.d.ts +25 -21
- package/dist/helpers/networks/fetchers/abstract.d.ts.map +1 -1
- package/dist/helpers/networks/fetchers/abstract.js +16 -18
- package/dist/helpers/networks/fetchers/abstract.js.map +1 -1
- package/dist/helpers/networks/fetchers/node-fetch.d.ts +1 -2
- package/dist/helpers/networks/fetchers/node-fetch.d.ts.map +1 -1
- package/dist/helpers/networks/fetchers/node-fetch.js +6 -8
- package/dist/helpers/networks/fetchers/node-fetch.js.map +1 -1
- package/dist/helpers/networks/headers.d.ts +16 -0
- package/dist/helpers/networks/headers.d.ts.map +1 -0
- package/dist/helpers/networks/headers.js +32 -0
- package/dist/helpers/networks/headers.js.map +1 -0
- package/dist/helpers/networks/index.d.ts +1 -0
- package/dist/helpers/networks/index.d.ts.map +1 -1
- package/dist/helpers/networks/index.js +1 -0
- package/dist/helpers/networks/index.js.map +1 -1
- package/dist/helpers/socket-io-client.d.ts +6 -3
- package/dist/helpers/socket-io-client.d.ts.map +1 -1
- package/dist/helpers/socket-io-client.js +30 -3
- package/dist/helpers/socket-io-client.js.map +1 -1
- package/dist/utilities/boolean.d.ts +16 -5
- package/dist/utilities/boolean.d.ts.map +1 -1
- package/dist/utilities/boolean.js +13 -10
- package/dist/utilities/boolean.js.map +1 -1
- package/dist/utilities/file.d.ts +4 -1
- package/dist/utilities/file.d.ts.map +1 -1
- package/dist/utilities/file.js +8 -7
- package/dist/utilities/file.js.map +1 -1
- package/dist/utilities/parse.d.ts +46 -14
- package/dist/utilities/parse.d.ts.map +1 -1
- package/dist/utilities/parse.js +69 -83
- package/dist/utilities/parse.js.map +1 -1
- package/dist/utilities/url.d.ts +7 -4
- package/dist/utilities/url.d.ts.map +1 -1
- package/dist/utilities/url.js +13 -19
- package/dist/utilities/url.js.map +1 -1
- package/package.json +13 -13
|
@@ -2,147 +2,26 @@ import { getError } from '@venizia/ignis-inversion';
|
|
|
2
2
|
import { uuidV4 } from '@venizia/ignis-helpers/uuid';
|
|
3
3
|
import { HttpExtraRequest, HttpResponseReader } from '@venizia/ignis-kernel/repository';
|
|
4
4
|
import isEmpty from 'lodash/isEmpty.js';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import { NodeFetchNetworkRequest } from '../../helpers/index.js';
|
|
5
|
+
import { App, HeaderConstants, LocalStorageKeys, RequestBodyTypes, RequestChannel, RequestCountData, RequestMethods, RequestTypes, } from '../../common/index.js';
|
|
6
|
+
import { NetworkHeaders, NodeFetchNetworkRequest } from '../../helpers/index.js';
|
|
8
7
|
import { isDefined } from '../../utilities/index.js';
|
|
9
8
|
import { BaseService } from './base.js';
|
|
10
|
-
const parseFilenameFromContentDisposition = (header) => {
|
|
11
|
-
if (!header) {
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
const extMatch = header.match(/filename\*\s*=\s*([^']*)'[^']*'([^;]+)/i);
|
|
15
|
-
if (extMatch) {
|
|
16
|
-
try {
|
|
17
|
-
return decodeURIComponent(extMatch[2].trim());
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
return extMatch[2].trim();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
const quotedMatch = header.match(/filename\s*=\s*"([^"]+)"/i);
|
|
24
|
-
if (quotedMatch) {
|
|
25
|
-
return quotedMatch[1];
|
|
26
|
-
}
|
|
27
|
-
const bareMatch = header.match(/filename\s*=\s*([^;]+)/i);
|
|
28
|
-
if (bareMatch) {
|
|
29
|
-
return bareMatch[1].trim();
|
|
30
|
-
}
|
|
31
|
-
return undefined;
|
|
32
|
-
};
|
|
33
|
-
const normalizeNoAuthPathRegex = (input) => {
|
|
34
|
-
if (!input) {
|
|
35
|
-
return [];
|
|
36
|
-
}
|
|
37
|
-
const patterns = Array.isArray(input) ? input : [input];
|
|
38
|
-
const rs = [];
|
|
39
|
-
for (const pattern of patterns) {
|
|
40
|
-
if (!pattern) {
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (pattern instanceof RegExp) {
|
|
44
|
-
rs.push(pattern);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
rs.push(new RegExp(pattern));
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
console.error('[DefaultNetworkRequestService][normalizeNoAuthPathRegex] Invalid noAuthPathRegex pattern: %s', pattern);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return rs;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* `HeadersInit` as a plain record, keys lowercased: header names are case-insensitive but object keys
|
|
58
|
-
* are not, and two spellings of one name would reach the wire joined as `"1, 0"`.
|
|
59
|
-
*/
|
|
60
|
-
const toHeaderRecord = (headers) => {
|
|
61
|
-
if (!headers) {
|
|
62
|
-
return {};
|
|
63
|
-
}
|
|
64
|
-
const entries = (() => {
|
|
65
|
-
if (headers instanceof Headers) {
|
|
66
|
-
return [...headers.entries()];
|
|
67
|
-
}
|
|
68
|
-
return Array.isArray(headers) ? headers : Object.entries(headers);
|
|
69
|
-
})();
|
|
70
|
-
const rs = {};
|
|
71
|
-
for (const [key, value] of entries) {
|
|
72
|
-
rs[key.toLowerCase()] = value;
|
|
73
|
-
}
|
|
74
|
-
return rs;
|
|
75
|
-
};
|
|
76
|
-
/** Merge header sources so a later source REPLACES an earlier one, whatever case either used. */
|
|
77
|
-
const mergeHeaders = (...sources) => {
|
|
78
|
-
return sources.reduce((acc, source) => {
|
|
79
|
-
return Object.assign(acc, toHeaderRecord(source));
|
|
80
|
-
}, {});
|
|
81
|
-
};
|
|
82
|
-
// `FileList` exists only in a DOM; the bare identifier throws in Workers and on Bun.
|
|
83
|
-
const isFileList = (value) => {
|
|
84
|
-
return typeof FileList !== 'undefined' && value instanceof FileList;
|
|
85
|
-
};
|
|
86
|
-
/** A multipart text value: JSON for objects and arrays, ISO-8601 for a `Date`, `String()` otherwise. */
|
|
87
|
-
const encodeFormValue = (opts) => {
|
|
88
|
-
const { key, value, bodyType } = opts;
|
|
89
|
-
// A urlencoded body carries text only; a file here would be sent as `"{}"` with nothing said.
|
|
90
|
-
if (value instanceof Blob) {
|
|
91
|
-
throw getError({
|
|
92
|
-
message: `[getRequestProps] "${key}" is a file, which a ${bodyType} body cannot carry. Send it with bodyType "${RequestBodyTypes.FORM_DATA}".`,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
if (value instanceof Date) {
|
|
96
|
-
return value.toISOString();
|
|
97
|
-
}
|
|
98
|
-
if (typeof value === 'object') {
|
|
99
|
-
return JSON.stringify(value);
|
|
100
|
-
}
|
|
101
|
-
return String(value);
|
|
102
|
-
};
|
|
103
|
-
/** Skips only `undefined` and `null`: `0`, `false` and `''` are values the caller meant to send. */
|
|
104
|
-
const appendFormDataValue = (opts) => {
|
|
105
|
-
const { formData, key, value } = opts;
|
|
106
|
-
if (!isDefined(value)) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (value instanceof Blob) {
|
|
110
|
-
formData.append(key, value, value.name);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
formData.append(key, encodeFormValue({ key, value, bodyType: RequestBodyTypes.FORM_DATA }));
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Reads the stored token, and `undefined` outside a browser. Also the resolver to hand
|
|
117
|
-
* `HttpDataSource`, so both transports send the same token.
|
|
118
|
-
*/
|
|
119
|
-
export const readAuthTokenFromStorage = () => {
|
|
120
|
-
if (typeof localStorage === 'undefined') {
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
const stored = localStorage.getItem(LocalStorageKeys.KEY_AUTH_TOKEN);
|
|
124
|
-
if (!stored?.length) {
|
|
125
|
-
return undefined;
|
|
126
|
-
}
|
|
127
|
-
try {
|
|
128
|
-
return JSON.parse(stored);
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
return undefined;
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
9
|
/** The server wraps an error body under this key; both transports unwrap it. */
|
|
135
10
|
const ERROR_ROOT_KEY = 'error';
|
|
11
|
+
/**
|
|
12
|
+
* The options hold data: the base URL, headers, the no-auth lists and the refresh path. Behaviour
|
|
13
|
+
* is in the protected hooks, each taking one `opts` object - `resolveAuthToken`, `isNoAuthPath`,
|
|
14
|
+
* `refreshToken`, `onAuthFailure` and `buildRequestTracingId` - which a subclass overrides, and
|
|
15
|
+
* `DefaultRestDataProvider.createNetworkService` returns.
|
|
16
|
+
*/
|
|
136
17
|
export class DefaultNetworkRequestService extends BaseService {
|
|
137
18
|
constructor(opts) {
|
|
138
19
|
super({ scope: DefaultNetworkRequestService.name });
|
|
139
20
|
this.refreshing = null;
|
|
140
|
-
const { name, baseUrl = '', headers = {},
|
|
141
|
-
this.
|
|
142
|
-
this.headers = toHeaderRecord(headers);
|
|
143
|
-
this.useAuth = useAuth;
|
|
21
|
+
const { name, baseUrl = '', headers = {}, noAuthPaths, noAuthPathRegex, authRecovery } = opts;
|
|
22
|
+
this.headers = NetworkHeaders.toRecord({ headers });
|
|
144
23
|
this.noAuthPaths = noAuthPaths;
|
|
145
|
-
this.noAuthPathRegexes =
|
|
24
|
+
this.noAuthPathRegexes = this.compileNoAuthPathRegex({ input: noAuthPathRegex });
|
|
146
25
|
this.baseUrl = baseUrl;
|
|
147
26
|
this.authRecovery = authRecovery;
|
|
148
27
|
this.networkRequest = new NodeFetchNetworkRequest({
|
|
@@ -150,10 +29,40 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
150
29
|
networkOptions: { baseUrl, headers },
|
|
151
30
|
});
|
|
152
31
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Reads the stored token, and `undefined` outside a browser. The default of `resolveAuthToken`,
|
|
34
|
+
* and what to hand an `HttpDataSource` as its `authTokenResolver`, so both transports send the
|
|
35
|
+
* same token.
|
|
36
|
+
*/
|
|
37
|
+
static readAuthTokenFromStorage() {
|
|
38
|
+
if (typeof localStorage === 'undefined') {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const stored = localStorage.getItem(LocalStorageKeys.KEY_AUTH_TOKEN);
|
|
42
|
+
if (!stored?.length) {
|
|
43
|
+
return undefined;
|
|
156
44
|
}
|
|
45
|
+
try {
|
|
46
|
+
return JSON.parse(stored);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// --- Hooks -----------------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* The token this service sends. The one way to supply a token: override it to read another
|
|
55
|
+
* store, or to hold the token in memory.
|
|
56
|
+
*/
|
|
57
|
+
resolveAuthToken() {
|
|
58
|
+
return DefaultNetworkRequestService.readAuthTokenFromStorage();
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Whether a request goes without a token: its `resource` is in `noAuthPaths`, or the resource, or
|
|
62
|
+
* the joined `paths`, matches `noAuthPathRegex`. To send no token at all (an API with no sign-in),
|
|
63
|
+
* set `noAuthPathRegex: /./`.
|
|
64
|
+
*/
|
|
65
|
+
isNoAuthPath(opts) {
|
|
157
66
|
const { resource, paths } = opts;
|
|
158
67
|
if (resource && this.noAuthPaths?.includes(resource)) {
|
|
159
68
|
return true;
|
|
@@ -172,31 +81,64 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
172
81
|
});
|
|
173
82
|
});
|
|
174
83
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Refreshes the session after a 401. Resolve `true` once it is refreshed - the request is then
|
|
86
|
+
* retried with the new token; resolve `false` when this service has no refresh (the default); throw
|
|
87
|
+
* when the refresh failed, and `onAuthFailure` runs. A request to `authRecovery.refreshTokenPath`
|
|
88
|
+
* never gets here.
|
|
89
|
+
*/
|
|
90
|
+
refreshToken() {
|
|
91
|
+
return Promise.resolve(false);
|
|
92
|
+
}
|
|
93
|
+
/** Runs once when `refreshToken` threw. The place to send the user back to sign-in. */
|
|
94
|
+
onAuthFailure() {
|
|
95
|
+
return Promise.resolve();
|
|
96
|
+
}
|
|
97
|
+
/** The tracing id of a request, sent in `x-request-tracing-id`. Default `<application name>_<uuid>`. */
|
|
98
|
+
buildRequestTracingId(opts) {
|
|
99
|
+
return `${opts.applicationInfo.name}_${uuidV4()}`;
|
|
100
|
+
}
|
|
101
|
+
// --- No-auth and recovery --------------------------------------------------------------------
|
|
102
|
+
/** `noAuthPathRegex` as `RegExp`s; a string is compiled, and an invalid one is logged and dropped. */
|
|
103
|
+
compileNoAuthPathRegex(opts) {
|
|
104
|
+
const { input } = opts;
|
|
105
|
+
if (!input) {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
const patterns = Array.isArray(input) ? input : [input];
|
|
109
|
+
const rs = [];
|
|
110
|
+
for (const pattern of patterns) {
|
|
111
|
+
if (!pattern) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (pattern instanceof RegExp) {
|
|
115
|
+
rs.push(pattern);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
rs.push(new RegExp(pattern));
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
this.logger.error('[compileNoAuthPathRegex] Invalid noAuthPathRegex pattern: %s', pattern);
|
|
123
|
+
}
|
|
189
124
|
}
|
|
125
|
+
return rs;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Refreshes the session, once for every 401 in flight on either transport: the callers share one
|
|
129
|
+
* `refreshToken` call. `true` when the token was refreshed. Also what `DefaultAuthProvider.refreshToken`
|
|
130
|
+
* calls, so a refresh is made in one place.
|
|
131
|
+
*/
|
|
132
|
+
refresh() {
|
|
190
133
|
// A refreshToken that throws synchronously is still a failed refresh, not a stray exception.
|
|
191
134
|
this.refreshing ??= Promise.resolve()
|
|
192
|
-
.then(() => refreshToken())
|
|
193
|
-
.then(() => true)
|
|
135
|
+
.then(() => this.refreshToken())
|
|
194
136
|
.catch(async () => {
|
|
195
137
|
try {
|
|
196
|
-
await
|
|
138
|
+
await this.onAuthFailure();
|
|
197
139
|
}
|
|
198
140
|
catch {
|
|
199
|
-
|
|
141
|
+
this.logger.error('[refresh] onAuthFailure failed');
|
|
200
142
|
}
|
|
201
143
|
return false;
|
|
202
144
|
})
|
|
@@ -206,29 +148,23 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
206
148
|
return this.refreshing;
|
|
207
149
|
}
|
|
208
150
|
canRecover(paths) {
|
|
209
|
-
const rec = this.authRecovery;
|
|
210
|
-
if (!rec?.refreshToken) {
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
151
|
if (this.isNoAuthPath({ resource: paths?.[0], paths })) {
|
|
214
152
|
return false;
|
|
215
153
|
}
|
|
216
|
-
|
|
154
|
+
const refreshTokenPath = this.authRecovery?.refreshTokenPath;
|
|
155
|
+
if (refreshTokenPath && paths?.join('/').includes(refreshTokenPath)) {
|
|
217
156
|
return false;
|
|
218
157
|
}
|
|
219
158
|
return true;
|
|
220
159
|
}
|
|
221
|
-
|
|
222
|
-
resolveAuthToken() {
|
|
223
|
-
return this.authToken ?? this.authTokenResolver();
|
|
224
|
-
}
|
|
160
|
+
// --- Requests --------------------------------------------------------------------------------
|
|
225
161
|
/**
|
|
226
162
|
* Spread into an `HttpDataSource`'s settings. Each of its requests then carries, as read at send
|
|
227
163
|
* time, the session headers (`setHeaders`) and the timezone; with the data provider's options,
|
|
228
164
|
* the request channel and tracing id too. A no-auth path gets no token and no refresh, as on the
|
|
229
|
-
* data provider. Any other 401 joins this service's refresh
|
|
230
|
-
* 401 in flight on either transport, `onAuthFailure` on a failed one, and no retry when
|
|
231
|
-
*
|
|
165
|
+
* data provider. Any other 401 joins this service's `refresh`: one `refreshToken` call for every
|
|
166
|
+
* 401 in flight on either transport, `onAuthFailure` on a failed one, and no retry when the
|
|
167
|
+
* service has no refresh. The refresh is shared, so one call's abort never cancels it.
|
|
232
168
|
*/
|
|
233
169
|
getDataSourceAuth(opts) {
|
|
234
170
|
return {
|
|
@@ -238,10 +174,12 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
238
174
|
: this.resolveAuthToken();
|
|
239
175
|
},
|
|
240
176
|
headersResolver: () => {
|
|
241
|
-
return
|
|
177
|
+
return NetworkHeaders.merge({
|
|
178
|
+
sources: [this.getSessionHeaders(), opts ? this.getTracingHeaders(opts) : {}],
|
|
179
|
+
});
|
|
242
180
|
},
|
|
243
181
|
onUnauthorized: ({ paths }) => {
|
|
244
|
-
return this.canRecover(paths) ? this.
|
|
182
|
+
return this.canRecover(paths) ? this.refresh() : Promise.resolve(false);
|
|
245
183
|
},
|
|
246
184
|
errorRootKey: ERROR_ROOT_KEY,
|
|
247
185
|
};
|
|
@@ -259,47 +197,40 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
259
197
|
token: `${authToken?.type?.length ? authToken.type : 'Bearer'} ${authToken.value}`,
|
|
260
198
|
};
|
|
261
199
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
this.
|
|
265
|
-
}
|
|
266
|
-
setAuthRecovery(authRecovery) {
|
|
267
|
-
this.authRecovery = { ...this.authRecovery, ...authRecovery };
|
|
268
|
-
}
|
|
269
|
-
getAuthRecovery() {
|
|
270
|
-
return this.authRecovery;
|
|
200
|
+
/** Adds headers to every request this service sends; a name already set is replaced, in any case. */
|
|
201
|
+
setHeaders(opts) {
|
|
202
|
+
this.headers = NetworkHeaders.merge({ sources: [this.headers, opts.headers] });
|
|
271
203
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
removeHeaders(keys) {
|
|
276
|
-
if (!keys?.length) {
|
|
204
|
+
removeHeaders(opts) {
|
|
205
|
+
if (!opts.keys?.length) {
|
|
277
206
|
return;
|
|
278
207
|
}
|
|
279
208
|
// The record is keyed by lowercase name.
|
|
280
|
-
for (const key of keys) {
|
|
209
|
+
for (const key of opts.keys) {
|
|
281
210
|
delete this.headers[key.toLowerCase()];
|
|
282
211
|
}
|
|
283
212
|
}
|
|
284
213
|
/** The timezone, then whatever `setHeaders` holds now. Both transports send these. */
|
|
285
214
|
getSessionHeaders() {
|
|
286
|
-
return
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
215
|
+
return NetworkHeaders.merge({
|
|
216
|
+
sources: [
|
|
217
|
+
{
|
|
218
|
+
[HeaderConstants.TIMEZONE]: App.TIMEZONE,
|
|
219
|
+
[HeaderConstants.TIMEZONE_OFFSET]: `${App.TIMEZONE_OFFSET}`,
|
|
220
|
+
},
|
|
221
|
+
this.headers,
|
|
222
|
+
],
|
|
223
|
+
});
|
|
290
224
|
}
|
|
291
225
|
/** The request channel, `web` unless configured, and a fresh tracing id. */
|
|
292
226
|
getTracingHeaders(opts) {
|
|
293
227
|
const { restDataProviderOptions, applicationInfo } = opts;
|
|
294
|
-
const requestTracingId = restDataProviderOptions.requestTracingId;
|
|
295
228
|
const channel = restDataProviderOptions.requestTracingChannel?.length
|
|
296
229
|
? restDataProviderOptions.requestTracingChannel
|
|
297
230
|
: RequestChannel.WEB;
|
|
298
231
|
return {
|
|
299
|
-
[
|
|
300
|
-
[
|
|
301
|
-
? requestTracingId({ applicationInfo })
|
|
302
|
-
: `${applicationInfo.name}_${uuidV4()}`,
|
|
232
|
+
[HeaderConstants.REQUEST_CHANNEL]: channel,
|
|
233
|
+
[HeaderConstants.REQUEST_TRACING_ID]: this.buildRequestTracingId({ applicationInfo }),
|
|
303
234
|
};
|
|
304
235
|
}
|
|
305
236
|
getRequestHeader(opts) {
|
|
@@ -312,21 +243,86 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
312
243
|
return {
|
|
313
244
|
...defaultHeaders,
|
|
314
245
|
// A token need not name a provider; never send the string `undefined`.
|
|
315
|
-
...(authHeader.provider ? { [
|
|
316
|
-
[
|
|
246
|
+
...(authHeader.provider ? { [HeaderConstants.X_AUTH_PROVIDER]: authHeader.provider } : {}),
|
|
247
|
+
[HeaderConstants.AUTHORIZATION]: authHeader.token,
|
|
317
248
|
};
|
|
318
249
|
}
|
|
250
|
+
// `FileList` exists only in a DOM; the bare identifier throws in Workers and on Bun.
|
|
251
|
+
isFileList(opts) {
|
|
252
|
+
return typeof FileList !== 'undefined' && opts.value instanceof FileList;
|
|
253
|
+
}
|
|
254
|
+
/** A multipart text value: JSON for objects and arrays, ISO-8601 for a `Date`, `String()` otherwise. */
|
|
255
|
+
encodeFormValue(opts) {
|
|
256
|
+
const { key, value, bodyType } = opts;
|
|
257
|
+
// A urlencoded body carries text only; a file here would be sent as `"{}"` with nothing said.
|
|
258
|
+
if (value instanceof Blob) {
|
|
259
|
+
throw getError({
|
|
260
|
+
message: `[getRequestProps] "${key}" is a file, which a ${bodyType} body cannot carry. Send it with bodyType "${RequestBodyTypes.FORM_DATA}".`,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
if (value instanceof Date) {
|
|
264
|
+
return value.toISOString();
|
|
265
|
+
}
|
|
266
|
+
if (typeof value === 'object') {
|
|
267
|
+
return JSON.stringify(value);
|
|
268
|
+
}
|
|
269
|
+
return String(value);
|
|
270
|
+
}
|
|
271
|
+
/** Skips only `undefined` and `null`: `0`, `false` and `''` are values the caller meant to send. */
|
|
272
|
+
appendFormDataValue(opts) {
|
|
273
|
+
const { formData, key, value } = opts;
|
|
274
|
+
if (!isDefined(value)) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
if (value instanceof Blob) {
|
|
278
|
+
formData.append(key, value, value.name);
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
formData.append(key, this.encodeFormValue({ key, value, bodyType: RequestBodyTypes.FORM_DATA }));
|
|
282
|
+
}
|
|
283
|
+
/** The file name a `Content-Disposition` header names, `filename*` before `filename`. */
|
|
284
|
+
parseFilenameFromContentDisposition(opts) {
|
|
285
|
+
const { header } = opts;
|
|
286
|
+
if (!header) {
|
|
287
|
+
return undefined;
|
|
288
|
+
}
|
|
289
|
+
const extMatch = header.match(/filename\*\s*=\s*([^']*)'[^']*'([^;]+)/i);
|
|
290
|
+
if (extMatch) {
|
|
291
|
+
try {
|
|
292
|
+
return decodeURIComponent(extMatch[2].trim());
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
return extMatch[2].trim();
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const quotedMatch = header.match(/filename\s*=\s*"([^"]+)"/i);
|
|
299
|
+
if (quotedMatch) {
|
|
300
|
+
return quotedMatch[1];
|
|
301
|
+
}
|
|
302
|
+
const bareMatch = header.match(/filename\s*=\s*([^;]+)/i);
|
|
303
|
+
if (bareMatch) {
|
|
304
|
+
return bareMatch[1].trim();
|
|
305
|
+
}
|
|
306
|
+
return undefined;
|
|
307
|
+
}
|
|
319
308
|
getRequestProps(params) {
|
|
320
309
|
const { bodyType, body, resource, restDataProviderOptions, applicationInfo, requestCountData = RequestCountData.DATA_ONLY, extra, } = params;
|
|
321
310
|
const extraHeader = HttpExtraRequest.toHeader({ extra });
|
|
322
311
|
// Merged, not spread, so a per-request value replaces a static header in any case.
|
|
323
|
-
const headers =
|
|
312
|
+
const headers = NetworkHeaders.merge({
|
|
313
|
+
sources: [
|
|
314
|
+
this.getRequestHeader({ resource }),
|
|
315
|
+
this.getTracingHeaders({ restDataProviderOptions, applicationInfo }),
|
|
316
|
+
{ [HeaderConstants.REQUEST_COUNT_DATA]: requestCountData },
|
|
317
|
+
extraHeader ? { [HttpExtraRequest.HEADER]: extraHeader } : undefined,
|
|
318
|
+
],
|
|
319
|
+
});
|
|
324
320
|
const rs = { headers, body };
|
|
325
321
|
switch (bodyType) {
|
|
326
322
|
case RequestBodyTypes.FORM_URL_ENCODED: {
|
|
327
323
|
rs.headers = {
|
|
328
324
|
...headers,
|
|
329
|
-
[
|
|
325
|
+
[HeaderConstants.CONTENT_TYPE]: 'application/x-www-form-urlencoded',
|
|
330
326
|
};
|
|
331
327
|
const encoded = new URLSearchParams();
|
|
332
328
|
for (const key in body) {
|
|
@@ -334,7 +330,7 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
334
330
|
if (!isDefined(body[key])) {
|
|
335
331
|
continue;
|
|
336
332
|
}
|
|
337
|
-
encoded.append(key, encodeFormValue({
|
|
333
|
+
encoded.append(key, this.encodeFormValue({
|
|
338
334
|
key,
|
|
339
335
|
value: body[key],
|
|
340
336
|
bodyType: RequestBodyTypes.FORM_URL_ENCODED,
|
|
@@ -348,13 +344,13 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
348
344
|
const formData = new FormData();
|
|
349
345
|
for (const key in body) {
|
|
350
346
|
const val = body[key];
|
|
351
|
-
if (Array.isArray(val) || isFileList(val)) {
|
|
347
|
+
if (Array.isArray(val) || this.isFileList({ value: val })) {
|
|
352
348
|
Array.from(val).forEach((item) => {
|
|
353
|
-
appendFormDataValue({ formData, key, value: item });
|
|
349
|
+
this.appendFormDataValue({ formData, key, value: item });
|
|
354
350
|
});
|
|
355
351
|
continue;
|
|
356
352
|
}
|
|
357
|
-
appendFormDataValue({ formData, key, value: val });
|
|
353
|
+
this.appendFormDataValue({ formData, key, value: val });
|
|
358
354
|
}
|
|
359
355
|
rs.body = formData;
|
|
360
356
|
break;
|
|
@@ -362,7 +358,7 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
362
358
|
default: {
|
|
363
359
|
rs.headers = {
|
|
364
360
|
...headers,
|
|
365
|
-
[
|
|
361
|
+
[HeaderConstants.CONTENT_TYPE]: 'application/json',
|
|
366
362
|
};
|
|
367
363
|
rs.body = body;
|
|
368
364
|
break;
|
|
@@ -373,7 +369,7 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
373
369
|
/** The total from `Content-Range`, or the page's own row count when the header is absent or malformed. */
|
|
374
370
|
resolveTotal(opts) {
|
|
375
371
|
const range = HttpResponseReader.parseContentRange({
|
|
376
|
-
header: opts.headers?.get(
|
|
372
|
+
header: opts.headers?.get(HeaderConstants.CONTENT_RANGE),
|
|
377
373
|
});
|
|
378
374
|
return range?.total ?? opts.rowCount;
|
|
379
375
|
}
|
|
@@ -438,7 +434,7 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
438
434
|
return data;
|
|
439
435
|
}
|
|
440
436
|
// A missing or non-numeric header means the server sent no count - never NaN.
|
|
441
|
-
const count = Number.parseInt(headers?.get(
|
|
437
|
+
const count = Number.parseInt(headers?.get(HeaderConstants.RESPONSE_COUNT_DATA) ?? '', 10);
|
|
442
438
|
return {
|
|
443
439
|
data: data,
|
|
444
440
|
count: Number.isNaN(count) ? undefined : count,
|
|
@@ -451,13 +447,13 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
451
447
|
if (rs.status === 204) {
|
|
452
448
|
return { data: {} };
|
|
453
449
|
}
|
|
454
|
-
const contentType = (rs.headers?.get(
|
|
455
|
-
const contentDisposition = rs.headers?.get(
|
|
456
|
-
const isAttachment =
|
|
457
|
-
const isTextual = contentType !== '' &&
|
|
450
|
+
const contentType = (rs.headers?.get(HeaderConstants.CONTENT_TYPE) ?? '').toLowerCase();
|
|
451
|
+
const contentDisposition = rs.headers?.get(HeaderConstants.CONTENT_DISPOSITION) ?? '';
|
|
452
|
+
const isAttachment = HeaderConstants.ATTACHMENT_CONTENT_DISPOSITION_RE.test(contentDisposition);
|
|
453
|
+
const isTextual = contentType !== '' && HeaderConstants.TEXTUAL_CONTENT_TYPE_RE.test(contentType);
|
|
458
454
|
if (isAttachment || !isTextual) {
|
|
459
455
|
const blob = await rs.blob();
|
|
460
|
-
const filename = parseFilenameFromContentDisposition(contentDisposition);
|
|
456
|
+
const filename = this.parseFilenameFromContentDisposition({ header: contentDisposition });
|
|
461
457
|
return {
|
|
462
458
|
data: blob,
|
|
463
459
|
...(filename ? { filename } : {}),
|
|
@@ -499,13 +495,15 @@ export class DefaultNetworkRequestService extends BaseService {
|
|
|
499
495
|
};
|
|
500
496
|
let rs = await sendOnce(headers);
|
|
501
497
|
if (rs.status === 401 && this.canRecover(paths)) {
|
|
502
|
-
const isRefreshed = await this.
|
|
498
|
+
const isRefreshed = await this.refresh();
|
|
503
499
|
if (isRefreshed) {
|
|
504
500
|
const authHeader = this.getRequestAuthorizationHeader();
|
|
505
501
|
const retryHeaders = {
|
|
506
502
|
...headers,
|
|
507
|
-
[
|
|
508
|
-
...(authHeader.provider
|
|
503
|
+
[HeaderConstants.AUTHORIZATION]: authHeader.token,
|
|
504
|
+
...(authHeader.provider
|
|
505
|
+
? { [HeaderConstants.X_AUTH_PROVIDER]: authHeader.provider }
|
|
506
|
+
: {}),
|
|
509
507
|
};
|
|
510
508
|
rs = await sendOnce(retryHeaders);
|
|
511
509
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-request.js","sourceRoot":"","sources":["../../../src/base/services/network-request.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"network-request.js","sourceRoot":"","sources":["../../../src/base/services/network-request.ts"],"names":[],"mappings":"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"}
|