@terascope/core-utils 2.0.0-dev.10

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 (147) 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 +33 -0
  88. package/dist/src/index.d.ts.map +1 -0
  89. package/dist/src/index.js +33 -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/schemas.d.ts +69 -0
  132. package/dist/src/schemas.d.ts.map +1 -0
  133. package/dist/src/schemas.js +619 -0
  134. package/dist/src/schemas.js.map +1 -0
  135. package/dist/src/status-codes.d.ts +67 -0
  136. package/dist/src/status-codes.d.ts.map +1 -0
  137. package/dist/src/status-codes.js +66 -0
  138. package/dist/src/status-codes.js.map +1 -0
  139. package/dist/src/strings.d.ts +279 -0
  140. package/dist/src/strings.d.ts.map +1 -0
  141. package/dist/src/strings.js +578 -0
  142. package/dist/src/strings.js.map +1 -0
  143. package/dist/src/vector.d.ts +2 -0
  144. package/dist/src/vector.d.ts.map +1 -0
  145. package/dist/src/vector.js +16 -0
  146. package/dist/src/vector.js.map +1 -0
  147. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../src/regex.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOxD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,UAAO,GAAG,OAAO,CAQnE;AAED,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAa7C,wBAAgB,WAAW,CACvB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAC5C,MAAM,CAWR;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3E;AAED;;EAEE;AACF,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAEjF;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAmBhF;AAED;;EAEE;AACF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,IAAI,CAEtF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAItD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBpD;AAiBD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtE"}
@@ -0,0 +1,138 @@
1
+ import { WORD_CHARS } from './strings.js';
2
+ export function isRegExp(input) {
3
+ if (input == null)
4
+ return false;
5
+ if (input instanceof RegExp)
6
+ return true;
7
+ return typeof input.flags === 'string'
8
+ && typeof input.ignoreCase === 'boolean'
9
+ && typeof input.multiline === 'boolean'
10
+ && typeof input.global === 'boolean';
11
+ }
12
+ export function isRegExpLike(input, strict = true) {
13
+ if (typeof input === 'string') {
14
+ if (strict) {
15
+ return /^\/(.*)\/([igsmx]{1,})?$/.test(input);
16
+ }
17
+ return true;
18
+ }
19
+ return isRegExp(input);
20
+ }
21
+ function _uniqFlags(existing, flags) {
22
+ if (!existing) {
23
+ if (flags?.length)
24
+ return flags.join('');
25
+ return undefined;
26
+ }
27
+ if (!flags?.length)
28
+ return existing;
29
+ // build a unique list of the flags
30
+ const allFlags = new Set([...existing, ...flags]);
31
+ return [...allFlags].join('');
32
+ }
33
+ export function formatRegex(input, flags) {
34
+ if (typeof input === 'string') {
35
+ const result = /^\/(.*)\/([igsmx]{1,})?$/.exec(input);
36
+ if (result) {
37
+ return new RegExp(result[1], _uniqFlags(result[2], flags));
38
+ }
39
+ return new RegExp(input, flags?.join(''));
40
+ }
41
+ const existingFlags = typeof input === 'string' ? '' : input.flags;
42
+ return new RegExp(input, _uniqFlags(existingFlags, flags));
43
+ }
44
+ export function match(regexp, value) {
45
+ if (!isRegExpLike(regexp, false))
46
+ return null;
47
+ const regex = formatRegex(regexp);
48
+ const results = regex.exec(String(value));
49
+ if (results)
50
+ return results[0];
51
+ return results;
52
+ }
53
+ /**
54
+ * A functional version of match
55
+ */
56
+ export function matchFP(regexp) {
57
+ return match.bind(match, regexp);
58
+ }
59
+ export function matchAll(regexp, value) {
60
+ if (!isRegExpLike(regexp, false))
61
+ return null;
62
+ const regex = formatRegex(regexp, ['g']);
63
+ const matches = [];
64
+ let matchedData = regex.exec(String(value));
65
+ while (matchedData != null && matchedData[0]) {
66
+ if (matchedData && matchedData.length > 1) {
67
+ matches.push(...matchedData.slice(1));
68
+ }
69
+ else {
70
+ matches.push(matchedData[0]);
71
+ }
72
+ matchedData = regex.exec(value);
73
+ }
74
+ if (matches.length === 0)
75
+ return null;
76
+ return matches;
77
+ }
78
+ /**
79
+ * A functional version of matchAll
80
+ */
81
+ export function matchAllFP(regexp) {
82
+ return matchAll.bind(matchAll, regexp);
83
+ }
84
+ export function isWildCardString(term) {
85
+ if (typeof term !== 'string')
86
+ return false;
87
+ if (term.includes('*') || term.includes('?'))
88
+ return true;
89
+ return false;
90
+ }
91
+ export function wildCardToRegex(term) {
92
+ let baseRegex = '';
93
+ for (let i = 0; i < term.length; i++) {
94
+ const char = term[i];
95
+ if (isEscaped(term, i)) {
96
+ baseRegex += char;
97
+ }
98
+ else if (char === '*') {
99
+ baseRegex += '.*';
100
+ }
101
+ else if (char === '?') {
102
+ baseRegex += '[^\\n\\r\\s]';
103
+ }
104
+ else if (char === ' ') {
105
+ baseRegex += '\\s';
106
+ }
107
+ else if (char in WORD_CHARS || char === '\\') {
108
+ baseRegex += `${char}`;
109
+ }
110
+ else {
111
+ baseRegex += `\\${char}`;
112
+ }
113
+ }
114
+ return new RegExp(`^${baseRegex}$`);
115
+ }
116
+ function isEscaped(input, pos) {
117
+ if (pos === 0)
118
+ return false;
119
+ let i = pos;
120
+ let lastCharEscaped = false;
121
+ while (i--) {
122
+ const char = input[i];
123
+ if (char === '\\') {
124
+ lastCharEscaped = !lastCharEscaped;
125
+ }
126
+ else {
127
+ return lastCharEscaped;
128
+ }
129
+ }
130
+ return lastCharEscaped;
131
+ }
132
+ export function matchWildcard(wildCard, value) {
133
+ if (typeof wildCard === 'string' && typeof value === 'string') {
134
+ return wildCardToRegex(wildCard).test(value);
135
+ }
136
+ return false;
137
+ }
138
+ //# sourceMappingURL=regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex.js","sourceRoot":"","sources":["../../src/regex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import bunyan from 'bunyan';
2
+ import moment from 'moment';
3
+ import { z, type ZodType } from 'zod';
4
+ import { AnyObject, Terafoundation as TF } from '@terascope/types';
5
+ export declare const formats: TF.Format[];
6
+ /**
7
+ * Facade class used to validate convict style schemas using the Zod library
8
+ */
9
+ export declare class SchemaValidator<T = AnyObject> {
10
+ name: string;
11
+ inputSchema: TF.Schema<T>;
12
+ zodSchema: ZodType<T>;
13
+ checkUndeclaredKeys: CheckUndeclaredKeys;
14
+ envMap: Record<string, {
15
+ envName: string;
16
+ format: TF.ConvictFormat;
17
+ }>;
18
+ argsMap: Record<string, {
19
+ argName: string;
20
+ format: TF.ConvictFormat;
21
+ }>;
22
+ logger: bunyan;
23
+ constructor(schema: TF.Schema<T>, name: string, extraFormats?: TF.Format[], checkUndeclaredKeys?: CheckUndeclaredKeys);
24
+ /**
25
+ * Validate that a configuration conforms to the schema
26
+ *
27
+ * @param { any } config A configuration to validate
28
+ * @returns { T } A valid object of type T
29
+ */
30
+ validate(config: any): T;
31
+ /**
32
+ * convert a convict style schema to zod schema
33
+ *
34
+ * @param { Schema<T> } schema A convict style schema
35
+ * @param { PropertyKey } parentKey Property name of a nested schema object
36
+ * or other identifier for the schema
37
+ * @param { Format[] } extraFormats User defined formats to be used for schema validation
38
+ * @returns { z.ZodType } A zod schema
39
+ */
40
+ _convictStyleSchemaToZod(schema: TF.Schema<T>, parentKey: PropertyKey): z.ZodType<T, unknown, z.core.$ZodTypeInternals<T, unknown>> | z.ZodDefault<z.ZodAny>;
41
+ /**
42
+ * Converts a convict style schema object to a zod schema
43
+ * @param { TF.SchemaObj } schemaObj The schema object to convert
44
+ * @param { PropertyKey } key The name of the property that uses the schemaObj
45
+ * @returns { ZodType } A Zod schema object
46
+ */
47
+ _convictSchemaObjToZod(schemaObj: TF.SchemaObj, key: PropertyKey): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | z.ZodPipe<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodTransform<any, unknown>>;
48
+ /**
49
+ * Determines the base type that a full schema will be built on
50
+ * @param { PropertyKey } key The name of the property that uses the schemaObj
51
+ * @param { TF.ConvictFormat } convictFormatValue A convict compatible format value
52
+ * @returns { ZodType } The base type
53
+ */
54
+ _getBaseType(key: PropertyKey, convictFormatValue: TF.ConvictFormat): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
55
+ /** Run the default value against the created schema to ensure it is valid */
56
+ _validateDefault(type: z.ZodType, defaultVal: any): void;
57
+ /** Unwrap the wrappers on base schema object and retrieve all keys */
58
+ getSchemaObjectKeys(schema: ZodType): string[] | undefined;
59
+ /** Look up a custom format by name and return the format object */
60
+ _getCustomFormatFromName(format: TF.ConvictFormat | undefined): TF.Format | null | undefined;
61
+ /** Determine if a format is the name of a custom format */
62
+ _isCustomFormatName(format: TF.ConvictFormat): boolean;
63
+ }
64
+ type CheckUndeclaredKeys = 'allow' | 'warn' | 'strict';
65
+ export declare function isSchemaObj<T>(value: unknown): value is TF.SchemaObj<T>;
66
+ export declare function isOfTypeFormat(value: unknown): value is TF.Format;
67
+ export declare function isMomentUnitOfTime(unitString: string): unitString is moment.unitOfTime.DurationConstructor;
68
+ export {};
69
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,KAAK,OAAO,EAAsB,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,cAAc,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAcnE,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,MAAM,EAoK9B,CAAC;AAEF;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,SAAS;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAA;KAAE,CAAC,CAAM;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAA;KAAE,CAAC,CAAM;IAC5E,MAAM,EAAE,MAAM,CAAC;gBAGX,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,EAAE,CAAC,MAAM,EAAO,EAC9B,mBAAmB,GAAE,mBAA4B;IA2BrD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG;IA0EpB;;;;;;;;OAQG;IACH,wBAAwB,CACpB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACpB,SAAS,EAAE,WAAW;IA2B1B;;;;;OAKG;IACH,sBAAsB,CAClB,SAAS,EAAE,EAAE,CAAC,SAAS,EACvB,GAAG,EAAE,WAAW;IAwGpB;;;;;OAKG;IACH,YAAY,CACR,GAAG,EAAE,WAAW,EAChB,kBAAkB,EAAE,EAAE,CAAC,aAAa;IA2ExC,6EAA6E;IAC7E,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG;IAMjD,sEAAsE;IACtE,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS;IAmB1D,mEAAmE;IACnE,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS;IAO7D,2DAA2D;IAC3D,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa;CAQ/C;AAED,KAAK,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CA2CvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,CAwBjE;AAED,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,MAAM,GACnB,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAqCrD"}