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.
Files changed (46) hide show
  1. package/lib/creators/createStratumTemplate.d.ts.map +1 -1
  2. package/lib/creators/createStratumTemplate.js +27 -13
  3. package/lib/creators/createStratumTemplate.js.map +1 -1
  4. package/lib/creators/createStratumTemplate.test.js +29 -5
  5. package/lib/creators/createStratumTemplate.test.js.map +1 -1
  6. package/lib/creators/inferPreset.js +1 -1
  7. package/lib/creators/inferPreset.js.map +1 -1
  8. package/lib/index.d.ts +2 -0
  9. package/lib/index.d.ts.map +1 -1
  10. package/lib/index.js +2 -0
  11. package/lib/index.js.map +1 -1
  12. package/lib/mergers/mergeAddonsIfUpdated.d.ts.map +1 -1
  13. package/lib/mergers/mergeAddonsIfUpdated.js +7 -5
  14. package/lib/mergers/mergeAddonsIfUpdated.js.map +1 -1
  15. package/lib/mergers/mergeBlockCreations.d.ts +1 -1
  16. package/lib/producers/applyBlockRefinements.d.ts +1 -1
  17. package/lib/producers/applyBlockRefinements.d.ts.map +1 -1
  18. package/lib/producers/applyBlockRefinements.js +39 -7
  19. package/lib/producers/applyBlockRefinements.js.map +1 -1
  20. package/lib/producers/applyBlockRefinements.test.js +51 -8
  21. package/lib/producers/applyBlockRefinements.test.js.map +1 -1
  22. package/lib/producers/producePreset.d.ts +6 -1
  23. package/lib/producers/producePreset.d.ts.map +1 -1
  24. package/lib/producers/producePreset.js +2 -2
  25. package/lib/producers/producePreset.js.map +1 -1
  26. package/lib/producers/producePreset.test.js +50 -0
  27. package/lib/producers/producePreset.test.js.map +1 -1
  28. package/lib/producers/produceStratumTemplate.d.ts.map +1 -1
  29. package/lib/producers/produceStratumTemplate.js +1 -1
  30. package/lib/producers/produceStratumTemplate.js.map +1 -1
  31. package/lib/runners/runBlock.js +1 -0
  32. package/lib/runners/runBlock.js.map +1 -1
  33. package/lib/runners/runPreset.d.ts +12 -0
  34. package/lib/runners/runPreset.d.ts.map +1 -0
  35. package/lib/runners/runPreset.js +15 -0
  36. package/lib/runners/runPreset.js.map +1 -0
  37. package/lib/types/creations.d.ts.map +1 -1
  38. package/lib/types/presets.d.ts.map +1 -1
  39. package/lib/types/refinements.d.ts.map +1 -1
  40. package/lib/types/templates.d.ts +9 -0
  41. package/lib/types/templates.d.ts.map +1 -1
  42. package/lib/utils/createBlockRefinementOption.d.ts +2 -0
  43. package/lib/utils/createBlockRefinementOption.d.ts.map +1 -0
  44. package/lib/utils/createBlockRefinementOption.js +5 -0
  45. package/lib/utils/createBlockRefinementOption.js.map +1 -0
  46. 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,CAqF/B"}
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 { createBlockExclusionOption } from "../utils/createBlockExclusionOption.js";
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
- // Exclusion options are not present in the types, because:
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.exclude`.
29
+ // instead use imported Blocks in `refinements.blocks`.
23
30
  //
24
31
  // TODO: It would be nice to have labeled groups of options.
25
- // That way these don't get logged alongside the more normal options...
26
- ...Object.fromEntries(Array.from(new Set(templateDefinition.presets.flatMap((preset) => preset.blocks.map((block) => block.about?.name))))
27
- .filter((blockName) => typeof blockName === "string")
32
+ // https://github.com/JoshuaKGoldberg/bingo/issues/288
33
+ ...Object.fromEntries(namedBlocks
28
34
  .map((blockName) => [
29
- createBlockExclusionOption(blockName),
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
- }; // TODO: Why is this type assertion necessary?
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":"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"}
1
+ {"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { awaitLazyProperties } from "bingo";
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 awaitLazyProperties(lazyOptions);
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 awaitLazyProperties(lazyOptions);
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 awaitLazyProperties(lazyOptions);
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 awaitLazyProperties(lazyOptions);
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":"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"}
1
+ {"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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";
@@ -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
@@ -1,4 +1,6 @@
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
  //# sourceMappingURL=index.js.map
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":"AAAA,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACpD,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,CAAC,GACV,KAAK,GAAG,CAAC,GAAG,SAAS,CA6DvB"}
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(createKey));
19
+ const existingElementKeys = new Set(result[key].map((value) => createHash(value)));
19
20
  for (const newElement of value) {
20
- const newElementKey = createKey(newElement);
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
- // TODO: In the future, this could be a more quick and intelligent hash...
50
- function createKey(value) {
51
- return JSON.stringify(value);
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,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YAEhE,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC5C,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,0EAA0E;AAC1E,SAAS,SAAS,CAAC,KAAc;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,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,wCA6B1D"}
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 { createBlockExclusionOption } from "../utils/createBlockExclusionOption.js";
2
- export function applyBlockRefinements(blocksInitial, options, { add = [], exclude = [] } = {}) {
3
- const exclusionOptions = new Set(Object.entries(options)
4
- .filter(([key, value]) => key.startsWith("exclude-") && !!value)
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
- if (!add.length && !exclude.length && !exclusionOptions.size) {
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.filter((block) => block.about?.name &&
10
- !exclusionOptions.has(createBlockExclusionOption(block.about.name))));
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":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CACpC,aAAmD,EACnD,OAAgB,EAChB,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,KAAgC,EAAE;IAE1D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CACrB,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC9D,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAC5B,aAAa,CAAC,MAAM,CACnB,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,KAAK,EAAE,IAAI;QACjB,CAAC,gBAAgB,CAAC,GAAG,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpE,CACD,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAChC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC"}
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, { value: "" });
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 modified blocks when only exclusion options are provided", () => {
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 modified blocks when only refinements are provided", () => {
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 initial = [blockA, blockB, blockC];
51
- const actual = applyBlockRefinements(initial, { "exclude-a": true, value: "" }, {
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":"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"}
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;AAI7D;;;;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;CAC/D;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,GAChB,EAAE,qBAAqB,CAAC,YAAY,CAAC,GACpC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAsB7C"}
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":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAmBnD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,MAA4B,EAC5B,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,GACqB;IAEtC,MAAM,MAAM,GAAG,qBAAqB,CACnC,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"}
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,MAmB/C"}
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"}
@@ -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;IAItE,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;CAC3C;AACD,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
+ {"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;IAInB,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;CACxE"}
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;IAGH,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC"}
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"}
@@ -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,2 @@
1
+ export declare function createBlockRefinementOption(prefix: string, blockName: string): string;
2
+ //# sourceMappingURL=createBlockRefinementOption.d.ts.map
@@ -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,5 @@
1
+ import { slugifyName } from "./slugifyName.js";
2
+ export function createBlockRefinementOption(prefix, blockName) {
3
+ return `${prefix}-${slugifyName(blockName)}`;
4
+ }
5
+ //# sourceMappingURL=createBlockRefinementOption.js.map
@@ -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.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.7"
35
+ "bingo": "^0.5.9"
34
36
  },
35
37
  "peerDependencies": {
36
38
  "zod": "^3.24.2",
37
- "bingo": "^0.5.7",
39
+ "bingo": "^0.5.9",
38
40
  "bingo-fs": "^0.5.4",
39
41
  "bingo-systems": "^0.5.4"
40
42
  },