bingo-stratum 0.5.5 → 0.5.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.
- package/lib/creators/createStratumTemplate.d.ts.map +1 -1
- package/lib/creators/createStratumTemplate.js +27 -13
- package/lib/creators/createStratumTemplate.js.map +1 -1
- package/lib/creators/createStratumTemplate.test.js +29 -5
- package/lib/creators/createStratumTemplate.test.js.map +1 -1
- package/lib/creators/inferPreset.js +1 -1
- package/lib/creators/inferPreset.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/mergers/mergeAddonsIfUpdated.d.ts.map +1 -1
- package/lib/mergers/mergeAddonsIfUpdated.js +7 -5
- package/lib/mergers/mergeAddonsIfUpdated.js.map +1 -1
- package/lib/mergers/mergeBlockCreations.d.ts +1 -1
- package/lib/producers/applyBlockRefinements.d.ts +1 -1
- package/lib/producers/applyBlockRefinements.d.ts.map +1 -1
- package/lib/producers/applyBlockRefinements.js +39 -7
- package/lib/producers/applyBlockRefinements.js.map +1 -1
- package/lib/producers/applyBlockRefinements.test.js +51 -8
- package/lib/producers/applyBlockRefinements.test.js.map +1 -1
- package/lib/producers/producePreset.d.ts +6 -1
- package/lib/producers/producePreset.d.ts.map +1 -1
- package/lib/producers/producePreset.js +2 -2
- package/lib/producers/producePreset.js.map +1 -1
- package/lib/producers/producePreset.test.js +50 -0
- package/lib/producers/producePreset.test.js.map +1 -1
- package/lib/producers/produceStratumTemplate.d.ts.map +1 -1
- package/lib/producers/produceStratumTemplate.js +1 -1
- package/lib/producers/produceStratumTemplate.js.map +1 -1
- package/lib/runners/runBlock.js +1 -0
- package/lib/runners/runBlock.js.map +1 -1
- package/lib/runners/runPreset.d.ts +12 -0
- package/lib/runners/runPreset.d.ts.map +1 -0
- package/lib/runners/runPreset.js +15 -0
- package/lib/runners/runPreset.js.map +1 -0
- package/lib/types/creations.d.ts.map +1 -1
- package/lib/types/presets.d.ts.map +1 -1
- package/lib/types/refinements.d.ts.map +1 -1
- package/lib/types/templates.d.ts +9 -0
- package/lib/types/templates.d.ts.map +1 -1
- package/lib/utils/createBlockRefinementOption.d.ts +2 -0
- package/lib/utils/createBlockRefinementOption.d.ts.map +1 -0
- package/lib/utils/createBlockRefinementOption.js +5 -0
- package/lib/utils/createBlockRefinementOption.js.map +1 -0
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAC;AAQtE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACN,eAAe,EACf,yBAAyB,EAEzB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,qBAAqB,CAAC,YAAY,SAAS,QAAQ,EAClE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,GACzD,eAAe,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"createStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAC;AAQtE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACN,eAAe,EACf,yBAAyB,EAEzB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,qBAAqB,CAAC,YAAY,SAAS,QAAQ,EAClE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,GACzD,eAAe,CAAC,YAAY,CAAC,CA0G/B"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { produceStratumTemplate, } from "../producers/produceStratumTemplate.js";
|
|
4
|
-
import {
|
|
4
|
+
import { createBlockRefinementOption } from "../utils/createBlockRefinementOption.js";
|
|
5
5
|
import { slugifyName } from "../utils/slugifyName.js";
|
|
6
6
|
import { inferPreset } from "./inferPreset.js";
|
|
7
7
|
export function createStratumTemplate(base, templateDefinition) {
|
|
8
|
+
const namedBlocks = Array.from(new Set(templateDefinition.presets
|
|
9
|
+
.flatMap((preset) => preset.blocks.map((block) => block.about?.name))
|
|
10
|
+
.filter((blockName) => typeof blockName === "string")));
|
|
8
11
|
const template = {
|
|
9
12
|
...templateDefinition,
|
|
10
13
|
base,
|
|
14
|
+
blocks: Array.from(new Set([
|
|
15
|
+
...(templateDefinition.blocks ?? []),
|
|
16
|
+
...templateDefinition.presets.flatMap((preset) => preset.blocks),
|
|
17
|
+
])),
|
|
11
18
|
createConfig: (config) => ({ ...config, template }),
|
|
12
19
|
options: {
|
|
13
20
|
...base.options,
|
|
@@ -16,17 +23,25 @@ export function createStratumTemplate(base, templateDefinition) {
|
|
|
16
23
|
.describe("starting set of tooling to use")
|
|
17
24
|
.default(slugifyName((templateDefinition.suggested ?? templateDefinition.presets[0])
|
|
18
25
|
.about.name)),
|
|
19
|
-
//
|
|
26
|
+
// Block refinement options are not present in the types, because:
|
|
20
27
|
// * It'd be a lot of types plumbing to know the full list of Blocks.
|
|
21
28
|
// * We want to discourage using them in config files: it's better to
|
|
22
|
-
// instead use imported Blocks in `refinements.blocks
|
|
29
|
+
// instead use imported Blocks in `refinements.blocks`.
|
|
23
30
|
//
|
|
24
31
|
// TODO: It would be nice to have labeled groups of options.
|
|
25
|
-
//
|
|
26
|
-
...Object.fromEntries(
|
|
27
|
-
.filter((blockName) => typeof blockName === "string")
|
|
32
|
+
// https://github.com/JoshuaKGoldberg/bingo/issues/288
|
|
33
|
+
...Object.fromEntries(namedBlocks
|
|
28
34
|
.map((blockName) => [
|
|
29
|
-
|
|
35
|
+
createBlockRefinementOption("add", blockName),
|
|
36
|
+
z
|
|
37
|
+
.boolean()
|
|
38
|
+
.describe(`whether to add the ${blockName} block`)
|
|
39
|
+
.optional(),
|
|
40
|
+
])
|
|
41
|
+
.sort(([a], [b]) => a.localeCompare(b))),
|
|
42
|
+
...Object.fromEntries(namedBlocks
|
|
43
|
+
.map((blockName) => [
|
|
44
|
+
createBlockRefinementOption("exclude", blockName),
|
|
30
45
|
z
|
|
31
46
|
.boolean()
|
|
32
47
|
.describe(`whether to exclude the ${blockName} block`)
|
|
@@ -35,14 +50,15 @@ export function createStratumTemplate(base, templateDefinition) {
|
|
|
35
50
|
.sort(([a], [b]) => a.localeCompare(b))),
|
|
36
51
|
},
|
|
37
52
|
prepare(context) {
|
|
53
|
+
// TODO: Why are these type assertions necessary?
|
|
54
|
+
// https://github.com/JoshuaKGoldberg/bingo/issues/287
|
|
38
55
|
return {
|
|
39
56
|
preset: () => {
|
|
40
57
|
if (context.options.preset) {
|
|
41
|
-
// TODO: why is this type assertion necessary?
|
|
42
58
|
return context.options.preset;
|
|
43
59
|
}
|
|
44
60
|
// TODO: It would be better to run the base.prepare first to generate option defaults.
|
|
45
|
-
//
|
|
61
|
+
// https://github.com/JoshuaKGoldberg/bingo/issues/289
|
|
46
62
|
const preset = context.files && inferPreset(context, templateDefinition.presets);
|
|
47
63
|
if (preset) {
|
|
48
64
|
context.log(`Detected ${chalk.blue(`--preset ${preset}`)} from existing files on disk.`);
|
|
@@ -50,12 +66,10 @@ export function createStratumTemplate(base, templateDefinition) {
|
|
|
50
66
|
return preset;
|
|
51
67
|
},
|
|
52
68
|
...(base.prepare?.(context) ?? {}),
|
|
53
|
-
};
|
|
69
|
+
};
|
|
54
70
|
},
|
|
55
71
|
produce(context) {
|
|
56
|
-
return produceStratumTemplate(template,
|
|
57
|
-
// TODO: Why is this type assertion necessary?
|
|
58
|
-
context);
|
|
72
|
+
return produceStratumTemplate(template, context);
|
|
59
73
|
},
|
|
60
74
|
};
|
|
61
75
|
return template;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACN,sBAAsB,GAEtB,MAAM,wCAAwC,CAAC;AAOhD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allPropertiesLazy } from "all-properties-lazy";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { describe, expect, it, vi } from "vitest";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -19,6 +19,28 @@ const preset = base.createPreset({
|
|
|
19
19
|
const mockLog = vi.fn();
|
|
20
20
|
const mockOptions = { name: "Test Name" };
|
|
21
21
|
describe("createStratumTemplate", () => {
|
|
22
|
+
describe("blocks", () => {
|
|
23
|
+
it("adds extra blocks alongside those from presets when the template definition includes them", () => {
|
|
24
|
+
const blockInsidePreset = base.createBlock({
|
|
25
|
+
about: { name: "Block From Preset" },
|
|
26
|
+
produce: vi.fn(),
|
|
27
|
+
});
|
|
28
|
+
const blockOutsidePreset = base.createBlock({
|
|
29
|
+
about: { name: "Block Outside Preset" },
|
|
30
|
+
produce: vi.fn(),
|
|
31
|
+
});
|
|
32
|
+
const template = base.createStratumTemplate({
|
|
33
|
+
blocks: [blockOutsidePreset],
|
|
34
|
+
presets: [
|
|
35
|
+
base.createPreset({
|
|
36
|
+
about: { name: "Example Preset" },
|
|
37
|
+
blocks: [blockInsidePreset],
|
|
38
|
+
}),
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
expect(template.blocks).toEqual([blockOutsidePreset, blockInsidePreset]);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
22
44
|
describe("options", () => {
|
|
23
45
|
it("does not add block exclusion options when no blocks are named", () => {
|
|
24
46
|
const template = base.createStratumTemplate({
|
|
@@ -48,6 +70,7 @@ describe("createStratumTemplate", () => {
|
|
|
48
70
|
expect(Object.keys(template.options)).toEqual([
|
|
49
71
|
"name",
|
|
50
72
|
"preset",
|
|
73
|
+
"add-example-block",
|
|
51
74
|
"exclude-example-block",
|
|
52
75
|
]);
|
|
53
76
|
});
|
|
@@ -61,7 +84,7 @@ describe("createStratumTemplate", () => {
|
|
|
61
84
|
options: mockOptions,
|
|
62
85
|
take: vi.fn(),
|
|
63
86
|
});
|
|
64
|
-
const options = await
|
|
87
|
+
const options = await allPropertiesLazy(lazyOptions);
|
|
65
88
|
expect(mockInferPreset).not.toHaveBeenCalled();
|
|
66
89
|
expect(options).toEqual({});
|
|
67
90
|
});
|
|
@@ -70,10 +93,11 @@ describe("createStratumTemplate", () => {
|
|
|
70
93
|
const lazyOptions = templateWithPreset.prepare({
|
|
71
94
|
log: mockLog,
|
|
72
95
|
// TODO: why is this type assertion necessary?
|
|
96
|
+
// https://github.com/JoshuaKGoldberg/bingo/issues/287
|
|
73
97
|
options: { ...mockOptions, preset },
|
|
74
98
|
take: vi.fn(),
|
|
75
99
|
});
|
|
76
|
-
const options = await
|
|
100
|
+
const options = await allPropertiesLazy(lazyOptions);
|
|
77
101
|
expect(mockInferPreset).not.toHaveBeenCalled();
|
|
78
102
|
expect(options).toEqual({ preset });
|
|
79
103
|
});
|
|
@@ -87,7 +111,7 @@ describe("createStratumTemplate", () => {
|
|
|
87
111
|
options: mockOptions,
|
|
88
112
|
take: vi.fn(),
|
|
89
113
|
});
|
|
90
|
-
const options = await
|
|
114
|
+
const options = await allPropertiesLazy(lazyOptions);
|
|
91
115
|
expect(mockLog).not.toHaveBeenCalled();
|
|
92
116
|
expect(options).toEqual({});
|
|
93
117
|
});
|
|
@@ -102,7 +126,7 @@ describe("createStratumTemplate", () => {
|
|
|
102
126
|
options: mockOptions,
|
|
103
127
|
take: vi.fn(),
|
|
104
128
|
});
|
|
105
|
-
const options = await
|
|
129
|
+
const options = await allPropertiesLazy(lazyOptions);
|
|
106
130
|
expect(mockLog).toHaveBeenCalledWith(`Detected ${chalk.blue(`--preset example`)} from existing files on disk.`);
|
|
107
131
|
expect(options).toEqual({ preset: presetName });
|
|
108
132
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEhC,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,IAAI,WAAW;QACd,OAAO,eAAe,CAAC;IACxB,CAAC;CACD,CAAC,CAAC,CAAC;AAEJ,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,MAAM,EAAE,EAAE;CACV,CAAC,CAAC;AACH,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAExB,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAE1C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;YACpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACvC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;aAChB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,MAAM,EAAE,CAAC,kBAAkB,CAAC;gBAC5B,OAAO,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC;wBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;wBACjC,MAAM,EAAE,CAAC,iBAAiB,CAAC;qBAC3B,CAAC;iBACF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,OAAO,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC;wBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;qBAChD,CAAC;iBACF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,OAAO,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC;wBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;wBACjC,MAAM,EAAE;4BACP,IAAI,CAAC,WAAW,CAAC;gCAChB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gCAChC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;6BAChB,CAAC;yBACF;qBACD,CAAC;iBACF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7C,MAAM;gBACN,QAAQ;gBACR,mBAAmB;gBACnB,uBAAuB;aACvB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBACrD,OAAO,EAAE,CAAC,MAAM,CAAC;aACjB,CAAC,CAAC;YAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;gBAC7E,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACpF,MAAM,MAAM,GAAG,SAAS,CAAC;gBACzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,GAAG,EAAE,OAAO;oBACZ,8CAA8C;oBAC9C,sDAAsD;oBACtD,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,EAAiC;oBAClE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBAC1E,eAAe,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAE/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,KAAK,EAAE;wBACN,WAAW,EAAE,KAAK;qBAClB;oBACD,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBACjE,MAAM,UAAU,GAAG,SAAS,CAAC;gBAC7B,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAEhD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,KAAK,EAAE;wBACN,WAAW,EAAE,KAAK;qBAClB;oBACD,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CACnC,YAAY,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,CACzE,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -5,7 +5,7 @@ export function inferPreset(context, presets) {
|
|
|
5
5
|
const blockSettings = {
|
|
6
6
|
...context,
|
|
7
7
|
// TODO: It would be better to run the base.prepare first to generate option defaults.
|
|
8
|
-
//
|
|
8
|
+
// https://github.com/JoshuaKGoldberg/bingo/issues/289
|
|
9
9
|
options: context.options,
|
|
10
10
|
};
|
|
11
11
|
let record;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferPreset.js","sourceRoot":"","sources":["../../src/creators/inferPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,cAAc,GAEd,MAAM,OAAO,CAAC;AAIf,OAAO,EACN,YAAY,GAEZ,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,UAAU,WAAW,CAC1B,OAGC,EACD,OAA+B;IAE/B,MAAM,aAAa,GAA6C;QAC/D,GAAG,OAAO;QAEV,sFAAsF;QACtF,
|
|
1
|
+
{"version":3,"file":"inferPreset.js","sourceRoot":"","sources":["../../src/creators/inferPreset.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from "./creators/createBase.js";
|
|
2
2
|
export * from "./producers/produceBlock.js";
|
|
3
3
|
export * from "./producers/producePreset.js";
|
|
4
|
+
export * from "./runners/runBlock.js";
|
|
5
|
+
export * from "./runners/runPreset.js";
|
|
4
6
|
export type * from "./types/bases.js";
|
|
5
7
|
export type * from "./types/blocks.js";
|
|
6
8
|
export type * from "./types/creations.js";
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,wBAAwB,CAAC"}
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAddonsIfUpdated.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mergeAddonsIfUpdated.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACpD,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,CAAC,GACV,KAAK,GAAG,CAAC,GAAG,SAAS,CA+DvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import hashObject from "hash-object";
|
|
1
2
|
export function mergeAddonsIfUpdated(existingAddons, newAddons) {
|
|
2
3
|
const newEntries = Object.entries(newAddons);
|
|
3
4
|
const result = { ...existingAddons };
|
|
@@ -15,9 +16,9 @@ export function mergeAddonsIfUpdated(existingAddons, newAddons) {
|
|
|
15
16
|
if (!Array.isArray(value)) {
|
|
16
17
|
return new Error("Mismatched merging addons (Array.isArray).");
|
|
17
18
|
}
|
|
18
|
-
const existingElementKeys = new Set(result[key].map(
|
|
19
|
+
const existingElementKeys = new Set(result[key].map((value) => createHash(value)));
|
|
19
20
|
for (const newElement of value) {
|
|
20
|
-
const newElementKey =
|
|
21
|
+
const newElementKey = createHash(newElement);
|
|
21
22
|
if (!existingElementKeys.has(newElementKey)) {
|
|
22
23
|
existingElementKeys.add(newElementKey);
|
|
23
24
|
result[key].push(newElement);
|
|
@@ -46,8 +47,9 @@ export function mergeAddonsIfUpdated(existingAddons, newAddons) {
|
|
|
46
47
|
}
|
|
47
48
|
return updated ? result : undefined;
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
function createHash(value) {
|
|
51
|
+
return typeof value === "object"
|
|
52
|
+
? hashObject(value)
|
|
53
|
+
: String(value);
|
|
52
54
|
}
|
|
53
55
|
//# sourceMappingURL=mergeAddonsIfUpdated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAddonsIfUpdated.js","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CACnC,cAAiB,EACjB,SAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAyB,CAAC;IACrE,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IAEvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7C,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,KAAmB,CAAC;YAClC,SAAS;QACV,CAAC;QAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,SAAS;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"mergeAddonsIfUpdated.js","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,oBAAoB,CACnC,cAAiB,EACjB,SAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAyB,CAAC;IACrE,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IAEvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7C,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,KAAmB,CAAC;YAClC,SAAS;QACV,CAAC;QAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,SAAS;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAClC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAC;YAEF,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC7C,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7B,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;YACF,CAAC;YAED,SAAS;QACV,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBACjB,IAAI,WAAW,YAAY,KAAK,EAAE,CAAC;oBAClC,OAAO,WAAW,CAAC;gBACpB,CAAC;gBAED,MAAM,CAAC,GAAG,CAAC,GAAG,WAAyB,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,SAAS;QACV,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,KAAK,CACf,8BAA8B,MAAM,CAAC,GAAG,CAAW,QAAQ,KAAe,IAAI,CAC9E,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,CAAC,CAAC,UAAU,CAAC,KAAgC,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,KAAqD,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { BlockCreation } from "../types/creations.js";
|
|
|
2
2
|
export declare function mergeBlockCreations<Options extends object>(first: Partial<BlockCreation<Options>>, second: Partial<BlockCreation<Options>>): {
|
|
3
3
|
addons: import("../types/creations.js").CreatedBlockAddons<any, Options>[];
|
|
4
4
|
files?: import("bingo-fs").CreatedDirectory | undefined;
|
|
5
|
-
requests?: import("bingo").CreatedRequest[] | undefined;
|
|
5
|
+
requests?: import("bingo-requests").CreatedRequest[] | undefined;
|
|
6
6
|
scripts?: import("bingo").CreatedScript[] | undefined;
|
|
7
7
|
suggestions?: string[] | undefined;
|
|
8
8
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Block } from "../types/blocks.js";
|
|
2
2
|
import { BlockRefinements } from "../types/refinements.js";
|
|
3
|
-
export declare function applyBlockRefinements<Options extends object>(blocksInitial: Block<object | undefined, Options>[], options: Options, { add, exclude }?: BlockRefinements<Options>): Block<object | undefined, Options>[];
|
|
3
|
+
export declare function applyBlockRefinements<Options extends object>(blocksAvailable: Block<object | undefined, Options>[], blocksInitial: Block<object | undefined, Options>[], options: Options, { add, exclude }?: BlockRefinements<Options>): Block<object | undefined, Options>[];
|
|
4
4
|
//# sourceMappingURL=applyBlockRefinements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyBlockRefinements.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyBlockRefinements.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAU3D,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EACrD,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EACnD,OAAO,EAAE,OAAO,EAChB,EAAE,GAAQ,EAAE,OAAY,EAAE,GAAE,gBAAgB,CAAC,OAAO,CAAM,wCAoE1D"}
|
|
@@ -1,13 +1,45 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { CachedFactory } from "cached-factory";
|
|
2
|
+
import { slugifyName } from "../utils/slugifyName.js";
|
|
3
|
+
export function applyBlockRefinements(blocksAvailable, blocksInitial, options, { add = [], exclude = [] } = {}) {
|
|
4
|
+
const allOptions = new Set(Object.entries(options)
|
|
5
|
+
.filter(([, value]) => !!value)
|
|
5
6
|
.map(([key]) => key));
|
|
6
|
-
|
|
7
|
+
const allBlocksByName = new Map(blocksAvailable
|
|
8
|
+
.filter((block) => !!block.about?.name)
|
|
9
|
+
.map((block) => [slugifyName(block.about.name), block]));
|
|
10
|
+
const refinementsByBlock = new CachedFactory(() => ({}));
|
|
11
|
+
let hadBlockRefinement = false;
|
|
12
|
+
for (const optionKey of allOptions) {
|
|
13
|
+
const matches = /^(add|exclude)-(.+)/.exec(optionKey.toLowerCase());
|
|
14
|
+
if (!matches) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const [, action, blockNameRaw] = matches;
|
|
18
|
+
const blockName = slugifyName(blockNameRaw);
|
|
19
|
+
if (!allBlocksByName.has(blockName)) {
|
|
20
|
+
throw new Error(`Unknown Block refinement option: --${optionKey}`);
|
|
21
|
+
}
|
|
22
|
+
const refinements = refinementsByBlock.get(blockName);
|
|
23
|
+
refinements[action] = true;
|
|
24
|
+
if (refinements.add && refinements.exclude) {
|
|
25
|
+
throw new Error(`Cannot both add and exclude the same block: --add-${blockName}, --exclude-${blockName}`);
|
|
26
|
+
}
|
|
27
|
+
hadBlockRefinement = true;
|
|
28
|
+
}
|
|
29
|
+
if (!add.length && !exclude.length && !hadBlockRefinement) {
|
|
7
30
|
return blocksInitial;
|
|
8
31
|
}
|
|
9
|
-
const blocksRefined = new Set(blocksInitial
|
|
10
|
-
|
|
32
|
+
const blocksRefined = new Set(blocksInitial);
|
|
33
|
+
for (const [blockName, blockRefinements] of refinementsByBlock.entries()) {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
35
|
+
const block = allBlocksByName.get(blockName);
|
|
36
|
+
if (blockRefinements.add) {
|
|
37
|
+
blocksRefined.add(block);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
blocksRefined.delete(block);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
11
43
|
for (const added of add) {
|
|
12
44
|
blocksRefined.add(added);
|
|
13
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyBlockRefinements.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyBlockRefinements.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,36 +19,79 @@ const blockC = base.createBlock({
|
|
|
19
19
|
about: { name: "C" },
|
|
20
20
|
produce: vi.fn(),
|
|
21
21
|
});
|
|
22
|
+
const blocksAvailable = [blockA, blockB, blockC];
|
|
22
23
|
describe("applyBlockRefinements", () => {
|
|
23
24
|
it("returns the initial blocks when no exclusion options or refinements are provided", () => {
|
|
24
25
|
const initial = [blockA, blockB];
|
|
25
|
-
const actual = applyBlockRefinements(initial, {
|
|
26
|
+
const actual = applyBlockRefinements(blocksAvailable, initial, {
|
|
27
|
+
value: "",
|
|
28
|
+
});
|
|
26
29
|
expect(actual).toBe(initial);
|
|
27
30
|
});
|
|
28
31
|
it("returns the initial blocks when no exclusion options are provided and refinements are empty", () => {
|
|
29
32
|
const initial = [blockA, blockB];
|
|
30
|
-
const actual = applyBlockRefinements(initial, { value: "" }, { add: [], exclude: [] });
|
|
33
|
+
const actual = applyBlockRefinements(blocksAvailable, initial, { value: "" }, { add: [], exclude: [] });
|
|
31
34
|
expect(actual).toBe(initial);
|
|
32
35
|
});
|
|
33
|
-
it("returns
|
|
36
|
+
it("returns added and initial blocks when only addition options are provided", () => {
|
|
37
|
+
const blocksInitial = [blockB];
|
|
38
|
+
const actual = applyBlockRefinements(blocksAvailable, blocksInitial, { "add-a": true, value: "" }, {
|
|
39
|
+
add: [],
|
|
40
|
+
exclude: [],
|
|
41
|
+
});
|
|
42
|
+
expect(actual).toEqual([blockB, blockA]);
|
|
43
|
+
});
|
|
44
|
+
it("returns non-excluded blocks when only exclusion options are provided", () => {
|
|
34
45
|
const initial = [blockA, blockB];
|
|
35
|
-
const actual = applyBlockRefinements(initial, { "exclude-a": true, value: "" }, {
|
|
46
|
+
const actual = applyBlockRefinements(blocksAvailable, initial, { "exclude-a": true, value: "" }, {
|
|
36
47
|
add: [],
|
|
37
48
|
exclude: [],
|
|
38
49
|
});
|
|
39
50
|
expect(actual).toEqual([blockB]);
|
|
40
51
|
});
|
|
41
|
-
it("returns
|
|
52
|
+
it("returns added and non-excluded blocks when addition and exclusion options are provided", () => {
|
|
53
|
+
const initial = [blockB, blockC];
|
|
54
|
+
const actual = applyBlockRefinements(blocksAvailable, initial, { "add-a": true, "exclude-b": true, value: "" }, {
|
|
55
|
+
add: [],
|
|
56
|
+
exclude: [],
|
|
57
|
+
});
|
|
58
|
+
expect(actual).toEqual([blockC, blockA]);
|
|
59
|
+
});
|
|
60
|
+
it("throws an error when options both add and remove a block", () => {
|
|
61
|
+
const initial = [blockB, blockC];
|
|
62
|
+
const act = () => applyBlockRefinements(blocksAvailable, initial, { "add-a": true, "exclude-a": true, value: "" }, {
|
|
63
|
+
add: [],
|
|
64
|
+
exclude: [],
|
|
65
|
+
});
|
|
66
|
+
expect(act).toThrow("Cannot both add and exclude the same block: --add-a, --exclude-a");
|
|
67
|
+
});
|
|
68
|
+
it("throws an error when options add an unknown block", () => {
|
|
69
|
+
const initial = [blockB, blockC];
|
|
70
|
+
const act = () => applyBlockRefinements(blocksAvailable, initial, { "add-d": true, value: "" }, {
|
|
71
|
+
add: [],
|
|
72
|
+
exclude: [],
|
|
73
|
+
});
|
|
74
|
+
expect(act).toThrow("Unknown Block refinement option: --add-d");
|
|
75
|
+
});
|
|
76
|
+
it("throws an error when options exclude an unknown block", () => {
|
|
77
|
+
const initial = [blockB, blockC];
|
|
78
|
+
const act = () => applyBlockRefinements(blocksAvailable, initial, { "exclude-d": true, value: "" }, {
|
|
79
|
+
add: [],
|
|
80
|
+
exclude: [],
|
|
81
|
+
});
|
|
82
|
+
expect(act).toThrow("Unknown Block refinement option: --exclude-d");
|
|
83
|
+
});
|
|
84
|
+
it("returns non-excluded blocks when only exclusion refinements are provided", () => {
|
|
42
85
|
const initial = [blockA, blockB];
|
|
43
|
-
const actual = applyBlockRefinements(initial, { value: "" }, {
|
|
86
|
+
const actual = applyBlockRefinements(blocksAvailable, initial, { value: "" }, {
|
|
44
87
|
add: [blockC],
|
|
45
88
|
exclude: [blockB],
|
|
46
89
|
});
|
|
47
90
|
expect(actual).toEqual([blockA, blockC]);
|
|
48
91
|
});
|
|
49
92
|
it("returns modified blocks when both exclusion options and refinements are provided", () => {
|
|
50
|
-
const
|
|
51
|
-
const actual = applyBlockRefinements(
|
|
93
|
+
const blocksInitial = [blockA, blockB, blockC];
|
|
94
|
+
const actual = applyBlockRefinements(blocksAvailable, blocksInitial, { "exclude-a": true, value: "" }, {
|
|
52
95
|
add: [],
|
|
53
96
|
exclude: [blockB],
|
|
54
97
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyBlockRefinements.test.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB;CACD,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC3F,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"applyBlockRefinements.test.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { AnyShape, InferredObject, ProduceTemplateSettings } from "bingo";
|
|
|
2
2
|
import { BlockCreation } from "../types/creations.js";
|
|
3
3
|
import { Preset } from "../types/presets.js";
|
|
4
4
|
import { StratumRefinements } from "../types/refinements.js";
|
|
5
|
+
import { StratumTemplate } from "../types/templates.js";
|
|
5
6
|
/**
|
|
6
7
|
* Settings to run a Preset with {@link producePreset}.
|
|
7
8
|
* @template OptionsShape Schemas of options defined by the Preset's Base.
|
|
@@ -13,11 +14,15 @@ export interface ProducePresetSettings<OptionsShape extends AnyShape> extends Pr
|
|
|
13
14
|
* @see {@link https://create.bingo/engines/stratum/details/configurations#refinements}
|
|
14
15
|
*/
|
|
15
16
|
refinements?: StratumRefinements<InferredObject<OptionsShape>>;
|
|
17
|
+
/**
|
|
18
|
+
* Parent Template, if more Blocks may be needed.
|
|
19
|
+
*/
|
|
20
|
+
template?: StratumTemplate<OptionsShape>;
|
|
16
21
|
}
|
|
17
22
|
/**
|
|
18
23
|
* Produces the Blocks in a Preset, merging the results into a single creation.
|
|
19
24
|
* @template OptionsShape Schemas of options defined by the Preset's Base.
|
|
20
25
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
|
|
21
26
|
*/
|
|
22
|
-
export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { mode, offline, options, refinements, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
|
|
27
|
+
export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { mode, offline, options, refinements, template, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
|
|
23
28
|
//# sourceMappingURL=producePreset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producePreset.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"producePreset.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CAAC,YAAY,SAAS,QAAQ,CACnE,SAAQ,uBAAuB,CAC9B,YAAY,EACZ,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;;OAGG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,SAAS,QAAQ,EAC1D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,EAChB,QAAQ,GACR,EAAE,qBAAqB,CAAC,YAAY,CAAC,GACpC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAuB7C"}
|
|
@@ -5,8 +5,8 @@ import { produceBlocks } from "./produceBlocks.js";
|
|
|
5
5
|
* @template OptionsShape Schemas of options defined by the Preset's Base.
|
|
6
6
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
|
|
7
7
|
*/
|
|
8
|
-
export function producePreset(preset, { mode, offline, options, refinements = {}, }) {
|
|
9
|
-
const blocks = applyBlockRefinements(preset.blocks, options, refinements.blocks);
|
|
8
|
+
export function producePreset(preset, { mode, offline, options, refinements = {}, template, }) {
|
|
9
|
+
const blocks = applyBlockRefinements(template?.blocks ?? preset.blocks, preset.blocks, options, refinements.blocks);
|
|
10
10
|
const creation = produceBlocks(blocks, {
|
|
11
11
|
addons: refinements.addons,
|
|
12
12
|
mode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAwBnD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,MAA4B,EAC5B,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,QAAQ,GAC6B;IAEtC,MAAM,MAAM,GAAG,qBAAqB,CACnC,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,EACjC,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE;QACtC,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;IAEH,OAAO;QACN,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,GAAG,QAAQ;KACX,CAAC;AACH,CAAC"}
|
|
@@ -84,5 +84,55 @@ describe("producePreset", () => {
|
|
|
84
84
|
},
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
+
it("uses the template's blocks for refinement if a template is provided", () => {
|
|
88
|
+
const baseWithoutOption = createBase({
|
|
89
|
+
options: {},
|
|
90
|
+
});
|
|
91
|
+
const blockA = baseWithoutOption.createBlock({
|
|
92
|
+
about: { name: "A" },
|
|
93
|
+
produce() {
|
|
94
|
+
return {
|
|
95
|
+
files: {
|
|
96
|
+
"a.txt": "a",
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
const blockB = baseWithoutOption.createBlock({
|
|
102
|
+
about: { name: "B" },
|
|
103
|
+
produce() {
|
|
104
|
+
return {
|
|
105
|
+
files: {
|
|
106
|
+
"b.txt": "b",
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
const presetA = baseWithoutOption.createPreset({
|
|
112
|
+
about: { name: "A" },
|
|
113
|
+
blocks: [blockA],
|
|
114
|
+
});
|
|
115
|
+
const presetAB = baseWithoutOption.createPreset({
|
|
116
|
+
about: { name: "AB" },
|
|
117
|
+
blocks: [blockA, blockB],
|
|
118
|
+
});
|
|
119
|
+
const template = baseWithoutOption.createStratumTemplate({
|
|
120
|
+
presets: [presetA, presetAB],
|
|
121
|
+
});
|
|
122
|
+
const actual = producePreset(presetA, {
|
|
123
|
+
...system,
|
|
124
|
+
options: {
|
|
125
|
+
"add-b": true,
|
|
126
|
+
},
|
|
127
|
+
template,
|
|
128
|
+
});
|
|
129
|
+
expect(actual).toEqual({
|
|
130
|
+
...emptyCreation,
|
|
131
|
+
files: {
|
|
132
|
+
"a.txt": "a",
|
|
133
|
+
"b.txt": "b",
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
});
|
|
87
137
|
});
|
|
88
138
|
//# sourceMappingURL=producePreset.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producePreset.test.js","sourceRoot":"","sources":["../../src/producers/producePreset.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"producePreset.test.js","sourceRoot":"","sources":["../../src/producers/producePreset.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAC5E,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC/D;AAED,wBAAgB,sBAAsB,CACrC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAExC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,8BAA8B,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"produceStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAC5E,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC/D;AAED,wBAAgB,sBAAsB,CACrC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAExC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,8BAA8B,CAAC,YAAY,CAAC,MAoB/C"}
|
|
@@ -6,7 +6,7 @@ export function produceStratumTemplate(template, { mode, offline, options, refin
|
|
|
6
6
|
if (preset instanceof Error) {
|
|
7
7
|
throw preset;
|
|
8
8
|
}
|
|
9
|
-
const blocks = applyBlockRefinements(preset.blocks, options, refinements.blocks);
|
|
9
|
+
const blocks = applyBlockRefinements(template.blocks, preset.blocks, options, refinements.blocks);
|
|
10
10
|
return produceBlocks(blocks, {
|
|
11
11
|
addons: refinements.addons,
|
|
12
12
|
mode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,GAC8B;IAE/C,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CACnC,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,GAC8B;IAE/C,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CACnC,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
|
package/lib/runners/runBlock.js
CHANGED
|
@@ -5,6 +5,7 @@ export async function runBlock(block, settings) {
|
|
|
5
5
|
const system = await createSystemContextWithAuth({ directory, ...settings });
|
|
6
6
|
const creation = produceBlock(
|
|
7
7
|
// TODO: Why are these assertions necessary?
|
|
8
|
+
// https://github.com/JoshuaKGoldberg/bingo/issues/283
|
|
8
9
|
block, settings);
|
|
9
10
|
await runCreation(creation, { offline, system });
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runBlock.js","sourceRoot":"","sources":["../../src/runners/runBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAuC5D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAqE,EACrE,QAA2C;IAE3C,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,YAAY;IAC5B,4CAA4C;IAC5C,KAAyC,EACzC,QAA+D,CAC/D,CAAC;IAEF,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"runBlock.js","sourceRoot":"","sources":["../../src/runners/runBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAuC5D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAqE,EACrE,QAA2C;IAE3C,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,YAAY;IAC5B,4CAA4C;IAC5C,sDAAsD;IACtD,KAAyC,EACzC,QAA+D,CAC/D,CAAC;IAEF,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyShape, InferredObject, RunTemplateSettings } from "bingo";
|
|
2
|
+
import { BlockCreation } from "../types/creations.js";
|
|
3
|
+
import { Preset } from "../types/presets.js";
|
|
4
|
+
import { StratumRefinements } from "../types/refinements.js";
|
|
5
|
+
export type RunPresetSettings<OptionsShape extends AnyShape> = RunTemplateSettings<OptionsShape, StratumRefinements<InferredObject<OptionsShape>>>;
|
|
6
|
+
/**
|
|
7
|
+
* Generates and applies the Blocks in a Preset.
|
|
8
|
+
* @template OptionsShape Schemas of options the Preset's Base takes in.
|
|
9
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/runners#runTemplate}
|
|
10
|
+
*/
|
|
11
|
+
export declare function runPreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, settings: RunPresetSettings<OptionsShape>): Promise<BlockCreation<InferredObject<OptionsShape>>>;
|
|
12
|
+
//# sourceMappingURL=runPreset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runPreset.d.ts","sourceRoot":"","sources":["../../src/runners/runPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EAER,cAAc,EAEd,mBAAmB,EACnB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,CAAC,YAAY,SAAS,QAAQ,IAC1D,mBAAmB,CAClB,YAAY,EACZ,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;AAEH;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,YAAY,SAAS,QAAQ,EAC5D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAStD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createSystemContextWithAuth, runCreation, } from "bingo";
|
|
2
|
+
import { producePreset } from "../producers/producePreset.js";
|
|
3
|
+
/**
|
|
4
|
+
* Generates and applies the Blocks in a Preset.
|
|
5
|
+
* @template OptionsShape Schemas of options the Preset's Base takes in.
|
|
6
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/runners#runTemplate}
|
|
7
|
+
*/
|
|
8
|
+
export async function runPreset(preset, settings) {
|
|
9
|
+
const { directory = ".", offline } = settings;
|
|
10
|
+
const system = await createSystemContextWithAuth({ directory, ...settings });
|
|
11
|
+
const creation = producePreset(preset, settings);
|
|
12
|
+
await runCreation(creation, { offline, system });
|
|
13
|
+
return creation;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=runPreset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runPreset.js","sourceRoot":"","sources":["../../src/runners/runPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,2BAA2B,EAE3B,WAAW,GAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAW9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC9B,MAA4B,EAC5B,QAAyC;IAEzC,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjD,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creations.d.ts","sourceRoot":"","sources":["../../src/types/creations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,QAAQ;
|
|
1
|
+
{"version":3,"file":"creations.d.ts","sourceRoot":"","sources":["../../src/types/creations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,QAAQ;IAKtE,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB,CAClC,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/types/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,MAAM,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IAC/D,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;CAClE;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC7C,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,KAAK,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/types/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,MAAM,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IAC/D,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;CAClE;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC7C,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,KAAK,EAAE,WAAW,CAAC;IAKnB,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;CACxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refinements.d.ts","sourceRoot":"","sources":["../../src/types/refinements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE;;OAEG;
|
|
1
|
+
{"version":3,"file":"refinements.d.ts","sourceRoot":"","sources":["../../src/types/refinements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE;;OAEG;IAIH,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC"}
|
package/lib/types/templates.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnyShape, InferredObject, Template, TemplateAbout, TemplatePrepare } from "bingo";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { Base } from "./bases.js";
|
|
4
|
+
import { Block } from "./blocks.js";
|
|
4
5
|
import { Preset } from "./presets.js";
|
|
5
6
|
import { StratumRefinements } from "./refinements.js";
|
|
6
7
|
/**
|
|
@@ -14,6 +15,10 @@ export interface StratumTemplate<OptionsShape extends AnyShape> extends Template
|
|
|
14
15
|
* @see {@link https://www.create.bingo/engines/stratum/concepts/bases}
|
|
15
16
|
*/
|
|
16
17
|
base: Base<OptionsShape>;
|
|
18
|
+
/**
|
|
19
|
+
* All the Blocks available in any of the Template's Presets.
|
|
20
|
+
*/
|
|
21
|
+
blocks: Block<object | undefined, InferredObject<OptionsShape>>[];
|
|
17
22
|
/**
|
|
18
23
|
* Sets up lazily load default options values.
|
|
19
24
|
* This is indicated as required here because all Stratum Templates infer
|
|
@@ -37,6 +42,10 @@ export interface StratumTemplateDefinition<OptionsShape extends AnyShape> {
|
|
|
37
42
|
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-about}
|
|
38
43
|
*/
|
|
39
44
|
about?: TemplateAbout;
|
|
45
|
+
/**
|
|
46
|
+
* Any additional Blocks to make available for Block refinements that add Blocks.
|
|
47
|
+
*/
|
|
48
|
+
blocks?: Block<object | undefined, InferredObject<OptionsShape>>[];
|
|
40
49
|
/**
|
|
41
50
|
* Sets up lazily load default options values.
|
|
42
51
|
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-prepare}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,QAAQ,CAC7D,SAAQ,QAAQ,CACf,YAAY,GAAG,2BAA2B,EAC1C,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;OAKG;IACH,OAAO,EAAE,eAAe,CACvB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IAEF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,YAAY,SAAS,QAAQ;IACvE;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CACxB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IAEF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;CACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,QAAQ,CAC7D,SAAQ,QAAQ,CACf,YAAY,GAAG,2BAA2B,EAC1C,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAElE;;;;;OAKG;IACH,OAAO,EAAE,eAAe,CACvB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IAEF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,YAAY,SAAS,QAAQ;IACvE;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAEnE;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CACxB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IAEF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;CACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlockRefinementOption.d.ts","sourceRoot":"","sources":["../../src/utils/createBlockRefinementOption.ts"],"names":[],"mappings":"AAEA,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAE5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlockRefinementOption.js","sourceRoot":"","sources":["../../src/utils/createBlockRefinementOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,2BAA2B,CAAC,MAAc,EAAE,SAAiB;IAC5E,OAAO,GAAG,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AAC9C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bingo-stratum",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.7",
|
|
4
4
|
"description": "Highly composable, customizable templating engine for Bingo. 🏭",
|
|
5
5
|
"homepage": "https://www.create.bingo/engines/stratum/packages/bingo-stratum",
|
|
6
6
|
"repository": {
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
+
"all-properties-lazy": "^0.1.0",
|
|
26
|
+
"cached-factory": "^0.1.0",
|
|
25
27
|
"chalk": "^5.4.1",
|
|
26
28
|
"hash-object": "^5.0.1",
|
|
27
29
|
"octokit": "^4.1.2",
|
|
@@ -30,11 +32,11 @@
|
|
|
30
32
|
},
|
|
31
33
|
"devDependencies": {
|
|
32
34
|
"@types/node": "22.13.9",
|
|
33
|
-
"bingo": "^0.5.
|
|
35
|
+
"bingo": "^0.5.9"
|
|
34
36
|
},
|
|
35
37
|
"peerDependencies": {
|
|
36
38
|
"zod": "^3.24.2",
|
|
37
|
-
"bingo": "^0.5.
|
|
39
|
+
"bingo": "^0.5.9",
|
|
38
40
|
"bingo-fs": "^0.5.4",
|
|
39
41
|
"bingo-systems": "^0.5.4"
|
|
40
42
|
},
|