@terascope/core-utils 2.0.0-dev.7

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/dist/src/arrays.d.ts +59 -0
  4. package/dist/src/arrays.d.ts.map +1 -0
  5. package/dist/src/arrays.js +180 -0
  6. package/dist/src/arrays.js.map +1 -0
  7. package/dist/src/big-lru-map.d.ts +14 -0
  8. package/dist/src/big-lru-map.d.ts.map +1 -0
  9. package/dist/src/big-lru-map.js +20 -0
  10. package/dist/src/big-lru-map.js.map +1 -0
  11. package/dist/src/big-map.d.ts +28 -0
  12. package/dist/src/big-map.d.ts.map +1 -0
  13. package/dist/src/big-map.js +148 -0
  14. package/dist/src/big-map.js.map +1 -0
  15. package/dist/src/big-set.d.ts +20 -0
  16. package/dist/src/big-set.d.ts.map +1 -0
  17. package/dist/src/big-set.js +109 -0
  18. package/dist/src/big-set.js.map +1 -0
  19. package/dist/src/booleans.d.ts +44 -0
  20. package/dist/src/booleans.d.ts.map +1 -0
  21. package/dist/src/booleans.js +81 -0
  22. package/dist/src/booleans.js.map +1 -0
  23. package/dist/src/buffers.d.ts +9 -0
  24. package/dist/src/buffers.d.ts.map +1 -0
  25. package/dist/src/buffers.js +22 -0
  26. package/dist/src/buffers.js.map +1 -0
  27. package/dist/src/collector.d.ts +48 -0
  28. package/dist/src/collector.d.ts.map +1 -0
  29. package/dist/src/collector.js +74 -0
  30. package/dist/src/collector.js.map +1 -0
  31. package/dist/src/dates.d.ts +180 -0
  32. package/dist/src/dates.d.ts.map +1 -0
  33. package/dist/src/dates.js +744 -0
  34. package/dist/src/dates.js.map +1 -0
  35. package/dist/src/decorators.d.ts +7 -0
  36. package/dist/src/decorators.d.ts.map +1 -0
  37. package/dist/src/decorators.js +21 -0
  38. package/dist/src/decorators.js.map +1 -0
  39. package/dist/src/deps.d.ts +25 -0
  40. package/dist/src/deps.d.ts.map +1 -0
  41. package/dist/src/deps.js +96 -0
  42. package/dist/src/deps.js.map +1 -0
  43. package/dist/src/empty.d.ts +11 -0
  44. package/dist/src/empty.d.ts.map +1 -0
  45. package/dist/src/empty.js +32 -0
  46. package/dist/src/empty.js.map +1 -0
  47. package/dist/src/entities/data-entity.d.ts +153 -0
  48. package/dist/src/entities/data-entity.d.ts.map +1 -0
  49. package/dist/src/entities/data-entity.js +354 -0
  50. package/dist/src/entities/data-entity.js.map +1 -0
  51. package/dist/src/entities/index.d.ts +3 -0
  52. package/dist/src/entities/index.d.ts.map +1 -0
  53. package/dist/src/entities/index.js +3 -0
  54. package/dist/src/entities/index.js.map +1 -0
  55. package/dist/src/entities/interfaces.d.ts +52 -0
  56. package/dist/src/entities/interfaces.d.ts.map +1 -0
  57. package/dist/src/entities/interfaces.js +13 -0
  58. package/dist/src/entities/interfaces.js.map +1 -0
  59. package/dist/src/entities/utils.d.ts +9 -0
  60. package/dist/src/entities/utils.d.ts.map +1 -0
  61. package/dist/src/entities/utils.js +44 -0
  62. package/dist/src/entities/utils.js.map +1 -0
  63. package/dist/src/env.d.ts +6 -0
  64. package/dist/src/env.d.ts.map +1 -0
  65. package/dist/src/env.js +15 -0
  66. package/dist/src/env.js.map +1 -0
  67. package/dist/src/equality.d.ts +72 -0
  68. package/dist/src/equality.d.ts.map +1 -0
  69. package/dist/src/equality.js +128 -0
  70. package/dist/src/equality.js.map +1 -0
  71. package/dist/src/errors.d.ts +140 -0
  72. package/dist/src/errors.d.ts.map +1 -0
  73. package/dist/src/errors.js +372 -0
  74. package/dist/src/errors.js.map +1 -0
  75. package/dist/src/event-loop.d.ts +33 -0
  76. package/dist/src/event-loop.d.ts.map +1 -0
  77. package/dist/src/event-loop.js +74 -0
  78. package/dist/src/event-loop.js.map +1 -0
  79. package/dist/src/fp.d.ts +15 -0
  80. package/dist/src/fp.d.ts.map +1 -0
  81. package/dist/src/fp.js +25 -0
  82. package/dist/src/fp.js.map +1 -0
  83. package/dist/src/functions.d.ts +19 -0
  84. package/dist/src/functions.d.ts.map +1 -0
  85. package/dist/src/functions.js +58 -0
  86. package/dist/src/functions.js.map +1 -0
  87. package/dist/src/index.d.ts +32 -0
  88. package/dist/src/index.d.ts.map +1 -0
  89. package/dist/src/index.js +32 -0
  90. package/dist/src/index.js.map +1 -0
  91. package/dist/src/iterators.d.ts +9 -0
  92. package/dist/src/iterators.d.ts.map +1 -0
  93. package/dist/src/iterators.js +13 -0
  94. package/dist/src/iterators.js.map +1 -0
  95. package/dist/src/json.d.ts +8 -0
  96. package/dist/src/json.d.ts.map +1 -0
  97. package/dist/src/json.js +46 -0
  98. package/dist/src/json.js.map +1 -0
  99. package/dist/src/logger.d.ts +18 -0
  100. package/dist/src/logger.d.ts.map +1 -0
  101. package/dist/src/logger.js +87 -0
  102. package/dist/src/logger.js.map +1 -0
  103. package/dist/src/numbers.d.ts +86 -0
  104. package/dist/src/numbers.d.ts.map +1 -0
  105. package/dist/src/numbers.js +354 -0
  106. package/dist/src/numbers.js.map +1 -0
  107. package/dist/src/objects.d.ts +66 -0
  108. package/dist/src/objects.d.ts.map +1 -0
  109. package/dist/src/objects.js +170 -0
  110. package/dist/src/objects.js.map +1 -0
  111. package/dist/src/phone-number.d.ts +4 -0
  112. package/dist/src/phone-number.d.ts.map +1 -0
  113. package/dist/src/phone-number.js +31 -0
  114. package/dist/src/phone-number.js.map +1 -0
  115. package/dist/src/promises.d.ts +102 -0
  116. package/dist/src/promises.d.ts.map +1 -0
  117. package/dist/src/promises.js +289 -0
  118. package/dist/src/promises.js.map +1 -0
  119. package/dist/src/queue/index.d.ts +27 -0
  120. package/dist/src/queue/index.d.ts.map +1 -0
  121. package/dist/src/queue/index.js +170 -0
  122. package/dist/src/queue/index.js.map +1 -0
  123. package/dist/src/queue/node.d.ts +7 -0
  124. package/dist/src/queue/node.d.ts.map +1 -0
  125. package/dist/src/queue/node.js +17 -0
  126. package/dist/src/queue/node.js.map +1 -0
  127. package/dist/src/regex.d.ts +19 -0
  128. package/dist/src/regex.d.ts.map +1 -0
  129. package/dist/src/regex.js +138 -0
  130. package/dist/src/regex.js.map +1 -0
  131. package/dist/src/status-codes.d.ts +67 -0
  132. package/dist/src/status-codes.d.ts.map +1 -0
  133. package/dist/src/status-codes.js +66 -0
  134. package/dist/src/status-codes.js.map +1 -0
  135. package/dist/src/strings.d.ts +279 -0
  136. package/dist/src/strings.d.ts.map +1 -0
  137. package/dist/src/strings.js +578 -0
  138. package/dist/src/strings.js.map +1 -0
  139. package/dist/src/vector.d.ts +2 -0
  140. package/dist/src/vector.d.ts.map +1 -0
  141. package/dist/src/vector.js +16 -0
  142. package/dist/src/vector.js.map +1 -0
  143. package/package.json +65 -0
@@ -0,0 +1,33 @@
1
+ import type { Logger } from '@terascope/types';
2
+ /**
3
+ * A simple class for detecting when the event loop is blocked.
4
+ * The recommend use is to call `EventLoop.init(logger)` and then
5
+ * `await EventLoop.wait()` where you want to slow down potentially
6
+ * long running synchronous code
7
+ */
8
+ export declare class EventLoop {
9
+ readonly logger: Logger;
10
+ static DEFAULT_HEARTBEAT: number;
11
+ /**
12
+ * Adds a setTimeout if the event loop is blocked
13
+ * and will the delay will get slower the longer the event loop
14
+ * is block (with an upper limit)
15
+ */
16
+ static wait(): Promise<void> | void;
17
+ /**
18
+ * Creates or replaces an instead of a global
19
+ * EvenLoop
20
+ */
21
+ static init(logger: Logger): EventLoop;
22
+ checkedInDiff: number;
23
+ private readonly heartbeat;
24
+ private checkedIn;
25
+ private interval;
26
+ constructor(logger: Logger);
27
+ get blocked(): boolean;
28
+ /**
29
+ * Cancel the event loop checker
30
+ */
31
+ cancel(): void;
32
+ }
33
+ //# sourceMappingURL=event-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-loop.d.ts","sourceRoot":"","sources":["../../src/event-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAO/C;;;;;EAKE;AACF,qBAAa,SAAS;IAsCN,QAAQ,CAAC,MAAM,EAAE,MAAM;IArCnC,MAAM,CAAC,iBAAiB,SAAQ;IAEhC;;;;MAIE;IACF,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAQnC;;;MAGE;IACF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAWtC,aAAa,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IAEzD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAiB;gBAEZ,MAAM,EAAE,MAAM;IAoBnC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;MAEE;IACF,MAAM,IAAI,IAAI;CAGjB"}
@@ -0,0 +1,74 @@
1
+ import { toHumanTime } from './dates.js';
2
+ import { debugLogger } from './logger.js';
3
+ import { pImmediate } from './promises.js';
4
+ let _eventLoop;
5
+ /**
6
+ * A simple class for detecting when the event loop is blocked.
7
+ * The recommend use is to call `EventLoop.init(logger)` and then
8
+ * `await EventLoop.wait()` where you want to slow down potentially
9
+ * long running synchronous code
10
+ */
11
+ export class EventLoop {
12
+ logger;
13
+ static DEFAULT_HEARTBEAT = 1000;
14
+ /**
15
+ * Adds a setTimeout if the event loop is blocked
16
+ * and will the delay will get slower the longer the event loop
17
+ * is block (with an upper limit)
18
+ */
19
+ static wait() {
20
+ if (!_eventLoop) {
21
+ EventLoop.init(debugLogger('event-loop'));
22
+ }
23
+ if (!_eventLoop?.blocked)
24
+ return;
25
+ return pImmediate();
26
+ }
27
+ /**
28
+ * Creates or replaces an instead of a global
29
+ * EvenLoop
30
+ */
31
+ static init(logger) {
32
+ if (_eventLoop) {
33
+ // there is no need to create multiple
34
+ // instances if the logger doesn't change
35
+ if (_eventLoop.logger === logger)
36
+ return _eventLoop;
37
+ _eventLoop.cancel();
38
+ }
39
+ _eventLoop = new EventLoop(logger);
40
+ return _eventLoop;
41
+ }
42
+ checkedInDiff;
43
+ heartbeat = EventLoop.DEFAULT_HEARTBEAT;
44
+ checkedIn;
45
+ interval;
46
+ constructor(logger) {
47
+ this.logger = logger;
48
+ this.checkedIn = Date.now();
49
+ this.checkedInDiff = 0;
50
+ this.interval = setInterval(() => {
51
+ const now = Date.now();
52
+ this.checkedInDiff = now - this.checkedIn;
53
+ this.checkedIn = now;
54
+ if (this.blocked) {
55
+ this.logger?.warn(`* EVENT LOOP IS PROBABLY BLOCKED (${toHumanTime(this.checkedInDiff)} diff) *`);
56
+ }
57
+ }, this.heartbeat);
58
+ // this is only available in the node environment
59
+ if (typeof this.interval.unref === 'function') {
60
+ // don't keep the process open
61
+ this.interval.unref();
62
+ }
63
+ }
64
+ get blocked() {
65
+ return this.checkedInDiff > (this.heartbeat * 4);
66
+ }
67
+ /**
68
+ * Cancel the event loop checker
69
+ */
70
+ cancel() {
71
+ clearInterval(this.interval);
72
+ }
73
+ }
74
+ //# sourceMappingURL=event-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-loop.js","sourceRoot":"","sources":["../../src/event-loop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,IAAI,UAAiC,CAAC;AAEtC;;;;;EAKE;AACF,MAAM,OAAO,SAAS;IAsCG;IArCrB,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEhC;;;;MAIE;IACF,MAAM,CAAC,IAAI;QACP,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,OAAO;YAAE,OAAO;QACjC,OAAO,UAAU,EAAE,CAAC;IACxB,CAAC;IAED;;;MAGE;IACF,MAAM,CAAC,IAAI,CAAC,MAAc;QACtB,IAAI,UAAU,EAAE,CAAC;YACb,sCAAsC;YACtC,yCAAyC;YACzC,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,UAAU,CAAC;YACpD,UAAU,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;QACD,UAAU,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,aAAa,CAAS;IAEL,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAEjD,SAAS,CAAS;IAClB,QAAQ,CAAiB;IAEjC,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAEvB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qCAAqC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACtG,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnB,iDAAiD;QACjD,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC5C,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;MAEE;IACF,MAAM;QACF,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC"}
@@ -0,0 +1,15 @@
1
+ type AnyFn = (...args: any[]) => any;
2
+ /**
3
+ * Curry one or more functions, where all must returned falsy values
4
+ */
5
+ export declare function not<T extends AnyFn>(...fns: T[]): T;
6
+ /**
7
+ * Curry one or more functions, where all must returned truthy values
8
+ */
9
+ export declare function and<T extends AnyFn>(...fns: T[]): T;
10
+ /**
11
+ * Curry one or more functions, where one must returned a truthy value
12
+ */
13
+ export declare function or<T extends AnyFn>(...fns: T[]): T;
14
+ export {};
15
+ //# sourceMappingURL=fp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp.d.ts","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAErC;;EAEE;AACF,wBAAgB,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAInD;AAED;;EAEE;AACF,wBAAgB,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAInD;AAED;;EAEE;AACF,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAIlD"}
package/dist/src/fp.js ADDED
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Curry one or more functions, where all must returned falsy values
3
+ */
4
+ export function not(...fns) {
5
+ return function _not(...args) {
6
+ return fns.every((fn) => !fn(...args));
7
+ };
8
+ }
9
+ /**
10
+ * Curry one or more functions, where all must returned truthy values
11
+ */
12
+ export function and(...fns) {
13
+ return function _and(...args) {
14
+ return fns.every((fn) => fn(...args));
15
+ };
16
+ }
17
+ /**
18
+ * Curry one or more functions, where one must returned a truthy value
19
+ */
20
+ export function or(...fns) {
21
+ return function _or(...args) {
22
+ return fns.some((fn) => fn(...args));
23
+ };
24
+ }
25
+ //# sourceMappingURL=fp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp.js","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAEA;;EAEE;AACF,MAAM,UAAU,GAAG,CAAkB,GAAG,GAAQ;IAC5C,OAAO,SAAS,IAAI,CAAC,GAAG,IAAI;QACxB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAM,CAAC;AACX,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,GAAG,CAAkB,GAAG,GAAQ;IAC5C,OAAO,SAAS,IAAI,CAAC,GAAG,IAAI;QACxB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAM,CAAC;AACX,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,EAAE,CAAkB,GAAG,GAAQ;IAC3C,OAAO,SAAS,GAAG,CAAC,GAAG,IAAI;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACzC,CAAM,CAAC;AACX,CAAC"}
@@ -0,0 +1,19 @@
1
+ type ArgType<T> = T extends (...args: infer A) => any ? A : any;
2
+ /**
3
+ * Creates a function that is only invoked once
4
+ */
5
+ export declare function once<T extends ((...args: any[]) => any)>(fn: T): (...args: ArgType<T>) => ReturnType<T> | undefined;
6
+ /**
7
+ * A simple function that does nothing but return the first
8
+ * argument
9
+ */
10
+ export declare function noop(...args: any[]): any;
11
+ type MemoizeFn = (...args: any[]) => any;
12
+ /**
13
+ * A replacement for lodash memoize
14
+ */
15
+ export declare function memoize<T extends MemoizeFn>(fn: T): T;
16
+ /** Verify an input is a function */
17
+ export declare function isFunction(input: unknown): input is Function;
18
+ export {};
19
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"AAKA,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAEhE;;EAEE;AACF,wBAAgB,IAAI,CAAC,CAAC,SAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAC7D,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAClB,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAU7B;AAED;;;EAGE;AACF,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAExC;AAcD,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACzC;;EAEE;AACF,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAYrD;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D"}
@@ -0,0 +1,58 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-function-type */
2
+ /* eslint-disable no-param-reassign */
3
+ import { toString } from './strings.js';
4
+ /**
5
+ * Creates a function that is only invoked once
6
+ */
7
+ export function once(fn) {
8
+ let called = false;
9
+ return function _fn(...args) {
10
+ if (called) {
11
+ fn = undefined;
12
+ return undefined;
13
+ }
14
+ called = true;
15
+ return fn(...args);
16
+ };
17
+ }
18
+ /**
19
+ * A simple function that does nothing but return the first
20
+ * argument
21
+ */
22
+ export function noop(...args) {
23
+ return args[0];
24
+ }
25
+ function _getArgCacheKey(args) {
26
+ const fixed = args.filter((a, i, arr) => {
27
+ if (a === undefined && arr.length === (i + 1))
28
+ return false;
29
+ return true;
30
+ });
31
+ try {
32
+ return JSON.stringify(fixed);
33
+ }
34
+ catch (_e) {
35
+ return toString(fixed);
36
+ }
37
+ }
38
+ /**
39
+ * A replacement for lodash memoize
40
+ */
41
+ export function memoize(fn) {
42
+ const _cache = new Map();
43
+ const _memoize = (...args) => {
44
+ const key = _getArgCacheKey(args);
45
+ const cached = _cache.get(key);
46
+ if (cached !== undefined)
47
+ return cached;
48
+ const result = fn(...args);
49
+ _cache.set(key, result);
50
+ return result;
51
+ };
52
+ return _memoize;
53
+ }
54
+ /** Verify an input is a function */
55
+ export function isFunction(input) {
56
+ return !!(input && typeof input === 'function');
57
+ }
58
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sCAAsC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAIxC;;EAEE;AACF,MAAM,UAAU,IAAI,CAAqC,EAAK;IAG1D,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,SAAS,GAAG,CAAC,GAAG,IAAgB;QACnC,IAAI,MAAM,EAAE,CAAC;YACT,EAAE,GAAG,SAAgB,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;AACN,CAAC;AAED;;;EAGE;AACF,MAAM,UAAU,IAAI,CAAC,GAAG,IAAW;IAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,IAAW;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACV,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACL,CAAC;AAGD;;EAEE;AACF,MAAM,UAAU,OAAO,CAAsB,EAAK;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IAEtC,MAAM,QAAQ,GAAQ,CAAC,GAAG,IAAW,EAAO,EAAE;QAC1C,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,UAAU,CAAC,KAAc;IACrC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import STATUS_CODES from './status-codes.js';
2
+ export * from './entities/index.js';
3
+ export * from './queue/index.js';
4
+ export * from './arrays.js';
5
+ export * from './big-lru-map.js';
6
+ export * from './big-map.js';
7
+ export * from './big-set.js';
8
+ export * from './booleans.js';
9
+ export * from './buffers.js';
10
+ export * from './collector.js';
11
+ export * from './dates.js';
12
+ export * from './decorators.js';
13
+ export * from './deps.js';
14
+ export * from './empty.js';
15
+ export * from './env.js';
16
+ export * from './equality.js';
17
+ export * from './errors.js';
18
+ export * from './event-loop.js';
19
+ export * from './fp.js';
20
+ export * from './functions.js';
21
+ export * from './json.js';
22
+ export * from './logger.js';
23
+ export * from './numbers.js';
24
+ export * from './objects.js';
25
+ export * from './phone-number.js';
26
+ export * from './promises.js';
27
+ export * from './regex.js';
28
+ export * from './strings.js';
29
+ export * from './iterators.js';
30
+ export * from './vector.js';
31
+ export { STATUS_CODES };
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ import STATUS_CODES from './status-codes.js';
2
+ export * from './entities/index.js';
3
+ export * from './queue/index.js';
4
+ export * from './arrays.js';
5
+ export * from './big-lru-map.js';
6
+ export * from './big-map.js';
7
+ export * from './big-set.js';
8
+ export * from './booleans.js';
9
+ export * from './buffers.js';
10
+ export * from './collector.js';
11
+ export * from './dates.js';
12
+ export * from './decorators.js';
13
+ export * from './deps.js';
14
+ export * from './empty.js';
15
+ export * from './env.js';
16
+ export * from './equality.js';
17
+ export * from './errors.js';
18
+ export * from './event-loop.js';
19
+ export * from './fp.js';
20
+ export * from './functions.js';
21
+ export * from './json.js';
22
+ export * from './logger.js';
23
+ export * from './numbers.js';
24
+ export * from './objects.js';
25
+ export * from './phone-number.js';
26
+ export * from './promises.js';
27
+ export * from './regex.js';
28
+ export * from './strings.js';
29
+ export * from './iterators.js';
30
+ export * from './vector.js';
31
+ export { STATUS_CODES };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns true if the input is an iterator
3
+ */
4
+ export declare function isIterator<T>(input: unknown): input is Iterable<T>;
5
+ /**
6
+ * Returns true if the input is an async iterator
7
+ */
8
+ export declare function isAsyncIterator<T>(input: unknown): input is AsyncIterable<T>;
9
+ //# sourceMappingURL=iterators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterators.d.ts","sourceRoot":"","sources":["../../src/iterators.ts"],"names":[],"mappings":"AAAA;;EAEE;AACF,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAElE;AAED;;EAEE;AACF,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAE5E"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns true if the input is an iterator
3
+ */
4
+ export function isIterator(input) {
5
+ return Symbol.iterator in Object(input);
6
+ }
7
+ /**
8
+ * Returns true if the input is an async iterator
9
+ */
10
+ export function isAsyncIterator(input) {
11
+ return Symbol.asyncIterator in Object(input);
12
+ }
13
+ //# sourceMappingURL=iterators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterators.js","sourceRoot":"","sources":["../../src/iterators.ts"],"names":[],"mappings":"AAAA;;EAEE;AACF,MAAM,UAAU,UAAU,CAAI,KAAc;IACxC,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,eAAe,CAAI,KAAc;IAC7C,OAAO,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function tryParseJSON<T = any>(input: unknown): T;
2
+ /** JSON encoded buffer into a json object */
3
+ export declare function parseJSON<T = Record<string, unknown>>(buf: Buffer | string): T;
4
+ /** This will try to convert any BigInt values to a value that is compatible with JSON,
5
+ * it will iterate through an array, and check all the keys of an object
6
+ */
7
+ export declare function toJSONCompatibleValue(input: unknown): any;
8
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAMvD;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAa9E;AAED;;IAEI;AACJ,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAiBzD"}
@@ -0,0 +1,46 @@
1
+ import { toString } from './strings.js';
2
+ import { getTypeOf } from './deps.js';
3
+ import { isBigInt, bigIntToJSON } from './numbers.js';
4
+ import { hasOwn, isKey } from './objects.js';
5
+ export function tryParseJSON(input) {
6
+ try {
7
+ return JSON.parse(input);
8
+ }
9
+ catch (err) {
10
+ return input;
11
+ }
12
+ }
13
+ /** JSON encoded buffer into a json object */
14
+ export function parseJSON(buf) {
15
+ if (!buf || (!Buffer.isBuffer(buf) && typeof buf !== 'string')) {
16
+ throw new TypeError(`Failure to serialize non-buffer, got "${getTypeOf(buf)}"`);
17
+ }
18
+ try {
19
+ // remove null unicode/hex code characters before parsing
20
+ const removedNull = buf.toString().replace(/\0/g, '');
21
+ return JSON.parse(removedNull);
22
+ }
23
+ catch (err) {
24
+ throw new Error(`Failure to parse buffer, ${toString(err)}`);
25
+ }
26
+ }
27
+ /** This will try to convert any BigInt values to a value that is compatible with JSON,
28
+ * it will iterate through an array, and check all the keys of an object
29
+ */
30
+ export function toJSONCompatibleValue(input) {
31
+ if (isBigInt(input))
32
+ return bigIntToJSON(input);
33
+ if (input == null || typeof input !== 'object')
34
+ return input;
35
+ if (Array.isArray(input)) {
36
+ return input.map(toJSONCompatibleValue);
37
+ }
38
+ const obj = {};
39
+ for (const prop in input) {
40
+ if (hasOwn(input, prop) && isKey(input, prop)) {
41
+ obj[prop] = toJSONCompatibleValue(input[prop]);
42
+ }
43
+ }
44
+ return obj;
45
+ }
46
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,YAAY,CAAU,KAAc;IAChD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,KAAY,CAAC;IACxB,CAAC;AACL,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,SAAS,CAA8B,GAAoB;IACvE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,yCAAyC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC;QACD,yDAAyD;QACzD,MAAM,WAAW,GAAI,GAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED;;IAEI;AACJ,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAChD,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Logger } from '@terascope/types';
2
+ interface DebugParamObj {
3
+ module: string;
4
+ assignment?: string;
5
+ [name: string]: any;
6
+ }
7
+ type DebugParam = DebugParamObj | string;
8
+ export declare const logLevels: {
9
+ trace: number;
10
+ debug: number;
11
+ info: number;
12
+ warn: number;
13
+ error: number;
14
+ fatal: number;
15
+ };
16
+ export declare function debugLogger(testName: string, param?: DebugParam, otherName?: string): Logger;
17
+ export { Logger };
18
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAO/C,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACvB;AAED,KAAK,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;AACzC,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAC;AAMF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA+E5F;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,87 @@
1
+ import debugFn from 'debug';
2
+ import { EventEmitter } from 'node:events';
3
+ import { isPlainObject } from './deps.js';
4
+ import { toString, isString, trimAndToLower } from './strings.js';
5
+ import { uniq } from './arrays.js';
6
+ import { isTest } from './env.js';
7
+ import { isKey } from './objects.js';
8
+ export const logLevels = {
9
+ trace: 10,
10
+ debug: 20,
11
+ info: 30,
12
+ warn: 40,
13
+ error: 50,
14
+ fatal: 60,
15
+ };
16
+ let logLevel = (process.env.DEBUG_LOG_LEVEL && isKey(logLevels, process.env.DEBUG_LOG_LEVEL))
17
+ ? process.env.DEBUG_LOG_LEVEL
18
+ : 'debug';
19
+ export function debugLogger(testName, param, otherName) {
20
+ const logger = new EventEmitter();
21
+ let parts = testName ? testName.split(':') : [];
22
+ if (param) {
23
+ if (isString(param)) {
24
+ parts.push(param);
25
+ }
26
+ else if (typeof param === 'object') {
27
+ parts.push(param.module);
28
+ if (param.assignment) {
29
+ parts.push(param.assignment);
30
+ }
31
+ }
32
+ }
33
+ if (otherName) {
34
+ parts.push(otherName);
35
+ }
36
+ parts = parts.map(toString).map(trimAndToLower);
37
+ parts = uniq(parts.filter((str) => !!str));
38
+ if (!parts.includes('teraslice')) {
39
+ parts.unshift('teraslice');
40
+ }
41
+ const name = parts.join(':');
42
+ logger.streams = [];
43
+ logger.addStream = () => { };
44
+ logger.child = (opts, _simple) => {
45
+ if (isString(opts)) {
46
+ return debugLogger(name, undefined, opts);
47
+ }
48
+ if (isPlainObject(opts)) {
49
+ return debugLogger(name, opts, opts.module);
50
+ }
51
+ return debugLogger(name, opts);
52
+ };
53
+ logger.flush = async () => true;
54
+ logger.reopenFileStreams = () => { };
55
+ logger.src = false;
56
+ // @ts-expect-error
57
+ logger.level = (value) => {
58
+ if (value) {
59
+ for (const [level, code] of Object.entries(logLevels)) {
60
+ if ((value === level || value === code) && isKey(logLevels, level)) {
61
+ logLevel = level;
62
+ return undefined;
63
+ }
64
+ }
65
+ return undefined;
66
+ }
67
+ return logLevels[logLevel] || 20;
68
+ };
69
+ // @ts-expect-error
70
+ logger.levels = () => logger.level();
71
+ for (const [level, code] of Object.entries(logLevels)) {
72
+ const fLevel = `[${level.toUpperCase()}]`;
73
+ const debug = debugFn(name);
74
+ logger[level] = (...args) => {
75
+ if (code < logger.level())
76
+ return false;
77
+ if (level === 'fatal' && !isTest) {
78
+ console.error(`${name} ${fLevel}`, ...args);
79
+ return true;
80
+ }
81
+ debug(fLevel, ...args);
82
+ return true;
83
+ };
84
+ }
85
+ return logger;
86
+ }
87
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AASrC,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACZ,CAAC;AAEF,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACzF,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;IAC7B,CAAC,CAAC,OAAO,CAAC;AAEd,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAkB,EAAE,SAAkB;IAChF,MAAM,MAAM,GAAW,IAAI,YAAY,EAAY,CAAC;IACpD,IAAI,KAAK,GAAa,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1D,IAAI,KAAK,EAAE,CAAC;QACR,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7B,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAEpB,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAE5B,MAAM,CAAC,KAAK,GAAG,CAAC,IAAyB,EAAE,OAAiB,EAAU,EAAE;QACpE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,OAAO,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,IAAI,EAAE,IAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,EAAE,IAAkB,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAChC,MAAM,CAAC,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC;IAEnB,mBAAmB;IACnB,MAAM,CAAC,KAAK,GAAG,CAAC,KAAsB,EAAsB,EAAE;QAC1D,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;oBACjE,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,SAAS,CAAC;gBACrB,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC,CAAC;IACF,mBAAmB;IACnB,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAErC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,CAAC,KAAqB,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;YAC/C,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACxC,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { FieldType } from '@terascope/types';
2
+ /** A native implementation of lodash random */
3
+ export declare function random(min: number, max: number): number;
4
+ /** Check if an input is a number */
5
+ export declare function isNumber(input: unknown): input is number;
6
+ /** Convert any input to a number, return Number.NaN if unable to convert input */
7
+ export declare function toNumber(input: unknown): number;
8
+ /** Will throw if converted number is NaN */
9
+ export declare function toNumberOrThrow(input: unknown): number;
10
+ /** Check if value is a bigint */
11
+ export declare function isBigInt(input: unknown): input is bigint;
12
+ /** Convert any input to a bigint */
13
+ export declare function toBigInt(input: unknown): bigint | false;
14
+ /** Convert any input to a bigint */
15
+ export declare function toBigIntOrThrow(input: unknown): bigint;
16
+ /**
17
+ * Convert a BigInt to either a number or a string
18
+ */
19
+ export declare function bigIntToJSON(int: bigint): string | number;
20
+ /**
21
+ * A stricter check for verifying a number string
22
+ * @todo this needs to be smarter
23
+ */
24
+ export declare function isNumberLike(input: unknown): boolean;
25
+ /** A simplified implementation of lodash isInteger */
26
+ export declare function isInteger(val: unknown): val is number;
27
+ /** Convert an input to a integer, return false if unable to convert input */
28
+ export declare function toInteger(input: unknown): number | false;
29
+ /** Convert an input to a integer or throw */
30
+ export declare function toIntegerOrThrow(input: unknown): number;
31
+ /** Verify the input is float */
32
+ export declare function isFloat(val: unknown): val is number;
33
+ /** Convert an input to a float, return false if unable to convert input */
34
+ export declare function toFloat(input: unknown): number | false;
35
+ /** Convert an input to a float or throw */
36
+ export declare function toFloatOrThrow(input: unknown): number;
37
+ /**
38
+ * Like parseList, except it returns numbers
39
+ */
40
+ export declare function parseNumberList(input: unknown): number[];
41
+ export interface InNumberRangeArg {
42
+ min?: number;
43
+ max?: number;
44
+ inclusive?: boolean;
45
+ }
46
+ /**
47
+ * Returns true if number is between min or max value provided
48
+ *
49
+ * @example
50
+ * inNumberRange(42, { min: 0, max: 100}); // true
51
+ * inNumberRange(-42, { min:0 , max: 100 }); // false
52
+ * inNumberRange(42, { min: 0, max: 42 }); // false
53
+ * inNumberRange(42, { min: 0, max: 42, inclusive: true }) // true
54
+ */
55
+ export declare function inNumberRange(input: unknown, args: InNumberRangeArg): input is number;
56
+ export declare function inNumberRangeFP(args: InNumberRangeArg): (input: unknown) => input is number;
57
+ /**
58
+ * Returns a truncated number to nth decimal places.
59
+ *
60
+ * @param fractionDigits The number of decimal points to round to.
61
+ * @param truncate If this is true the number will not be rounded
62
+ */
63
+ export declare function setPrecision(input: unknown, fractionDigits: number, truncate?: boolean): number;
64
+ /**
65
+ * A functional programming version of setPrecision
66
+ *
67
+ * @param fractionDigits The number of decimal points to round to.
68
+ * @param truncate If this is true the number will not be rounded
69
+ */
70
+ export declare function setPrecisionFP(fractionDigits: number, truncate?: boolean): (input: unknown) => number;
71
+ /**
72
+ * Convert a fahrenheit value to celsius, this will return a precision of
73
+ * 2 decimal points
74
+ */
75
+ export declare function toCelsius(input: unknown): number;
76
+ /**
77
+ * Convert a celsius value to fahrenheit, this will return a precision of
78
+ * 2 decimal points
79
+ */
80
+ export declare function toFahrenheit(input: unknown): number;
81
+ export declare function validateByteNumber(input: unknown): number;
82
+ export declare function validateShortNumber(input: unknown): number;
83
+ export declare function validateIntegerNumber(input: unknown): number;
84
+ export declare function validateNumberType(type: FieldType): (input: unknown) => number;
85
+ export declare function isValidateNumberType(type: FieldType): (input: unknown) => boolean;
86
+ //# sourceMappingURL=numbers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../src/numbers.ts"],"names":[],"mappings":"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"}