@bleedingdev/modern-js-create-request 3.9.0-ultramodern.2 → 3.9.0-ultramodern.21

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.
@@ -28,156 +28,59 @@ var __webpack_require__ = {};
28
28
  var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
- createRequestFactory: ()=>createRequestFactory
31
+ createRequestFactory: ()=>createRequestFactory,
32
+ extractPathParamNames: ()=>extractPathParamNames
32
33
  });
33
34
  const external_path_to_regexp_namespaceObject = require("path-to-regexp");
34
35
  const external_qs_namespaceObject = require("qs");
35
- const external_policyCore_js_namespaceObject = require("./policyCore.js");
36
- const external_transport_js_namespaceObject = require("./transport.js");
37
- const external_types_js_namespaceObject = require("./types.js");
36
+ const external_headers_js_namespaceObject = require("./headers.js");
38
37
  const external_utiles_js_namespaceObject = require("./utiles.js");
39
- const OPERATION_CONTEXT_DETAIL_HEADER = external_types_js_namespaceObject.BFF_OPERATION_CONTEXT_DETAIL_HEADER;
38
+ const extractPathParamNames = (path)=>Array.from(path.matchAll(/:([A-Za-z0-9_]+)/g)).flatMap(([, key])=>key ? [
39
+ key
40
+ ] : []);
40
41
  const createRequestFactory = (environment)=>{
41
42
  const isServerTarget = 'server' === environment.target;
42
43
  const realRequest = new Map();
43
44
  const realAllowedHeaders = new Map();
44
- const realResolveHeaders = new Map();
45
- const realRequireEnvelope = new Map();
46
- const realAllowCrossOriginEnvelope = new Map();
47
- const realTransportResilience = new Map();
48
- const realIdentityBinding = new Map();
49
- const realOperationContract = new Map();
50
45
  const domainMap = new Map();
51
- const attachEnvelopeHeaderIfRequired = (headers, requestId, url, incomingHeaders)=>{
52
- const shouldRequireEnvelope = realRequireEnvelope.get(requestId) ?? (0, external_policyCore_js_namespaceObject.isSecuredRequestId)(requestId);
53
- if (!shouldRequireEnvelope) return;
54
- headers[external_types_js_namespaceObject.BFF_ENVELOPE_HEADER] = (0, external_policyCore_js_namespaceObject.buildEnvelopeHeaderValue)({
46
+ const startRequest = (requestId, hooks)=>{
47
+ const context = {
55
48
  requestId,
56
49
  target: environment.target,
57
- sourceOrigin: environment.resolveSourceOrigin(incomingHeaders),
58
- targetOrigin: (0, external_policyCore_js_namespaceObject.toOrigin)(url),
59
- traceContext: (0, external_policyCore_js_namespaceObject.parseTraceparentValue)((0, external_policyCore_js_namespaceObject.readHeader)(headers, external_policyCore_js_namespaceObject.TRACEPARENT_HEADER)),
60
- allowCrossOriginEnvelope: realAllowCrossOriginEnvelope.get(requestId)
61
- });
62
- };
63
- const attachSecuredOperationHeaders = (headers, requestId, method, path, operationContext)=>{
64
- if (!(0, external_policyCore_js_namespaceObject.isSecuredRequestId)(requestId)) return;
65
- (0, external_policyCore_js_namespaceObject.attachOperationContextHeaders)({
66
- headers,
67
- requestId,
68
- target: environment.target,
69
- method,
70
- path,
71
- operationContext,
72
- operationContract: realOperationContract.get(requestId),
73
- operationContextHeader: external_types_js_namespaceObject.BFF_OPERATION_CONTEXT_HEADER,
74
- operationContextDetailHeader: OPERATION_CONTEXT_DETAIL_HEADER
75
- });
50
+ incomingHeaders: environment.readIncomingHeaders(),
51
+ configured: realRequest.has(requestId),
52
+ configuredDomain: domainMap.get(requestId)
53
+ };
54
+ hooks?.onStart?.(context);
55
+ return context;
76
56
  };
77
- const applyIdentityAndForwardedHeaders = (headers, requestId, incomingHeaders)=>{
78
- const identityBinding = realIdentityBinding.get(requestId);
79
- const identityBindingEnabled = identityBinding?.enabled ?? (0, external_policyCore_js_namespaceObject.isSecuredRequestId)(requestId);
80
- const identityBindingStrict = identityBinding?.strict ?? (0, external_policyCore_js_namespaceObject.isSecuredRequestId)(requestId);
81
- const protectedIdentityHeaders = (identityBinding?.protectedHeaders || external_types_js_namespaceObject.BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS).map((header)=>header.toLowerCase());
82
- const targetAllowedHeaders = realAllowedHeaders.get(requestId) || [];
57
+ const prepareHeaders = (headers, context, hooks)=>{
58
+ const allowedHeaders = realAllowedHeaders.get(context.requestId) || [];
83
59
  const forwardedHeaders = {};
84
- if (isServerTarget) for (const key of targetAllowedHeaders){
85
- const incomingValue = (0, external_policyCore_js_namespaceObject.readHeader)(incomingHeaders, key);
86
- if (void 0 !== incomingValue) (0, external_policyCore_js_namespaceObject.writeHeader)(forwardedHeaders, key, incomingValue);
87
- }
88
- if (identityBindingEnabled) {
89
- const derivedIdentityHeaders = {};
90
- if (isServerTarget) for (const header of protectedIdentityHeaders){
91
- const incomingHeaderValue = (0, external_policyCore_js_namespaceObject.readHeader)(incomingHeaders, header);
92
- if (void 0 !== incomingHeaderValue) (0, external_policyCore_js_namespaceObject.writeHeader)(derivedIdentityHeaders, header, incomingHeaderValue);
93
- }
94
- const customDerivedHeaders = identityBinding?.deriveHeaders?.({
95
- requestId,
96
- target: environment.target,
97
- incomingHeaders: isServerTarget ? {
98
- ...incomingHeaders
99
- } : {},
100
- protectedHeaders: [
101
- ...protectedIdentityHeaders
102
- ]
103
- });
104
- if (customDerivedHeaders && 'object' == typeof customDerivedHeaders) for (const header of protectedIdentityHeaders){
105
- const customValue = (0, external_policyCore_js_namespaceObject.readHeader)(customDerivedHeaders, header);
106
- if (void 0 !== customValue) (0, external_policyCore_js_namespaceObject.writeHeader)(derivedIdentityHeaders, header, customValue);
107
- }
108
- for (const header of protectedIdentityHeaders){
109
- const attemptedValue = (0, external_policyCore_js_namespaceObject.readHeader)(headers, header);
110
- if (void 0 === attemptedValue) continue;
111
- const violation = {
112
- requestId,
113
- target: environment.target,
114
- header,
115
- attemptedValue,
116
- derivedValue: (0, external_policyCore_js_namespaceObject.readHeader)(derivedIdentityHeaders, header),
117
- reason: 'client_override_blocked'
118
- };
119
- identityBinding?.onViolation?.(violation);
120
- if (identityBindingStrict) throw new external_policyCore_js_namespaceObject.IdentityBindingViolationError(violation);
121
- (0, external_policyCore_js_namespaceObject.deleteHeader)(headers, header);
122
- }
123
- Object.keys(derivedIdentityHeaders).forEach((header)=>{
124
- if (isServerTarget) (0, external_policyCore_js_namespaceObject.writeHeader)(forwardedHeaders, header, derivedIdentityHeaders[header]);
125
- else (0, external_policyCore_js_namespaceObject.writeHeader)(headers, header, derivedIdentityHeaders[header]);
126
- });
60
+ if (isServerTarget) for (const key of allowedHeaders){
61
+ const value = (0, external_headers_js_namespaceObject.readHeader)(context.incomingHeaders, key);
62
+ if (void 0 !== value) (0, external_headers_js_namespaceObject.writeHeader)(forwardedHeaders, key, value);
127
63
  }
128
- if (isServerTarget) {
129
- const resolveHeaders = realResolveHeaders.get(requestId);
130
- if (resolveHeaders) {
131
- const resolvedHeaders = resolveHeaders({
132
- requestId,
133
- allowedHeaders: targetAllowedHeaders,
134
- incomingHeaders: {
135
- ...forwardedHeaders
136
- }
137
- });
138
- if (resolvedHeaders && 'object' == typeof resolvedHeaders) for (const key of targetAllowedHeaders){
139
- const resolvedValue = (0, external_policyCore_js_namespaceObject.readHeader)(resolvedHeaders, key);
140
- if (void 0 !== resolvedValue) {
141
- if (identityBindingEnabled && protectedIdentityHeaders.includes(key.toLowerCase())) {
142
- (0, external_policyCore_js_namespaceObject.writeHeader)(forwardedHeaders, key.toLowerCase(), resolvedValue);
143
- continue;
144
- }
145
- (0, external_policyCore_js_namespaceObject.writeHeader)(forwardedHeaders, key, resolvedValue);
146
- }
147
- }
148
- }
149
- }
150
- if (isServerTarget) for (const [header, value] of Object.entries(forwardedHeaders))(0, external_policyCore_js_namespaceObject.writeHeader)(headers, header, value);
64
+ hooks?.prepareHeaders?.({
65
+ ...context,
66
+ headers,
67
+ forwardedHeaders,
68
+ allowedHeaders
69
+ });
70
+ if (isServerTarget) for (const [header, value] of Object.entries(forwardedHeaders))(0, external_headers_js_namespaceObject.writeHeader)(headers, header, value);
151
71
  return headers;
152
72
  };
73
+ const dispatch = (context, hooks)=>hooks?.dispatch ? hooks.dispatch(context) : context.fetcher(context.url, context.init);
153
74
  const configure = (options)=>{
154
- const { request, interceptor, allowedHeaders, resolveHeaders, transport, requireEnvelope, allowCrossOriginEnvelope, identityBinding, operationContract, setDomain, requestId = 'default' } = options;
155
- const hasExistingDomain = domainMap.has(requestId);
156
- if ('default' !== requestId && !setDomain && !hasExistingDomain) throw new external_policyCore_js_namespaceObject.ProducerDomainNotConfiguredError(requestId);
75
+ const { request, interceptor, allowedHeaders, setDomain, requestId = 'default' } = options;
157
76
  let configuredRequest = request || environment.originFetch;
158
77
  if (interceptor && !request) configuredRequest = interceptor(environment.getFetch());
159
- let resolvedDomain;
160
- if (setDomain) {
161
- resolvedDomain = setDomain({
162
- target: environment.target,
163
- requestId
164
- });
165
- if ('default' !== requestId && (0, external_policyCore_js_namespaceObject.isEmptyDomain)(resolvedDomain)) throw new external_policyCore_js_namespaceObject.ProducerDomainNotConfiguredError(requestId);
166
- }
78
+ const resolvedDomain = setDomain?.({
79
+ target: environment.target,
80
+ requestId
81
+ });
167
82
  realAllowedHeaders.delete(requestId);
168
- realResolveHeaders.delete(requestId);
169
- realTransportResilience.delete(requestId);
170
- realIdentityBinding.delete(requestId);
171
- realOperationContract.delete(requestId);
172
- realRequireEnvelope.delete(requestId);
173
- realAllowCrossOriginEnvelope.delete(requestId);
174
83
  if (Array.isArray(allowedHeaders)) realAllowedHeaders.set(requestId, allowedHeaders);
175
- if (isServerTarget && 'function' == typeof resolveHeaders) realResolveHeaders.set(requestId, resolveHeaders);
176
- if (transport && 'object' == typeof transport) realTransportResilience.set(requestId, transport);
177
- if (identityBinding && 'object' == typeof identityBinding) realIdentityBinding.set(requestId, identityBinding);
178
- if (operationContract && 'object' == typeof operationContract) realOperationContract.set(requestId, operationContract);
179
- if ('boolean' == typeof requireEnvelope) realRequireEnvelope.set(requestId, requireEnvelope);
180
- if ('boolean' == typeof allowCrossOriginEnvelope || 'function' == typeof allowCrossOriginEnvelope) realAllowCrossOriginEnvelope.set(requestId, allowCrossOriginEnvelope);
181
84
  if ('string' == typeof resolvedDomain) domainMap.set(requestId, resolvedDomain);
182
85
  realRequest.set(requestId, configuredRequest);
183
86
  };
@@ -189,22 +92,21 @@ const createRequestFactory = (environment)=>{
189
92
  httpMethodDecider: args[3],
190
93
  fetch: args[4],
191
94
  requestId: args[5],
192
- operationContext: args[6]
95
+ hooks: args[6]
193
96
  };
194
- const { path, method, port, httpMethodDecider = 'functionName', fetch = environment.originFetch, domain, requestId = 'default', operationContext } = options;
97
+ const { path, method, port, httpMethodDecider = 'functionName', fetch = environment.originFetch, domain, requestId = 'default', hooks } = options;
195
98
  const getFinalPath = (0, external_path_to_regexp_namespaceObject.compile)(path, {
196
99
  encode: encodeURIComponent
197
100
  });
198
- const keyNames = (0, external_policyCore_js_namespaceObject.extractPathParamNames)(path);
101
+ const keyNames = extractPathParamNames(path);
199
102
  const send = (...senderArgs)=>{
200
- const fetcher = (0, external_policyCore_js_namespaceObject.resolveConfiguredRequest)(realRequest, requestId, fetch);
201
- const incomingHeaders = environment.readIncomingHeaders();
103
+ const context = startRequest(requestId, hooks);
104
+ const fetcher = realRequest.get(requestId) || fetch;
202
105
  let body;
203
106
  let headers;
204
107
  let url;
205
108
  if ('inputParams' === httpMethodDecider) {
206
109
  const configDomain = domainMap.get(requestId);
207
- if ('default' !== requestId && (0, external_policyCore_js_namespaceObject.isEmptyDomain)(configDomain)) throw new external_policyCore_js_namespaceObject.ProducerDomainNotConfiguredError(requestId);
208
110
  url = environment.resolveRequestUrl({
209
111
  configDomain,
210
112
  domain,
@@ -215,7 +117,7 @@ const createRequestFactory = (environment)=>{
215
117
  headers = {
216
118
  'Content-Type': 'application/json'
217
119
  };
218
- headers = applyIdentityAndForwardedHeaders(headers, requestId, incomingHeaders);
120
+ headers = prepareHeaders(headers, context, hooks);
219
121
  } else {
220
122
  const payload = 'object' == typeof senderArgs[senderArgs.length - 1] ? senderArgs[senderArgs.length - 1] : {};
221
123
  payload.params = payload.params || {};
@@ -233,7 +135,7 @@ const createRequestFactory = (environment)=>{
233
135
  headers = payload.headers ? {
234
136
  ...payload.headers
235
137
  } : {};
236
- headers = applyIdentityAndForwardedHeaders(headers, requestId, incomingHeaders);
138
+ headers = prepareHeaders(headers, context, hooks);
237
139
  if (payload.data) {
238
140
  headers['Content-Type'] = 'application/json';
239
141
  body = 'object' == typeof payload.data ? JSON.stringify(payload.data) : payload.body;
@@ -246,7 +148,6 @@ const createRequestFactory = (environment)=>{
246
148
  body = !isServerTarget && "u" > typeof URLSearchParams && payload.formUrlencoded instanceof URLSearchParams ? payload.formUrlencoded : 'object' == typeof payload.formUrlencoded ? (0, external_qs_namespaceObject.stringify)(payload.formUrlencoded) : payload.formUrlencoded;
247
149
  }
248
150
  const configDomain = domainMap.get(requestId);
249
- if ('default' !== requestId && (0, external_policyCore_js_namespaceObject.isEmptyDomain)(configDomain)) throw new external_policyCore_js_namespaceObject.ProducerDomainNotConfiguredError(requestId);
250
151
  url = environment.resolveRequestUrl({
251
152
  configDomain,
252
153
  domain,
@@ -254,21 +155,13 @@ const createRequestFactory = (environment)=>{
254
155
  path: finalPath
255
156
  });
256
157
  }
257
- if (!isServerTarget) (0, external_policyCore_js_namespaceObject.writeHeader)(headers, 'accept', "application/json,*/*;q=0.8");
258
- if (isServerTarget) {
259
- if (void 0 === (0, external_policyCore_js_namespaceObject.readHeader)(headers, external_policyCore_js_namespaceObject.TRACEPARENT_HEADER)) {
260
- const incomingTraceparent = (0, external_policyCore_js_namespaceObject.firstHeaderValue)((0, external_policyCore_js_namespaceObject.readHeader)(incomingHeaders, external_policyCore_js_namespaceObject.TRACEPARENT_HEADER));
261
- if ('string' == typeof incomingTraceparent) (0, external_policyCore_js_namespaceObject.writeHeader)(headers, external_policyCore_js_namespaceObject.TRACEPARENT_HEADER, incomingTraceparent);
262
- }
263
- if (void 0 === (0, external_policyCore_js_namespaceObject.readHeader)(headers, external_policyCore_js_namespaceObject.TRACEPARENT_HEADER) && operationContext?.traceparent) (0, external_policyCore_js_namespaceObject.writeHeader)(headers, external_policyCore_js_namespaceObject.TRACEPARENT_HEADER, operationContext.traceparent);
264
- }
265
- attachEnvelopeHeaderIfRequired(headers, requestId, url, incomingHeaders);
266
- attachSecuredOperationHeaders(headers, requestId, method, path, operationContext);
158
+ if (!isServerTarget) (0, external_headers_js_namespaceObject.writeHeader)(headers, 'accept', "application/json,*/*;q=0.8");
267
159
  if ('get' === method.toLowerCase()) body = void 0;
268
- if (isServerTarget) (0, external_policyCore_js_namespaceObject.writeHeader)(headers, 'accept', "application/json,*/*;q=0.8");
269
- return (0, external_transport_js_namespaceObject.executeWithResilience)({
160
+ if (isServerTarget) (0, external_headers_js_namespaceObject.writeHeader)(headers, 'accept', "application/json,*/*;q=0.8");
161
+ return dispatch({
162
+ ...context,
163
+ path,
270
164
  requestId,
271
- target: environment.target,
272
165
  method,
273
166
  url,
274
167
  init: {
@@ -276,19 +169,19 @@ const createRequestFactory = (environment)=>{
276
169
  body,
277
170
  headers
278
171
  },
279
- fetcher: fetcher,
280
- transport: realTransportResilience.get(requestId)
281
- });
172
+ fetcher: fetcher
173
+ }, hooks);
282
174
  };
283
175
  const sender = isServerTarget ? send : async (...senderArgs)=>send(...senderArgs);
284
176
  return sender;
285
177
  };
286
- const createUploader = ({ path, domain, requestId = 'default', operationContext })=>{
178
+ const createUploader = ({ path, domain, requestId = 'default', hooks })=>{
287
179
  const getUploadPath = isServerTarget ? void 0 : (0, external_path_to_regexp_namespaceObject.compile)(path, {
288
180
  encode: encodeURIComponent
289
181
  });
290
182
  const sender = (...args)=>{
291
- const fetcher = (0, external_policyCore_js_namespaceObject.resolveConfiguredRequest)(realRequest, requestId, environment.originFetch);
183
+ const context = startRequest(requestId, hooks);
184
+ const fetcher = realRequest.get(requestId) || environment.originFetch;
292
185
  const { body, headers: uploadHeaders, params } = (0, external_utiles_js_namespaceObject.getUploadPayload)(args);
293
186
  let headers = {
294
187
  ...uploadHeaders
@@ -300,13 +193,11 @@ const createRequestFactory = (environment)=>{
300
193
  domain,
301
194
  path: finalPath
302
195
  });
303
- const incomingHeaders = environment.readIncomingHeaders();
304
- headers = applyIdentityAndForwardedHeaders(headers, requestId, incomingHeaders);
305
- attachEnvelopeHeaderIfRequired(headers, requestId, finalURL, incomingHeaders);
306
- attachSecuredOperationHeaders(headers, requestId, 'POST', path, operationContext);
307
- return (0, external_transport_js_namespaceObject.executeWithResilience)({
196
+ headers = prepareHeaders(headers, context, hooks);
197
+ return dispatch({
198
+ ...context,
199
+ path,
308
200
  requestId,
309
- target: environment.target,
310
201
  method: 'POST',
311
202
  url: finalURL,
312
203
  init: {
@@ -314,9 +205,8 @@ const createRequestFactory = (environment)=>{
314
205
  body,
315
206
  headers
316
207
  },
317
- fetcher: fetcher,
318
- transport: realTransportResilience.get(requestId)
319
- });
208
+ fetcher: fetcher
209
+ }, hooks);
320
210
  };
321
211
  return sender;
322
212
  };
@@ -327,8 +217,10 @@ const createRequestFactory = (environment)=>{
327
217
  };
328
218
  };
329
219
  exports.createRequestFactory = __webpack_exports__.createRequestFactory;
220
+ exports.extractPathParamNames = __webpack_exports__.extractPathParamNames;
330
221
  for(var __rspack_i in __webpack_exports__)if (-1 === [
331
- "createRequestFactory"
222
+ "createRequestFactory",
223
+ "extractPathParamNames"
332
224
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
333
225
  Object.defineProperty(exports, '__esModule', {
334
226
  value: true
package/dist/cjs/types.js CHANGED
@@ -1,20 +1,5 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, getters, values)=>{
5
- var define = (defs, kind)=>{
6
- for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- [kind]: defs[key]
9
- });
10
- };
11
- define(getters, "get");
12
- define(values, "value");
13
- };
14
- })();
15
- (()=>{
16
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
- })();
18
3
  (()=>{
19
4
  __webpack_require__.r = (exports1)=>{
20
5
  if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
@@ -27,31 +12,7 @@ var __webpack_require__ = {};
27
12
  })();
28
13
  var __webpack_exports__ = {};
29
14
  __webpack_require__.r(__webpack_exports__);
30
- const BFF_ENVELOPE_HEADER = 'x-modernjs-bff-envelope';
31
- const BFF_OPERATION_CONTEXT_HEADER = 'x-operation-id';
32
- const BFF_OPERATION_CONTEXT_DETAIL_HEADER = 'x-modernjs-bff-operation-context';
33
- const BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS = [
34
- 'x-tenant-id',
35
- 'x-subject-id',
36
- 'x-user-id',
37
- BFF_OPERATION_CONTEXT_HEADER
38
- ];
39
- __webpack_require__.d(__webpack_exports__, {}, {
40
- BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS: BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS,
41
- BFF_ENVELOPE_HEADER: BFF_ENVELOPE_HEADER,
42
- BFF_OPERATION_CONTEXT_DETAIL_HEADER: BFF_OPERATION_CONTEXT_DETAIL_HEADER,
43
- BFF_OPERATION_CONTEXT_HEADER: BFF_OPERATION_CONTEXT_HEADER
44
- });
45
- exports.BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS = __webpack_exports__.BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS;
46
- exports.BFF_ENVELOPE_HEADER = __webpack_exports__.BFF_ENVELOPE_HEADER;
47
- exports.BFF_OPERATION_CONTEXT_DETAIL_HEADER = __webpack_exports__.BFF_OPERATION_CONTEXT_DETAIL_HEADER;
48
- exports.BFF_OPERATION_CONTEXT_HEADER = __webpack_exports__.BFF_OPERATION_CONTEXT_HEADER;
49
- for(var __rspack_i in __webpack_exports__)if (-1 === [
50
- "BFF_DEFAULT_PROTECTED_IDENTITY_HEADERS",
51
- "BFF_ENVELOPE_HEADER",
52
- "BFF_OPERATION_CONTEXT_DETAIL_HEADER",
53
- "BFF_OPERATION_CONTEXT_HEADER"
54
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
55
16
  Object.defineProperty(exports, '__esModule', {
56
17
  value: true
57
18
  });
@@ -1,26 +1,21 @@
1
1
  import { handleRes } from "./handleRes.mjs";
2
2
  import { createRequestFactory } from "./requestFactory.mjs";
3
- export * from "./requestContext.mjs";
4
- export * from "./traceparent.mjs";
5
3
  export * from "./types.mjs";
6
- const resolveBrowserOrigin = ()=>"u" > typeof window ? window.location.origin : void 0;
7
4
  const originFetch = (...params)=>{
8
5
  const [url, init] = params;
9
6
  if (init?.method?.toLowerCase() === 'get') init.body = void 0;
10
7
  return fetch(url, init).then(handleRes);
11
8
  };
12
- const requestFactory = createRequestFactory({
13
- target: 'browser',
14
- getFetch: ()=>fetch,
15
- originFetch: originFetch,
16
- readIncomingHeaders: ()=>({}),
17
- resolveSourceOrigin: resolveBrowserOrigin,
18
- createInputParamsBody: (args)=>JSON.stringify({
19
- args
20
- }),
21
- resolveRequestUrl: ({ configDomain, domain, path })=>`${configDomain || domain || ''}${path}`,
22
- resolveUploadUrl: ({ configDomain, domain, path })=>`${configDomain || domain || ''}${path}`
23
- });
24
- const { configure: configure, createRequest: createRequest, createUploader: createUploader } = requestFactory;
25
- export { CrossOriginEnvelopePolicyError, IdentityBindingViolationError, OperationContractViolationError, ProducerClientNotInitializedError, ProducerDomainNotConfiguredError } from "./policyCore.mjs";
26
- export { configure, createRequest, createUploader };
9
+ const createClient = ()=>createRequestFactory({
10
+ target: 'browser',
11
+ getFetch: ()=>fetch,
12
+ originFetch: originFetch,
13
+ readIncomingHeaders: ()=>({}),
14
+ createInputParamsBody: (args)=>JSON.stringify({
15
+ args
16
+ }),
17
+ resolveRequestUrl: ({ configDomain, domain, path })=>`${configDomain || domain || ''}${path}`,
18
+ resolveUploadUrl: ({ configDomain, domain, path })=>`${configDomain || domain || ''}${path}`
19
+ });
20
+ const { configure: configure, createRequest: createRequest, createUploader: createUploader } = createClient();
21
+ export { configure, createClient, createRequest, createUploader };
@@ -0,0 +1,15 @@
1
+ const findHeaderKey = (headers, header)=>{
2
+ const normalized = header.toLowerCase();
3
+ return Object.keys(headers).find((key)=>key.toLowerCase() === normalized);
4
+ };
5
+ const readHeader = (headers, header)=>{
6
+ const key = findHeaderKey(headers, header);
7
+ return 'string' == typeof key ? headers[key] : void 0;
8
+ };
9
+ const writeHeader = (headers, header, value)=>{
10
+ if (void 0 === value) return;
11
+ const key = findHeaderKey(headers, header);
12
+ if ('string' == typeof key && key !== header) delete headers[key];
13
+ headers[header] = value;
14
+ };
15
+ export { findHeaderKey, readHeader, writeHeader };
package/dist/esm/node.mjs CHANGED
@@ -1,20 +1,7 @@
1
1
  import { storage } from "@modern-js/runtime-utils/node";
2
2
  import { handleRes } from "./handleRes.mjs";
3
- import { CrossOriginEnvelopePolicyError, IdentityBindingViolationError, OperationContractViolationError, ProducerClientNotInitializedError, ProducerDomainNotConfiguredError, firstHeaderValue, toOrigin } from "./policyCore.mjs";
4
3
  import { createRequestFactory } from "./requestFactory.mjs";
5
- export * from "./requestContext.mjs";
6
- export * from "./traceparent.mjs";
7
4
  export * from "./types.mjs";
8
- const resolveSourceOrigin = (headers)=>{
9
- const origin = toOrigin(firstHeaderValue(headers.origin));
10
- if (origin) return origin;
11
- const referer = toOrigin(firstHeaderValue(headers.referer));
12
- if (referer) return referer;
13
- const host = firstHeaderValue(headers.host);
14
- if (!host) return;
15
- const proto = firstHeaderValue(headers['x-forwarded-proto']) || 'http';
16
- return `${proto}://${host}`;
17
- };
18
5
  const readIncomingWebHeaders = ()=>{
19
6
  try {
20
7
  return storage.useContext().headers || {};
@@ -27,15 +14,14 @@ const originFetch = (...params)=>{
27
14
  if (init?.method?.toLowerCase() === 'get') init.body = void 0;
28
15
  return fetch(...params).then(handleRes);
29
16
  };
30
- const requestFactory = createRequestFactory({
31
- target: 'server',
32
- getFetch: ()=>fetch,
33
- originFetch: originFetch,
34
- readIncomingHeaders: readIncomingWebHeaders,
35
- resolveSourceOrigin: resolveSourceOrigin,
36
- createInputParamsBody: (args)=>args,
37
- resolveRequestUrl: ({ configDomain, path, port })=>`${configDomain || `http://127.0.0.1:${port}`}${path}`,
38
- resolveUploadUrl: ({ configDomain, path })=>`${configDomain || ''}${path}`
39
- });
40
- const { configure: configure, createRequest: createRequest, createUploader: createUploader } = requestFactory;
41
- export { CrossOriginEnvelopePolicyError, IdentityBindingViolationError, OperationContractViolationError, ProducerClientNotInitializedError, ProducerDomainNotConfiguredError, configure, createRequest, createUploader };
17
+ const createClient = ()=>createRequestFactory({
18
+ target: 'server',
19
+ getFetch: ()=>fetch,
20
+ originFetch: originFetch,
21
+ readIncomingHeaders: readIncomingWebHeaders,
22
+ createInputParamsBody: (args)=>args,
23
+ resolveRequestUrl: ({ configDomain, path, port })=>`${configDomain || `http://127.0.0.1:${port}`}${path}`,
24
+ resolveUploadUrl: ({ configDomain, path })=>`${configDomain || ''}${path}`
25
+ });
26
+ const { configure: configure, createRequest: createRequest, createUploader: createUploader } = createClient();
27
+ export { configure, createClient, createRequest, createUploader };