bingo-testers 0.5.11 → 0.6.0

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":"createMockSystems.d.ts","sourceRoot":"","sources":["../src/createMockSystems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAChC,QAAQ,GAAE,iBAAsB,GAC9B,WAAW,CAYb"}
1
+ {"version":3,"file":"createMockSystems.d.ts","sourceRoot":"","sources":["../src/createMockSystems.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAChC,QAAQ,GAAE,iBAAsB,GAC9B,WAAW,CAeb"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockSystems.js","sourceRoot":"","sources":["../src/createMockSystems.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOnD,MAAM,UAAU,iBAAiB,CAChC,WAA8B,EAAE;IAEhC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAExC,MAAM,IAAI,GACT,QAAQ,CAAC,IAAI;QACZ,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAe,CAAC;IAEpE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"createMockSystems.js","sourceRoot":"","sources":["../src/createMockSystems.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOnD,MAAM,UAAU,iBAAiB,CAChC,WAA8B,EAAE;IAEhC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAExC,MAAM,IAAI,GACT,QAAQ,CAAC,IAAI;QACZ,CAAC,CACD,KAAuC,EACvC,IAA8B,EAC7B,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAe,CAAC;IAEtD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -1,4 +1,11 @@
1
1
  import { CreatedDirectory, CreatedEntry } from "bingo-fs";
2
+ export interface DiffCreatedDirectoryOptions {
3
+ /**
4
+ * Transforms each file's text before comparing, such as to normalize formatting.
5
+ * @default (text) => text
6
+ */
7
+ processText?: ProcessText;
8
+ }
2
9
  export interface DiffedCreatedDirectory {
3
10
  [i: string]: DiffedCreatedDirectory | DiffedCreatedFileEntry | undefined;
4
11
  }
@@ -7,5 +14,5 @@ export interface DiffedCreatedFileMetadata {
7
14
  executable?: string;
8
15
  }
9
16
  export type ProcessText = (text: string, filePath: string) => string;
10
- export declare function diffCreatedDirectory(actual: CreatedDirectory, created: CreatedDirectory, processText: ProcessText): DiffedCreatedDirectory | undefined;
17
+ export declare function diffCreatedDirectory(actual: CreatedDirectory, created: CreatedDirectory, { processText }?: DiffCreatedDirectoryOptions): DiffedCreatedDirectory | undefined;
11
18
  //# sourceMappingURL=diffCreatedDirectory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diffCreatedDirectory.d.ts","sourceRoot":"","sources":["../src/diffCreatedDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAuB,MAAM,UAAU,CAAC;AAK/E,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,SAAS,CAAC;CACzE;AAED,MAAM,MAAM,sBAAsB,GAC/B,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,GAAG,SAAS,EAAE,yBAAyB,CAAC,CAAC,GAChD,YAAY,GACZ,sBAAsB,GACtB,MAAM,CAAC;AAEV,MAAM,WAAW,yBAAyB;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAErE,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,WAAW,GACtB,sBAAsB,GAAG,SAAS,CAIpC"}
1
+ {"version":3,"file":"diffCreatedDirectory.d.ts","sourceRoot":"","sources":["../src/diffCreatedDirectory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAuB,MAAM,UAAU,CAAC;AAK/E,MAAM,WAAW,2BAA2B;IAC3C;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,SAAS,CAAC;CACzE;AAED,MAAM,MAAM,sBAAsB,GAC/B,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,GAAG,SAAS,EAAE,yBAAyB,CAAC,CAAC,GAChD,YAAY,GACZ,sBAAsB,GACtB,MAAM,CAAC;AAEV,MAAM,WAAW,yBAAyB;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAErE,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,gBAAgB,EACzB,EAAE,WAA4B,EAAE,GAAE,2BAAgC,GAChE,sBAAsB,GAAG,SAAS,CAIpC"}
@@ -1,7 +1,8 @@
1
- import { createTwoFilesPatch } from "diff";
1
+ import { diffStringsUnified } from "@vitest/utils/diff";
2
2
  import path from "node:path";
3
+ import c from "tinyrainbow";
3
4
  import { withoutUndefinedProperties } from "without-undefined-properties";
4
- export function diffCreatedDirectory(actual, created, processText) {
5
+ export function diffCreatedDirectory(actual, created, { processText = (text) => text } = {}) {
5
6
  const result = diffCreatedDirectoryWorker(actual, created, ".", processText);
6
7
  return result && withoutUndefinedProperties(result);
7
8
  }
@@ -68,11 +69,15 @@ function diffCreatedFileMetadata(actual, created, pathToFile) {
68
69
  };
69
70
  }
70
71
  function diffCreatedFileText(actual, created, pathToFile, processText) {
71
- const actualProcessed = processText(created, pathToFile);
72
- const createdProcessed = processText(actual, pathToFile);
72
+ const actualProcessed = processText(actual, pathToFile);
73
+ const createdProcessed = processText(created, pathToFile);
73
74
  return actualProcessed === createdProcessed
74
75
  ? undefined
75
- : createTwoFilesPatch(pathToFile, pathToFile, createdProcessed, actualProcessed).replace(/^Index: .+\n=+\n-{3} .+\n\+{3} .+\n/gmu, "");
76
+ : diffStringsUnified(actualProcessed, createdProcessed, {
77
+ aColor: c.red,
78
+ bColor: c.green,
79
+ omitAnnotationLines: true,
80
+ });
76
81
  }
77
82
  function undefinedIfEmpty(value) {
78
83
  return !!value &&
@@ -1 +1 @@
1
- {"version":3,"file":"diffCreatedDirectory.js","sourceRoot":"","sources":["../src/diffCreatedDirectory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diffCreatedDirectory.js","sourceRoot":"","sources":["../src/diffCreatedDirectory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,19 @@
1
+ import { stripVTControlCharacters } from "node:util";
2
+ import c from "tinyrainbow";
1
3
  import { describe, expect, test } from "vitest";
2
4
  import { diffCreatedDirectory, } from "./diffCreatedDirectory.js";
5
+ function withoutColors(value) {
6
+ if (typeof value === "string") {
7
+ return stripVTControlCharacters(value);
8
+ }
9
+ if (Array.isArray(value)) {
10
+ return value.map(withoutColors);
11
+ }
12
+ if (value && typeof value === "object") {
13
+ return Object.fromEntries(Object.entries(value).map(([key, inner]) => [key, withoutColors(inner)]));
14
+ }
15
+ return value;
16
+ }
3
17
  describe("diffCreatedDirectory", () => {
4
18
  test.each([
5
19
  [{}, {}, undefined],
@@ -10,9 +24,8 @@ describe("diffCreatedDirectory", () => {
10
24
  { a: "" },
11
25
  { a: "b\n" },
12
26
  {
13
- a: `@@ -0,0 +1,1 @@
14
- +b
15
- `,
27
+ a: `+ b
28
+ +`,
16
29
  },
17
30
  ],
18
31
  [{ a: "b\n" }, { a: "b\n" }, undefined],
@@ -20,9 +33,8 @@ describe("diffCreatedDirectory", () => {
20
33
  { a: "abc\n" },
21
34
  { a: "bbc\n" },
22
35
  {
23
- a: `@@ -1,1 +1,1 @@
24
- -abc
25
- +bbc
36
+ a: `- abc
37
+ + bbc
26
38
  `,
27
39
  },
28
40
  ],
@@ -61,12 +73,8 @@ describe("diffCreatedDirectory", () => {
61
73
  a: [
62
74
  undefined,
63
75
  {
64
- executable: `@@ -1,1 +1,1 @@
65
- -true
66
- \
67
- +false
68
- \
69
- `,
76
+ executable: `- true
77
+ + false`,
70
78
  },
71
79
  ],
72
80
  },
@@ -86,9 +94,8 @@ describe("diffCreatedDirectory", () => {
86
94
  { a: ["b\n"] },
87
95
  { a: "" },
88
96
  {
89
- a: `@@ -1,1 +0,0 @@
90
- -b
91
- `,
97
+ a: `- b
98
+ -`,
92
99
  },
93
100
  ],
94
101
  [
@@ -110,9 +117,8 @@ describe("diffCreatedDirectory", () => {
110
117
  { a: { b: "d\n" } },
111
118
  {
112
119
  a: {
113
- b: `@@ -1,1 +1,1 @@
114
- -c
115
- +d
120
+ b: `- c
121
+ + d
116
122
  `,
117
123
  },
118
124
  },
@@ -135,7 +141,45 @@ describe("diffCreatedDirectory", () => {
135
141
  { a: { b: { f: "g\n" } } },
136
142
  ],
137
143
  ])("%j and %j", (actual, created, expected) => {
138
- expect(diffCreatedDirectory(actual, created, (text) => text)).toEqual(expected);
144
+ expect(withoutColors(diffCreatedDirectory(actual, created))).toEqual(expected);
145
+ });
146
+ test("processes text with a processText option", () => {
147
+ const actual = diffCreatedDirectory({ a: "b\n" }, { a: "b\n\n" }, { processText: (text) => text.trim() });
148
+ expect(actual).toBeUndefined();
149
+ });
150
+ describe("colors", () => {
151
+ test("colors removed and added lines", () => {
152
+ const actual = diffCreatedDirectory({ a: "b\n" }, { a: "c\n" });
153
+ expect(actual).toEqual({
154
+ a: [c.red("- b"), c.green("+ c"), ""].join("\n"),
155
+ });
156
+ });
157
+ test("highlights the changed segments within lines", () => {
158
+ const actual = diffCreatedDirectory({ a: "const value = 123;\nunchanged\n" }, { a: "const value = 456;\nunchanged\n" });
159
+ expect(actual).toEqual({
160
+ a: [
161
+ c.red(`- const value = ${c.inverse("123")};`),
162
+ c.green(`+ const value = ${c.inverse("456")};`),
163
+ c.dim(" unchanged"),
164
+ "",
165
+ ].join("\n"),
166
+ });
167
+ });
168
+ test("colors metadata diffs", () => {
169
+ const actual = diffCreatedDirectory({ a: ["", { executable: true }] }, { a: ["", { executable: false }] });
170
+ expect(actual).toEqual({
171
+ a: [
172
+ undefined,
173
+ {
174
+ executable: [
175
+ c.red(`- ${c.inverse("tru")}e`),
176
+ // cspell:disable-next-line
177
+ c.green(`+ ${c.inverse("fals")}e`),
178
+ ].join("\n"),
179
+ },
180
+ ],
181
+ });
182
+ });
139
183
  });
140
184
  });
141
185
  //# sourceMappingURL=diffCreatedDirectory.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diffCreatedDirectory.test.js","sourceRoot":"","sources":["../src/diffCreatedDirectory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diffCreatedDirectory.test.js","sourceRoot":"","sources":["../src/diffCreatedDirectory.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AnyShape, InferredObject, Input, TakeInput } from "bingo";
1
+ import { AnyShape, InferredObject, Input, InputContextWithArgs, InputContextWithoutArgs, ProvidedInputArgs, TakeInput } from "bingo";
2
2
  import { MockSystemOptions } from "./types.js";
3
3
  export interface InputContextSettingsWithArgs<Args extends object> extends InputContextSettingsWithoutArgs {
4
4
  args: Args;
@@ -6,5 +6,16 @@ export interface InputContextSettingsWithArgs<Args extends object> extends Input
6
6
  export interface InputContextSettingsWithoutArgs extends MockSystemOptions {
7
7
  take?: TakeInput;
8
8
  }
9
+ /**
10
+ * Runs the produce() of an Input whose result type depends on its args with mock systems.
11
+ * @param input Input whose result type depends on its args.
12
+ * @param settings Settings including values corresponding to the Input's args.
13
+ */
14
+ export declare function testInput<const Args extends object, Result, Context extends InputContextWithoutArgs = InputContextWithArgs<Args>>(input: (context: Context) => Result, settings: InputContextSettingsWithArgs<ProvidedInputArgs<Args, Context>>): Result;
15
+ /**
16
+ * Runs the produce() of an Input with mock systems.
17
+ * @param input Input that may define an args schema.
18
+ * @param settings Settings including any values corresponding to the Input's args schema.
19
+ */
9
20
  export declare function testInput<Result, ArgsShape extends AnyShape>(input: Input<Result, ArgsShape>, settings?: Partial<InputContextSettingsWithArgs<InferredObject<ArgsShape>>>): Result;
10
21
  //# sourceMappingURL=testInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testInput.d.ts","sourceRoot":"","sources":["../src/testInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,4BAA4B,CAC5C,IAAI,SAAS,MAAM,CAClB,SAAQ,+BAA+B;IACxC,IAAI,EAAE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACzE,IAAI,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,SAAS,QAAQ,EAC3D,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,QAAQ,GAAE,OAAO,CAChB,4BAA4B,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAClD,UASN"}
1
+ {"version":3,"file":"testInput.d.ts","sourceRoot":"","sources":["../src/testInput.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,KAAK,EACL,oBAAoB,EACpB,uBAAuB,EAEvB,iBAAiB,EACjB,SAAS,EACT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,4BAA4B,CAC5C,IAAI,SAAS,MAAM,CAClB,SAAQ,+BAA+B;IACxC,IAAI,EAAE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACzE,IAAI,CAAC,EAAE,SAAS,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACxB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,MAAM,EACN,OAAO,SAAS,uBAAuB,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAEpE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,EACnC,QAAQ,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GACtE,MAAM,CAAC;AAEV;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,SAAS,QAAQ,EAC3D,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,GACzE,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"testInput.js","sourceRoot":"","sources":["../src/testInput.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAa3D,MAAM,UAAU,SAAS,CACxB,KAA+B,EAC/B,WAEI,EAAE;IAEN,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAErD,OAAO,KAAK,CAAC;QACZ,GAAI,QAAoE;QACxE,GAAG,MAAM;QACT,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"testInput.js","sourceRoot":"","sources":["../src/testInput.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAqC3D,MAAM,UAAU,SAAS,CACxB,KAA+C,EAC/C,WAEI,EAAE;IAEN,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAErD,OAAO,KAAK,CAAC;QACZ,GAAI,QAAmE;QACvE,GAAG,MAAM;QACT,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingo-testers",
3
- "version": "0.5.11",
3
+ "version": "0.6.0",
4
4
  "description": "Test utilities for composable, testable, type-safe templates. ⚗️",
5
5
  "homepage": "https://www.create.bingo/build/packages/bingo-testers",
6
6
  "repository": {
@@ -19,19 +19,20 @@
19
19
  "lib/"
20
20
  ],
21
21
  "dependencies": {
22
+ "@vitest/utils": "^4.0.15",
22
23
  "all-properties-lazy": "^0.1.0",
23
- "diff": "^8.0.2",
24
24
  "octokit": "^5.0.5",
25
+ "tinyrainbow": "^3.0.3",
25
26
  "without-undefined-properties": "^0.1.2"
26
27
  },
27
28
  "devDependencies": {
28
29
  "zod": "4.4.3",
29
- "bingo": "^0.11.2",
30
+ "bingo": "^0.12.0",
30
31
  "bingo-fs": "^0.5.7",
31
32
  "bingo-systems": "^0.6.0"
32
33
  },
33
34
  "peerDependencies": {
34
- "bingo": "^0.11.2",
35
+ "bingo": "^0.12.0",
35
36
  "bingo-fs": "^0.5.7",
36
37
  "bingo-systems": "^0.6.0"
37
38
  },