@brianbuie/node-kit 0.15.1 → 0.16.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/File.ts","../src/Dir.ts","../src/Cache.ts","../src/Fetcher.ts","../src/Format.ts","../src/Log.ts","../src/snapshot.ts","../src/timeout.ts","../src/TypeWriter.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/File.ts","../src/Dir.ts","../src/Cache.ts","../src/Fetcher.ts","../src/Format.ts","../src/Log.ts","../src/snapshot.ts","../src/timeout.ts","../src/TypeWriter.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -5,39 +5,73 @@ import { Readable } from "node:stream";
5
5
  import { finished } from "node:stream/promises";
6
6
  import mime from "mime-types";
7
7
  import { parseStream, writeToStream } from "fast-csv";
8
- import { isObjectLike, merge } from "lodash-es";
8
+ import probeImageSize from "probe-image-size";
9
+ import { spawn } from "child_process";
10
+ import { parseArgsStringToArgv } from "string-argv";
11
+ import { flattenDeep, isObjectLike, merge } from "lodash-es";
9
12
  import { add, format, formatISO, isAfter } from "date-fns";
10
13
  import formatDuration from "format-duration";
11
14
  import extractDomain from "extract-domain";
12
- import { inspect } from "node:util";
13
- import chalk from "chalk";
15
+ import pino from "pino";
14
16
  import * as qt from "quicktype-core";
15
17
 
16
- //#region src/snapshot.ts
18
+ //#region src/Cmd.ts
17
19
  /**
18
- * Allows special objects (Error, Headers, Set) to be included in JSON.stringify output.
19
- * Functions are removed
20
+ * Spawn a child process for shell commands with `Cmd.run('command arg1=something arg2=2...")`
21
+ * @param args can be provided as a string or array of strings
22
+ * @returns Promise that resolves with content of STDOUT. Rejects with output of STDERR
20
23
  */
21
- function snapshot(i, max = 50, depth = 0) {
22
- if (Array.isArray(i)) {
23
- if (depth === max) return [];
24
- return i.map((c) => snapshot(c, max, depth + 1));
24
+ var Cmd = class {
25
+ static bin = "/usr/local/bin";
26
+ /**
27
+ * configure global location of bin files
28
+ */
29
+ static configure({ bin }) {
30
+ this.bin = bin;
25
31
  }
26
- if (typeof i === "function") return void 0;
27
- if (!isObjectLike(i)) return i;
28
- if (depth === max) return {};
29
- let output = {};
30
- if (typeof i.entries === "function") {
31
- for (let [k, v] of i.entries()) output[k] = snapshot(v, max, depth + 1);
32
- return output;
32
+ static args(args) {
33
+ return typeof args === "string" ? parseArgsStringToArgv(args) : parseArgsStringToArgv(flattenDeep(args).filter((a) => a !== void 0).join(" "));
33
34
  }
34
- const obj = i;
35
- for (let key in obj) output[key] = snapshot(obj[key], max, depth + 1);
36
- Object.getOwnPropertyNames(obj).forEach((key) => {
37
- output[key] = snapshot(obj[key], max, depth + 1);
38
- });
39
- return output;
40
- }
35
+ static async run(cmd, args, opts) {
36
+ const options = merge({ timeout: 300 * 1e3 }, opts);
37
+ return new Promise((resolve, reject) => {
38
+ let stdout = "";
39
+ let stderr = "";
40
+ const child = spawn(`${this.bin}/${cmd}`, this.args(args), options);
41
+ child.stdout.on("data", (chunk) => {
42
+ stdout += chunk.toString();
43
+ });
44
+ child.stderr.on("data", (chunk) => {
45
+ stderr += chunk.toString();
46
+ });
47
+ child.on("close", () => {
48
+ if (stderr.trim().length) return reject(new Error(stderr));
49
+ resolve(stdout.trim());
50
+ });
51
+ });
52
+ }
53
+ /**
54
+ * Run ffmpeg for video processing (ffmpeg needs to be installed separately)
55
+ */
56
+ static async ffmpeg(args) {
57
+ return this.run("ffmpeg", [
58
+ "-y",
59
+ "-loglevel",
60
+ "error",
61
+ args
62
+ ], { timeout: 600 * 1e3 });
63
+ }
64
+ /**
65
+ * Use ffprobe to get video stream dimensions (ffprobe needs to be installed separately)
66
+ */
67
+ static async ffprobe(args) {
68
+ return this.run("ffprobe", [
69
+ "-v",
70
+ "error",
71
+ args
72
+ ], { timeout: 600 * 1e3 });
73
+ }
74
+ };
41
75
 
42
76
  //#endregion
43
77
  //#region src/File.ts
@@ -156,14 +190,30 @@ var File = class {
156
190
  * await file.write({ col: 'val' }); // ✅ Writes one row
157
191
  * await file.write([{ col: 'val2' }, { col: 'val3' }]); // ✅ Writes multiple rows
158
192
  */
159
- async csv(rows, keys) {
160
- const csvFile = new FileTypeCsv(this.path);
161
- if (rows) await csvFile.write(rows, keys);
193
+ async csv(rows, options) {
194
+ const csvFile = new FileTypeCsv(this.path, options);
195
+ if (rows) await csvFile.write(rows);
162
196
  return csvFile;
163
197
  }
164
198
  static get csv() {
165
199
  return FileTypeCsv;
166
200
  }
201
+ async image(content) {
202
+ const imageFile = new FileTypeImage(this.path);
203
+ if (content) await imageFile.file.write(content);
204
+ return imageFile;
205
+ }
206
+ static get image() {
207
+ return FileTypeImage;
208
+ }
209
+ async video(content) {
210
+ const videoFile = new FileTypeVideo(this.path);
211
+ if (content) await videoFile.file.write(content);
212
+ return videoFile;
213
+ }
214
+ static get video() {
215
+ return FileTypeVideo;
216
+ }
167
217
  };
168
218
  /**
169
219
  * A generic file adaptor, extended by specific file type implementations
@@ -213,7 +263,7 @@ var FileType = class {
213
263
  };
214
264
  /**
215
265
  * A .json file that maintains data type when reading/writing.
216
- * > ⚠️ This is mildly unsafe, important/foreign json files should be validated at runtime!
266
+ * > ⚠️ This is mildly unsafe, json files should be validated at runtime!
217
267
  * @example
218
268
  * const file = new FileTypeJson('./data', { key: 'val' }); // FileTypeJson<{ key: string; }>
219
269
  * console.log(file.path) // '/path/to/cwd/data.json'
@@ -232,7 +282,7 @@ var FileTypeJson = class extends FileType {
232
282
  return contents ? JSON.parse(contents) : void 0;
233
283
  }
234
284
  write(contents) {
235
- this.file.write(JSON.stringify(snapshot(contents), null, 2));
285
+ this.file.write(JSON.stringify(contents, null, 2));
236
286
  }
237
287
  };
238
288
  /**
@@ -245,7 +295,7 @@ var FileTypeNdjson = class extends FileType {
245
295
  if (lines) this.append(lines);
246
296
  }
247
297
  append(lines) {
248
- this.file.append(Array.isArray(lines) ? lines.map((l) => JSON.stringify(snapshot(l))) : JSON.stringify(snapshot(lines)));
298
+ this.file.append(Array.isArray(lines) ? lines.map((l) => JSON.stringify(l)) : JSON.stringify(lines));
249
299
  }
250
300
  lines() {
251
301
  return this.file.lines().map((l) => JSON.parse(l));
@@ -256,22 +306,30 @@ var FileTypeNdjson = class extends FileType {
256
306
  * Input rows as objects, keys are used as column headers
257
307
  */
258
308
  var FileTypeCsv = class extends FileType {
259
- constructor(filepath) {
309
+ options;
310
+ constructor(filepath, options = {}) {
260
311
  super(filepath.endsWith(".csv") ? filepath : filepath + ".csv");
312
+ this.options = {
313
+ parseNumbers: true,
314
+ parseBooleans: true,
315
+ parseNulls: true,
316
+ ...options
317
+ };
261
318
  }
262
- async write(rows, keys) {
319
+ async write(rows) {
263
320
  const headerSet = /* @__PURE__ */ new Set();
264
- if (keys) for (const key of keys) headerSet.add(key);
321
+ if (this.options.keys) for (const key of this.options.keys) headerSet.add(key);
265
322
  else for (const row of rows) for (const key in row) headerSet.add(key);
266
323
  const headers = Array.from(headerSet);
267
324
  const outRows = rows.map((row) => headers.map((key) => row[key]));
268
325
  return finished(writeToStream(this.file.writeStream, [headers, ...outRows]));
269
326
  }
270
327
  #parseVal(val) {
271
- if (val.toLowerCase() === "false") return false;
272
- if (val.toLowerCase() === "true") return true;
273
- if (val.length === 0) return null;
274
- if (/^[\.0-9]+$/.test(val)) return Number(val);
328
+ const { parseNumbers, parseBooleans, parseNulls } = this.options;
329
+ if (parseBooleans && val.toLowerCase() === "false") return false;
330
+ if (parseBooleans && val.toLowerCase() === "true") return true;
331
+ if (parseNulls && (val.length === 0 || val.toLowerCase() === "null")) return null;
332
+ if (parseNumbers && /^[\.0-9]+$/.test(val)) return Number(val);
275
333
  return val;
276
334
  }
277
335
  async read() {
@@ -286,6 +344,23 @@ var FileTypeCsv = class extends FileType {
286
344
  });
287
345
  }
288
346
  };
347
+ var FileTypeImage = class extends FileType {
348
+ async dimensions() {
349
+ return probeImageSize(this.file.readStream);
350
+ }
351
+ };
352
+ var FileTypeVideo = class extends FileType {
353
+ async dimensions() {
354
+ return Cmd.ffprobe(`-select_streams v:0 -show_entries stream -of json "${this.file.path}"`).then((out) => {
355
+ const { streams } = JSON.parse(out);
356
+ if (!streams[0]) throw new Error("Could not parse video stream");
357
+ return {
358
+ ...streams[0],
359
+ duration: Number(streams[0].duration)
360
+ };
361
+ });
362
+ }
363
+ };
289
364
 
290
365
  //#endregion
291
366
  //#region src/Format.ts
@@ -510,7 +585,7 @@ var Dir = class Dir {
510
585
  /**
511
586
  * All files with ext ".txt"
512
587
  */
513
- get textFiles() {
588
+ get txtFiles() {
514
589
  return this.files.filter((f) => f.ext === ".txt");
515
590
  }
516
591
  /**
@@ -676,122 +751,91 @@ var Fetcher = class {
676
751
 
677
752
  //#endregion
678
753
  //#region src/Log.ts
754
+ /**
755
+ * Wrapper for [pino](https://github.com/pinojs/pino)
756
+ * Levels: fatal, error, warn, info, debug, trace
757
+ * Use `LOG_LEVL=info` to limit what's printed to console
758
+ * Use `Log.configure` to customize the pino instance
759
+ */
679
760
  var Log = class Log {
680
- static getStack() {
681
- const details = { stack: "" };
682
- Error.captureStackTrace(details, Log.getStack);
683
- return details.stack.split("\n").map((l) => l.trim()).filter((l) => l !== "Error");
684
- }
685
- /**
686
- * Gcloud parses JSON in stdout
687
- */
688
- static #toGcloud(entry) {
689
- const details = entry.details?.length === 1 ? entry.details[0] : entry.details;
690
- const output = {
691
- ...entry,
692
- details,
693
- stack: entry.stack || this.getStack()
694
- };
695
- console.log(JSON.stringify(snapshot(output)));
696
- }
697
- /**
698
- * Includes colors and better inspection for logging during dev
699
- */
700
- static #toConsole(entry, color) {
701
- if (entry.message) console.log(color(`${Format.date("h:m:s")} [${entry.severity}] ${entry.message}`));
702
- entry.details?.forEach((detail) => {
703
- console.log(inspect(detail, {
704
- depth: 10,
705
- breakLength: 100,
706
- compact: true,
707
- colors: true
708
- }));
709
- });
710
- }
711
- static #log({ severity, color }, ...input) {
712
- const { message, details } = this.prepare(...input);
713
- const entry = {
714
- message,
715
- severity,
716
- details
717
- };
718
- if (process.env.K_SERVICE !== void 0 || process.env.CLOUD_RUN_JOB !== void 0) this.#toGcloud(entry);
719
- else this.#toConsole(entry, color);
720
- return entry;
721
- }
722
- /**
723
- * Handle first argument being a string or an object with a 'message' prop
724
- */
725
- static prepare(...input) {
726
- let [firstArg, ...rest] = input;
727
- if (typeof firstArg === "string") return {
728
- message: firstArg,
729
- details: rest
730
- };
731
- if (isObjectLike(firstArg) && typeof firstArg["message"] === "string") {
732
- const { message, ...firstDetails } = firstArg;
733
- return {
734
- message,
735
- details: [firstDetails, ...rest]
736
- };
737
- }
738
- return { details: input };
739
- }
740
- /**
741
- * Events that require action or attention immediately
742
- */
743
- static alert(...input) {
744
- return this.#log({
745
- severity: "ALERT",
746
- color: chalk.bgRed
747
- }, ...input);
761
+ static #logger;
762
+ static #options;
763
+ static createLogger() {
764
+ const isProduction = this.#options?.environment === "production" || process.env.NODE_ENV === "production";
765
+ return pino(merge({
766
+ level: process.env.LOG_LEVEL ?? (isProduction ? "info" : "debug"),
767
+ timestamp: pino.stdTimeFunctions.isoTime,
768
+ formatters: { level(label) {
769
+ return { level: label };
770
+ } },
771
+ transport: isProduction ? void 0 : {
772
+ target: "pino-pretty",
773
+ options: {
774
+ colorize: true,
775
+ singleLine: true,
776
+ ignore: "pid,hostname"
777
+ }
778
+ }
779
+ }, this.#options));
780
+ }
781
+ static configure(options = {}) {
782
+ this.#options = options;
783
+ this.#logger = this.createLogger();
784
+ }
785
+ static #getLogger() {
786
+ return this.#logger ??= this.createLogger();
787
+ }
788
+ static #write(level, message, details) {
789
+ if (details === void 0) Log.#getLogger()[level](message);
790
+ else Log.#getLogger()[level](details, message);
791
+ }
792
+ static trace(message, details) {
793
+ Log.#write("trace", message, details);
794
+ }
795
+ static debug(message, details) {
796
+ Log.#write("debug", message, details);
797
+ }
798
+ static info(message, details) {
799
+ Log.#write("info", message, details);
800
+ }
801
+ static warn(message, details) {
802
+ Log.#write("warn", message, details);
803
+ }
804
+ static error(message, details) {
805
+ Log.#write("error", message, details);
806
+ }
807
+ static fatal(message, details) {
808
+ Log.#write("fatal", message, details);
748
809
  }
749
- /**
750
- * Events that cause problems
751
- */
752
- static error(...input) {
753
- return this.#log({
754
- severity: "ERROR",
755
- color: chalk.red
756
- }, ...input);
757
- }
758
- /**
759
- * Events that might cause problems
760
- */
761
- static warn(...input) {
762
- return this.#log({
763
- severity: "WARNING",
764
- color: chalk.yellow
765
- }, ...input);
766
- }
767
- /**
768
- * Normal but significant events, such as start up, shut down, or a configuration change
769
- */
770
- static notice(...input) {
771
- return this.#log({
772
- severity: "NOTICE",
773
- color: chalk.cyan
774
- }, ...input);
775
- }
776
- /**
777
- * Routine information, such as ongoing status or performance
778
- */
779
- static info(...input) {
780
- return this.#log({
781
- severity: "INFO",
782
- color: chalk.white
783
- }, ...input);
810
+ };
811
+
812
+ //#endregion
813
+ //#region src/snapshot.ts
814
+ /**
815
+ * @deprecated
816
+ * Allows special objects (Error, Headers, Set) to be included in JSON.stringify output. Functions are removed.
817
+ * ⚠️ This is bad! Only use it for debugging!
818
+ */
819
+ function snapshot(i, max = 50, depth = 0) {
820
+ if (Array.isArray(i)) {
821
+ if (depth === max) return [];
822
+ return i.map((c) => snapshot(c, max, depth + 1));
784
823
  }
785
- /**
786
- * Debug or trace information
787
- */
788
- static debug(...input) {
789
- return this.#log({
790
- severity: "DEBUG",
791
- color: chalk.gray
792
- }, ...input);
824
+ if (typeof i === "function") return void 0;
825
+ if (!isObjectLike(i)) return i;
826
+ if (depth === max) return {};
827
+ let output = {};
828
+ if (typeof i.entries === "function") {
829
+ for (let [k, v] of i.entries()) output[k] = snapshot(v, max, depth + 1);
830
+ return output;
793
831
  }
794
- };
832
+ const obj = i;
833
+ for (let key in obj) output[key] = snapshot(obj[key], max, depth + 1);
834
+ Object.getOwnPropertyNames(obj).forEach((key) => {
835
+ output[key] = snapshot(obj[key], max, depth + 1);
836
+ });
837
+ return output;
838
+ }
795
839
 
796
840
  //#endregion
797
841
  //#region src/timeout.ts
@@ -803,6 +847,14 @@ async function timeout(ms) {
803
847
 
804
848
  //#endregion
805
849
  //#region src/TypeWriter.ts
850
+ /**
851
+ * Wrapper for [quicktype-core](https://github.com/glideapps/quicktype)
852
+ * @example
853
+ * const group = new TypeWriter('Group');
854
+ * await types.addMember('Thing', [{ a: 1 }, { a: 2, b: 1 }]);
855
+ * await types.toFile();
856
+ * // type def for `Thing` saved in `types/Group.types.ts`
857
+ */
806
858
  var TypeWriter = class {
807
859
  moduleName;
808
860
  input = qt.jsonInputForTargetLanguage("typescript");