@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.
Files changed (73) hide show
  1. package/README.md +2 -2
  2. package/dist/base/applications/abstract.d.ts.map +1 -1
  3. package/dist/base/applications/abstract.js +8 -1
  4. package/dist/base/applications/abstract.js.map +1 -1
  5. package/dist/base/decorators/api.d.ts +1 -1
  6. package/dist/base/decorators/api.d.ts.map +1 -1
  7. package/dist/base/decorators/api.js +3 -3
  8. package/dist/base/decorators/api.js.map +1 -1
  9. package/dist/base/services/auth.d.ts.map +1 -1
  10. package/dist/base/services/auth.js +6 -2
  11. package/dist/base/services/auth.js.map +1 -1
  12. package/dist/base/services/base.d.ts +2 -6
  13. package/dist/base/services/base.d.ts.map +1 -1
  14. package/dist/base/services/base.js +2 -5
  15. package/dist/base/services/base.js.map +1 -1
  16. package/dist/base/services/network-request.d.ts +75 -29
  17. package/dist/base/services/network-request.d.ts.map +1 -1
  18. package/dist/base/services/network-request.js +208 -210
  19. package/dist/base/services/network-request.js.map +1 -1
  20. package/dist/common/constants.d.ts +11 -5
  21. package/dist/common/constants.d.ts.map +1 -1
  22. package/dist/common/constants.js +26 -9
  23. package/dist/common/constants.js.map +1 -1
  24. package/dist/common/keys.d.ts +2 -0
  25. package/dist/common/keys.d.ts.map +1 -1
  26. package/dist/common/keys.js +8 -0
  27. package/dist/common/keys.js.map +1 -1
  28. package/dist/common/types.d.ts +25 -48
  29. package/dist/common/types.d.ts.map +1 -1
  30. package/dist/helpers/logger.d.ts +21 -15
  31. package/dist/helpers/logger.d.ts.map +1 -1
  32. package/dist/helpers/logger.js +20 -15
  33. package/dist/helpers/logger.js.map +1 -1
  34. package/dist/helpers/networks/base-request.d.ts +7 -7
  35. package/dist/helpers/networks/base-request.d.ts.map +1 -1
  36. package/dist/helpers/networks/base-request.js.map +1 -1
  37. package/dist/helpers/networks/fetchers/abstract.d.ts +25 -21
  38. package/dist/helpers/networks/fetchers/abstract.d.ts.map +1 -1
  39. package/dist/helpers/networks/fetchers/abstract.js +16 -18
  40. package/dist/helpers/networks/fetchers/abstract.js.map +1 -1
  41. package/dist/helpers/networks/fetchers/node-fetch.d.ts +1 -2
  42. package/dist/helpers/networks/fetchers/node-fetch.d.ts.map +1 -1
  43. package/dist/helpers/networks/fetchers/node-fetch.js +6 -8
  44. package/dist/helpers/networks/fetchers/node-fetch.js.map +1 -1
  45. package/dist/helpers/networks/headers.d.ts +16 -0
  46. package/dist/helpers/networks/headers.d.ts.map +1 -0
  47. package/dist/helpers/networks/headers.js +32 -0
  48. package/dist/helpers/networks/headers.js.map +1 -0
  49. package/dist/helpers/networks/index.d.ts +1 -0
  50. package/dist/helpers/networks/index.d.ts.map +1 -1
  51. package/dist/helpers/networks/index.js +1 -0
  52. package/dist/helpers/networks/index.js.map +1 -1
  53. package/dist/helpers/socket-io-client.d.ts +6 -3
  54. package/dist/helpers/socket-io-client.d.ts.map +1 -1
  55. package/dist/helpers/socket-io-client.js +30 -3
  56. package/dist/helpers/socket-io-client.js.map +1 -1
  57. package/dist/utilities/boolean.d.ts +16 -5
  58. package/dist/utilities/boolean.d.ts.map +1 -1
  59. package/dist/utilities/boolean.js +13 -10
  60. package/dist/utilities/boolean.js.map +1 -1
  61. package/dist/utilities/file.d.ts +4 -1
  62. package/dist/utilities/file.d.ts.map +1 -1
  63. package/dist/utilities/file.js +8 -7
  64. package/dist/utilities/file.js.map +1 -1
  65. package/dist/utilities/parse.d.ts +46 -14
  66. package/dist/utilities/parse.d.ts.map +1 -1
  67. package/dist/utilities/parse.js +69 -83
  68. package/dist/utilities/parse.js.map +1 -1
  69. package/dist/utilities/url.d.ts +7 -4
  70. package/dist/utilities/url.d.ts.map +1 -1
  71. package/dist/utilities/url.js +13 -19
  72. package/dist/utilities/url.js.map +1 -1
  73. 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 merge from 'lodash/merge.js';
6
- import { App, HeaderConsts, LocalStorageKeys, RequestBodyTypes, RequestChannel, RequestCountData, RequestMethods, RequestTypes, } from '../../common/index.js';
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 = {}, useAuth = true, noAuthPaths, noAuthPathRegex, authRecovery, authTokenResolver = readAuthTokenFromStorage, } = opts;
141
- this.authTokenResolver = authTokenResolver;
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 = normalizeNoAuthPathRegex(noAuthPathRegex);
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
- isNoAuthPath(opts) {
154
- if (!this.useAuth) {
155
- return true;
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
- setUseAuth(useAuth) {
176
- this.useAuth = useAuth;
177
- }
178
- setNoAuthPaths(noAuthPaths) {
179
- this.noAuthPaths = noAuthPaths;
180
- }
181
- setNoAuthPathRegex(noAuthPathRegex) {
182
- this.noAuthPathRegexes = normalizeNoAuthPathRegex(noAuthPathRegex);
183
- }
184
- ensureRefreshed() {
185
- const rec = this.authRecovery;
186
- const refreshToken = rec?.refreshToken;
187
- if (!rec || !refreshToken) {
188
- return Promise.resolve(false);
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 rec.onAuthFailure?.();
138
+ await this.onAuthFailure();
197
139
  }
198
140
  catch {
199
- console.error('[DefaultNetworkRequestService][ensureRefreshed] onAuthFailure callback failed');
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
- if (rec.refreshTokenPath && paths?.join('/').includes(rec.refreshTokenPath)) {
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
- /** The token this service sends: the one `setAuthToken` set, else the resolver's. */
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: one `refreshToken` call for every
230
- * 401 in flight on either transport, `onAuthFailure` on a failed one, and no retry when no
231
- * `refreshToken` is configured. The refresh is shared, so one call's abort never cancels it.
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 mergeHeaders(this.getSessionHeaders(), opts ? this.getTracingHeaders(opts) : {});
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.ensureRefreshed() : Promise.resolve(false);
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
- setAuthToken(opts) {
263
- const { type, value } = opts;
264
- this.authToken = { type, value };
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
- setHeaders(headers) {
273
- this.headers = merge(this.headers, toHeaderRecord(headers));
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 mergeHeaders({
287
- [HeaderConsts.TIMEZONE]: App.TIMEZONE,
288
- [HeaderConsts.TIMEZONE_OFFSET]: `${App.TIMEZONE_OFFSET}`,
289
- }, this.headers);
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
- [HeaderConsts.REQUEST_CHANNEL]: channel,
300
- [HeaderConsts.REQUEST_TRACING_ID]: requestTracingId instanceof Function
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 ? { [HeaderConsts.X_AUTH_PROVIDER]: authHeader.provider } : {}),
316
- [HeaderConsts.AUTHORIZATION]: authHeader.token,
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 = mergeHeaders(this.getRequestHeader({ resource }), this.getTracingHeaders({ restDataProviderOptions, applicationInfo }), { [HeaderConsts.REQUEST_COUNT_DATA]: requestCountData }, extraHeader ? { [HttpExtraRequest.HEADER]: extraHeader } : undefined);
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
- [HeaderConsts.CONTENT_TYPE]: 'application/x-www-form-urlencoded',
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
- [HeaderConsts.CONTENT_TYPE]: 'application/json',
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(HeaderConsts.CONTENT_RANGE),
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(HeaderConsts.RESPONSE_COUNT_DATA) ?? '', 10);
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(HeaderConsts.CONTENT_TYPE) ?? '').toLowerCase();
455
- const contentDisposition = rs.headers?.get(HeaderConsts.CONTENT_DISPOSITION) ?? '';
456
- const isAttachment = HeaderConsts.ATTACHMENT_CONTENT_DISPOSITION_RE.test(contentDisposition);
457
- const isTextual = contentType !== '' && HeaderConsts.TEXTUAL_CONTENT_TYPE_RE.test(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.ensureRefreshed();
498
+ const isRefreshed = await this.refresh();
503
499
  if (isRefreshed) {
504
500
  const authHeader = this.getRequestAuthorizationHeader();
505
501
  const retryHeaders = {
506
502
  ...headers,
507
- [HeaderConsts.AUTHORIZATION]: authHeader.token,
508
- ...(authHeader.provider ? { [HeaderConsts.X_AUTH_PROVIDER]: 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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"}