posthog-js 1.87.2 → 1.87.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 (100) hide show
  1. package/dist/array.full.js +1 -1
  2. package/dist/array.full.js.map +1 -1
  3. package/dist/array.js +1 -1
  4. package/dist/array.js.map +1 -1
  5. package/dist/es.js +1 -1
  6. package/dist/es.js.map +1 -1
  7. package/dist/exception-autocapture.js +1 -1
  8. package/dist/exception-autocapture.js.map +1 -1
  9. package/dist/module.js +1 -1
  10. package/dist/module.js.map +1 -1
  11. package/dist/recorder-v2.js +2 -2
  12. package/dist/recorder-v2.js.map +1 -1
  13. package/dist/recorder.js +1 -1
  14. package/dist/recorder.js.map +1 -1
  15. package/dist/surveys.js +1 -1
  16. package/dist/surveys.js.map +1 -1
  17. package/lib/package.json +1 -1
  18. package/lib/src/autocapture-utils.js +3 -1
  19. package/lib/src/autocapture-utils.js.map +1 -1
  20. package/lib/src/autocapture.js +3 -1
  21. package/lib/src/autocapture.js.map +1 -1
  22. package/lib/src/decide.js +3 -1
  23. package/lib/src/decide.js.map +1 -1
  24. package/lib/src/extensions/exception-autocapture/error-conversion.js +1 -1
  25. package/lib/src/extensions/exception-autocapture/error-conversion.js.map +1 -1
  26. package/lib/src/extensions/exception-autocapture/index.js +3 -1
  27. package/lib/src/extensions/exception-autocapture/index.js.map +1 -1
  28. package/lib/src/extensions/exception-autocapture/stack-trace.js +1 -1
  29. package/lib/src/extensions/exception-autocapture/stack-trace.js.map +1 -1
  30. package/lib/src/extensions/exception-autocapture/type-checking.js +1 -1
  31. package/lib/src/extensions/exception-autocapture/type-checking.js.map +1 -1
  32. package/lib/src/extensions/replay/sessionrecording-utils.js +1 -1
  33. package/lib/src/extensions/replay/sessionrecording-utils.js.map +1 -1
  34. package/lib/src/extensions/replay/sessionrecording.js +3 -1
  35. package/lib/src/extensions/replay/sessionrecording.js.map +1 -1
  36. package/lib/src/extensions/replay/web-performance.js +3 -1
  37. package/lib/src/extensions/replay/web-performance.js.map +1 -1
  38. package/lib/src/extensions/segment-integration.d.ts +18 -0
  39. package/lib/src/extensions/segment-integration.js +1 -19
  40. package/lib/src/extensions/segment-integration.js.map +1 -1
  41. package/lib/src/extensions/surveys.js +1 -1
  42. package/lib/src/extensions/surveys.js.map +1 -1
  43. package/lib/src/extensions/toolbar.js +4 -1
  44. package/lib/src/extensions/toolbar.js.map +1 -1
  45. package/lib/src/gdpr-utils.js +4 -1
  46. package/lib/src/gdpr-utils.js.map +1 -1
  47. package/lib/src/loader-exception-autocapture.js +1 -1
  48. package/lib/src/loader-exception-autocapture.js.map +1 -1
  49. package/lib/src/loader-recorder-v2.js +1 -1
  50. package/lib/src/loader-recorder-v2.js.map +1 -1
  51. package/lib/src/loader-recorder.js +1 -1
  52. package/lib/src/loader-recorder.js.map +1 -1
  53. package/lib/src/loader-surveys.js +1 -1
  54. package/lib/src/loader-surveys.js.map +1 -1
  55. package/lib/src/page-view.js +1 -1
  56. package/lib/src/page-view.js.map +1 -1
  57. package/lib/src/posthog-core.js +9 -4
  58. package/lib/src/posthog-core.js.map +1 -1
  59. package/lib/src/posthog-featureflags.js +4 -2
  60. package/lib/src/posthog-featureflags.js.map +1 -1
  61. package/lib/src/posthog-persistence.js +4 -1
  62. package/lib/src/posthog-persistence.js.map +1 -1
  63. package/lib/src/posthog-surveys.js +1 -1
  64. package/lib/src/posthog-surveys.js.map +1 -1
  65. package/lib/src/rate-limiter.js +6 -2
  66. package/lib/src/rate-limiter.js.map +1 -1
  67. package/lib/src/request-queue.js +2 -1
  68. package/lib/src/request-queue.js.map +1 -1
  69. package/lib/src/retry-queue.js +2 -1
  70. package/lib/src/retry-queue.js.map +1 -1
  71. package/lib/src/send-request.js +10 -5
  72. package/lib/src/send-request.js.map +1 -1
  73. package/lib/src/sessionid.js +3 -1
  74. package/lib/src/sessionid.js.map +1 -1
  75. package/lib/src/storage.js +3 -1
  76. package/lib/src/storage.js.map +1 -1
  77. package/lib/src/utils/event-utils.d.ts +29 -0
  78. package/lib/src/utils/event-utils.js +298 -0
  79. package/lib/src/utils/event-utils.js.map +1 -0
  80. package/lib/src/utils/globals.d.ts +7 -0
  81. package/lib/src/utils/globals.js +12 -0
  82. package/lib/src/utils/globals.js.map +1 -0
  83. package/lib/src/utils/index.d.ts +37 -0
  84. package/lib/src/utils/index.js +463 -0
  85. package/lib/src/utils/index.js.map +1 -0
  86. package/lib/src/utils/logger.d.ts +8 -0
  87. package/lib/src/utils/logger.js +78 -0
  88. package/lib/src/utils/logger.js.map +1 -0
  89. package/lib/src/utils/request-utils.d.ts +5 -0
  90. package/lib/src/utils/request-utils.js +59 -0
  91. package/lib/src/utils/request-utils.js.map +1 -0
  92. package/lib/src/utils/type-utils.d.ts +12 -0
  93. package/lib/src/utils/type-utils.js +64 -0
  94. package/lib/src/utils/type-utils.js.map +1 -0
  95. package/lib/src/uuidv7.js +2 -1
  96. package/lib/src/uuidv7.js.map +1 -1
  97. package/package.json +1 -1
  98. package/lib/src/utils.d.ts +0 -92
  99. package/lib/src/utils.js +0 -942
  100. package/lib/src/utils.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ import { _each, _isValidRegex } from './';
2
+ import { _isArray, _isUndefined } from './type-utils';
3
+ import { logger } from './logger';
4
+ var localDomains = ['localhost', '127.0.0.1'];
5
+ export var _isUrlMatchingRegex = function (url, pattern) {
6
+ if (!_isValidRegex(pattern))
7
+ return false;
8
+ return new RegExp(pattern).test(url);
9
+ };
10
+ export var _HTTPBuildQuery = function (formdata, arg_separator) {
11
+ if (arg_separator === void 0) { arg_separator = '&'; }
12
+ var use_val;
13
+ var use_key;
14
+ var tph_arr = [];
15
+ _each(formdata, function (val, key) {
16
+ // the key might be literally the string undefined for e.g. if {undefined: 'something'}
17
+ if (_isUndefined(val) || _isUndefined(key) || key === 'undefined') {
18
+ return;
19
+ }
20
+ use_val = encodeURIComponent(val.toString());
21
+ use_key = encodeURIComponent(key);
22
+ tph_arr[tph_arr.length] = use_key + '=' + use_val;
23
+ });
24
+ return tph_arr.join(arg_separator);
25
+ };
26
+ export var _getQueryParam = function (url, param) {
27
+ var withoutHash = url.split('#')[0] || '';
28
+ var queryParams = withoutHash.split('?')[1] || '';
29
+ var queryParts = queryParams.split('&');
30
+ var keyValuePair;
31
+ for (var i = 0; i < queryParts.length; i++) {
32
+ var parts = queryParts[i].split('=');
33
+ if (parts[0] === param) {
34
+ keyValuePair = parts;
35
+ break;
36
+ }
37
+ }
38
+ if (!_isArray(keyValuePair) || keyValuePair.length < 2) {
39
+ return '';
40
+ }
41
+ else {
42
+ var result = keyValuePair[1];
43
+ try {
44
+ result = decodeURIComponent(result);
45
+ }
46
+ catch (err) {
47
+ logger.error('Skipping decoding for malformed query param: ' + result);
48
+ }
49
+ return result.replace(/\+/g, ' ');
50
+ }
51
+ };
52
+ export var _getHashParam = function (hash, param) {
53
+ var matches = hash.match(new RegExp(param + '=([^&]*)'));
54
+ return matches ? matches[1] : null;
55
+ };
56
+ export var isLocalhost = function () {
57
+ return localDomains.includes(location.hostname);
58
+ };
59
+ //# sourceMappingURL=request-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-utils.js","sourceRoot":"","sources":["../../../src/utils/request-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { _each, _isValidRegex } from './'\n\nimport { _isArray, _isUndefined } from './type-utils'\nimport { logger } from './logger'\n\nconst localDomains = ['localhost', '127.0.0.1']\n\nexport const _isUrlMatchingRegex = function (url: string, pattern: string): boolean {\n if (!_isValidRegex(pattern)) return false\n return new RegExp(pattern).test(url)\n}\n\nexport const _HTTPBuildQuery = function (formdata: Record<string, any>, arg_separator = '&'): string {\n let use_val: string\n let use_key: string\n const tph_arr: string[] = []\n\n _each(formdata, function (val, key) {\n // the key might be literally the string undefined for e.g. if {undefined: 'something'}\n if (_isUndefined(val) || _isUndefined(key) || key === 'undefined') {\n return\n }\n\n use_val = encodeURIComponent(val.toString())\n use_key = encodeURIComponent(key)\n tph_arr[tph_arr.length] = use_key + '=' + use_val\n })\n\n return tph_arr.join(arg_separator)\n}\n\nexport const _getQueryParam = function (url: string, param: string): string {\n const withoutHash: string = url.split('#')[0] || ''\n const queryParams: string = withoutHash.split('?')[1] || ''\n\n const queryParts = queryParams.split('&')\n let keyValuePair\n\n for (let i = 0; i < queryParts.length; i++) {\n const parts = queryParts[i].split('=')\n if (parts[0] === param) {\n keyValuePair = parts\n break\n }\n }\n\n if (!_isArray(keyValuePair) || keyValuePair.length < 2) {\n return ''\n } else {\n let result = keyValuePair[1]\n try {\n result = decodeURIComponent(result)\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result)\n }\n return result.replace(/\\+/g, ' ')\n }\n}\n\nexport const _getHashParam = function (hash: string, param: string): string | null {\n const matches = hash.match(new RegExp(param + '=([^&]*)'))\n return matches ? matches[1] : null\n}\n\nexport const isLocalhost = (): boolean => {\n return localDomains.includes(location.hostname)\n}\n"]}
@@ -0,0 +1,12 @@
1
+ export declare const hasOwnProperty: (v: PropertyKey) => boolean;
2
+ export declare const _isArray: (arg: any) => arg is any[];
3
+ export declare const _isUint8Array: (x: unknown) => x is Uint8Array;
4
+ export declare const _isFunction: (f: any) => f is (...args: any[]) => any;
5
+ export declare const _isObject: (x: unknown) => x is Record<string, any>;
6
+ export declare const _isEmptyObject: (x: unknown) => x is Record<string, any>;
7
+ export declare const _isUndefined: (x: unknown) => x is undefined;
8
+ export declare const _isString: (x: unknown) => x is string;
9
+ export declare const _isNull: (x: unknown) => x is null;
10
+ export declare const _isDate: (x: unknown) => x is Date;
11
+ export declare const _isNumber: (x: unknown) => x is number;
12
+ export declare const _isBoolean: (x: unknown) => x is boolean;
@@ -0,0 +1,64 @@
1
+ // eslint-disable-next-line posthog-js/no-direct-array-check
2
+ var nativeIsArray = Array.isArray;
3
+ var ObjProto = Object.prototype;
4
+ export var hasOwnProperty = ObjProto.hasOwnProperty;
5
+ var toString = ObjProto.toString;
6
+ export var _isArray = nativeIsArray ||
7
+ function (obj) {
8
+ return toString.call(obj) === '[object Array]';
9
+ };
10
+ export var _isUint8Array = function (x) {
11
+ return toString.call(x) === '[object Uint8Array]';
12
+ };
13
+ // from a comment on http://dbj.org/dbj/?p=286
14
+ // fails on only one very rare and deliberate custom object:
15
+ // let bomb = { toString : undefined, valueOf: function(o) { return "function BOMBA!"; }};
16
+ export var _isFunction = function (f) {
17
+ try {
18
+ // eslint-disable-next-line posthog-js/no-direct-function-check
19
+ return /^\s*\bfunction\b/.test(f);
20
+ }
21
+ catch (x) {
22
+ return false;
23
+ }
24
+ };
25
+ // Underscore Addons
26
+ export var _isObject = function (x) {
27
+ // eslint-disable-next-line posthog-js/no-direct-object-check
28
+ return x === Object(x) && !_isArray(x);
29
+ };
30
+ export var _isEmptyObject = function (x) {
31
+ if (_isObject(x)) {
32
+ for (var key in x) {
33
+ if (hasOwnProperty.call(x, key)) {
34
+ return false;
35
+ }
36
+ }
37
+ return true;
38
+ }
39
+ return false;
40
+ };
41
+ export var _isUndefined = function (x) {
42
+ return x === void 0;
43
+ };
44
+ export var _isString = function (x) {
45
+ // eslint-disable-next-line posthog-js/no-direct-string-check
46
+ return toString.call(x) == '[object String]';
47
+ };
48
+ export var _isNull = function (x) {
49
+ // eslint-disable-next-line posthog-js/no-direct-null-check
50
+ return x === null;
51
+ };
52
+ export var _isDate = function (x) {
53
+ // eslint-disable-next-line posthog-js/no-direct-date-check
54
+ return toString.call(x) == '[object Date]';
55
+ };
56
+ export var _isNumber = function (x) {
57
+ // eslint-disable-next-line posthog-js/no-direct-number-check
58
+ return toString.call(x) == '[object Number]';
59
+ };
60
+ export var _isBoolean = function (x) {
61
+ // eslint-disable-next-line posthog-js/no-direct-boolean-check
62
+ return toString.call(x) === '[object Boolean]';
63
+ };
64
+ //# sourceMappingURL=type-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../src/utils/type-utils.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,IAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;AACnC,IAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAA;AACjC,MAAM,CAAC,IAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAA;AACrD,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;AAElC,MAAM,CAAC,IAAM,QAAQ,GACjB,aAAa;IACb,UAAU,GAAQ;QACd,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAA;IAClD,CAAC,CAAA;AACL,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAU;IAC7C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAA;AACrD,CAAC,CAAA;AACD,8CAA8C;AAC9C,4DAA4D;AAC5D,0FAA0F;AAC1F,MAAM,CAAC,IAAM,WAAW,GAAG,UAAU,CAAM;IACvC,IAAI;QACA,+DAA+D;QAC/D,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACpC;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,KAAK,CAAA;KACf;AACL,CAAC,CAAA;AACD,oBAAoB;AACpB,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAU;IACzC,6DAA6D;IAC7D,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,cAAc,GAAG,UAAU,CAAU;IAC9C,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;QACd,KAAK,IAAM,GAAG,IAAI,CAAC,EAAE;YACjB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBAC7B,OAAO,KAAK,CAAA;aACf;SACJ;QACD,OAAO,IAAI,CAAA;KACd;IACD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,YAAY,GAAG,UAAU,CAAU;IAC5C,OAAO,CAAC,KAAK,KAAK,CAAC,CAAA;AACvB,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAU;IACzC,6DAA6D;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAA;AAChD,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,OAAO,GAAG,UAAU,CAAU;IACvC,2DAA2D;IAC3D,OAAO,CAAC,KAAK,IAAI,CAAA;AACrB,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,OAAO,GAAG,UAAU,CAAU;IACvC,2DAA2D;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAA;AAC9C,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAU;IACzC,6DAA6D;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAA;AAChD,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,UAAU,GAAG,UAAU,CAAU;IAC1C,8DAA8D;IAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAA;AAClD,CAAC,CAAA","sourcesContent":["// eslint-disable-next-line posthog-js/no-direct-array-check\nconst nativeIsArray = Array.isArray\nconst ObjProto = Object.prototype\nexport const hasOwnProperty = ObjProto.hasOwnProperty\nconst toString = ObjProto.toString\n\nexport const _isArray =\n nativeIsArray ||\n function (obj: any): obj is any[] {\n return toString.call(obj) === '[object Array]'\n }\nexport const _isUint8Array = function (x: unknown): x is Uint8Array {\n return toString.call(x) === '[object Uint8Array]'\n}\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// let bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\nexport const _isFunction = function (f: any): f is (...args: any[]) => any {\n try {\n // eslint-disable-next-line posthog-js/no-direct-function-check\n return /^\\s*\\bfunction\\b/.test(f)\n } catch (x) {\n return false\n }\n}\n// Underscore Addons\nexport const _isObject = function (x: unknown): x is Record<string, any> {\n // eslint-disable-next-line posthog-js/no-direct-object-check\n return x === Object(x) && !_isArray(x)\n}\nexport const _isEmptyObject = function (x: unknown): x is Record<string, any> {\n if (_isObject(x)) {\n for (const key in x) {\n if (hasOwnProperty.call(x, key)) {\n return false\n }\n }\n return true\n }\n return false\n}\nexport const _isUndefined = function (x: unknown): x is undefined {\n return x === void 0\n}\nexport const _isString = function (x: unknown): x is string {\n // eslint-disable-next-line posthog-js/no-direct-string-check\n return toString.call(x) == '[object String]'\n}\nexport const _isNull = function (x: unknown): x is null {\n // eslint-disable-next-line posthog-js/no-direct-null-check\n return x === null\n}\nexport const _isDate = function (x: unknown): x is Date {\n // eslint-disable-next-line posthog-js/no-direct-date-check\n return toString.call(x) == '[object Date]'\n}\nexport const _isNumber = function (x: unknown): x is number {\n // eslint-disable-next-line posthog-js/no-direct-number-check\n return toString.call(x) == '[object Number]'\n}\nexport const _isBoolean = function (x: unknown): x is boolean {\n // eslint-disable-next-line posthog-js/no-direct-boolean-check\n return toString.call(x) === '[object Boolean]'\n}\n"]}
package/lib/src/uuidv7.js CHANGED
@@ -8,7 +8,8 @@
8
8
  * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts
9
9
  */
10
10
  // polyfill for IE11
11
- import { _isNumber, _isUndefined, window } from './utils';
11
+ import { window } from './utils/globals';
12
+ import { _isNumber, _isUndefined } from './utils/type-utils';
12
13
  if (!Math.trunc) {
13
14
  Math.trunc = function (v) {
14
15
  return v < 0 ? Math.ceil(v) : Math.floor(v);
@@ -1 +1 @@
1
- {"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *\n * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts\n */\n\n// polyfill for IE11\nimport { _isNumber, _isUndefined, window } from './utils'\n\nif (!Math.trunc) {\n Math.trunc = function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v)\n }\n}\n\n// polyfill for IE11\nif (!Number.isInteger) {\n Number.isInteger = function (value) {\n return _isNumber(value) && isFinite(value) && Math.floor(value) === value\n }\n}\n\nconst DIGITS = '0123456789abcdef'\n\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(readonly bytes: Readonly<Uint8Array>) {\n if (bytes.length !== 16) {\n throw new TypeError('not 128-bit length')\n }\n }\n\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs: number, randA: number, randBHi: number, randBLo: number): UUID {\n if (\n !Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 0xffff_ffff_ffff ||\n randA > 0xfff ||\n randBHi > 0x3fff_ffff ||\n randBLo > 0xffff_ffff\n ) {\n throw new RangeError('invalid field value')\n }\n\n const bytes = new Uint8Array(16)\n bytes[0] = unixTsMs / 2 ** 40\n bytes[1] = unixTsMs / 2 ** 32\n bytes[2] = unixTsMs / 2 ** 24\n bytes[3] = unixTsMs / 2 ** 16\n bytes[4] = unixTsMs / 2 ** 8\n bytes[5] = unixTsMs\n bytes[6] = 0x70 | (randA >>> 8)\n bytes[7] = randA\n bytes[8] = 0x80 | (randBHi >>> 24)\n bytes[9] = randBHi >>> 16\n bytes[10] = randBHi >>> 8\n bytes[11] = randBHi\n bytes[12] = randBLo >>> 24\n bytes[13] = randBLo >>> 16\n bytes[14] = randBLo >>> 8\n bytes[15] = randBLo\n return new UUID(bytes)\n }\n\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString(): string {\n let text = ''\n for (let i = 0; i < this.bytes.length; i++) {\n text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf)\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += '-'\n }\n }\n\n if (text.length !== 36) {\n // We saw one customer whose bundling code was mangling the UUID generation\n // rather than accept a bad UUID, we throw an error here.\n throw new Error('Invalid UUIDv7 was generated')\n }\n return text\n }\n\n /** Creates an object from `this`. */\n clone(): UUID {\n return new UUID(this.bytes.slice(0))\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n equals(other: UUID): boolean {\n return this.compareTo(other) === 0\n }\n\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other: UUID): number {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i]\n if (diff !== 0) {\n return Math.sign(diff)\n }\n }\n return 0\n }\n}\n\n/** Encapsulates the monotonic counter state. */\nclass V7Generator {\n private timestamp = 0\n private counter = 0\n private readonly random = new DefaultRandom()\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate(): UUID {\n const value = this.generateOrAbort()\n if (!_isUndefined(value)) {\n return value\n } else {\n // reset state and resume\n this.timestamp = 0\n const valueAfterReset = this.generateOrAbort()\n if (_isUndefined(valueAfterReset)) {\n throw new Error('Could not generate UUID after timestamp reset')\n }\n return valueAfterReset\n }\n }\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort(): UUID | undefined {\n const MAX_COUNTER = 0x3ff_ffff_ffff\n const ROLLBACK_ALLOWANCE = 10_000 // 10 seconds\n\n const ts = Date.now()\n if (ts > this.timestamp) {\n this.timestamp = ts\n this.resetCounter()\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++\n this.resetCounter()\n }\n } else {\n // abort if clock went backwards to unbearable extent\n return undefined\n }\n\n return UUID.fromFieldsV7(\n this.timestamp,\n Math.trunc(this.counter / 2 ** 30),\n this.counter & (2 ** 30 - 1),\n this.random.nextUint32()\n )\n }\n\n /** Initializes the counter at a 42-bit random integer. */\n private resetCounter(): void {\n this.counter = this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff)\n }\n}\n\n/** A global flag to force use of cryptographically strong RNG. */\ndeclare const UUIDV7_DENY_WEAK_RNG: boolean\n\n/** Stores `crypto.getRandomValues()` available in the environment. */\nlet getRandomValues: <T extends Uint8Array | Uint32Array>(buffer: T) => T = (buffer) => {\n // fall back on Math.random() unless the flag is set to true\n // TRICKY: don't use the _isUndefined method here as can't pass the reference\n if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {\n throw new Error('no cryptographically strong RNG available')\n }\n\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 0x1_0000) * 0x1_0000 + Math.trunc(Math.random() * 0x1_0000)\n }\n return buffer\n}\n\n// detect Web Crypto API\nif (!_isUndefined(window.crypto) && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer)\n}\n\n/**\n * Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this\n * uses a small buffer by default to avoid unbearable throughput decline in some\n * environments as well as the waste of time and space for unused values.\n */\nclass DefaultRandom {\n private readonly buffer = new Uint32Array(8)\n private cursor = Infinity\n nextUint32(): number {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer)\n this.cursor = 0\n }\n return this.buffer[this.cursor++]\n }\n}\n\nlet defaultGenerator: V7Generator | undefined\n\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = (): string => uuidv7obj().toString()\n\n/** Generates a UUIDv7 object. */\nconst uuidv7obj = (): UUID => (defaultGenerator || (defaultGenerator = new V7Generator())).generate()\n"]}
1
+ {"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oBAAoB;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAE5D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACb,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAA;CACJ;AAED,oBAAoB;AACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;IACnB,MAAM,CAAC,SAAS,GAAG,UAAU,KAAK;QAC9B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;IAC7E,CAAC,CAAA;CACJ;AAED,IAAM,MAAM,GAAG,kBAAkB,CAAA;AAEjC,iDAAiD;AACjD;IACI,4DAA4D;IAC5D,cAAqB,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAA;SAC5C;IACL,CAAC;IAED;;;;;;;OAOG;IACI,iBAAY,GAAnB,UAAoB,QAAgB,EAAE,KAAa,EAAE,OAAe,EAAE,OAAe;QACjF,IACI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC3B,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YACxB,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAC1B,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAC1B,QAAQ,GAAG,CAAC;YACZ,KAAK,GAAG,CAAC;YACT,OAAO,GAAG,CAAC;YACX,OAAO,GAAG,CAAC;YACX,QAAQ,GAAG,eAAgB;YAC3B,KAAK,GAAG,KAAK;YACb,OAAO,GAAG,UAAW;YACrB,OAAO,GAAG,UAAW,EACvB;YACE,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAAA;SAC9C;QAED,IAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;QAChC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,CAAA;QAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,CAAA;QAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,CAAA;QAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,CAAA;QAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAA,CAAC,EAAI,CAAC,CAAA,CAAA;QAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;QACnB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;QAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QAChB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;QAClC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAA;QACnB,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;QAC1B,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;QAC1B,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAA;QACnB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,2EAA2E;IAC3E,uBAAQ,GAAR;QACI,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;YACrF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC1C,IAAI,IAAI,GAAG,CAAA;aACd;SACJ;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACpB,2EAA2E;YAC3E,yDAAyD;YACzD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;SAClD;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,qCAAqC;IACrC,oBAAK,GAAL;QACI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,uDAAuD;IACvD,qBAAM,GAAN,UAAO,KAAW;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED;;;OAGG;IACH,wBAAS,GAAT,UAAU,KAAW;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3C,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACzB;SACJ;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IACL,WAAC;AAAD,CAAC,AA/FD,IA+FC;;AAED,gDAAgD;AAChD;IAAA;QACY,cAAS,GAAG,CAAC,CAAA;QACb,YAAO,GAAG,CAAC,CAAA;QACF,WAAM,GAAG,IAAI,aAAa,EAAE,CAAA;IAqEjD,CAAC;IAnEG;;;;;;;;;OASG;IACH,8BAAQ,GAAR;QACI,IAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAA;SACf;aAAM;YACH,yBAAyB;YACzB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;YAClB,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YAC9C,IAAI,YAAY,CAAC,eAAe,CAAC,EAAE;gBAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;aACnE;YACD,OAAO,eAAe,CAAA;SACzB;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,qCAAe,GAAf;QACI,IAAM,WAAW,GAAG,aAAe,CAAA;QACnC,IAAM,kBAAkB,GAAG,KAAM,CAAA,CAAC,aAAa;QAE/C,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrB,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;YACnB,IAAI,CAAC,YAAY,EAAE,CAAA;SACtB;aAAM,IAAI,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE;YACjD,+DAA+D;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,IAAI,CAAC,OAAO,GAAG,WAAW,EAAE;gBAC5B,0CAA0C;gBAC1C,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,YAAY,EAAE,CAAA;aACtB;SACJ;aAAM;YACH,qDAAqD;YACrD,OAAO,SAAS,CAAA;SACnB;QAED,OAAO,IAAI,CAAC,YAAY,CACpB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,CAAC,EAClC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAA,CAAC,EAAI,EAAE,CAAA,GAAG,CAAC,CAAC,EAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAC3B,CAAA;IACL,CAAC;IAED,0DAA0D;IAClD,kCAAY,GAApB;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,CAAA;IACxF,CAAC;IACL,kBAAC;AAAD,CAAC,AAxED,IAwEC;AAKD,sEAAsE;AACtE,IAAI,eAAe,GAAyD,UAAC,MAAM;IAC/E,4DAA4D;IAC5D,6EAA6E;IAC7E,IAAI,OAAO,oBAAoB,KAAK,WAAW,IAAI,oBAAoB,EAAE;QACrE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;KAC/D;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAQ,CAAC,GAAG,KAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAQ,CAAC,CAAA;KACrG;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAED,wBAAwB;AACxB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE;IACxD,eAAe,GAAG,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAA9B,CAA8B,CAAA;CAC/D;AAED;;;;GAIG;AACH;IAAA;QACqB,WAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QACpC,WAAM,GAAG,QAAQ,CAAA;IAQ7B,CAAC;IAPG,kCAAU,GAAV;QACI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;SAClB;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACrC,CAAC;IACL,oBAAC;AAAD,CAAC,AAVD,IAUC;AAED,IAAI,gBAAyC,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,IAAM,MAAM,GAAG,cAAc,OAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAtB,CAAsB,CAAA;AAE1D,iCAAiC;AACjC,IAAM,SAAS,GAAG,cAAY,OAAA,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAvE,CAAuE,CAAA","sourcesContent":["/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *\n * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts\n */\n\n// polyfill for IE11\nimport { window } from './utils/globals'\n\nimport { _isNumber, _isUndefined } from './utils/type-utils'\n\nif (!Math.trunc) {\n Math.trunc = function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v)\n }\n}\n\n// polyfill for IE11\nif (!Number.isInteger) {\n Number.isInteger = function (value) {\n return _isNumber(value) && isFinite(value) && Math.floor(value) === value\n }\n}\n\nconst DIGITS = '0123456789abcdef'\n\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(readonly bytes: Readonly<Uint8Array>) {\n if (bytes.length !== 16) {\n throw new TypeError('not 128-bit length')\n }\n }\n\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs: number, randA: number, randBHi: number, randBLo: number): UUID {\n if (\n !Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 0xffff_ffff_ffff ||\n randA > 0xfff ||\n randBHi > 0x3fff_ffff ||\n randBLo > 0xffff_ffff\n ) {\n throw new RangeError('invalid field value')\n }\n\n const bytes = new Uint8Array(16)\n bytes[0] = unixTsMs / 2 ** 40\n bytes[1] = unixTsMs / 2 ** 32\n bytes[2] = unixTsMs / 2 ** 24\n bytes[3] = unixTsMs / 2 ** 16\n bytes[4] = unixTsMs / 2 ** 8\n bytes[5] = unixTsMs\n bytes[6] = 0x70 | (randA >>> 8)\n bytes[7] = randA\n bytes[8] = 0x80 | (randBHi >>> 24)\n bytes[9] = randBHi >>> 16\n bytes[10] = randBHi >>> 8\n bytes[11] = randBHi\n bytes[12] = randBLo >>> 24\n bytes[13] = randBLo >>> 16\n bytes[14] = randBLo >>> 8\n bytes[15] = randBLo\n return new UUID(bytes)\n }\n\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString(): string {\n let text = ''\n for (let i = 0; i < this.bytes.length; i++) {\n text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf)\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += '-'\n }\n }\n\n if (text.length !== 36) {\n // We saw one customer whose bundling code was mangling the UUID generation\n // rather than accept a bad UUID, we throw an error here.\n throw new Error('Invalid UUIDv7 was generated')\n }\n return text\n }\n\n /** Creates an object from `this`. */\n clone(): UUID {\n return new UUID(this.bytes.slice(0))\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n equals(other: UUID): boolean {\n return this.compareTo(other) === 0\n }\n\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other: UUID): number {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i]\n if (diff !== 0) {\n return Math.sign(diff)\n }\n }\n return 0\n }\n}\n\n/** Encapsulates the monotonic counter state. */\nclass V7Generator {\n private timestamp = 0\n private counter = 0\n private readonly random = new DefaultRandom()\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate(): UUID {\n const value = this.generateOrAbort()\n if (!_isUndefined(value)) {\n return value\n } else {\n // reset state and resume\n this.timestamp = 0\n const valueAfterReset = this.generateOrAbort()\n if (_isUndefined(valueAfterReset)) {\n throw new Error('Could not generate UUID after timestamp reset')\n }\n return valueAfterReset\n }\n }\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort(): UUID | undefined {\n const MAX_COUNTER = 0x3ff_ffff_ffff\n const ROLLBACK_ALLOWANCE = 10_000 // 10 seconds\n\n const ts = Date.now()\n if (ts > this.timestamp) {\n this.timestamp = ts\n this.resetCounter()\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++\n this.resetCounter()\n }\n } else {\n // abort if clock went backwards to unbearable extent\n return undefined\n }\n\n return UUID.fromFieldsV7(\n this.timestamp,\n Math.trunc(this.counter / 2 ** 30),\n this.counter & (2 ** 30 - 1),\n this.random.nextUint32()\n )\n }\n\n /** Initializes the counter at a 42-bit random integer. */\n private resetCounter(): void {\n this.counter = this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff)\n }\n}\n\n/** A global flag to force use of cryptographically strong RNG. */\ndeclare const UUIDV7_DENY_WEAK_RNG: boolean\n\n/** Stores `crypto.getRandomValues()` available in the environment. */\nlet getRandomValues: <T extends Uint8Array | Uint32Array>(buffer: T) => T = (buffer) => {\n // fall back on Math.random() unless the flag is set to true\n // TRICKY: don't use the _isUndefined method here as can't pass the reference\n if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {\n throw new Error('no cryptographically strong RNG available')\n }\n\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 0x1_0000) * 0x1_0000 + Math.trunc(Math.random() * 0x1_0000)\n }\n return buffer\n}\n\n// detect Web Crypto API\nif (!_isUndefined(window.crypto) && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer)\n}\n\n/**\n * Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this\n * uses a small buffer by default to avoid unbearable throughput decline in some\n * environments as well as the waste of time and space for unused values.\n */\nclass DefaultRandom {\n private readonly buffer = new Uint32Array(8)\n private cursor = Infinity\n nextUint32(): number {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer)\n this.cursor = 0\n }\n return this.buffer[this.cursor++]\n }\n}\n\nlet defaultGenerator: V7Generator | undefined\n\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = (): string => uuidv7obj().toString()\n\n/** Generates a UUIDv7 object. */\nconst uuidv7obj = (): UUID => (defaultGenerator || (defaultGenerator = new V7Generator())).generate()\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.87.2",
3
+ "version": "1.87.4",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",
@@ -1,92 +0,0 @@
1
- import { Breaker, EventHandler, Properties } from './types';
2
- declare const win: Window & typeof globalThis;
3
- declare const document: Document;
4
- declare const userAgent: string;
5
- export declare const logger: {
6
- _log: (level: 'log' | 'warn' | 'error', ...args: any[]) => void;
7
- info: (...args: any[]) => void;
8
- warn: (...args: any[]) => void;
9
- error: (...args: any[]) => void;
10
- critical: (...args: any[]) => void;
11
- unintializedWarning: (methodName: string) => void;
12
- };
13
- export declare const _trim: (str: string) => string;
14
- export declare const _bind_instance_methods: (obj: Record<string, any>) => void;
15
- export declare function _eachArray<E = any>(obj: E[] | null | undefined, iterator: (value: E, key: number) => void | Breaker, thisArg?: any): void;
16
- /**
17
- * @param {*=} obj
18
- * @param {function(...*)=} iterator
19
- * @param {Object=} thisArg
20
- */
21
- export declare function _each(obj: any, iterator: (value: any, key: any) => void | Breaker, thisArg?: any): void;
22
- export declare const _extend: (obj: Record<string, any>, ...args: Record<string, any>[]) => Record<string, any>;
23
- export declare const _isArray: (arg: any) => arg is any[];
24
- export declare const _isFunction: (f: any) => f is (...args: any[]) => any;
25
- export declare const _include: (obj: null | string | Array<any> | Record<string, any>, target: any) => boolean | Breaker;
26
- export declare function _includes<T = any>(str: T[] | string, needle: T): boolean;
27
- /**
28
- * Object.entries() polyfill
29
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
30
- */
31
- export declare function _entries<T = any>(obj: Record<string, T>): [string, T][];
32
- export declare const _isObject: (x: unknown) => x is Record<string, any>;
33
- export declare const _isEmptyObject: (x: unknown) => x is Record<string, any>;
34
- export declare const _isUndefined: (x: unknown) => x is undefined;
35
- export declare const _isString: (x: unknown) => x is string;
36
- export declare const _isNull: (x: unknown) => x is null;
37
- export declare const _isDate: (x: unknown) => x is Date;
38
- export declare const _isNumber: (x: unknown) => x is number;
39
- export declare const _isBoolean: (x: unknown) => x is boolean;
40
- export declare const _isValidRegex: (str: string) => boolean;
41
- export declare const _isUrlMatchingRegex: (url: string, pattern: string) => boolean;
42
- export declare const _encodeDates: (obj: Properties) => Properties;
43
- export declare const _timestamp: () => number;
44
- export declare const _formatDate: (d: Date) => string;
45
- export declare const _try: <T>(fn: () => T) => T | undefined;
46
- export declare const _safewrap: <F extends (...args: any[]) => any = (...args: any[]) => any>(f: F) => F;
47
- export declare const _safewrap_class: (klass: Function, functions: string[]) => void;
48
- export declare const _safewrap_instance_methods: (obj: Record<string, any>) => void;
49
- export declare const _strip_empty_properties: (p: Properties) => Properties;
50
- export declare function _copyAndTruncateStrings<T extends Record<string, any> = Record<string, any>>(object: T, maxStringLength: number | null): T;
51
- export declare function _base64Encode(data: null): null;
52
- export declare function _base64Encode(data: undefined): undefined;
53
- export declare function _base64Encode(data: string): string;
54
- export declare const _utf8Encode: (string: string) => string;
55
- export declare const DEFAULT_BLOCKED_UA_STRS: string[];
56
- export declare const _isBlockedUA: (ua: string, customBlockedUserAgents: string[]) => boolean;
57
- export declare const _HTTPBuildQuery: (formdata: Record<string, any>, arg_separator?: string) => string;
58
- export declare const _getQueryParam: (url: string, param: string) => string;
59
- export declare const _getHashParam: (hash: string, param: string) => string | null;
60
- export declare const _register_event: (element: Element | Window | Document | Node, type: string, handler: EventHandler, oldSchool?: boolean, useCapture?: boolean) => void;
61
- export declare const isLocalhost: () => boolean;
62
- export declare function loadScript(scriptUrlToLoad: string, callback: (error?: string | Event, event?: Event) => void): void;
63
- export declare const _info: {
64
- campaignParams: (customParams?: string[]) => Record<string, any>;
65
- searchEngine: () => string | null;
66
- searchInfo: () => Record<string, any>;
67
- /**
68
- * This function detects which browser is running this script.
69
- * The order of the checks are important since many user agents
70
- * include key words used in later checks.
71
- */
72
- browser: (user_agent: string, vendor: string, opera?: any) => string;
73
- /**
74
- * This function detects which browser version is running this script,
75
- * parsing major and minor version (e.g., 42.1). User agent strings from:
76
- * http://www.useragentstring.com/pages/useragentstring.php
77
- */
78
- browserVersion: (userAgent: string, vendor: string, opera: string) => number | null;
79
- browserLanguage: () => string;
80
- os: (user_agent: string) => {
81
- os_name: string;
82
- os_version: string;
83
- };
84
- device: (user_agent: string) => string;
85
- deviceType: (user_agent: string) => string;
86
- referrer: () => string;
87
- referringDomain: () => string;
88
- properties: () => Properties;
89
- people_properties: () => Properties;
90
- };
91
- export declare function isCrossDomainCookie(documentLocation: Location | undefined): boolean;
92
- export { win as window, userAgent, document };