lifecycleion 0.0.19 → 0.0.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.
Files changed (74) hide show
  1. package/README.md +39 -36
  2. package/dist/lib/event-emitter.cjs +195 -9
  3. package/dist/lib/event-emitter.cjs.map +1 -1
  4. package/dist/lib/event-emitter.js +195 -9
  5. package/dist/lib/event-emitter.js.map +1 -1
  6. package/dist/lib/global-event-target.cjs +217 -0
  7. package/dist/lib/global-event-target.cjs.map +1 -0
  8. package/dist/lib/global-event-target.d.cts +70 -0
  9. package/dist/lib/global-event-target.d.ts +70 -0
  10. package/dist/lib/global-event-target.js +189 -0
  11. package/dist/lib/global-event-target.js.map +1 -0
  12. package/dist/lib/http-client/index.cjs +554 -193
  13. package/dist/lib/http-client/index.cjs.map +1 -1
  14. package/dist/lib/http-client/index.d.cts +9 -3
  15. package/dist/lib/http-client/index.d.ts +9 -3
  16. package/dist/lib/http-client/index.js +554 -193
  17. package/dist/lib/http-client/index.js.map +1 -1
  18. package/dist/lib/http-client-mock/index.cjs +71 -24
  19. package/dist/lib/http-client-mock/index.cjs.map +1 -1
  20. package/dist/lib/http-client-mock/index.d.cts +50 -2
  21. package/dist/lib/http-client-mock/index.d.ts +50 -2
  22. package/dist/lib/http-client-mock/index.js +71 -24
  23. package/dist/lib/http-client-mock/index.js.map +1 -1
  24. package/dist/lib/http-client-node/index.cjs +135 -33
  25. package/dist/lib/http-client-node/index.cjs.map +1 -1
  26. package/dist/lib/http-client-node/index.d.cts +33 -2
  27. package/dist/lib/http-client-node/index.d.ts +33 -2
  28. package/dist/lib/http-client-node/index.js +135 -33
  29. package/dist/lib/http-client-node/index.js.map +1 -1
  30. package/dist/lib/http-client-xhr/index.cjs +0 -14
  31. package/dist/lib/http-client-xhr/index.cjs.map +1 -1
  32. package/dist/lib/http-client-xhr/index.d.cts +3 -2
  33. package/dist/lib/http-client-xhr/index.d.ts +3 -2
  34. package/dist/lib/http-client-xhr/index.js +0 -14
  35. package/dist/lib/http-client-xhr/index.js.map +1 -1
  36. package/dist/lib/lifecycle-manager/index.cjs +199 -13
  37. package/dist/lib/lifecycle-manager/index.cjs.map +1 -1
  38. package/dist/lib/lifecycle-manager/index.js +199 -13
  39. package/dist/lib/lifecycle-manager/index.js.map +1 -1
  40. package/dist/lib/logger/index.cjs +203 -21
  41. package/dist/lib/logger/index.cjs.map +1 -1
  42. package/dist/lib/logger/index.d.cts +5 -1
  43. package/dist/lib/logger/index.d.ts +5 -1
  44. package/dist/lib/logger/index.js +203 -21
  45. package/dist/lib/logger/index.js.map +1 -1
  46. package/dist/lib/lru-cache/index.cjs +195 -9
  47. package/dist/lib/lru-cache/index.cjs.map +1 -1
  48. package/dist/lib/lru-cache/index.js +195 -9
  49. package/dist/lib/lru-cache/index.js.map +1 -1
  50. package/dist/lib/process-signal-manager.cjs +199 -13
  51. package/dist/lib/process-signal-manager.cjs.map +1 -1
  52. package/dist/lib/process-signal-manager.js +199 -13
  53. package/dist/lib/process-signal-manager.js.map +1 -1
  54. package/dist/lib/promise-protected-resolver.cjs +195 -9
  55. package/dist/lib/promise-protected-resolver.cjs.map +1 -1
  56. package/dist/lib/promise-protected-resolver.js +195 -9
  57. package/dist/lib/promise-protected-resolver.js.map +1 -1
  58. package/dist/lib/retry-utils/index.cjs +195 -9
  59. package/dist/lib/retry-utils/index.cjs.map +1 -1
  60. package/dist/lib/retry-utils/index.js +195 -9
  61. package/dist/lib/retry-utils/index.js.map +1 -1
  62. package/dist/lib/safe-handle-callback.cjs +196 -18
  63. package/dist/lib/safe-handle-callback.cjs.map +1 -1
  64. package/dist/lib/safe-handle-callback.d.cts +14 -4
  65. package/dist/lib/safe-handle-callback.d.ts +14 -4
  66. package/dist/lib/safe-handle-callback.js +196 -18
  67. package/dist/lib/safe-handle-callback.js.map +1 -1
  68. package/dist/lib/single-event-observer.cjs +195 -9
  69. package/dist/lib/single-event-observer.cjs.map +1 -1
  70. package/dist/lib/single-event-observer.js +195 -9
  71. package/dist/lib/single-event-observer.js.map +1 -1
  72. package/dist/{types-CWw885iO.d.cts → types-BFvpJPMt.d.cts} +72 -11
  73. package/dist/{types-Mso0dYOS.d.ts → types-BONtIhQ5.d.ts} +72 -11
  74. package/package.json +31 -12
@@ -63,20 +63,6 @@ var REDIRECT_STATUS_CODES = /* @__PURE__ */ new Set([
63
63
 
64
64
  // src/lib/http-client/utils.ts
65
65
  var import_qs = __toESM(require("qs"), 1);
66
-
67
- // src/lib/domain-utils/domain-utils.ts
68
- var import_tldts = require("tldts");
69
-
70
- // src/lib/domain-utils/helpers.ts
71
- var import_tr46 = require("tr46");
72
- var INTERNAL_PSEUDO_TLDS = Object.freeze(
73
- /* @__PURE__ */ new Set(["localhost", "local", "test", "internal"])
74
- );
75
-
76
- // src/lib/domain-utils/domain-utils.ts
77
- var import_tldts2 = require("tldts");
78
-
79
- // src/lib/http-client/utils.ts
80
66
  function resolveAbsoluteURL(url, baseURL) {
81
67
  if (!url) {
82
68
  return url;
@@ -262,13 +248,33 @@ var MockAdapter = class {
262
248
  if (request.signal?.aborted) {
263
249
  throwAbortError();
264
250
  }
265
- const responseBody = shouldOmitResponseBody(method, mockResponse.status) ? null : serializeResponseBody(mockResponse);
251
+ if (mockResponse.transportError) {
252
+ const options = mockResponse.transportError === true ? {} : mockResponse.transportError;
253
+ return {
254
+ status: options.status ?? 0,
255
+ isTransportError: true,
256
+ ...options.isRetryable !== void 0 ? { isRetryable: options.isRetryable } : {},
257
+ ...options.wasDefinitelyNotSent !== void 0 ? { wasDefinitelyNotSent: options.wasDefinitelyNotSent } : {},
258
+ headers: {},
259
+ body: null,
260
+ errorCause: new Error(
261
+ options.message ?? "Mock transport error (MockResponse.transportError)"
262
+ )
263
+ };
264
+ }
265
+ const streamErrorCode = resolveMockStreamErrorCode(
266
+ mockResponse.streamError
267
+ );
268
+ const intendedBody = shouldOmitResponseBody(method, mockResponse.status) ? null : serializeResponseBody(mockResponse);
269
+ const responseBody = streamErrorCode !== void 0 ? null : intendedBody;
266
270
  request.onUploadProgress?.({ loaded: 1, total: 1, progress: 1 });
267
- request.onDownloadProgress?.({
268
- loaded: responseBody?.length ?? 0,
269
- total: responseBody?.length ?? 0,
270
- progress: 1
271
- });
271
+ if (streamErrorCode === void 0) {
272
+ request.onDownloadProgress?.({
273
+ loaded: responseBody?.length ?? 0,
274
+ total: responseBody?.length ?? 0,
275
+ progress: 1
276
+ });
277
+ }
272
278
  const responseHeaders = {
273
279
  ...mockResponse.headers ?? {}
274
280
  };
@@ -280,7 +286,7 @@ var MockAdapter = class {
280
286
  responseHeaders["set-cookie"] = [...existingArr, ...setCookieEntries];
281
287
  }
282
288
  }
283
- if (!hasHeader(responseHeaders, "content-type") && responseBody !== null) {
289
+ if (!hasHeader(responseHeaders, "content-type") && intendedBody !== null) {
284
290
  const ct = mockResponse.contentType ?? inferContentType(mockResponse.body);
285
291
  if (ct === "json") {
286
292
  responseHeaders["content-type"] = "application/json";
@@ -299,10 +305,23 @@ var MockAdapter = class {
299
305
  wasRedirectDetected: REDIRECT_STATUS_CODES.has(mockResponse.status),
300
306
  ...detectedRedirectURL ? { detectedRedirectURL } : {},
301
307
  headers: normalizedResponseHeaders,
302
- body: responseBody
308
+ body: responseBody,
309
+ ...streamErrorCode !== void 0 ? {
310
+ isStreamError: true,
311
+ streamErrorCode,
312
+ errorCause: new Error(
313
+ "Mock response stream error (MockResponse.streamError)"
314
+ )
315
+ } : {}
303
316
  };
304
317
  }
305
318
  };
319
+ function resolveMockStreamErrorCode(streamError) {
320
+ if (streamError === void 0 || streamError === false) {
321
+ return void 0;
322
+ }
323
+ return streamError === true ? "stream_response_error" : streamError;
324
+ }
306
325
  function buildRoutes(router) {
307
326
  function on(method, path, handler) {
308
327
  try {
@@ -325,7 +344,8 @@ function buildRoutes(router) {
325
344
  };
326
345
  }
327
346
  function isDuplicateRouteRegistrationError(error) {
328
- return error instanceof Error && error.message.includes("already declared for route");
347
+ const message = readObjectMember(error, "message");
348
+ return isErrorValue(error) && typeof message === "string" && message.includes("already declared for route");
329
349
  }
330
350
  function duplicateRouteRegistrationError(method, path, cause) {
331
351
  return new Error(
@@ -497,11 +517,38 @@ function awaitAbortable(value, signal) {
497
517
  },
498
518
  (error) => {
499
519
  signal.removeEventListener("abort", onAbort);
500
- reject(error instanceof Error ? error : new Error(String(error)));
520
+ reject(normalizeError(error));
501
521
  }
502
522
  );
503
523
  });
504
524
  }
525
+ function readObjectMember(source, key) {
526
+ if (source === null || typeof source !== "object" && typeof source !== "function") {
527
+ return void 0;
528
+ }
529
+ try {
530
+ return source[key];
531
+ } catch {
532
+ return void 0;
533
+ }
534
+ }
535
+ function isErrorValue(value) {
536
+ try {
537
+ return value instanceof Error;
538
+ } catch {
539
+ return false;
540
+ }
541
+ }
542
+ function normalizeError(value) {
543
+ if (isErrorValue(value)) {
544
+ return value;
545
+ }
546
+ try {
547
+ return new Error(String(value));
548
+ } catch {
549
+ return new Error("Unknown error");
550
+ }
551
+ }
505
552
  function sleepAbortable(ms, signal) {
506
553
  if (signal.aborted) {
507
554
  throw new InternalMockAbortError();