@posthog/core 1.0.1 → 1.1.0

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 (122) hide show
  1. package/dist/error-tracking/chunk-ids.d.ts +5 -0
  2. package/dist/error-tracking/chunk-ids.d.ts.map +1 -0
  3. package/dist/error-tracking/chunk-ids.js +68 -0
  4. package/dist/error-tracking/chunk-ids.mjs +34 -0
  5. package/dist/error-tracking/coercers/dom-exception-coercer.d.ts +10 -0
  6. package/dist/error-tracking/coercers/dom-exception-coercer.d.ts.map +1 -0
  7. package/dist/error-tracking/coercers/dom-exception-coercer.js +65 -0
  8. package/dist/error-tracking/coercers/dom-exception-coercer.mjs +31 -0
  9. package/dist/error-tracking/coercers/error-coercer.d.ts +9 -0
  10. package/dist/error-tracking/coercers/error-coercer.d.ts.map +1 -0
  11. package/dist/error-tracking/coercers/error-coercer.js +61 -0
  12. package/dist/error-tracking/coercers/error-coercer.mjs +27 -0
  13. package/dist/error-tracking/coercers/error-event-coercer.d.ts +7 -0
  14. package/dist/error-tracking/coercers/error-event-coercer.d.ts.map +1 -0
  15. package/dist/error-tracking/coercers/error-event-coercer.js +53 -0
  16. package/dist/error-tracking/coercers/error-event-coercer.mjs +19 -0
  17. package/dist/error-tracking/coercers/event-coercer.d.ts +6 -0
  18. package/dist/error-tracking/coercers/event-coercer.d.ts.map +1 -0
  19. package/dist/error-tracking/coercers/event-coercer.js +52 -0
  20. package/dist/error-tracking/coercers/event-coercer.mjs +18 -0
  21. package/dist/error-tracking/coercers/index.d.ts +9 -0
  22. package/dist/error-tracking/coercers/index.d.ts.map +1 -0
  23. package/dist/error-tracking/coercers/index.js +123 -0
  24. package/dist/error-tracking/coercers/index.mjs +8 -0
  25. package/dist/error-tracking/coercers/object-coercer.d.ts +14 -0
  26. package/dist/error-tracking/coercers/object-coercer.d.ts.map +1 -0
  27. package/dist/error-tracking/coercers/object-coercer.js +86 -0
  28. package/dist/error-tracking/coercers/object-coercer.mjs +52 -0
  29. package/dist/error-tracking/coercers/primitive-coercer.d.ts +7 -0
  30. package/dist/error-tracking/coercers/primitive-coercer.d.ts.map +1 -0
  31. package/dist/error-tracking/coercers/primitive-coercer.js +50 -0
  32. package/dist/error-tracking/coercers/primitive-coercer.mjs +16 -0
  33. package/dist/error-tracking/coercers/promise-rejection-event.d.ts +7 -0
  34. package/dist/error-tracking/coercers/promise-rejection-event.d.ts.map +1 -0
  35. package/dist/error-tracking/coercers/promise-rejection-event.js +60 -0
  36. package/dist/error-tracking/coercers/promise-rejection-event.mjs +26 -0
  37. package/dist/error-tracking/coercers/string-coercer.d.ts +7 -0
  38. package/dist/error-tracking/coercers/string-coercer.d.ts.map +1 -0
  39. package/dist/error-tracking/coercers/string-coercer.js +64 -0
  40. package/dist/error-tracking/coercers/string-coercer.mjs +30 -0
  41. package/dist/error-tracking/coercers/utils.d.ts +8 -0
  42. package/dist/error-tracking/coercers/utils.d.ts.map +1 -0
  43. package/dist/error-tracking/coercers/utils.js +57 -0
  44. package/dist/error-tracking/coercers/utils.mjs +20 -0
  45. package/dist/error-tracking/error-properties-builder.d.ts +18 -0
  46. package/dist/error-tracking/error-properties-builder.d.ts.map +1 -0
  47. package/dist/error-tracking/error-properties-builder.js +156 -0
  48. package/dist/error-tracking/error-properties-builder.mjs +122 -0
  49. package/dist/error-tracking/index.d.ts +6 -0
  50. package/dist/error-tracking/index.d.ts.map +1 -0
  51. package/dist/error-tracking/index.js +87 -0
  52. package/dist/error-tracking/index.mjs +4 -0
  53. package/dist/error-tracking/parsers/base.d.ts +9 -0
  54. package/dist/error-tracking/parsers/base.d.ts.map +1 -0
  55. package/dist/error-tracking/parsers/base.js +71 -0
  56. package/dist/error-tracking/parsers/base.mjs +19 -0
  57. package/dist/error-tracking/parsers/chrome.d.ts +3 -0
  58. package/dist/error-tracking/parsers/chrome.d.ts.map +1 -0
  59. package/dist/error-tracking/parsers/chrome.js +61 -0
  60. package/dist/error-tracking/parsers/chrome.mjs +27 -0
  61. package/dist/error-tracking/parsers/gecko.d.ts +3 -0
  62. package/dist/error-tracking/parsers/gecko.d.ts.map +1 -0
  63. package/dist/error-tracking/parsers/gecko.js +58 -0
  64. package/dist/error-tracking/parsers/gecko.mjs +24 -0
  65. package/dist/error-tracking/parsers/index.d.ts +9 -0
  66. package/dist/error-tracking/parsers/index.d.ts.map +1 -0
  67. package/dist/error-tracking/parsers/index.js +101 -0
  68. package/dist/error-tracking/parsers/index.mjs +46 -0
  69. package/dist/error-tracking/parsers/node.d.ts +3 -0
  70. package/dist/error-tracking/parsers/node.d.ts.map +1 -0
  71. package/dist/error-tracking/parsers/node.js +101 -0
  72. package/dist/error-tracking/parsers/node.mjs +67 -0
  73. package/dist/error-tracking/parsers/opera.d.ts +4 -0
  74. package/dist/error-tracking/parsers/opera.d.ts.map +1 -0
  75. package/dist/error-tracking/parsers/opera.js +49 -0
  76. package/dist/error-tracking/parsers/opera.mjs +12 -0
  77. package/dist/error-tracking/parsers/react-native.d.ts +1 -0
  78. package/dist/error-tracking/parsers/react-native.d.ts.map +1 -0
  79. package/dist/error-tracking/parsers/react-native.js +5 -0
  80. package/dist/error-tracking/parsers/react-native.mjs +0 -0
  81. package/dist/error-tracking/parsers/safari.d.ts +22 -0
  82. package/dist/error-tracking/parsers/safari.d.ts.map +1 -0
  83. package/dist/error-tracking/parsers/safari.js +47 -0
  84. package/dist/error-tracking/parsers/safari.mjs +13 -0
  85. package/dist/error-tracking/parsers/winjs.d.ts +3 -0
  86. package/dist/error-tracking/parsers/winjs.d.ts.map +1 -0
  87. package/dist/error-tracking/parsers/winjs.js +41 -0
  88. package/dist/error-tracking/parsers/winjs.mjs +7 -0
  89. package/dist/error-tracking/types.d.ts +87 -0
  90. package/dist/error-tracking/types.d.ts.map +1 -0
  91. package/dist/error-tracking/types.js +43 -0
  92. package/dist/error-tracking/types.mjs +9 -0
  93. package/dist/error-tracking/utils.d.ts +13 -0
  94. package/dist/error-tracking/utils.d.ts.map +1 -0
  95. package/dist/error-tracking/utils.js +57 -0
  96. package/dist/error-tracking/utils.mjs +23 -0
  97. package/dist/index.d.ts +123 -11
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +20 -12
  100. package/dist/index.mjs +9 -12
  101. package/dist/testing/test-utils.d.ts +2 -0
  102. package/dist/testing/test-utils.d.ts.map +1 -1
  103. package/dist/testing/test-utils.js +12 -0
  104. package/dist/testing/test-utils.mjs +10 -1
  105. package/dist/utils/bucketed-rate-limiter.d.ts +2 -0
  106. package/dist/utils/bucketed-rate-limiter.d.ts.map +1 -1
  107. package/dist/utils/bucketed-rate-limiter.js +7 -1
  108. package/dist/utils/bucketed-rate-limiter.mjs +7 -1
  109. package/dist/utils/index.d.ts +1 -0
  110. package/dist/utils/index.d.ts.map +1 -1
  111. package/dist/utils/index.js +22 -0
  112. package/dist/utils/index.mjs +1 -0
  113. package/dist/utils/number-utils.d.ts.map +1 -1
  114. package/dist/utils/promise-queue.d.ts +7 -0
  115. package/dist/utils/promise-queue.d.ts.map +1 -0
  116. package/dist/utils/promise-queue.js +61 -0
  117. package/dist/utils/promise-queue.mjs +27 -0
  118. package/dist/utils/type-utils.d.ts +12 -1
  119. package/dist/utils/type-utils.d.ts.map +1 -1
  120. package/dist/utils/type-utils.js +89 -6
  121. package/dist/utils/type-utils.mjs +52 -2
  122. package/package.json +8 -3
package/dist/index.mjs CHANGED
@@ -1,11 +1,13 @@
1
1
  import { Compression, PostHogPersistedProperty } from "./types.mjs";
2
2
  import { createFlagsResponseFromFlagsAndPayloads, getFeatureFlagValue, getFlagValuesFromFlags, getPayloadsFromFlags, normalizeFlagsResponse, updateFlagValue } from "./featureFlagUtils.mjs";
3
- import { STRING_FORMAT, allSettled, assert, currentISOTime, isError, removeTrailingSlash, retriable, safeSetTimeout } from "./utils/index.mjs";
3
+ import { STRING_FORMAT, allSettled, assert, currentISOTime, isPlainError, removeTrailingSlash, retriable, safeSetTimeout } from "./utils/index.mjs";
4
4
  import { gzipCompress, isGzipSupported } from "./gzip.mjs";
5
5
  import { SimpleEventEmitter } from "./eventemitter.mjs";
6
6
  import { uuidv7 } from "./vendor/uuidv7.mjs";
7
+ import { PromiseQueue } from "./utils/promise-queue.mjs";
7
8
  export * from "./utils/index.mjs";
8
9
  export * from "./types.mjs";
10
+ import * as __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ from "./error-tracking/index.mjs";
9
11
  class PostHogFetchHttpError extends Error {
10
12
  get status() {
11
13
  return this.response.status;
@@ -107,12 +109,7 @@ class PostHogCoreStateless {
107
109
  };
108
110
  }
109
111
  addPendingPromise(promise) {
110
- const promiseUUID = uuidv7();
111
- this.pendingPromises[promiseUUID] = promise;
112
- promise.catch(()=>{}).finally(()=>{
113
- delete this.pendingPromises[promiseUUID];
114
- });
115
- return promise;
112
+ return this.promiseQueue.add(promise);
116
113
  }
117
114
  identifyStateless(distinctId, properties, options) {
118
115
  this.wrap(()=>{
@@ -584,7 +581,7 @@ class PostHogCoreStateless {
584
581
  this.clearFlushTimer();
585
582
  const doShutdown = async ()=>{
586
583
  try {
587
- await Promise.all(Object.values(this.pendingPromises));
584
+ await this.promiseQueue.join();
588
585
  while(true){
589
586
  const queue = this.getPersistedProperty(PostHogPersistedProperty.Queue) || [];
590
587
  if (0 === queue.length) break;
@@ -618,7 +615,7 @@ class PostHogCoreStateless {
618
615
  constructor(apiKey, options){
619
616
  this.flushPromise = null;
620
617
  this.shutdownPromise = null;
621
- this.pendingPromises = {};
618
+ this.promiseQueue = new PromiseQueue();
622
619
  this._events = new SimpleEventEmitter();
623
620
  this._isInitialized = false;
624
621
  assert(apiKey, "You must pass your PostHog project's api key.");
@@ -1152,8 +1149,8 @@ class PostHogCore extends PostHogCoreStateless {
1152
1149
  $exception_level: 'error',
1153
1150
  $exception_list: [
1154
1151
  {
1155
- type: isError(error) ? error.name : 'Error',
1156
- value: isError(error) ? error.message : error,
1152
+ type: isPlainError(error) ? error.name : 'Error',
1153
+ value: isPlainError(error) ? error.message : error,
1157
1154
  mechanism: {
1158
1155
  handled: true,
1159
1156
  synthetic: false
@@ -1194,4 +1191,4 @@ class PostHogCore extends PostHogCoreStateless {
1194
1191
  this._sessionExpirationTimeSeconds = null != (_options_sessionExpirationTimeSeconds = null == options ? void 0 : options.sessionExpirationTimeSeconds) ? _options_sessionExpirationTimeSeconds : 1800;
1195
1192
  }
1196
1193
  }
1197
- export { PostHogCore, PostHogCoreStateless, getFeatureFlagValue, logFlushError, maybeAdd };
1194
+ export { __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, PostHogCore, PostHogCoreStateless, getFeatureFlagValue, logFlushError, maybeAdd };
@@ -1,6 +1,8 @@
1
+ import { Logger } from '../types';
1
2
  export declare const wait: (t: number) => Promise<void>;
2
3
  export declare const waitForPromises: () => Promise<void>;
3
4
  export declare const parseBody: (mockCall: any) => any;
4
5
  export declare const createImperativePromise: <T>() => [Promise<T>, (value: T) => void];
5
6
  export declare const delay: (ms: number) => Promise<void>;
7
+ export declare const createMockLogger: () => Logger;
6
8
  //# sourceMappingURL=test-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/testing/test-utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,GAAU,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAElD,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CAQpD,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,GAAG,KAAG,GAIzC,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAM5E,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAI9C,CAAA"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/testing/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhC,eAAO,MAAM,IAAI,GAAU,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAElD,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CAQpD,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,GAAG,KAAG,GAIzC,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAM5E,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAI9C,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAO,MAUnC,CAAA"}
@@ -25,6 +25,7 @@ var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  createImperativePromise: ()=>createImperativePromise,
28
+ createMockLogger: ()=>createMockLogger,
28
29
  delay: ()=>delay,
29
30
  parseBody: ()=>parseBody,
30
31
  wait: ()=>wait,
@@ -58,13 +59,24 @@ const createImperativePromise = ()=>{
58
59
  const delay = (ms)=>new Promise((resolve)=>{
59
60
  setTimeout(resolve, ms);
60
61
  });
62
+ const createMockLogger = ()=>({
63
+ _log: jest.fn(),
64
+ info: jest.fn(),
65
+ warn: jest.fn(),
66
+ error: jest.fn(),
67
+ critical: jest.fn(),
68
+ uninitializedWarning: jest.fn(),
69
+ createLogger: createMockLogger
70
+ });
61
71
  exports.createImperativePromise = __webpack_exports__.createImperativePromise;
72
+ exports.createMockLogger = __webpack_exports__.createMockLogger;
62
73
  exports.delay = __webpack_exports__.delay;
63
74
  exports.parseBody = __webpack_exports__.parseBody;
64
75
  exports.wait = __webpack_exports__.wait;
65
76
  exports.waitForPromises = __webpack_exports__.waitForPromises;
66
77
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
67
78
  "createImperativePromise",
79
+ "createMockLogger",
68
80
  "delay",
69
81
  "parseBody",
70
82
  "wait",
@@ -26,4 +26,13 @@ const createImperativePromise = ()=>{
26
26
  const delay = (ms)=>new Promise((resolve)=>{
27
27
  setTimeout(resolve, ms);
28
28
  });
29
- export { createImperativePromise, delay, parseBody, wait, waitForPromises };
29
+ const createMockLogger = ()=>({
30
+ _log: jest.fn(),
31
+ info: jest.fn(),
32
+ warn: jest.fn(),
33
+ error: jest.fn(),
34
+ critical: jest.fn(),
35
+ uninitializedWarning: jest.fn(),
36
+ createLogger: createMockLogger
37
+ });
38
+ export { createImperativePromise, createMockLogger, delay, parseBody, wait, waitForPromises };
@@ -6,6 +6,7 @@ export declare class BucketedRateLimiter<T extends string | number> {
6
6
  private _refillInterval;
7
7
  private _onBucketRateLimited?;
8
8
  private _buckets;
9
+ private _removeInterval;
9
10
  constructor(_options: {
10
11
  bucketSize: number;
11
12
  refillRate: number;
@@ -17,5 +18,6 @@ export declare class BucketedRateLimiter<T extends string | number> {
17
18
  private _getBucket;
18
19
  private _setBucket;
19
20
  consumeRateLimit: (key: T) => boolean;
21
+ stop(): void;
20
22
  }
21
23
  //# sourceMappingURL=bucketed-rate-limiter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bucketed-rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/bucketed-rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAStD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,WAAW,CAAA;IACnB,OAAO,CAAC,WAAW,CAAA;IACnB,OAAO,CAAC,eAAe,CAAA;IACvB,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAE/C,OAAO,CAAC,QAAQ,CAA6B;gBAG1B,QAAQ,EAAE;QACzB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;QACf,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;KACxC;IAqBH,OAAO,CAAC,cAAc,CAUrB;IAED,OAAO,CAAC,UAAU,CAEjB;IACD,OAAO,CAAC,UAAU,CAEjB;IAEM,gBAAgB,GAAI,KAAK,CAAC,aAiBhC;CACF"}
1
+ {"version":3,"file":"bucketed-rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/bucketed-rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAUtD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,WAAW,CAAA;IACnB,OAAO,CAAC,WAAW,CAAA;IACnB,OAAO,CAAC,eAAe,CAAA;IACvB,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAE/C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,eAAe,CAA4B;gBAGhC,QAAQ,EAAE;QACzB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;QACf,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;KACxC;IAqBH,OAAO,CAAC,cAAc,CAUrB;IAED,OAAO,CAAC,UAAU,CAEjB;IACD,OAAO,CAAC,UAAU,CAEjB;IAEM,gBAAgB,GAAI,KAAK,CAAC,aAiBhC;IAEM,IAAI;CAMZ"}
@@ -28,6 +28,12 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const external_number_utils_js_namespaceObject = require("./number-utils.js");
30
30
  class BucketedRateLimiter {
31
+ stop() {
32
+ if (this._removeInterval) {
33
+ clearInterval(this._removeInterval);
34
+ this._removeInterval = void 0;
35
+ }
36
+ }
31
37
  constructor(_options){
32
38
  this._options = _options;
33
39
  this._buckets = {};
@@ -59,7 +65,7 @@ class BucketedRateLimiter {
59
65
  this._bucketSize = (0, external_number_utils_js_namespaceObject.clampToRange)(this._options.bucketSize, 0, 100, this._options._logger);
60
66
  this._refillRate = (0, external_number_utils_js_namespaceObject.clampToRange)(this._options.refillRate, 0, this._bucketSize, this._options._logger);
61
67
  this._refillInterval = (0, external_number_utils_js_namespaceObject.clampToRange)(this._options.refillInterval, 0, 86400000, this._options._logger);
62
- setInterval(()=>{
68
+ this._removeInterval = setInterval(()=>{
63
69
  this._refillBuckets();
64
70
  }, this._refillInterval);
65
71
  }
@@ -1,5 +1,11 @@
1
1
  import { clampToRange } from "./number-utils.mjs";
2
2
  class BucketedRateLimiter {
3
+ stop() {
4
+ if (this._removeInterval) {
5
+ clearInterval(this._removeInterval);
6
+ this._removeInterval = void 0;
7
+ }
8
+ }
3
9
  constructor(_options){
4
10
  this._options = _options;
5
11
  this._buckets = {};
@@ -31,7 +37,7 @@ class BucketedRateLimiter {
31
37
  this._bucketSize = clampToRange(this._options.bucketSize, 0, 100, this._options._logger);
32
38
  this._refillRate = clampToRange(this._options.refillRate, 0, this._bucketSize, this._options._logger);
33
39
  this._refillInterval = clampToRange(this._options.refillInterval, 0, 86400000, this._options._logger);
34
- setInterval(()=>{
40
+ this._removeInterval = setInterval(()=>{
35
41
  this._refillBuckets();
36
42
  }, this._refillInterval);
37
43
  }
@@ -3,6 +3,7 @@ export * from './bucketed-rate-limiter';
3
3
  export * from './number-utils';
4
4
  export * from './string-utils';
5
5
  export * from './type-utils';
6
+ export * from './promise-queue';
6
7
  export declare const STRING_FORMAT = "utf8";
7
8
  export declare function assert(truthyValue: any, message: string): void;
8
9
  export declare function removeTrailingSlash(url: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAE5B,eAAO,MAAM,aAAa,SAAS,CAAA;AAEnC,wBAAgB,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI9D;AASD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;CACtC;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB5F;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAOnE;AAGD,eAAO,MAAM,SAAS,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAEtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAEzC,CAAA;AAED,wBAAgB,QAAQ,IAAI,SAAS,GAAG,SAAS,CAEhD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC1C,OAAO,CAAC,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,EAAE,CAAC,CAStF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAE/B,eAAO,MAAM,aAAa,SAAS,CAAA;AAEnC,wBAAgB,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI9D;AASD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;CACtC;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB5F;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAOnE;AAGD,eAAO,MAAM,SAAS,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAEtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAEzC,CAAA;AAED,wBAAgB,QAAQ,IAAI,SAAS,GAAG,SAAS,CAEhD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC1C,OAAO,CAAC,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,EAAE,CAAC,CAStF"}
@@ -6,6 +6,9 @@ var __webpack_modules__ = {
6
6
  "./number-utils": function(module) {
7
7
  module.exports = require("./number-utils.js");
8
8
  },
9
+ "./promise-queue": function(module) {
10
+ module.exports = require("./promise-queue.js");
11
+ },
9
12
  "./string-utils": function(module) {
10
13
  module.exports = require("./string-utils.js");
11
14
  },
@@ -145,6 +148,25 @@ var __webpack_exports__ = {};
145
148
  return _type_utils__WEBPACK_IMPORTED_MODULE_3__[key];
146
149
  }).bind(0, __WEBPACK_IMPORT_KEY__);
147
150
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
151
+ var _promise_queue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./promise-queue");
152
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
153
+ for(var __WEBPACK_IMPORT_KEY__ in _promise_queue__WEBPACK_IMPORTED_MODULE_4__)if ([
154
+ "removeTrailingSlash",
155
+ "retriable",
156
+ "default",
157
+ "currentISOTime",
158
+ "currentTimestamp",
159
+ "STRING_FORMAT",
160
+ "isError",
161
+ "safeSetTimeout",
162
+ "getFetch",
163
+ "isPromise",
164
+ "assert",
165
+ "allSettled"
166
+ ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
167
+ return _promise_queue__WEBPACK_IMPORTED_MODULE_4__[key];
168
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
169
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
148
170
  const STRING_FORMAT = 'utf8';
149
171
  function assert(truthyValue, message) {
150
172
  if (!truthyValue || 'string' != typeof truthyValue || isEmpty(truthyValue)) throw new Error(message);
@@ -2,6 +2,7 @@ export * from "./bucketed-rate-limiter.mjs";
2
2
  export * from "./number-utils.mjs";
3
3
  export * from "./string-utils.mjs";
4
4
  export * from "./type-utils.mjs";
5
+ export * from "./promise-queue.mjs";
5
6
  const STRING_FORMAT = 'utf8';
6
7
  function assert(truthyValue, message) {
7
8
  if (!truthyValue || 'string' != typeof truthyValue || isEmpty(truthyValue)) throw new Error(message);
@@ -1 +1 @@
1
- {"version":3,"file":"number-utils.d.ts","sourceRoot":"","sources":["../../src/utils/number-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAG9B;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBrH"}
1
+ {"version":3,"file":"number-utils.d.ts","sourceRoot":"","sources":["../../src/utils/number-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBrH"}
@@ -0,0 +1,7 @@
1
+ export declare class PromiseQueue {
2
+ private promiseByIds;
3
+ add(promise: Promise<any>): Promise<any>;
4
+ join(): Promise<void>;
5
+ get length(): number;
6
+ }
7
+ //# sourceMappingURL=promise-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-queue.d.ts","sourceRoot":"","sources":["../../src/utils/promise-queue.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAmC;IAEhD,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAWlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,IAAW,MAAM,IAAI,MAAM,CAE1B;CACF"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ PromiseQueue: ()=>PromiseQueue
28
+ });
29
+ const uuidv7_js_namespaceObject = require("../vendor/uuidv7.js");
30
+ class PromiseQueue {
31
+ add(promise) {
32
+ const promiseUUID = (0, uuidv7_js_namespaceObject.uuidv7)();
33
+ this.promiseByIds[promiseUUID] = promise;
34
+ promise.catch(()=>{}).finally(()=>{
35
+ delete this.promiseByIds[promiseUUID];
36
+ });
37
+ return promise;
38
+ }
39
+ async join() {
40
+ let promises = Object.values(this.promiseByIds);
41
+ let length = promises.length;
42
+ while(length > 0){
43
+ await Promise.all(promises);
44
+ promises = Object.values(this.promiseByIds);
45
+ length = promises.length;
46
+ }
47
+ }
48
+ get length() {
49
+ return Object.keys(this.promiseByIds).length;
50
+ }
51
+ constructor(){
52
+ this.promiseByIds = {};
53
+ }
54
+ }
55
+ exports.PromiseQueue = __webpack_exports__.PromiseQueue;
56
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
57
+ "PromiseQueue"
58
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
59
+ Object.defineProperty(exports, '__esModule', {
60
+ value: true
61
+ });
@@ -0,0 +1,27 @@
1
+ import { uuidv7 } from "../vendor/uuidv7.mjs";
2
+ class PromiseQueue {
3
+ add(promise) {
4
+ const promiseUUID = uuidv7();
5
+ this.promiseByIds[promiseUUID] = promise;
6
+ promise.catch(()=>{}).finally(()=>{
7
+ delete this.promiseByIds[promiseUUID];
8
+ });
9
+ return promise;
10
+ }
11
+ async join() {
12
+ let promises = Object.values(this.promiseByIds);
13
+ let length = promises.length;
14
+ while(length > 0){
15
+ await Promise.all(promises);
16
+ promises = Object.values(this.promiseByIds);
17
+ length = promises.length;
18
+ }
19
+ }
20
+ get length() {
21
+ return Object.keys(this.promiseByIds).length;
22
+ }
23
+ constructor(){
24
+ this.promiseByIds = {};
25
+ }
26
+ }
27
+ export { PromiseQueue };
@@ -14,6 +14,17 @@ export declare const isNumber: (x: unknown) => x is number;
14
14
  export declare const isBoolean: (x: unknown) => x is boolean;
15
15
  export declare const isFormData: (x: unknown) => x is FormData;
16
16
  export declare const isFile: (x: unknown) => x is File;
17
- export declare const isError: (x: unknown) => x is Error;
17
+ export declare const isPlainError: (x: unknown) => x is Error;
18
18
  export declare const isKnownUnsafeEditableEvent: (x: unknown) => x is KnownUnsafeEditableEvent;
19
+ export declare function isInstanceOf(candidate: unknown, base: any): boolean;
20
+ export declare function isPrimitive(value: unknown): boolean;
21
+ export declare function isBuiltin(candidate: unknown, className: string): boolean;
22
+ export declare function isError(candidate: unknown): candidate is Error;
23
+ export declare function isErrorEvent(event: unknown): boolean;
24
+ export declare function isEvent(candidate: unknown): candidate is Event;
25
+ export declare function isPlainObject(candidate: unknown): candidate is Record<string, unknown>;
26
+ export declare const yesLikeValues: (string | number | boolean)[];
27
+ export declare const isYesLike: (val: string | boolean | number) => boolean;
28
+ export declare const noLikeValues: (string | number | boolean)[];
29
+ export declare const isNoLike: (val: string | boolean | number) => boolean;
19
30
  //# sourceMappingURL=type-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAM7E,eAAO,MAAM,cAAc,6BAA0B,CAAA;AAGrD,eAAO,MAAM,OAAO,4BAIjB,CAAA;AAKH,eAAO,MAAM,UAAU,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAGhE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GACR,CAAA;AAG/D,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAG5D,CAAA;AACD,eAAO,MAAM,aAAa,GAAI,GAAG,OAAO,YAUvC,CAAA;AACD,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,SAAyB,CAAA;AAEvE,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAG1C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,GAAG,OAAO,KAAG,OAA+C,CAAA;AAE1F,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAGxC,CAAA;AAMD,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAAI,GAAG,SAAwC,CAAA;AAE3F,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAG1C,CAAA;AACD,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,OAG3C,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,QAG5C,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAGxC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAEzC,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,wBAE5D,CAAA"}
1
+ {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAM7E,eAAO,MAAM,cAAc,6BAA0B,CAAA;AAGrD,eAAO,MAAM,OAAO,4BAIjB,CAAA;AAKH,eAAO,MAAM,UAAU,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAGhE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GACR,CAAA;AAG/D,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAG5D,CAAA;AACD,eAAO,MAAM,aAAa,GAAI,GAAG,OAAO,YAUvC,CAAA;AACD,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,SAAyB,CAAA;AAEvE,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAG1C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,GAAG,OAAO,KAAG,OAA+C,CAAA;AAE1F,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAGxC,CAAA;AAMD,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAAI,GAAG,SAAwC,CAAA;AAE3F,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAG1C,CAAA;AACD,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,OAG3C,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,QAG5C,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAGxC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAE9C,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,wBAE5D,CAAA;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAMnE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,KAAK,CAW9D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,KAAK,CAE9D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEtF;AAED,eAAO,MAAM,aAAa,+BAAgC,CAAA;AAC1D,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,KAAG,OAAuC,CAAA;AAClG,eAAO,MAAM,YAAY,+BAAiC,CAAA;AAC1D,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,KAAG,OAAsC,CAAA"}
@@ -25,22 +25,33 @@ var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  isBoolean: ()=>isBoolean,
28
- isNullish: ()=>isNullish,
28
+ isBuiltin: ()=>isBuiltin,
29
29
  isEmptyString: ()=>isEmptyString,
30
+ isNoLike: ()=>isNoLike,
30
31
  isNull: ()=>isNull,
31
- isNumber: ()=>isNumber,
32
+ isNullish: ()=>isNullish,
32
33
  isError: ()=>isError,
33
34
  isEmptyObject: ()=>isEmptyObject,
34
35
  hasOwnProperty: ()=>type_utils_hasOwnProperty,
36
+ isErrorEvent: ()=>isErrorEvent,
35
37
  isNativeFunction: ()=>isNativeFunction,
36
- isUndefined: ()=>isUndefined,
38
+ isNumber: ()=>isNumber,
39
+ isPlainError: ()=>isPlainError,
40
+ isPlainObject: ()=>isPlainObject,
41
+ isPrimitive: ()=>isPrimitive,
37
42
  isObject: ()=>isObject,
43
+ isUndefined: ()=>isUndefined,
38
44
  isFunction: ()=>isFunction,
39
45
  isArray: ()=>isArray,
40
46
  isKnownUnsafeEditableEvent: ()=>isKnownUnsafeEditableEvent,
41
47
  isString: ()=>isString,
48
+ noLikeValues: ()=>noLikeValues,
49
+ yesLikeValues: ()=>yesLikeValues,
50
+ isEvent: ()=>isEvent,
42
51
  isFile: ()=>isFile,
43
- isFormData: ()=>isFormData
52
+ isYesLike: ()=>isYesLike,
53
+ isFormData: ()=>isFormData,
54
+ isInstanceOf: ()=>isInstanceOf
44
55
  });
45
56
  const external_types_js_namespaceObject = require("../types.js");
46
57
  const external_string_utils_js_namespaceObject = require("./string-utils.js");
@@ -70,43 +81,115 @@ const isNumber = (x)=>'[object Number]' == type_utils_toString.call(x);
70
81
  const isBoolean = (x)=>'[object Boolean]' === type_utils_toString.call(x);
71
82
  const isFormData = (x)=>x instanceof FormData;
72
83
  const isFile = (x)=>x instanceof File;
73
- const isError = (x)=>x instanceof Error;
84
+ const isPlainError = (x)=>x instanceof Error;
74
85
  const isKnownUnsafeEditableEvent = (x)=>(0, external_string_utils_js_namespaceObject.includes)(external_types_js_namespaceObject.knownUnsafeEditableEvent, x);
86
+ function isInstanceOf(candidate, base) {
87
+ try {
88
+ return candidate instanceof base;
89
+ } catch (e) {
90
+ return false;
91
+ }
92
+ }
93
+ function isPrimitive(value) {
94
+ return null === value || 'object' != typeof value;
95
+ }
96
+ function isBuiltin(candidate, className) {
97
+ return Object.prototype.toString.call(candidate) === `[object ${className}]`;
98
+ }
99
+ function isError(candidate) {
100
+ switch(Object.prototype.toString.call(candidate)){
101
+ case '[object Error]':
102
+ case '[object Exception]':
103
+ case '[object DOMException]':
104
+ case '[object DOMError]':
105
+ case '[object WebAssembly.Exception]':
106
+ return true;
107
+ default:
108
+ return isInstanceOf(candidate, Error);
109
+ }
110
+ }
111
+ function isErrorEvent(event) {
112
+ return isBuiltin(event, 'ErrorEvent');
113
+ }
114
+ function isEvent(candidate) {
115
+ return !isUndefined(Event) && isInstanceOf(candidate, Event);
116
+ }
117
+ function isPlainObject(candidate) {
118
+ return isBuiltin(candidate, 'Object');
119
+ }
120
+ const yesLikeValues = [
121
+ true,
122
+ 'true',
123
+ 1,
124
+ '1',
125
+ 'yes'
126
+ ];
127
+ const isYesLike = (val)=>(0, external_string_utils_js_namespaceObject.includes)(yesLikeValues, val);
128
+ const noLikeValues = [
129
+ false,
130
+ 'false',
131
+ 0,
132
+ '0',
133
+ 'no'
134
+ ];
135
+ const isNoLike = (val)=>(0, external_string_utils_js_namespaceObject.includes)(noLikeValues, val);
75
136
  exports.hasOwnProperty = __webpack_exports__.hasOwnProperty;
76
137
  exports.isArray = __webpack_exports__.isArray;
77
138
  exports.isBoolean = __webpack_exports__.isBoolean;
139
+ exports.isBuiltin = __webpack_exports__.isBuiltin;
78
140
  exports.isEmptyObject = __webpack_exports__.isEmptyObject;
79
141
  exports.isEmptyString = __webpack_exports__.isEmptyString;
80
142
  exports.isError = __webpack_exports__.isError;
143
+ exports.isErrorEvent = __webpack_exports__.isErrorEvent;
144
+ exports.isEvent = __webpack_exports__.isEvent;
81
145
  exports.isFile = __webpack_exports__.isFile;
82
146
  exports.isFormData = __webpack_exports__.isFormData;
83
147
  exports.isFunction = __webpack_exports__.isFunction;
148
+ exports.isInstanceOf = __webpack_exports__.isInstanceOf;
84
149
  exports.isKnownUnsafeEditableEvent = __webpack_exports__.isKnownUnsafeEditableEvent;
85
150
  exports.isNativeFunction = __webpack_exports__.isNativeFunction;
151
+ exports.isNoLike = __webpack_exports__.isNoLike;
86
152
  exports.isNull = __webpack_exports__.isNull;
87
153
  exports.isNullish = __webpack_exports__.isNullish;
88
154
  exports.isNumber = __webpack_exports__.isNumber;
89
155
  exports.isObject = __webpack_exports__.isObject;
156
+ exports.isPlainError = __webpack_exports__.isPlainError;
157
+ exports.isPlainObject = __webpack_exports__.isPlainObject;
158
+ exports.isPrimitive = __webpack_exports__.isPrimitive;
90
159
  exports.isString = __webpack_exports__.isString;
91
160
  exports.isUndefined = __webpack_exports__.isUndefined;
161
+ exports.isYesLike = __webpack_exports__.isYesLike;
162
+ exports.noLikeValues = __webpack_exports__.noLikeValues;
163
+ exports.yesLikeValues = __webpack_exports__.yesLikeValues;
92
164
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
93
165
  "hasOwnProperty",
94
166
  "isArray",
95
167
  "isBoolean",
168
+ "isBuiltin",
96
169
  "isEmptyObject",
97
170
  "isEmptyString",
98
171
  "isError",
172
+ "isErrorEvent",
173
+ "isEvent",
99
174
  "isFile",
100
175
  "isFormData",
101
176
  "isFunction",
177
+ "isInstanceOf",
102
178
  "isKnownUnsafeEditableEvent",
103
179
  "isNativeFunction",
180
+ "isNoLike",
104
181
  "isNull",
105
182
  "isNullish",
106
183
  "isNumber",
107
184
  "isObject",
185
+ "isPlainError",
186
+ "isPlainObject",
187
+ "isPrimitive",
108
188
  "isString",
109
- "isUndefined"
189
+ "isUndefined",
190
+ "isYesLike",
191
+ "noLikeValues",
192
+ "yesLikeValues"
110
193
  ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
111
194
  Object.defineProperty(exports, '__esModule', {
112
195
  value: true
@@ -26,6 +26,56 @@ const isNumber = (x)=>'[object Number]' == type_utils_toString.call(x);
26
26
  const isBoolean = (x)=>'[object Boolean]' === type_utils_toString.call(x);
27
27
  const isFormData = (x)=>x instanceof FormData;
28
28
  const isFile = (x)=>x instanceof File;
29
- const isError = (x)=>x instanceof Error;
29
+ const isPlainError = (x)=>x instanceof Error;
30
30
  const isKnownUnsafeEditableEvent = (x)=>includes(knownUnsafeEditableEvent, x);
31
- export { type_utils_hasOwnProperty as hasOwnProperty, isArray, isBoolean, isEmptyObject, isEmptyString, isError, isFile, isFormData, isFunction, isKnownUnsafeEditableEvent, isNativeFunction, isNull, isNullish, isNumber, isObject, isString, isUndefined };
31
+ function isInstanceOf(candidate, base) {
32
+ try {
33
+ return candidate instanceof base;
34
+ } catch (e) {
35
+ return false;
36
+ }
37
+ }
38
+ function isPrimitive(value) {
39
+ return null === value || 'object' != typeof value;
40
+ }
41
+ function isBuiltin(candidate, className) {
42
+ return Object.prototype.toString.call(candidate) === `[object ${className}]`;
43
+ }
44
+ function isError(candidate) {
45
+ switch(Object.prototype.toString.call(candidate)){
46
+ case '[object Error]':
47
+ case '[object Exception]':
48
+ case '[object DOMException]':
49
+ case '[object DOMError]':
50
+ case '[object WebAssembly.Exception]':
51
+ return true;
52
+ default:
53
+ return isInstanceOf(candidate, Error);
54
+ }
55
+ }
56
+ function isErrorEvent(event) {
57
+ return isBuiltin(event, 'ErrorEvent');
58
+ }
59
+ function isEvent(candidate) {
60
+ return !isUndefined(Event) && isInstanceOf(candidate, Event);
61
+ }
62
+ function isPlainObject(candidate) {
63
+ return isBuiltin(candidate, 'Object');
64
+ }
65
+ const yesLikeValues = [
66
+ true,
67
+ 'true',
68
+ 1,
69
+ '1',
70
+ 'yes'
71
+ ];
72
+ const isYesLike = (val)=>includes(yesLikeValues, val);
73
+ const noLikeValues = [
74
+ false,
75
+ 'false',
76
+ 0,
77
+ '0',
78
+ 'no'
79
+ ];
80
+ const isNoLike = (val)=>includes(noLikeValues, val);
81
+ export { type_utils_hasOwnProperty as hasOwnProperty, isArray, isBoolean, isBuiltin, isEmptyObject, isEmptyString, isError, isErrorEvent, isEvent, isFile, isFormData, isFunction, isInstanceOf, isKnownUnsafeEditableEvent, isNativeFunction, isNoLike, isNull, isNullish, isNumber, isObject, isPlainError, isPlainObject, isPrimitive, isString, isUndefined, isYesLike, noLikeValues, yesLikeValues };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posthog/core",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -19,6 +19,11 @@
19
19
  "require": "./dist/index.js",
20
20
  "import": "./dist/index.mjs"
21
21
  },
22
+ "./error-tracking": {
23
+ "types": "./dist/error-tracking/index.d.ts",
24
+ "require": "./dist/error-tracking/index.js",
25
+ "import": "./dist/error-tracking/index.mjs"
26
+ },
22
27
  "./vendor/*": {
23
28
  "types": "./dist/vendor/*.d.ts",
24
29
  "require": "./dist/vendor/*.js",
@@ -42,8 +47,8 @@
42
47
  },
43
48
  "scripts": {
44
49
  "clean": "rimraf dist",
45
- "lint": "eslint src test",
46
- "lint:fix": "eslint src test --fix",
50
+ "lint": "eslint src",
51
+ "lint:fix": "eslint src --fix",
47
52
  "build": "rslib build",
48
53
  "dev": "rslib build -w",
49
54
  "test:unit": "jest",