@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,354 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { parseJSON } from '../json.js';
8
+ import { isSimpleObject } from '../objects.js';
9
+ import { getTypeOf } from '../deps.js';
10
+ import { locked } from '../decorators.js';
11
+ import { ensureBuffer, isBuffer } from '../buffers.js';
12
+ import { isDataEntity } from './utils.js';
13
+ import { getValidDate, getTime } from '../dates.js';
14
+ import * as i from './interfaces.js';
15
+ import { defineEntityProperties, makeMetadata, isValidKey, jsonToBuffer } from './utils.js';
16
+ /**
17
+ * A wrapper for data that can hold additional metadata properties.
18
+ * A DataEntity should be essentially transparent to use within operations.
19
+ *
20
+ * NOTE: Use `DataEntity.make`, `DataEntity.fromBuffer` and `DataEntity.makeArray`
21
+ * in production for potential performance gains
22
+ */
23
+ export class DataEntity {
24
+ static make(input, metadata) {
25
+ if (DataEntity.isDataEntity(input)) {
26
+ if (metadata) {
27
+ for (const [key, val] of Object.entries(metadata)) {
28
+ input.setMetadata(key, val);
29
+ }
30
+ }
31
+ return input;
32
+ }
33
+ return new DataEntity(input, metadata);
34
+ }
35
+ /**
36
+ * A utility for safely converting an input of an object,
37
+ * or an array of objects, to an array of DataEntities.
38
+ * This will detect if passed an already converted input and return it.
39
+ */
40
+ static makeArray(input) {
41
+ if (!Array.isArray(input)) {
42
+ return [DataEntity.make(input)];
43
+ }
44
+ if (DataEntity.isDataEntityArray(input)) {
45
+ return input;
46
+ }
47
+ return input.map((d) => DataEntity.make(d));
48
+ }
49
+ /**
50
+ * Create a new instance of a DataEntity.
51
+ *
52
+ * If the second param `withData` is set to `true`
53
+ * both the data and metadata will be forked, if set
54
+ * to `false` only the metadata will be copied. Defaults
55
+ * to `true`
56
+ */
57
+ static fork(input, withData = true) {
58
+ if (!DataEntity.isDataEntity(input)) {
59
+ throw new Error(`Invalid input to fork, expected DataEntity, got ${getTypeOf(input)}`);
60
+ }
61
+ const { _createTime, ...metadata } = input.getMetadata();
62
+ if (withData) {
63
+ return DataEntity.make(input, metadata);
64
+ }
65
+ return DataEntity.make({}, metadata);
66
+ }
67
+ /**
68
+ * A utility for converting a `Buffer` to a `DataEntity`,
69
+ * using the DataEntity encoding.
70
+ *
71
+ * @param input A `Buffer` to parse to JSON
72
+ * @param opConfig The operation config used to get the encoding type of the Buffer,
73
+ * defaults to "json"
74
+ * @param metadata Optionally add any metadata
75
+ */
76
+ static fromBuffer(input, opConfig, metadata) {
77
+ const { _encoding = i.DataEncoding.JSON } = opConfig || {};
78
+ if (_encoding === i.DataEncoding.JSON) {
79
+ return DataEntity.make(parseJSON(input), metadata);
80
+ }
81
+ if (_encoding === i.DataEncoding.RAW) {
82
+ const entity = DataEntity.make({}, metadata);
83
+ entity.setRawData(input);
84
+ return entity;
85
+ }
86
+ throw new Error(`Unsupported encoding type, got "${_encoding}"`);
87
+ }
88
+ /**
89
+ * Verify that an input is the `DataEntity`
90
+ */
91
+ static isDataEntity(input) {
92
+ return isDataEntity(input);
93
+ }
94
+ /**
95
+ * Verify that an input is an Array of DataEntities,
96
+ */
97
+ static isDataEntityArray(input) {
98
+ if (input == null)
99
+ return false;
100
+ if (!Array.isArray(input))
101
+ return false;
102
+ if (input.length === 0)
103
+ return true;
104
+ return isDataEntity(input[0]);
105
+ }
106
+ /**
107
+ * Safely get the metadata from a `DataEntity`.
108
+ * If the input is object it will get the property from the object
109
+ *
110
+ * **DEPRECATED:** Since this isn't recommended to be used, and will
111
+ * be removed in future releases.
112
+ *
113
+ * @deprecated
114
+ */
115
+ static getMetadata(input, field) {
116
+ if (input == null)
117
+ return undefined;
118
+ if (DataEntity.isDataEntity(input)) {
119
+ const val = field ? input.getMetadata(field) : input.getMetadata();
120
+ return val;
121
+ }
122
+ return field ? input[field] : undefined;
123
+ }
124
+ static [Symbol.hasInstance](instance) {
125
+ // prevent automatically thinking a base DataEntity is
126
+ // an instance of a class that extends from a DataEntity
127
+ if (this.name !== 'DataEntity' && this.name !== 'Object') {
128
+ return false;
129
+ }
130
+ return isDataEntity(instance);
131
+ }
132
+ // @ts-expect-error the initializer is set in defineEntityProperties
133
+ [i.__ENTITY_METADATA_KEY];
134
+ // @ts-expect-error the initializer is set in defineEntityProperties
135
+ [i.__IS_DATAENTITY_KEY];
136
+ constructor(data, metadata) {
137
+ if (data && !isSimpleObject(data)) {
138
+ throw new Error(`Invalid data source, must be an object, got "${getTypeOf(data)}"`);
139
+ }
140
+ defineEntityProperties(this);
141
+ // @ts-expect-error the initializer is set in defineEntityProperties
142
+ this[i.__ENTITY_METADATA_KEY].metadata = makeMetadata(metadata);
143
+ if (data) {
144
+ Object.assign(this, data);
145
+ }
146
+ }
147
+ getMetadata(key) {
148
+ if (key) {
149
+ // @ts-expect-error TODO: fixme
150
+ return this[i.__ENTITY_METADATA_KEY].metadata[key];
151
+ }
152
+ return this[i.__ENTITY_METADATA_KEY].metadata;
153
+ }
154
+ /**
155
+ * Given a field and value set the metadata on the record
156
+ */
157
+ setMetadata(field, value) {
158
+ if (field == null || field === '') {
159
+ throw new Error('Missing field to set in metadata');
160
+ }
161
+ if (field === '_createTime') {
162
+ throw new Error(`Cannot set readonly metadata property ${String(field)}`);
163
+ }
164
+ // @ts-expect-error TODO: fixme
165
+ this[i.__ENTITY_METADATA_KEY].metadata[field] = value;
166
+ }
167
+ /**
168
+ * Get the unique document `_key` from the metadata.
169
+ * If no `_key` is found, an error will be thrown
170
+ */
171
+ getKey() {
172
+ const key = this[i.__ENTITY_METADATA_KEY].metadata._key;
173
+ if (!isValidKey(key)) {
174
+ throw new Error('No key has been set in the metadata');
175
+ }
176
+ return key;
177
+ }
178
+ /**
179
+ * Set the unique document `_key` from the metadata.
180
+ * If no `_key` is found, an error will be thrown
181
+ */
182
+ setKey(key) {
183
+ if (!isValidKey(key)) {
184
+ throw new Error('Invalid key to set in metadata');
185
+ }
186
+ this[i.__ENTITY_METADATA_KEY].metadata._key = key;
187
+ }
188
+ /**
189
+ * Get the time at which this entity was created.
190
+ */
191
+ getCreateTime() {
192
+ const val = this[i.__ENTITY_METADATA_KEY].metadata._createTime;
193
+ const date = getValidDate(val);
194
+ if (date === false) {
195
+ throw new Error('Missing _createTime');
196
+ }
197
+ return date;
198
+ }
199
+ /**
200
+ * Get the time at which the data was ingested into the source data
201
+ *
202
+ * If none is found, `undefined` will be returned.
203
+ * If an invalid date is found, `false` will be returned.
204
+ */
205
+ getIngestTime() {
206
+ const val = this[i.__ENTITY_METADATA_KEY].metadata._ingestTime;
207
+ if (val == null)
208
+ return undefined;
209
+ return getValidDate(val);
210
+ }
211
+ /**
212
+ * Set the time at which the data was ingested into the source data
213
+ *
214
+ * If the value is empty it will set the time to now.
215
+ * If an invalid date is given, an error will be thrown.
216
+ */
217
+ setIngestTime(val) {
218
+ const unixTime = getTime(val);
219
+ if (unixTime === false) {
220
+ throw new Error(`Invalid date format, got ${getTypeOf(val)}`);
221
+ }
222
+ this[i.__ENTITY_METADATA_KEY].metadata._ingestTime = unixTime;
223
+ }
224
+ /**
225
+ * Get the time at which the data was consumed by the reader.
226
+ *
227
+ * If none is found, `undefined` will be returned.
228
+ * If an invalid date is found, `false` will be returned.
229
+ */
230
+ getProcessTime() {
231
+ const val = this[i.__ENTITY_METADATA_KEY].metadata._ingestTime;
232
+ if (val == null)
233
+ return undefined;
234
+ return getValidDate(val);
235
+ }
236
+ /**
237
+ * Set the time at which the data was consumed by the reader
238
+ *
239
+ * If the value is empty it will set the time to now.
240
+ * If an invalid date is given, an error will be thrown.
241
+ */
242
+ setProcessTime(val) {
243
+ const unixTime = getTime(val);
244
+ if (unixTime === false) {
245
+ throw new Error(`Invalid date format, got ${getTypeOf(val)}`);
246
+ }
247
+ this[i.__ENTITY_METADATA_KEY].metadata._ingestTime = unixTime;
248
+ }
249
+ /**
250
+ * Get time associated from a specific field on source data or message
251
+ *
252
+ * If none is found, `undefined` will be returned.
253
+ * If an invalid date is found, `false` will be returned.
254
+ */
255
+ getEventTime() {
256
+ const val = this[i.__ENTITY_METADATA_KEY].metadata._ingestTime;
257
+ if (val == null)
258
+ return undefined;
259
+ return getValidDate(val);
260
+ }
261
+ /**
262
+ * Set time associated from a specific field on source data or message
263
+ *
264
+ * If the value is empty it will set the time to now.
265
+ * If an invalid date is given, an error will be thrown.
266
+ */
267
+ setEventTime(val) {
268
+ const unixTime = getTime(val);
269
+ if (unixTime === false) {
270
+ throw new Error(`Invalid date format, got ${getTypeOf(val)}`);
271
+ }
272
+ this[i.__ENTITY_METADATA_KEY].metadata._ingestTime = unixTime;
273
+ }
274
+ /**
275
+ * Get the raw data, usually used for encoding type `raw`.
276
+ * If there is no data, an error will be thrown
277
+ */
278
+ getRawData() {
279
+ const buf = this[i.__ENTITY_METADATA_KEY].rawData;
280
+ if (isBuffer(buf))
281
+ return buf;
282
+ throw new Error('No data has been set');
283
+ }
284
+ /**
285
+ * Set the raw data, usually used for encoding type `raw`
286
+ * If given `null`, it will unset the data
287
+ */
288
+ setRawData(buf) {
289
+ if (buf === null) {
290
+ this[i.__ENTITY_METADATA_KEY].rawData = null;
291
+ return;
292
+ }
293
+ this[i.__ENTITY_METADATA_KEY].rawData = ensureBuffer(buf, 'utf8');
294
+ }
295
+ /**
296
+ * Convert the DataEntity to an encoded buffer
297
+ *
298
+ * @param opConfig The operation config used to get the encoding type of the buffer,
299
+ * @default `json`
300
+ */
301
+ toBuffer(opConfig = {}) {
302
+ const { _encoding = i.DataEncoding.JSON } = opConfig;
303
+ if (_encoding === i.DataEncoding.JSON) {
304
+ return jsonToBuffer(this);
305
+ }
306
+ if (_encoding === i.DataEncoding.RAW) {
307
+ return this.getRawData();
308
+ }
309
+ throw new Error(`Unsupported encoding type, got "${_encoding}"`);
310
+ }
311
+ }
312
+ __decorate([
313
+ locked()
314
+ ], DataEntity.prototype, "getMetadata", null);
315
+ __decorate([
316
+ locked()
317
+ ], DataEntity.prototype, "setMetadata", null);
318
+ __decorate([
319
+ locked()
320
+ ], DataEntity.prototype, "getKey", null);
321
+ __decorate([
322
+ locked()
323
+ ], DataEntity.prototype, "setKey", null);
324
+ __decorate([
325
+ locked()
326
+ ], DataEntity.prototype, "getCreateTime", null);
327
+ __decorate([
328
+ locked()
329
+ ], DataEntity.prototype, "getIngestTime", null);
330
+ __decorate([
331
+ locked()
332
+ ], DataEntity.prototype, "setIngestTime", null);
333
+ __decorate([
334
+ locked()
335
+ ], DataEntity.prototype, "getProcessTime", null);
336
+ __decorate([
337
+ locked()
338
+ ], DataEntity.prototype, "setProcessTime", null);
339
+ __decorate([
340
+ locked()
341
+ ], DataEntity.prototype, "getEventTime", null);
342
+ __decorate([
343
+ locked()
344
+ ], DataEntity.prototype, "setEventTime", null);
345
+ __decorate([
346
+ locked()
347
+ ], DataEntity.prototype, "getRawData", null);
348
+ __decorate([
349
+ locked()
350
+ ], DataEntity.prototype, "setRawData", null);
351
+ __decorate([
352
+ locked()
353
+ ], DataEntity.prototype, "toBuffer", null);
354
+ //# sourceMappingURL=data-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-entity.js","sourceRoot":"","sources":["../../../src/entities/data-entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './interfaces.js';
2
+ export * from './data-entity.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './interfaces.js';
2
+ export * from './data-entity.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,52 @@
1
+ export type TYPE_IS_DATAENTITY_KEY = '__isDataEntity';
2
+ export type TYPE_ENTITY_METADATA_KEY = '___EntityMetadata';
3
+ export declare const __IS_DATAENTITY_KEY: TYPE_IS_DATAENTITY_KEY;
4
+ export declare const __ENTITY_METADATA_KEY: TYPE_ENTITY_METADATA_KEY;
5
+ export type _DataEntityMetadataType = DataEntityMetadata | Record<string, any>;
6
+ export type _DataEntityMetadata<M> = M & DataEntityMetadata & Record<string, any>;
7
+ export type DataEntityMetadataValue<M> = (keyof DataEntityMetadata) | (keyof M) | string | number;
8
+ export type EntityMetadataValue<M, K> = K extends (keyof DataEntityMetadata) ? DataEntityMetadata[K] : (K extends (keyof M) ? M[K] : any);
9
+ /**
10
+ * DataEntities have conventional metadata properties
11
+ * that can track source, destination and other process
12
+ * information.
13
+ *
14
+ * **NOTE** Time values are set in UNIX Epoch time,
15
+ * to reduce memory footput, the DataEntity has convenience
16
+ * apis for getting and setting the time given and handling
17
+ * the conversion between unix milliseconds to Date format.
18
+ */
19
+ export interface DataEntityMetadata {
20
+ /**
21
+ * The time at which this entity was created
22
+ * (this is automatically set on DataEntity creation)
23
+ * @readonly
24
+ */
25
+ _createTime?: number;
26
+ /** The time at which the data was ingested into the source data */
27
+ _ingestTime?: number;
28
+ /** The time at which the data was consumed by the reader */
29
+ _processTime?: number;
30
+ /**
31
+ * The time associated with this data entity,
32
+ * usually off of a specific field on source data or message
33
+ */
34
+ _eventTime?: number;
35
+ /** A unique key for the data which will be can be used to key the data */
36
+ _key?: string | number;
37
+ }
38
+ /**
39
+ * Available data encoding types for a DataEntity
40
+ */
41
+ export declare enum DataEncoding {
42
+ JSON = "json",
43
+ RAW = "raw"
44
+ }
45
+ /** an encoding focused interfaces */
46
+ export interface EncodingConfig {
47
+ _op?: string;
48
+ _encoding?: DataEncoding;
49
+ }
50
+ /** A list of supported encoding formats */
51
+ export declare const dataEncodings: readonly DataEncoding[];
52
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/entities/interfaces.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AACtD,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE3D,eAAO,MAAM,mBAAmB,EAAE,sBAAyC,CAAC;AAE5E,eAAO,MAAM,qBAAqB,EAAE,wBAA8C,CAAC;AAEnF,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/E,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAElF,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAC/B,CAAC,MAAM,kBAAkB,CAAC,GACtB,CAAC,MAAM,CAAC,CAAC,GACT,MAAM,GACN,MAAM,CAAC;AAEjB,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAC9B,CAAC,SAAS,CAAC,MAAM,kBAAkB,CAAC,GAChC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CACtB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GACb,CAAC,CAAC,CAAC,CAAC,GACJ,GAAG,CAAC,CAAC;AAEvB;;;;;;;;;EASE;AACF,MAAM,WAAW,kBAAkB;IAC/B;;;;MAIE;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,oBAAY,YAAY;IACpB,IAAI,SAAS;IACb,GAAG,QAAQ;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED,2CAA2C;AAC3C,eAAO,MAAM,aAAa,EAAE,SAAS,YAAY,EAAgC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export const __IS_DATAENTITY_KEY = '__isDataEntity';
2
+ export const __ENTITY_METADATA_KEY = '___EntityMetadata';
3
+ /**
4
+ * Available data encoding types for a DataEntity
5
+ */
6
+ export var DataEncoding;
7
+ (function (DataEncoding) {
8
+ DataEncoding["JSON"] = "json";
9
+ DataEncoding["RAW"] = "raw";
10
+ })(DataEncoding || (DataEncoding = {}));
11
+ /** A list of supported encoding formats */
12
+ export const dataEncodings = Object.values(DataEncoding);
13
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/entities/interfaces.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,mBAAmB,GAA2B,gBAAgB,CAAC;AAE5E,MAAM,CAAC,MAAM,qBAAqB,GAA6B,mBAAmB,CAAC;AAoDnF;;GAEG;AACH,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,2BAAW,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAQD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAA4B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as i from './interfaces.js';
2
+ export declare function defineEntityProperties(entity: unknown): void;
3
+ export declare function createMetadata<M>(metadata: M): i._DataEntityMetadata<M>;
4
+ export declare function makeMetadata<M extends i._DataEntityMetadataType>(metadata?: M | undefined): i._DataEntityMetadata<M>;
5
+ export declare function createCoreMetadata<M extends i._DataEntityMetadataType>(): i._DataEntityMetadata<M>;
6
+ export declare function jsonToBuffer(input: unknown): Buffer;
7
+ export declare function isValidKey(key: unknown): key is string | number;
8
+ export declare function isDataEntity(input: unknown): boolean;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entities/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AAErC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAc5D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAEvE;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,uBAAuB,EAC5D,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,GACzB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAG1B;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,uBAAuB,KACnE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAE1B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,GAAG,MAAM,CAK/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,44 @@
1
+ import { isString } from '../strings.js';
2
+ import { isNumber } from '../numbers.js';
3
+ import * as i from './interfaces.js';
4
+ export function defineEntityProperties(entity) {
5
+ Object.defineProperty(entity, i.__IS_DATAENTITY_KEY, {
6
+ value: true,
7
+ configurable: false,
8
+ enumerable: false,
9
+ writable: false,
10
+ });
11
+ Object.defineProperty(entity, i.__ENTITY_METADATA_KEY, {
12
+ value: {},
13
+ configurable: false,
14
+ enumerable: false,
15
+ writable: false,
16
+ });
17
+ }
18
+ export function createMetadata(metadata) {
19
+ return { ...createCoreMetadata(), ...metadata };
20
+ }
21
+ export function makeMetadata(metadata) {
22
+ if (!metadata)
23
+ return createCoreMetadata();
24
+ return createMetadata(metadata);
25
+ }
26
+ export function createCoreMetadata() {
27
+ return { _createTime: Date.now() };
28
+ }
29
+ export function jsonToBuffer(input) {
30
+ return Buffer.from(JSON.stringify(input));
31
+ }
32
+ export function isValidKey(key) {
33
+ if (key == null)
34
+ return false;
35
+ if (isString(key) && key !== '')
36
+ return true;
37
+ if (isNumber(key))
38
+ return true;
39
+ return false;
40
+ }
41
+ export function isDataEntity(input) {
42
+ return Boolean(input != null && input[i.__IS_DATAENTITY_KEY] === true);
43
+ }
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/entities/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AAErC,MAAM,UAAU,sBAAsB,CAAC,MAAe;IAClD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,mBAAmB,EAAE;QACjD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,qBAAqB,EAAE;QACnD,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;KAClB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,cAAc,CAAI,QAAW;IACzC,OAAO,EAAE,GAAG,kBAAkB,EAAE,EAAE,GAAG,QAAQ,EAA8B,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,QAAwB;IAExB,IAAI,CAAC,QAAQ;QAAE,OAAO,kBAAkB,EAAE,CAAC;IAC3C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAE9B,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAA8B,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY;IACnC,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,OAAO,OAAO,CAAC,KAAK,IAAI,IAAI,IAAK,KAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC,CAAC;AACpF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const isProd: boolean;
2
+ export declare const isTest: boolean;
3
+ export declare const isDev: boolean;
4
+ export declare const isCI: boolean;
5
+ export declare function isExecutedFile(url: string): boolean;
6
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,SAAiE,CAAC;AACrF,eAAO,MAAM,MAAM,SAAkC,CAAC;AACtD,eAAO,MAAM,KAAK,SAAyC,CAAC;AAC5D,eAAO,MAAM,IAAI,SAA4B,CAAC;AAE9C,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD"}
@@ -0,0 +1,15 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import fs from 'node:fs';
3
+ export const isProd = !process.env.NODE_ENV || process.env.NODE_ENV === 'production';
4
+ export const isTest = process.env.NODE_ENV === 'test';
5
+ export const isDev = process.env.NODE_ENV === 'development';
6
+ export const isCI = process.env.CI === 'true';
7
+ export function isExecutedFile(url) {
8
+ if (url.startsWith('file:')) {
9
+ const modulePath = fileURLToPath(url);
10
+ const mainPath = fs.realpathSync(process.argv[1]);
11
+ return mainPath === modulePath;
12
+ }
13
+ return false;
14
+ }
15
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AACrF,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;AACtD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAC5D,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;AAE9C,MAAM,UAAU,cAAc,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,QAAQ,KAAK,UAAU,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Verify that two values are the same (uses a reference check).
3
+ * Similar to === except two NaNs is considered the same
4
+ * For deep equality use isDeepEqual
5
+ */
6
+ export declare function isEqual<T>(target: T, input: unknown): input is T;
7
+ export declare function isEqual<T>(target: T, input: unknown): boolean;
8
+ /**
9
+ * A functional version of isEqual
10
+ */
11
+ export declare function isEqualFP<T>(target: T): (input: unknown) => input is T;
12
+ export declare function isEqualFP<T>(target: T): (input: unknown) => boolean;
13
+ /**
14
+ * Compares two values and returns a boolean if they are the same.
15
+ * Arrays are compared using original sorting, while object key ordering
16
+ * doesn't matter.
17
+ *
18
+ * @example
19
+ isDeepEqual({ key1: 1, key2: 2 }, { key2: 2, key1: 1 }) === true;
20
+ isDeepEqual(null, null) === true;
21
+ isDeepEqual(undefined, undefined) === true;
22
+ isDeepEqual(NaN, NaN) === true;
23
+ isDeepEqual(3, 3) === true
24
+ isDeepEqual('hello', 'hello') === true
25
+ isDeepEqual([1, 2, 3], [1, 2, 3]) === true
26
+ isDeepEqual([{ some: 'obj' }], [{ some: 'obj' }]) === true
27
+
28
+ isDeepEqual(undefined, null) === false;
29
+ isDeepEqual([1, 2, 3], [1, 3, 2]) === false
30
+ isDeepEqual([1, 2, 3], [1, 2, undefined, 3]) === false
31
+ isDeepEqual(true, 'true') === false;
32
+ */
33
+ export declare function isDeepEqual<T>(target: T, input: unknown): input is T;
34
+ export declare function isDeepEqual<T>(target: T, input: unknown): boolean;
35
+ /**
36
+ * A functional version of isDeepEqual
37
+ */
38
+ export declare function isDeepEqualFP<T>(target: T): (input: unknown) => input is T;
39
+ export declare function isDeepEqualFP<T>(target: T): (input: unknown) => boolean;
40
+ /**
41
+ * Check if a value is greater than or equal to another
42
+ */
43
+ export declare function isGreaterThanOrEqualTo(value: unknown, other: unknown): boolean;
44
+ /**
45
+ * Check if a value is greater than or equal to another
46
+ */
47
+ export declare function isGreaterThanOrEqualToFP(other: unknown): (value: unknown) => boolean;
48
+ /**
49
+ * Check if a value is greater than another
50
+ */
51
+ export declare function isGreaterThan(value: unknown, other: unknown): boolean;
52
+ /**
53
+ * Check if a value is greater than or equal to another
54
+ */
55
+ export declare function isGreaterThanFP(other: unknown): (value: unknown) => boolean;
56
+ /**
57
+ * Check if a value is less than or equal to another
58
+ */
59
+ export declare function isLessThanOrEqualTo(value: unknown, other: unknown): boolean;
60
+ /**
61
+ * Check if a value is less than or equal to another
62
+ */
63
+ export declare function isLessThanOrEqualToFP(other: unknown): (value: unknown) => boolean;
64
+ /**
65
+ * Check if a value is less than another
66
+ */
67
+ export declare function isLessThan(value: unknown, other: unknown): boolean;
68
+ /**
69
+ * Check if a value is greater than or equal to another
70
+ */
71
+ export declare function isLessThanFP(other: unknown): (value: unknown) => boolean;
72
+ //# sourceMappingURL=equality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.d.ts","sourceRoot":"","sources":["../../src/equality.ts"],"names":[],"mappings":"AAIA;;;;EAIE;AACF,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;AAClE,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;AAK/D;;EAEE;AACF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AACxE,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAKrE;;;;;;;;;;;;;;;;;;;EAmBE;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;AACtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;AAoBnE;;EAEE;AACF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AAC5E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAwBzE;;EAEE;AACF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAI9E;AAED;;EAEE;AACF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAMpF;AAED;;EAEE;AACF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAIrE;AAED;;EAEE;AACF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAM3E;AAED;;EAEE;AACF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAI3E;AAED;;EAEE;AACF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAMjF;AAED;;EAEE;AACF,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAIlE;AAED;;EAEE;AACF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAMxE"}